• federico_vela_p
  • NEWBIE
  • 0 Points
  • Member since 2006

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 4
    Questions
  • 17
    Replies
Hello all,

When I log in though SOAP, the API returns a LoginResult object, that contains a passwordExpired boolean flag.

Is it possible to set this flag programmatically from the API?

Thanks.

Federico Vela
Hello, i programmed a very simple sControl that outputs the ID's of my contacts, and it works fine in IE, but not in FireFox 1.5.0.6 :(

i get the following error

Error: me.XMLHttpRequests[i].req has no properties
Source File: https://www.salesforce.com/services/lib/ajax/beta3.3/sforceclient.js?browser=true
Line: 904

I am not doing anything out of the ordinary... what is the problem???

Any thoughts anyone???

Thank you.

Federico Vela


Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script language="javascript" src="https://www.salesforce.com/services/lib/ajax/beta3.3/sforceclient.js—browser=true" type="text/javascript"></script>
<script id="clientEventHandlersJS" language="javascript">
<!--
function initPage() {
sforceClient.registerInitCallback(setup);
sforceClient.setLoginUrl("https://www.salesforce.com/services/Soap/u/7.0");
sforceClient.init("{!API_Session_ID}", "{!API_Partner_Server_URL_70}", true);
}

//Use this function as the entry point for your DHTML and JAVASCRIPT processing
function setup() {
var queryResult = sforceClient.query("select Id From Contact", layoutResults);
}

function layoutResults(queryResult) {
if (queryResult.className == "Fault") {
alert("There was an error: " + queryResult.toString());
} else {
if (queryResult.size >0){
var outputText = "";
for (var i=0; queryResult.records.length > i ; i++){
var dynaBean = queryResult.records[i];
outputText = outputText + dynaBean.get("Id") + "<br>";
}
var textNode = document.createTextNode(outputText);
document.getElementById("output").innerHTML = outputText;
} else {
var textNode = document.createTextNode("No records");
}
}
}
/****************************************************************
* Added code below to fix an issue in the browsersupport.js file. Obtained from
* http://forums.sforce.com/sforce/board/message—board.id=ajax_toolkit&message.id=389
*****************************************************************/
Sforce.Client.prototype.createWait = function() {
var w = Sforce.doc.getElementById("sfdc_waiter");
if (w != undefined) {
return w;
} else {
w = Sforce.doc.createElement("iframe");
w.style.overflow = "visible";
w.frameBorder = "no";
//w.style.backgroundColor = "transparent";
w.allowTransparency = true;
w.id = "sfdc_waiter";
w.name = "sfdc_waiter";
w.src = "javascript:false;"; // Added. SBower.
return w;
}
};
/****************************************************************
* Don't know why, but if I include browser=true, the page never stops loading.
* In the sense that the loading icon never stops spinning. Turning off
* the busybox does the trick.
*****************************************************************/
Sforce.Client.prototype.busyboxenabled = false;
//-->
</script>
</head>
<body onload="initPage()">
<div id="output"></div>
</body>
</html>

 

Hello,

is it now possible to access the email templates from the API???

Thank you.
Hello,

Using the "create" operation, I am getting a NullPointerException when invoking the AppExchange server.

This code was previously written by someone else and was working fine, I added some copy/paste code, changed the things i needed to be different, but I am now getting this error.

Environment:
Win 2k
NetBeans 5.5b
Axis 1.1 1544 December 9 2004
Java 1.4.2

Here is the code:

public int createClassMembers(SforceManager mgr, List contactIdList, String classId){

//For Student_Assessment__c objects
ArrayList studentAssessmentObjects = new ArrayList();
ArrayList studentAssessmentFields;
List saveResultStudentAssessments = new ArrayList();

//For Contact objects
ArrayList classMemberObjects = new ArrayList();
ArrayList mElem = new ArrayList();
List saveResultClassMember = new ArrayList();

//loop through all contacts
for(int i=0;contactIdList.size()> i; i++){

MessageElement [] fields;
String contactId = contactIdList.get(i).toString();

//create contact: this was here before and works fine
SObject sObj = new SObject();
sObj.setType(classMemberObjectName);
mElem.add(new MessageElement(new QName("Class__c"),classId));
mElem.add(new MessageElement(new QName("Contact__c"),contactId));
Iterator fIte = mElem.iterator();
fields = new MessageElement[mElem.size()];
int index = 0;
while (fIte.hasNext()){
fields[index] = (MessageElement) fIte.next();
index ++;
}
sObj.set_any(fields);
classMemberObjects.add(i,sObj);

// now create two student assessment objects for each student
sObj = new SObject();
sObj.setType(studentAssessmentObjectName);
studentAssessmentFields = new ArrayList();
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M1__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M2__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M3__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M4__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M5__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Class__c"),classId));
studentAssessmentFields.add(new MessageElement(new QName("Student__c"),contactId));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_Type__c"),saTypeMidtermName));
fIte = mElem.iterator();
fields = new MessageElement[studentAssessmentFields.size()];
index = 0;
while (fIte.hasNext()){
fields[index] = (MessageElement) fIte.next();
index ++;
}
sObj.set_any(fields);
studentAssessmentObjects.add(sObj);

sObj = new SObject();
sObj.setType(studentAssessmentObjectName);
studentAssessmentFields = new ArrayList();
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M1__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M2__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M3__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M4__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M5__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Class__c"),classId));
studentAssessmentFields.add(new MessageElement(new QName("Student__c"),contactId));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_Type__c"),saTypeFinalName));
fIte = mElem.iterator();
fields = new MessageElement[studentAssessmentFields.size()];
index = 0;
while (fIte.hasNext()){
fields[index] = (MessageElement) fIte.next();
index ++;
}
sObj.set_any(fields);
studentAssessmentObjects.add(sObj);

//**** END creation of student assessments
}

log.debug("CREATING CLASS MEMBERS NOW...");
saveResultClassMember = mgr.createEntities(classMemberObjects);
int saveCounter = 0;
for(int i=0; i
SaveResult result = (SaveResult) saveResultClassMember.get(i);
if(result.isSuccess() == true){
saveCounter++;
}
}
log.debug("CREATed "+saveCounter+" CLASS MEMBERS NOW...");


log.debug("WILL TRY TO CREATE "+studentAssessmentObjects.size()+" STUDENT ASSESSMENTS NOW...");

//Next line Throws NullPointerException
saveResultStudentAssessments = mgr.createEntities(studentAssessmentObjects);
Iterator iteSASaveResults = saveResultStudentAssessments.iterator();
int saCount =0;
while(iteSASaveResults.hasNext()){
SaveResult result = (SaveResult) iteSASaveResults.next();
if(result.isSuccess() == true){
saCount++;
}
}
log.debug("CREATED "+saCount+" STUDENT ASSESSMENTS");




Here is the chopped up exception:


132657 [http-8084-Processor22] DEBUG SforceManager - WILL TRY TO CREATE 2 STUDENT ASSESSMENTS NOW...
132657 [http-8084-Processor22] INFO SforceManager - elvis@littlekidsrock.org: Broke object[] of size 2 into 1 chunks.
283016 [http-8084-Processor22] ERROR org.apache.axis.encoding.ser.BeanSerializer - Exception:
java.lang.NullPointerException
at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:255)
at org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:1255)
... deleted for brevity
at org.apache.axis.client.Call.invoke(Call.java:1691)
at com.sforce.soap.partner.SoapBindingStub.create(SoapBindingStub.java:1325)
at com.sforce.SforceManager.createEntities(SforceManager.java:537)
at com.sforce.TPSforceManager.createClassMembers(TPSforceManager.java:138) <-- Source code above is in this Class
at com.sforce.struts.action.NewStudentSaveAction.execute(NewStudentSaveAction.java:279)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
... deleted for brevity
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
283032 [http-8084-Processor22] FATAL SforceManager - ; nested exception is:
java.io.IOException: java.lang.NullPointerException
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.io.IOException: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: java.io.IOException: java.lang.NullPointerException
at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:265)
... deleted for brevity
at com.sforce.soap.partner.SoapBindingStub.create(SoapBindingStub.java:1325)
at com.sforce.SforceManager.createEntities(SforceManager.java:537)
at com.sforce.TPSforceManager.createClassMembers(TPSforceManager.java:138)
at com.sforce.struts.action.NewStudentSaveAction.execute(NewStudentSaveAction.java:279)
... deleted for brevity
... 41 more
283110 [http-8084-Processor22] INFO SforceManager - elvis@littlekidsrock.org: Updated chunk... 1 of 1 (rate=1196.0)
283110 [http-8084-Processor22] INFO SforceManager - elvis@littlekidsrock.org: Done, results count is 0
283110 [http-8084-Processor22] DEBUG SforceManager - CREATED 0 STUDENT ASSESSMENTS


I would sure appreciate some help with this.

Thank you very much.
--
Federico Vela
Product Specialist
fvela@paysett.com
+ (57) 1 - 622 - 5352
+ (57) 1 - 622 - 5268
MSN Messenger : fvela@paysett.com
ICQ Number : 210 521 656

Message Edited by federico_vela_p on 07-11-2006 02:56 PM

Hello all,

When I log in though SOAP, the API returns a LoginResult object, that contains a passwordExpired boolean flag.

Is it possible to set this flag programmatically from the API?

Thanks.

Federico Vela
Hello, i programmed a very simple sControl that outputs the ID's of my contacts, and it works fine in IE, but not in FireFox 1.5.0.6 :(

i get the following error

Error: me.XMLHttpRequests[i].req has no properties
Source File: https://www.salesforce.com/services/lib/ajax/beta3.3/sforceclient.js?browser=true
Line: 904

I am not doing anything out of the ordinary... what is the problem???

Any thoughts anyone???

Thank you.

Federico Vela


Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script language="javascript" src="https://www.salesforce.com/services/lib/ajax/beta3.3/sforceclient.js—browser=true" type="text/javascript"></script>
<script id="clientEventHandlersJS" language="javascript">
<!--
function initPage() {
sforceClient.registerInitCallback(setup);
sforceClient.setLoginUrl("https://www.salesforce.com/services/Soap/u/7.0");
sforceClient.init("{!API_Session_ID}", "{!API_Partner_Server_URL_70}", true);
}

//Use this function as the entry point for your DHTML and JAVASCRIPT processing
function setup() {
var queryResult = sforceClient.query("select Id From Contact", layoutResults);
}

function layoutResults(queryResult) {
if (queryResult.className == "Fault") {
alert("There was an error: " + queryResult.toString());
} else {
if (queryResult.size >0){
var outputText = "";
for (var i=0; queryResult.records.length > i ; i++){
var dynaBean = queryResult.records[i];
outputText = outputText + dynaBean.get("Id") + "<br>";
}
var textNode = document.createTextNode(outputText);
document.getElementById("output").innerHTML = outputText;
} else {
var textNode = document.createTextNode("No records");
}
}
}
/****************************************************************
* Added code below to fix an issue in the browsersupport.js file. Obtained from
* http://forums.sforce.com/sforce/board/message—board.id=ajax_toolkit&message.id=389
*****************************************************************/
Sforce.Client.prototype.createWait = function() {
var w = Sforce.doc.getElementById("sfdc_waiter");
if (w != undefined) {
return w;
} else {
w = Sforce.doc.createElement("iframe");
w.style.overflow = "visible";
w.frameBorder = "no";
//w.style.backgroundColor = "transparent";
w.allowTransparency = true;
w.id = "sfdc_waiter";
w.name = "sfdc_waiter";
w.src = "javascript:false;"; // Added. SBower.
return w;
}
};
/****************************************************************
* Don't know why, but if I include browser=true, the page never stops loading.
* In the sense that the loading icon never stops spinning. Turning off
* the busybox does the trick.
*****************************************************************/
Sforce.Client.prototype.busyboxenabled = false;
//-->
</script>
</head>
<body onload="initPage()">
<div id="output"></div>
</body>
</html>

 


I am relatively new to s-controls.  I need to send an email to a number of records of a custom object using one of several templates (that contain merge fields from the custom object). The template will be determined by certain fields returned (via query or retrieve) on each record along with the email address. Can someone please point me to documents or better yet examples how that is accomplished?

Thanks in advance,
Harry
  • August 12, 2006
  • Like
  • 0
Hello,

is it now possible to access the email templates from the API???

Thank you.
Hello,

Using the "create" operation, I am getting a NullPointerException when invoking the AppExchange server.

This code was previously written by someone else and was working fine, I added some copy/paste code, changed the things i needed to be different, but I am now getting this error.

Environment:
Win 2k
NetBeans 5.5b
Axis 1.1 1544 December 9 2004
Java 1.4.2

Here is the code:

public int createClassMembers(SforceManager mgr, List contactIdList, String classId){

//For Student_Assessment__c objects
ArrayList studentAssessmentObjects = new ArrayList();
ArrayList studentAssessmentFields;
List saveResultStudentAssessments = new ArrayList();

//For Contact objects
ArrayList classMemberObjects = new ArrayList();
ArrayList mElem = new ArrayList();
List saveResultClassMember = new ArrayList();

//loop through all contacts
for(int i=0;contactIdList.size()> i; i++){

MessageElement [] fields;
String contactId = contactIdList.get(i).toString();

//create contact: this was here before and works fine
SObject sObj = new SObject();
sObj.setType(classMemberObjectName);
mElem.add(new MessageElement(new QName("Class__c"),classId));
mElem.add(new MessageElement(new QName("Contact__c"),contactId));
Iterator fIte = mElem.iterator();
fields = new MessageElement[mElem.size()];
int index = 0;
while (fIte.hasNext()){
fields[index] = (MessageElement) fIte.next();
index ++;
}
sObj.set_any(fields);
classMemberObjects.add(i,sObj);

// now create two student assessment objects for each student
sObj = new SObject();
sObj.setType(studentAssessmentObjectName);
studentAssessmentFields = new ArrayList();
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M1__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M2__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M3__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M4__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M5__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Class__c"),classId));
studentAssessmentFields.add(new MessageElement(new QName("Student__c"),contactId));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_Type__c"),saTypeMidtermName));
fIte = mElem.iterator();
fields = new MessageElement[studentAssessmentFields.size()];
index = 0;
while (fIte.hasNext()){
fields[index] = (MessageElement) fIte.next();
index ++;
}
sObj.set_any(fields);
studentAssessmentObjects.add(sObj);

sObj = new SObject();
sObj.setType(studentAssessmentObjectName);
studentAssessmentFields = new ArrayList();
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M1__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M2__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M3__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M4__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_M5__c")," "));
studentAssessmentFields.add(new MessageElement(new QName("Class__c"),classId));
studentAssessmentFields.add(new MessageElement(new QName("Student__c"),contactId));
studentAssessmentFields.add(new MessageElement(new QName("Assessment_Type__c"),saTypeFinalName));
fIte = mElem.iterator();
fields = new MessageElement[studentAssessmentFields.size()];
index = 0;
while (fIte.hasNext()){
fields[index] = (MessageElement) fIte.next();
index ++;
}
sObj.set_any(fields);
studentAssessmentObjects.add(sObj);

//**** END creation of student assessments
}

log.debug("CREATING CLASS MEMBERS NOW...");
saveResultClassMember = mgr.createEntities(classMemberObjects);
int saveCounter = 0;
for(int i=0; i
SaveResult result = (SaveResult) saveResultClassMember.get(i);
if(result.isSuccess() == true){
saveCounter++;
}
}
log.debug("CREATed "+saveCounter+" CLASS MEMBERS NOW...");


log.debug("WILL TRY TO CREATE "+studentAssessmentObjects.size()+" STUDENT ASSESSMENTS NOW...");

//Next line Throws NullPointerException
saveResultStudentAssessments = mgr.createEntities(studentAssessmentObjects);
Iterator iteSASaveResults = saveResultStudentAssessments.iterator();
int saCount =0;
while(iteSASaveResults.hasNext()){
SaveResult result = (SaveResult) iteSASaveResults.next();
if(result.isSuccess() == true){
saCount++;
}
}
log.debug("CREATED "+saCount+" STUDENT ASSESSMENTS");




Here is the chopped up exception:


132657 [http-8084-Processor22] DEBUG SforceManager - WILL TRY TO CREATE 2 STUDENT ASSESSMENTS NOW...
132657 [http-8084-Processor22] INFO SforceManager - elvis@littlekidsrock.org: Broke object[] of size 2 into 1 chunks.
283016 [http-8084-Processor22] ERROR org.apache.axis.encoding.ser.BeanSerializer - Exception:
java.lang.NullPointerException
at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:255)
at org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:1255)
... deleted for brevity
at org.apache.axis.client.Call.invoke(Call.java:1691)
at com.sforce.soap.partner.SoapBindingStub.create(SoapBindingStub.java:1325)
at com.sforce.SforceManager.createEntities(SforceManager.java:537)
at com.sforce.TPSforceManager.createClassMembers(TPSforceManager.java:138) <-- Source code above is in this Class
at com.sforce.struts.action.NewStudentSaveAction.execute(NewStudentSaveAction.java:279)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
... deleted for brevity
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
283032 [http-8084-Processor22] FATAL SforceManager - ; nested exception is:
java.io.IOException: java.lang.NullPointerException
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.io.IOException: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: java.io.IOException: java.lang.NullPointerException
at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:265)
... deleted for brevity
at com.sforce.soap.partner.SoapBindingStub.create(SoapBindingStub.java:1325)
at com.sforce.SforceManager.createEntities(SforceManager.java:537)
at com.sforce.TPSforceManager.createClassMembers(TPSforceManager.java:138)
at com.sforce.struts.action.NewStudentSaveAction.execute(NewStudentSaveAction.java:279)
... deleted for brevity
... 41 more
283110 [http-8084-Processor22] INFO SforceManager - elvis@littlekidsrock.org: Updated chunk... 1 of 1 (rate=1196.0)
283110 [http-8084-Processor22] INFO SforceManager - elvis@littlekidsrock.org: Done, results count is 0
283110 [http-8084-Processor22] DEBUG SforceManager - CREATED 0 STUDENT ASSESSMENTS


I would sure appreciate some help with this.

Thank you very much.
--
Federico Vela
Product Specialist
fvela@paysett.com
+ (57) 1 - 622 - 5352
+ (57) 1 - 622 - 5268
MSN Messenger : fvela@paysett.com
ICQ Number : 210 521 656

Message Edited by federico_vela_p on 07-11-2006 02:56 PM

Is there any way to keep IE from popping up this "Alert" when using an Scontrol?



I tried putting the Scontrol in a popup window with no content around it at all... and still I received this alert...
When I click "No" it still works, however it is quite annoying and no matter how much I try to explain it, my customers especially my financial sector customers are very nervous.

-=Bryan

Update
I found out the line that's causing the alert to show up.
It's the sforceClient.init(...)
Also interesting is the order in which the coded alerts show up in.. their display order is denoted by the number at the beginning.

Code:
function initPage() {
  //Initialize the connection to salesforce.com by setting the sessionid and the
  //soap endpoint in the init call
  alert("1 initPage::before sforceClient.setLoginUrl"); 
  sforceClient.setLoginUrl("https://www.salesforce.com/services/Soap/u/7.0");
  alert("2 initPage::before sforceClient.registerInitCallback");
  sforceClient.registerInitCallback(startUp);
  alert("3 initPage::before sforceClient.init");
  sforceClient.init("{!API_Session_ID}", "{!API_Partner_Server_URL_70}", false); //this line throws the security alert
  alert("5 initPage::after sforceClient.init");
}

//=======

function startUp() {
  alert("4 startUp");
}

 

Message Edited by BJames on 05-03-200611:03 AM