Hi Experts,
Facing one issue in response side, response has trigged from CRM to a other system.
Error is,
Transmitting the message using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error encountered while executing mapping: com.sap.aii.af.service.mapping.MappingException: Mapping failed in runtimeRuntime Exception when executing application mapping program com/sap/xi/tf/_MeterJobEnquirySRV_To_MeterJobEnquiryCRM_; Details: com.sap.aii.mappingtool.tf7.MessageMappingException; Runtime exception when processing target-field mapping /ns1:MeterJobEnquiryResponse/YT_JOB_DETAIL/item/JOB_REF_NUMBER; root message: Exception:[java.lang.ArrayIndexOutOfBoundsException: while trying to load from index 2 of an object array with length 2, loaded from a local variable at slot 17] in class com.sap.xi.tf._MeterJobEnquirySRV_To_MeterJobEnquiryCRM_ method readJob[com.sap.aii.mappingtool.tf7.rt.ResultListImpl@27a60632, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@4aadacf6, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@3f4b03f1, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@877d6de, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@1f77d674, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@389a1370, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@5f29db19, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@695e3704, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@48bb982d, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@20d213d9, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@3132e5c9, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@29cc02fc, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@3da29d18, com.sap.aii.mappingtool.tf7.rt.ResultListImpl@dde1dae, com.sap.aii.mappingtool.tf7.rt.Context@2be4bd71] | |
| |
For perticular node we have used a below mapping and udf,
![mapping.PNG]()
public void readJob(ResultList job_ref_number, ResultList pointOfDelivery, ResultList meterAccessInfo, ResultList scheduledDate, ResultList srvStatus, ResultList srvException, ResultList srvCancelled, ResultList earliestAppointmentTime, ResultList latestAppointmentTime, ResultList appointmentType, ResultList creationDate, ResultList appointmentNotes, ResultList meterReadingAgent, ResultList appointmentTimeSlot, Container container) throws StreamTransformationException{
int i=0;
String[] temp;
for(i=0;i<al.size();i++){
String data=al.get(i)+"";
temp = data.split("\t", -1);
job_ref_number.addValue(temp[0]);
job_ref_number.addContextChange();
pointOfDelivery.addValue(temp[1]);
pointOfDelivery.addContextChange();
accrording to UDF,as per "al.size()" the program will be exuquted.How works this kind of udf?From where exactly the inputs are put in UDF?
Thanks,
Arthita