-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
6Questions
-
2Replies
Exception performing Query from Partner WSDL
While trying to Query against Contact, I am getting an exception from within the Axis API. Below is the SOAP that I'm sending and receiving back.
The response looks incorrect because it is defining Contact as an Enterprise object and not giving it back as an SObject. The deserializer tries to deserialize it using the Enterprise namespace/object which breaks things.
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:SessionHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="SforceService">
<ns2:sessionId xmlns:ns2="urn:partner.soap.sforce.com">DON'T PEEK AT THIS</ns2:sessionId>
</ns1:SessionHeader>
</soapenv:Header>
<soapenv:Body>
<query xmlns="urn:partner.soap.sforce.com">
<queryString>select Id from Contact</queryString>
</query>
</soapenv:Body>
</soapenv:Envelope>
ERROR [SalesForce.com Sync, SALESFORCE_FOLDER.ID=83109, rnd=-2001560631] (Call.java:2383) - Exception:
org.xml.sax.SAXException: No deserializer for {urn:sobject.enterprise.soap.sforce.com}Contact
at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:257)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:1001)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1050)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:196)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:310)
at org.apache.axis.client.Call.invoke(Call.java:2381)
at org.apache.axis.client.Call.invoke(Call.java:2280)
at org.apache.axis.client.Call.invoke(Call.java:1741)
at com.sforce.soap.partner.SoapBindingStub.query(SoapBindingStub.java:1211)
at com.metro1.metrodex.salesforce.SFCSynchronizer.sfcGetUpdated(SFCSynchronizer.java:819)
at com.metro1.metrodex.salesforce.SFCSynchronizer.run(SFCSynchronizer.java:323)
at com.metro1.util.ThreadPool$Worker.run(ThreadPool.java:102)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<queryResponse xmlns="urn:partner.soap.sforce.com">
<result>
<done>true</done>
<queryLocator xsi:nil="true"/>
<records xsi:type="sf:Contact" xmlns:sf="urn:sobject.enterprise.soap.sforce.com">
<sf:Id>0033000000303JtAAI</sf:Id>
</records>
<records xsi:type="sf:Contact" xmlns:sf="urn:sobject.enterprise.soap.sforce.com">
<sf:Id>0033000000303JuAAI</sf:Id>
</records>
<records xsi:type="sf:Contact" xmlns:sf="urn:sobject.enterprise.soap.sforce.com">
<sf:Id>0033000000303JvAAI</sf:Id>
</records>
- Curtis Paris
- August 26, 2004
- Like
- 0
- Continue reading or reply
Caching the Login Session & Server
The LoginResult object currently gives back a Session ID (getSessionId) and a server (getServerUrl). The documentation mentions that for recurring access, you should cache the session ID and simply place that back onto the SOAP header. But, it fails to mention the Server URL.
How constant is the Server URL? Since it's possible to not be on the same server do I need to cache that as well? And how safe is it to cache?
Once I have both the Session and the Server cached, is there a call I can make, prior to doing my other work, to verify that it is correct? For example, will calling the getServerTimeStamp function validate my session?
- Curtis Paris
- May 27, 2004
- Like
- 0
- Continue reading or reply
Exception on SForce side when deleting event
I'm getting an exception when I try to delete an event on the Sforce side.
DELETE SOAP ERROR: UNKNOWN_EXCEPTION, java.sql.SQLException: ORA-20008:
ORA-06512: at "BUILD134R4A.CACCESS", line 302
ORA-06512: at "BUILD134R4A.CACCESS", line 592
ORA-06512: at "BUILD134R4A.CACCESS", line 691
ORA-06512: at "BUILD134R4A.CEVENT", line 604
ORA-06512: at line 1
The current logic in our application (which does Synchronization) is that when there is an error, to not commit the record on our side (in this case, a delete) and rollback the transaction. This way we can try to stay "in sync" with the SalesForce server.
Is this an exception that I should be expecting normally? Or is there a differnet error that will be returned in the future?
- Curtis Paris
- May 27, 2004
- Like
- 0
- Continue reading or reply
Simulating Error Conditions
Is there any way to simulate error conditions such as:
- Session invalidating itself before the normal 2 hours
- Throttling
- Random Exceptions (unexpected/uncaught Sforce system errors)
I have yet to run into any of these during development, but, once real users get ahold of the product I would like to have this tested. Our QA department has also been asking about this.
Message Edited by Curtis Paris on 05-24-2004 11:19 AM
- Curtis Paris
- May 24, 2004
- Like
- 0
- Continue reading or reply
Recurring Event's
I have completed the majority of my work on working with Event's. My last question came in the form of Recurring Event's.
It does not appear that the Event SObject has any ability to have a recurring/repeating pattern to it. IE, a Weekly Event, or Every Tuesday and Thursday Event. I just wanted to make sure that I don't have to worry about these right now.
I'm going out on a limb here, but, I'm assuming that the PUMA Connector currently fan's appointments when importing into the sForce objects. If this is the case, is there any indication (isChild?) that it was a fanned appointment?
- Curtis Paris
- May 17, 2004
- Like
- 0
- Continue reading or reply
getUpdated/getDeleted Date Ranges over 30 Days w/Apache Axis
I was experiencing an odd failure today that drove me crazy for about an hour. The error message I was getting back was not in line with the actual behavior.
I was sending a getUpdated() and getDeleted() for "Contact" that was over 30 days old. Since this is not documented that there is a limitation, I was getting back the following exception message:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.IllegalStateException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: java.lang.IllegalStateException
While I'm use to seeing the exceptions, this wasn't being returned as a normal SOAP message. Possibly a bug in Axis. But, looking at the HTTP Response, I noticed that it was coming back as an HTTP 500 Result. Is this what's causing the issue and not giving back the correct exception?
POST /services/Soap/c/3.0 HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: na1-api.salesforce.com
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 1006
25
2b4PAnqmlEHaBb3Emud3ANiadvr8JBCwJaUfVNCdGEL7jlN7963X_Y2ZjzJ5k94fWSpw2lom2G3UoQSUdfxOTPbtzKggVlhL
Contact
2002-04-01T08:00:00.000Z
2004-05-11T21:47:37.359Z
HTTP/1.0 500 Internal Server Error
Server: sfdc
Server: sfdc
Content-Type: text/xml; charset=utf-8
Date: Tue, 11 May 2004 21:47:47 GMT
soapenv:Server
INVALID_REPLICATION_DATE: startDate cannot be more than 30 days ago
INVALID_REPLICATION_DATE
startDate cannot be more than 30 days ago
- Curtis Paris
- May 11, 2004
- Like
- 0
- Continue reading or reply
Maximum size of Id array for a retrieve call
What is the maximum size for an Id array when making a retrieve call?
I found out that if you send in an array with 2207 Account Id's you get the soap error:
"EXCEEDED_ID_LIMIT_ON_RETRIEVE: retrieve id limit reached"
Cheers;
GlennW
- GlennW
- May 11, 2004
- Like
- 0
- Continue reading or reply
cannot create accounts
Newbie here again. I�ve managed to get my program to update to the DEV site, however, my production level code does not seem to update on Salesforce�s side. I do not get any errors when I run, and even get the final message I have built in saying X files written. I have generated a wsdl for our enterprise and have each of the needed fields referenced properly (I think). Any suggestions? Thanks in advance
Code:
SQL statements and login statements above this section
Try
Dim account1 As Enterprise.Assets__c
Dim account As Enterprise.Account
Dim accs(1) As Enterprise.sObject
account1 = New Enterprise.Assets__c
account = New Enterprise.Account
If accounts Is Nothing Then
account.AccountNumber = "0000000"
Else
account.AccountNumber = "000000" & (accounts.Length & 1)
End If
account1.Name = "test" 'r1("model")
account1.Type__c = "copier"
account1.Customer_Number__c = R1("CUSTOMER_NUMBER")
account1.Make__c = "sharp"
account1.Vendor__c = "ABS"
account1.Contract__c = "1ch"
account1.Model__c = "DR5020"
account1.OwnerId = "BBSJAX"
accs(0) = account1
binding.create(accs)
Catch ex As Exception
Console.WriteLine(vbCrLf & "Failed to create account, error message was: " & vbCrLf & ex.Message)
End Try
End If
Catch statements for me below here
- JJoshJL
- May 10, 2004
- Like
- 0
- Continue reading or reply