cancel
Showing results for 
Search instead for 
Did you mean: 

Help required on Interface deisgn

former_member200386
Active Participant
0 Kudos

Dear experts,

Currently i am working on RFC- HTTP_AAE Sync scenario. The busniess requirement of this interface is  we pass the EMP id from RFC to Web application system using HTTP_AAE adapter then Target application will provide the employee details.

My challenge part of this design is even though we requested one employee details , Target application will provide all employee details in the response. I need to filter my requested Emp details at Message mapping . Please advise

Thanks,

Pavan T

Accepted Solutions (1)

Accepted Solutions (1)

pvishnuvardan_reddy
Active Contributor
0 Kudos

Hi Pavan,

I think GetPayloadvalue bean, removepayload value bean, putpayload value bean could help you in this regard.

For this, in the http_aae channel, before sending the request message to server, use GetpayloadValue bean such that you will store the required emp number at the adapter level.

And after the standard module present in the http_aae channel, use putpayloadvalue bean to put the stored emp number in the above step in the response structure. Make sure you edit the response message structure such that you deliberately add a variable to hold the value of the requested emp number. This doesn't affect the interface funtionality as the http server sends the message and at PI level you are deliberately adding the requested emp number at the adapter level to achieve the interface functionality.

And in the mapping level, you can put certain conditions to filter out the details of the requested emp number from the ample details sent out by the server and according do the transformation.

Refer the below links for getpayloadvalue & putpayload value bean:

Adding GetPayloadValueBean in the Module Processor -  Adding Modules to the Module Processor - SAP L...

Let me know if you struck anywhere.

pvishnuvardan_reddy
Active Contributor
0 Kudos

Hi Pavan,

Did you try the above logic.

Can you post the solution if your issue has been resolved..

Answers (3)

Answers (3)

former_member200386
Active Participant
0 Kudos

Dear Experts,

I am passinf all the data to target application. We are filtering the required data at target side. Hence closing this thread

apu_das2
Active Contributor
0 Kudos

Hi Pavan,

I don't think you can do the filtering using normal scenario. But you can check and use the following tricks if it works for you -

Make sure that when you get the response regarding all employee detail from target side you are getting the employee details what was sent through request parameter first and then the rest of the employee detail what you have not requested.

If this thing is ensured then You can make the root node of the RFC response parameter occurrence 0.1 , so it will always take the first record and your work will be done.

Thanks and Regards,

Apu Das

former_member200386
Active Participant
0 Kudos

Hi Apu Das,

Thanks for the response. I am not so sure whether target application will send the emp details which requested. If it's not sending then setting RFC response parameter occurrence to 0.1 will won't work.

My target application will work such a manner like no matter which Emp ID details you requested for, It will give all the employee details it has. In PI response mapping stage you need filter the response based on your input request.

Thanks,

Pavan T

Former Member
0 Kudos

Hello Pavan ,

Can you handle the logic at ECC level only?

Send all the data from PI to ECC and then ECC can handle and filter that data based on the original request that was sent. It will be much easier to handle logic at ABAP side.

Thanks.

vinaymittal
Contributor
0 Kudos

Its unreasonable on the target application part to send details of all employees than you can go for the HTTP_AAE -->RFC asynch scenario RFC can itself filter the records.

As for your current scenario the problem is that we can never know which employee_id RFC asked for once the request mapping is over

when the target application(HTTP_AAE) sends the response back then in the response mapping i hope it will be something like

Record      0 to unbounded

  EMP_ID  1-1

etc

there it self you need to poppulate only that record which has the EMP_ID which RFC asked for to get the EMP_ID from ecc/RFC you can use a RFC lookup

but again it doesn't make sense to overload the channels in PI with the huge amount of data for all the employees so if target is adamant on sending all the details than it has to be filtered in PI to avoid overloading of the RFC channel too

former_member200386
Active Participant
0 Kudos

Hi Vinay,

Thanks for the quick response, I can't change the scenario  to HTTP_AAE ----> RFC Because of technical limitations. HTTP_AAE (Web application ) don't have the functionality to trigger the data on his own, It's is kind of portal it contains all the details, If you need some details you need to initiate the call the and get the response.

I need to filter the requested emp details at response mapping level.

Thanks,

Pavan T,

former_member200386
Active Participant
0 Kudos

Hi Vinay,

Thanks for the quick response, I can't change the scenario  to HTTP_AAE ----> RFC Because of technical limitations. HTTP_AAE (Web application ) don't have the functionality to trigger the data on his own, It's is kind of portal it contains all the details, If you need some details you need to initiate the call the and get the response.

I need to filter the requested emp details at response mapping level.

Thanks,

Pavan T,

vinaymittal
Contributor
0 Kudos

you can use a RFC lookup then to get the EMP_ID from ECC based on which you can filter the response mapping

else check this

vinaymittal
Contributor
0 Kudos

For filtering use createIf and check if the emp_id in the records coming from response equals to the employee_id sent from RFC in request

it will automatically SUPPRESS the unwanted records