cancel
Showing results for 
Search instead for 
Did you mean: 

B1iF IC Sincro Scenario

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

former_member219577
Participant
0 Kudos

Hello David,

Does your problem is solved?

On my side, everything is OK.

Trinidad
Product and Topic Expert
Product and Topic Expert
0 Kudos

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.

Former Member
0 Kudos

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

Trinidad
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi David,

Could you please try to add an extra atom before the SQLCall and in that atom try to get the value of the Receiver Id?

Regards,

Trinidad.

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Answers (2)

Answers (2)

Former Member
0 Kudos

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

former_member219577
Participant
0 Kudos

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.

former_member219577
Participant
0 Kudos

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!!!