You need to sign in to do that
Don't have an account?
pankaj_kadam1.3905395707976055E12
While I am trying to Update Salesforce object with Java code. I got error?
[InvalidSObjectFault [ApiQueryFault [ApiFault exceptionCode='INVALID_TYPE'
exceptionMessage='Must send a concrete entity type.'
]
row='-1'
column='-1'
]
]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:628)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:505)
at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:228)
at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:202)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:148)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:110)
at com.sforce.soap.enterprise.EnterpriseConnection.update(EnterpriseConnection.java:938)
at com.agc.AGCMiddleware.getExchangeRate(AGCMiddleware.java:1100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139)
at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:273)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
My Code :
System.out.println("Update the DatedConversionRate In Salesforce...");
DatedConversionRate[] records = new DatedConversionRate[100];
//SObject[] records = new SObject[100];
try {
QueryResult queryResults = connection.query("SELECT Id,ConversionRate,IsoCode,StartDate FROM DatedConversionRate");
System.out.println("Number Of Records : "+queryResults.getRecords().length);
if (queryResults.getSize() > 0) {
for (int i=0;i<queryResults.getRecords().length;i++)
{
DatedConversionRate a = (DatedConversionRate)queryResults.getRecords()[i];
System.out.println("Updating Id: " + a.getId() + " - IsoCode: "+a.getIsoCode());
//a.setConversionRate(65.00);
System.out.println("I : "+i);
records[i] = new DatedConversionRate();
//records[i].setConversionRate(a.getConversionRate());
records[i].setConversionRate(65.22);
records[i].setId(a.getId());
SaveResult[] saveResults = connection.update(records);
System.out.println("Record updated");
}
}
} catch (Exception e) {
e.printStackTrace();
}
exceptionMessage='Must send a concrete entity type.'
]
row='-1'
column='-1'
]
]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:628)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:505)
at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:228)
at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:202)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:148)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:110)
at com.sforce.soap.enterprise.EnterpriseConnection.update(EnterpriseConnection.java:938)
at com.agc.AGCMiddleware.getExchangeRate(AGCMiddleware.java:1100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139)
at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:273)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
My Code :
System.out.println("Update the DatedConversionRate In Salesforce...");
DatedConversionRate[] records = new DatedConversionRate[100];
//SObject[] records = new SObject[100];
try {
QueryResult queryResults = connection.query("SELECT Id,ConversionRate,IsoCode,StartDate FROM DatedConversionRate");
System.out.println("Number Of Records : "+queryResults.getRecords().length);
if (queryResults.getSize() > 0) {
for (int i=0;i<queryResults.getRecords().length;i++)
{
DatedConversionRate a = (DatedConversionRate)queryResults.getRecords()[i];
System.out.println("Updating Id: " + a.getId() + " - IsoCode: "+a.getIsoCode());
//a.setConversionRate(65.00);
System.out.println("I : "+i);
records[i] = new DatedConversionRate();
//records[i].setConversionRate(a.getConversionRate());
records[i].setConversionRate(65.22);
records[i].setId(a.getId());
SaveResult[] saveResults = connection.update(records);
System.out.println("Record updated");
}
}
} catch (Exception e) {
e.printStackTrace();
}
Please refer to the links below that will give you more clear explanation on why this error occurs and will help you to get the error resolved at your end:
1.http://stackoverflow.com/questions/10326862/salesforce-api-error-on-update-invalid-type-must-send-a-concrete-entity
2.https://github.com/halorgium/dm-salesforce/issues/1
3.https://developer.salesforce.com/forums?id=906F00000008jCwIAI
Hope this helps.