cancel
Showing results for 
Search instead for 
Did you mean: 

Rest Adapter

Former Member
0 Kudos

Hi Friends,

We have a requirement like get the employee information from third system and update in SAP and sending response back to third party system.

like  below..

Third-party <->PO<->SAP

Here user providing data in JSON format, They asked me to provide the API. I am new to REST adapter. Could you please help on how to make the API/URL through rest sender adapter.

Thanks

Ravi

Accepted Solutions (1)

Accepted Solutions (1)

Muniyappan
Active Contributor
0 Kudos

if you are receiving empty response, then it should be status 200. not sure if are facing same issue experienced by venu.

can you try this?

1. Take the input payload from "Data from MS" step.

2. Test the message mapping manually.

3. Take the mapping output and test the proxy by going into ECC tcode "SPROXY". check if that is returning anything

Former Member
0 Kudos

Hi Muni,

Thanks for your help. As per your suggestion I have tested it and I am facing issue in mapping, I am receiving empty values in result. I am attaching mapping screen shot.

<?xml version="1.0" encoding="UTF-8"?>

<ns1:MT_TalentOjo_OfferData_Sender xmlns:ns1="http://KpitTechnologies.com/TalentOJO_SAP_OFFERUpload.com">

   <requisition_number>456789</requisition_number>

   <candidate_id>123</candidate_id>

   <form_of_address>Mr.</form_of_address>

   <first_name>Pratik</first_name>

   <middle_name>D</middle_name>

   <last_name>Kalathiya</last_name>

   <gender>Mr.</gender>

   <country>India</country>

   <birth_date>05.10.1992</birth_date>

   <city>Pune</city>

   <postal_code>364710</postal_code>

   <email>pratik.kalathiya@gmail.com</email>

   <experience_level_from>2 yrs</experience_level_from>

   <experience_level_to>4 yrs</experience_level_to>

   <skills>Technologies</skills>

   <application_source_type>Direct</application_source_type>

   <application_source>Direct</application_source>

   <employee_code/>

   <agency/>

   <recruiter_code>209877</recruiter_code>

</ns1:MT_TalentOjo_OfferData_Sender>

I have defined 'Offerdata' is Header in Data type, In sender Json payload 'Offerdata' is not coming. I am getting only fields data.

{

"requisition_number": "456789",

"candidate_id": 123,

"form_of_address": "Mr.",

"first_name": "Pr",

"middle_name": "D",

"last_name": "K",

"gender": "Mr.",

"country": "India",

"birth_date": "05.10.1992",

"city": "Pune",

"postal_code": "364710",

"email": "p@gmail.com",

"experience_level_from": "2 yrs",

"experience_level_to": "4 yrs",

"skills": "Technologies",

"application_source_type": "Direct",

"application_source": "Direct",

"employee_code": "",

"agency": "",

"recruiter_code": "209877"

}

Please suggest on this.

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

you have to change sender payload in rest tool.

single

{

"Offerdata": {

  "requisition_number": "456789",

  "candidate_id": 123,

  "form_of_address": "Mr.",

  "first_name": "Pr",

  "middle_name": "D",

  "last_name": "K",

  "gender": "Mr.",

  "country": "India",

  "birth_date": "05.10.1992",

  "city": "Pune",

  "postal_code": "364710",

  "email": "p@gmail.com",

  "experience_level_from": "2 yrs",

  "experience_level_to": "4 yrs",

  "skills": "Technologies",

  "application_source_type": "Direct",

  "application_source": "Direct",

  "employee_code": "",

  "agency": "",

  "recruiter_code": "209877"

}

}

multiple

{

"Offerdata": [{

  "requisition_number": "456789",

  "candidate_id": 123,

  "form_of_address": "Mr.",

  "first_name": "Pr",

  "middle_name": "D",

  "last_name": "K",

  "gender": "Mr.",

  "country": "India",

  "birth_date": "05.10.1992",

  "city": "Pune",

  "postal_code": "364710",

  "email": "p@gmail.com",

  "experience_level_from": "2 yrs",

  "experience_level_to": "4 yrs",

  "skills": "Technologies",

  "application_source_type": "Direct",

  "application_source": "Direct",

  "employee_code": "",

  "agency": "",

  "recruiter_code": "209877"

}, {

  "requisition_number": "456789",

  "candidate_id": 123,

  "form_of_address": "Mr.",

  "first_name": "Pr",

  "middle_name": "D",

  "last_name": "K",

  "gender": "Mr.",

  "country": "India",

  "birth_date": "05.10.1992",

  "city": "Pune",

  "postal_code": "364710",

  "email": "p@gmail.com",

  "experience_level_from": "2 yrs",

  "experience_level_to": "4 yrs",

  "skills": "Technologies",

  "application_source_type": "Direct",

  "application_source": "Direct",

  "employee_code": "",

  "agency": "",

  "recruiter_code": "209877"

}]

}

Former Member
0 Kudos

Hi Muni,

Thanks for your support. As you suggested, I have tested same from MS in mapping ,it's showing in Red color and not giving any result. It giving as empty result .But I have tested with Test data in mapping it's working fine and result is coming in SAP message, when we pasted the data from MS it's giving error. Please help me out. I am attaching screen shots.

Testing  in mapping with Sample data:

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

can you please change "Offerdata" to "OfferData" in rest client?


working one has "D" and error one has "d".. please check..

Former Member
0 Kudos

Hi Muni,

Thanks for your help. Sorry for the delay, I have tested it, it's working fine for one time, when we sending second time it's giving below error.  I am attaching error screen shots. Please help on this issue.

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

i would request you to create separate thread for this issue.

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi All,

I have followed same steps, however I am getting the following error. Could any one help on this.

com.sap.aii.af.lib.mp.module.ModuleException: senderChannel '9742e0dbfa993b7096fd483d14bbaf75': Catching exception calling messaging system"

Request your assistance.

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

can you share you sender adapter module configuration? seems something wrong with module hence module exception is thrown

Former Member
0 Kudos

Hi Muni,

I am attaching the details of my scenario, Rest sender adapter configuration and error details.

Please help on this.

Muniyappan
Active Contributor
0 Kudos

ok. now it is different error.

can you change your element name to message type name? you have given offerdata in the channel. this is wrong. change it to message type name. ie. MT_TalentOjo_OfferData_Sender

you can copy the message type name and paste it there.

Former Member
0 Kudos

Hi Muni,

Thanks Muni.Now I am receiving below error. Please help on this.

html><head><title>Error</title></head> <body><h1>Error</h1><pre> Error while sending message to module processor: senderChannel '9742e0dbfa993b7096fd483d14bbaf75': Catching exception calling messaging system: com.sap.aii.af.sdk.xi.srt.BubbleException: System Error Received. HTTP Status Code = 200: However System Error received in payload ErrorCode = INTERFACE_REGISTRATION_ERROR ErrorCategory = XIProxy Parameter1 = ifmmessif Parameter2 = SIIS_SAP_TALENTOJO_OfferData Parameter3 = http://xxxx/TalentOJO_SAP_OFFERUpload.com Parameter4 = Additional text = ErrorStack = No implementing class registered for the interface (ABAP interface, request message SIIS_SAP_TALENTOJO_OfferData, request message, namespace http://xxx/TalentOJO_SAP_OFFERUpload.com) [http://sap.com/xi/XI/Message/30^Error "INTERFACE_REGISTRATION_ERROR"] </pre></body></html>

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

Are you just checking the result from rest client?

now error tells that it has reached ECC successfully, but failed because proxy is not generated in ECC . Ask the abaper to generate and complete the proxy method implementation in ECC

PI part is good now.

Former Member
0 Kudos

Hi Muni,

Thanks for your help. I have cross checked in rest adapter payload, i am unable find data in that.Please check below message.

Content-ID:<soap-6cdfa4bf06ee11e6bb0100000023f0fa@sap.com>

Content-Type:text/xml; charset=utf-8; name="soap-6cdfa4bf06ee11e6bb0100000023f0fa@sap.com.xml"

Content-Disposition:attachment;filename="soap-6cdfa4bf06ee11e6bb0100000023f0fa@sap.com.xml"

Content-Description:SOAP

<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Header><sap:Main xmlns:sap='http://sap.com/xi/XI/Message/30' versionMajor='3' versionMinor='1' SOAP:mustUnderstand='1'><sap:MessageClass>ApplicationMessage</sap:MessageClass><sap:ProcessingMode>synchronous</sap:ProcessingMode><sap:MessageId>6cdd2d0c-06ee-11e6-ba86-00000023f0fa</sap:MessageId><sap:TimeSent>2016-04-20T11:52:57Z</sap:TimeSent><sap:Sender><sap:Party agency='http://sap.com/xi/XI' scheme='XIParty'></sap:Party><sap:Service>BS_TALENTOJO_Sender</sap:Service></sap:Sender><sap:Receiver><sap:Party agency='http://sap.com/xi/XI' scheme='XIParty'></sap:Party><sap:Service>BS_D11_SAP</sap:Service></sap:Receiver><sap:Interface namespace='http://xxx/TalentOJO_SAP_OFFERUpload.com'>SIIS_SAP_TALENTOJO_OfferData</sap:Interface></sap:Main><sap:DynamicConfiguration xmlns:sap='http://sap.com/xi/XI/Message/30' SOAP:mustUnderstand='1'><sap:Record namespace='http://sap.com/xi/XI/System/REST' name='operation'>POST</sap:Record><sap:Record namespace='http://sap.com/xi/XI/Message/30/routing' name='InterfaceDeterminationHash'>eb8a8ec00b1a65f81498bf184fd01af3</sap:Record><sap:Record namespace='http://sap.com/xi/XI/System/REST' name='path'>/</sap:Record><sap:Record namespace='http://sap.com/xi/XI/Message/30/general' name='senderAgreementGUID'>67550af298323437ad1286e20f7e2dd5</sap:Record></sap:DynamicConfiguration><sap:ReliableMessaging xmlns:sap='http://sap.com/xi/XI/Message/30' SOAP:mustUnderstand='1'><sap:QualityOfService>BestEffort</sap:QualityOfService></sap:ReliableMessaging><sap:System xmlns:sap='http://sap.com/xi/XI/Message/30' SOAP:mustUnderstand='1'><sap:Record namespace='http://sap.com/xi/XI/Message/30/general' name='syncTimeout'>1200000</sap:Record></sap:System><sap:HopList xmlns:sap='http://sap.com/xi/XI/Message/30' SOAP:mustUnderstand='1'><sap:Hop timeStamp='2016-04-20T11:52:57Z' wasRead='false'><sap:Engine type='AE'>af.d32.hjpunsap33</sap:Engine><sap:Adapter namespace='http://sap.com/xi/XI/System'>XIRA</sap:Adapter><sap:MessageId>6cdd2d0c-06ee-11e6-ba86-00000023f0fa</sap:MessageId></sap:Hop></sap:HopList></SOAP:Header><SOAP:Body><sap:Manifest xmlns:sap='http://sap.com/xi/XI/Message/30' xmlns:xlink='http://www.w3.org/1999/xlink'><sap:Payload xlink:type='simple' xlink:href='cid:payload-6cdfa4be06ee11e696f800000023f0fa@sap.com'><sap:Name>MainDocument</sap:Name><sap:Type>Application</sap:Type></sap:Payload></sap:Manifest></SOAP:Body></SOAP:Envelope>Content-ID:<payload-6cdfa4be06ee11e696f800000023f0fa@sap.com>

Content-Type:application/xml; name="MainDocument.xml"

Content-Disposition:attachment;filename="MainDocument.xml"

Content-Description:MainDocument

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_SAP_OfferData_Reciever xmlns:ns0="http://xxx/TalentOJO_SAP_OFFERUpload.com"></ns0:MT_SAP_OfferData_Reciever>

Kindly help me out.

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

in the sender channel you can enable the json to xml conversion to be viewed in monitoring. please check after enabling.

also enable logging and check what you are getting before mapping?

can you check in monitoring what you are getting the request before mapping?

take that input paylaod and test it from message mapping.

Former Member
0 Kudos

Hi Muni,

Thanks for your help.I have cross checked in Payload, I  am receiving payload from rest client, but that payload was not mapped to SAP system to process. Hence I am receiving  empty response. I am attaching all the details with screen shots, please help me on this.

Sender Json Payload:

{

"requisition_number": "456789",

"candidate_id": 123,

"form_of_address": "Mr.",

"first_name": "Pr",

"middle_name": "D",

"last_name": "K",

"gender": "Mr.",

"country": "India",

"birth_date": "05.10.1992",

"city": "Pune",

"postal_code": "364710",

"email": "p@gmail.com",

"experience_level_from": "2 yrs",

"experience_level_to": "4 yrs",

"skills": "Technologies",

"application_source_type": "Direct",

"application_source": "Direct",

"employee_code": "",

"agency": "",

"recruiter_code": "209877"

}

Data in MS:

<ns1:MT_TalentOjo_OfferData_Sender xmlns:ns1=

"http://XXX/XXX_SAP_OFFERUpload.com">

<requisition_number>456789</requisition_number>

<candidate_id>123</candidate_id>

<form_of_address>Mr.</form_of_address>

<first_name>Pratik</first_name>

<middle_name>D</middle_name>

<last_name>Kalathiya</last_name>

<gender>Mr.</gender>

<country>India</country>

<birth_date>05.10.1992</birth_date>

<city>Pune</city>

<postal_code>364710</postal_code>

<email>p@gmail.com</email>

<experience_level_from>2 yrs</experience_level_from>

<experience_level_to>4 rs</experience_level_to>

<skills>Technologies</skills>

<application_source_type>Direct</application_source_type>

<application_source>Direct</application_source>

<employee_code></employee_code>

<agency></agency>

<recruiter_code>209877</recruiter_code>

</ns1:MT_TalentOjo_OfferData_Sender>

Data in AM:

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_SAP_OfferData_Reciever xmlns:ns0="http://XXX/TalentOJO_SAP_OFFERUpload.com"></ns0:MT_SAP_OfferData_Reciever>

Due to this reason data was not processing in SAP. Kindly help me if I make any mistake in design.

Former Member
0 Kudos

Hi,

Follow the below post, I have faced the same issue & rectified using SAP Note - 2258139.

Regards,

Venu

Former Member
0 Kudos

Hi Venu,

I tried this note, still I am facing same issue. I am not receiving Header information in message from rest client, Is this issue?.Could you please help on this. I have already given all the screen shots. If you need any information. Please let me know.

Thanks

Ravi

Muniyappan
Active Contributor
0 Kudos

refer this