cancel
Showing results for 
Search instead for 
Did you mean: 

Pass Dynamic Logon User and Password in Receiver Communication Channel in RFC Adapter

Former Member
0 Kudos

Hi Experts,

I have one scenario (SOAP - PI - RFC ) in which i used one BAPI for Batch confirmation and that BAPI is calling from my PI system. now My scenario is working correctly but when i called a BAPI my batches are confirmed with a username which i gave in receiver communication channel but i need the actual user which is calling this BAPI.


I don't want to maintained all users which are using this interface into my PI system but they all are in my ECC system.

Kindly guide me to solve this problem.

Thank you in advance..

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Sunil,

Are you able to achieve this ?

We are also having similar requirement where we have dynamically pass on the logon user to RFC

Thanks,

ROhit

Former Member
0 Kudos

Hi Rohit,

Have you got any solution for this?

Former Member
0 Kudos

Hi Charan and Iñaki,

Thank you for your valuable responses.

@ Charan : i checked the link provided by you but it requires same users have to be maintained in both ECC and PI systems as per my understanding.
am i correct ?

Charan and Iñaki : i already applied the same logic given by you. my both structure(RFC and SOAP) have field "USER"  and tried to change the system field value with my actual data. But my BAPI Internally called few BDC to confirm batches and it initially picked user which i passed to receiver communication channel.


As i already mentioned i don't want to maintain all user in my PI system,This application will be used by so many users and my BASIS team doesn't allow me to create such number of users in PI.

Is it not possible to achieve this requirement by PI only without creating such number of users?

Please Friends help me to come out from this problem. may your suggestions helpful to me.

Regards,

Former Member
0 Kudos

Hi Sunil,

  Check the blog by Michal on Pseudo Prinicpal Propagation. It might help you in your case.

http://scn.sap.com/community/pi-and-soa-middleware/blog/2009/05/26/pixi-pseudo-principal-propagation

Please give a careful thought on this before implementing.

Regards

Charan

iaki_vila
Active Contributor
0 Kudos

Great Charan,

I didn't know this blog and this possibility, if it works it really fulfill Sunil requirement, although he will need to do a batch-input on the receiver side, not too easy, it is a good workaround.

Regards.

Former Member
0 Kudos

Hi Charan and Iñak,

This is a good solution to implement and it give me expected result as you mentioned but i have a synchronous scenario and want to send immediate response to user.

When we use BDC_OPEN_GROUP and BDC_CLOSE_GROUP, my task will be run in background and it takes to much time to response and more it to i am also calling some BDC programs to confirm batches.

My ECC team has already implemented this solution but we faced many problems and can not be fulfill the actual requirement.

Is there any way that we can change the values of channel object while it is calling.?

or is it possible to call BDC using some different user(i tried to change the values of SY_UNAME but it doesn't work here).?

iaki_vila
Active Contributor
0 Kudos

Hi Sunil,

What is the BAPI that you go to call?, may be we could found any trick to change the user directly in the standard table or with another way.

Regards,

Former Member
0 Kudos

Hi Iñaki,

I am using custom BAPI which calls transaction CO08, CO01, CO02, CO11, MSC2 to confirm batches.

Regards,

iaki_vila
Active Contributor
0 Kudos

Hi Charan,

The best way is the say suggested by

Former Member
0 Kudos

Yes Iñaki, we have different ways to achieve this requirement. However, it again depends on the number of users that are going to call the web service.

In my previous project, we had additional field for the USER in the RFC and a similar field in the Sender WSDL structure. So whenever the RFC is called, the user from the SOAP request is passed onto the RFC and the same is stored in the ABAP table. RFC user in the RFC destination is going to be the same for all the calls.

Though this might not achieve the exact requirement of Sunil, this is just a work around.

Regards

Charan

iaki_vila
Active Contributor
0 Kudos

Hi Charan,

I catch you, you used in you previous project a value-mapping to the user logon issue, i have done similar approach with other kind of channels. In my opinion the ideal solution would a dynamic configuration but it is not possible with this kind of channel.

Correct me if i'm wrong, with principal propagation he will need to define the users in PI, because mainly in the SOAP, PI check the user and later this user can used to logon the ECC. Therefore the initial problem  "I don't want to maintained all users which are using this interface into my PI" persists.

I think your suggestion is the best way to work in this cases, however sometimes a workaround can be thought, for example, changing the user name in the ABAP code (with a job

Change of System variable sy-uname during the p... | SCN) or may be to accept don't to have the exact user on ECC endpoint and to define a low set of communication users by any business hierarchy and to save in a Z table the real user that it could come like variable in the XML payload.

Regards.

Former Member
0 Kudos

Hi Sunil,

Your scenario requires Principal Propagation to be configured. Check the blog on Principal Propagation.

https://scn.sap.com/community/pi-and-soa-middleware/blog/2007/01/16/principal-propagation-in-sap-xi

Let me know if this helps.

Regards

Charan