on 09-07-2011 12:13 PM
Hi Experts,
I am working in the sincronization scenario of IC´s in B1iF similar to the one existing in B1iSN. I have one central company and some subsidiaries receiving all data relevan to IC.
I need to get data from the receiver company so I have created an atom with a sqlCall. I created a local variable to get the receiver SysId in order to make the sql query to the correct company. My issue is that this variable never get filled althought the xpath is suppose to be correct. The problem, as far as I can see, is that receiver data is added to the message after the variable gets evaluated. Is this possible? is there any way of fixing it?
This is the final message, where I want to get the Id of the Receiver node:
<Receiver ObjId="single" Id="0010000107"/>
...
According to this my vble is declared as :
/vpf:Msg/vpf:Header/vpf:Receiver/@Id
But is always empty, so I cannot get the data that I need from receiver company.
Any light on this, please???
I have been looking for many options but nothing clear as I cannot get the correct destination sysid.
Thank you very much in advance.
David
Hi Damien,
Thank you very much for sharing this...
but I think I still have something missing because when I do what you say about clicking on the first node called vBIU.bfd a message appears with "undefined".
Where do I have to define this? What is this file for? never had to use it till now.
If I click in the little page icon in the vBIU.bfd node it opens this file (http://127.0.0.1:8080/B1iXcellerator/exec/dummy/com.sap.b1i.vplatform.scenarios.design/vBIU.SCL.IC.SINCRO/vBIU.bfd)
Thank you very much in advance... .we are nearly there!!!
David
Edited by: David Sepúlveda on Sep 9, 2011 2:42 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi David,
As Damien exposed by default the receiver determination is done just after the flow is finished, this way the flow is only run once.
If you need to have the receiver calculated before the flow starts running you need to click in the Main.bfd icon, just over the circle containing an "S"inside. After clicking on it the icon will switch to "R". In that case the flow will be executed once per each one of the receivers separately.
You have some documentation about it in the Integration Framework guides available from the Help top menu.
Hope it helps
Trinidad.
Hi,
I have already have done it, but still have same problem.
What I have done is an SQLCALL where I have a local variable with this value:
/vpf:Msg/vpf:Header/vpf:Receiver/@Id
but this variable remains empty, although I check the path and it contains the receiver Id.
Finally I want to make an sql call to the receiver system, and as I have more than one receiver i need to get this receiver first.
Thanks in advance,
David
Hi,
finally the problem is solved. The keys were two different threads the one from Damien and Trinidad´s solution.
I created an extra atom to get the value of the receiver sysID and then once I had this info there I could reached it from the SQL atom.
My error was trying to get it from the same atom. The vble never was populated.
In the extra atom I declared the data needed:
With that I have the cardcode of the IC I want to update in my sincro but from the receiver company, so in case the codes in sender and receiver company are different (lower/upper case cause errors in sincronization) I get the correct one.
Thank you very much Trinidad... and also thanks to Damien Jadeau that helped me with the important note about the Sender/ Receiver Mode.
Regards,
David
Hi David,
congratulations that you solved your problem.
Now I hope you can help me because I'm not yet very familiar with B1if...
Please can you tell me what type of extra atom you created? Type of 'XSL Transformation' or another type?
How I have to declare the variable to get the receiver ID?
Thanks in advance for your help.
Regards,
Marc
--------------------------
Message was edited by: Marc Boehme (eheml) Vietor (11.04.2012 08.10 CEST):
I opened a new discussion because this discussion is answered: http://scn.sap.com/thread/3158959
Yes with this is also empty because 'handover' in Receiver node and also 'counter' in ReceiverList node are also populated later...
so I do not know what to do to get data from Receiver company.
Any other ideas...??
Regards,
David
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi David,
Bastian sent me the answer.
In the step design page, you click on Processing to get the design of your flow.
On the first node called vBIU.bfd, you have a "S" which stands for Sender. It indicates the execution is made on the sender side.
If you click on it, it is transformed into a "R" which stands for Receiver. Then the flow is executed on the receiver side. Then you can have the receiver id information in the XML.
Hi David,
I have the same problem!
I tried also to do this :
/vpf:Msg/vpf:Header/vpf:ReceiverList/vpf:Receiver[./@handover='P']/@Id
and this
/vpf:Msg/vpf:Header/vpf:ReceiverList/vpf:Receiver[@handover='P']/@Id
But it returns nothing!
Does anyone know something about it?
Thank you!!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.