cancel
Showing results for 
Search instead for 
Did you mean: 

Message ID in Transformation

Former Member
0 Kudos

Hi,

I have a N:2 Transformation scenario in BPM

Receive IDoc -> Collect the IDoc for 2 minutes (time depenedent) -> Transformation(N:2) -> send1(file1) -> send2(file2)

we know that the BPM(transformation) does not give access to Runtime Constant. I cannot get in Transformation.

Question:

I want to get Message ID of file1 and it will input for file2.

How do i do that?

Kindly Advice,

Thanks,

Gowri

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Gowri,

you cant have message id inside BPM

regards

sreeram.g.reddy

bhavesh_kantilal
Active Contributor
0 Kudos

Gowri,

Message ID's cannot be accesed inside a BPM.

Look at this blgo on the alternatives and the reason you cannot access Message ID in the BPM,

/people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

My question is how do i get the message id from file1 to file2?

I am at a stage where in i define mapping between

file1_Abstract to MessageID_Inbound

MessageID_Outbound to File2_Inbound.

How do i define my scenario in Intergration directory?

Thanks,

Gowri

Former Member
0 Kudos

Bhavesh,

Can i define my intermediate message as Abstract and have mapping without bpm?

Thanks,

Gowri

bhavesh_kantilal
Active Contributor
0 Kudos

Gowri,

Before your message enters your BPM , you will need to have a mapping ( used in the interface determination ) and this willpopulate the Message ID.

The Sender Interface will be the OB Asynch MI and Inbound Interface will be the Abstract Message Inaterface.

You will have to change the Datatype to add the Message ID field.

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

I guess, you have not understood the question.

I don't need a parent Message ID. I need a file1 message id. Now if i want to get the result of file1 in file 2, how do i do that?

I have defined a Data type Message ID and i have a mapping between

File1_Abstract to MessageID(MI)

Now i am not sure, how do i define Message ID to File2 in Interface determination because it is not defined in BPM and it is not outbound.

Thanks,

Gowri

prabhu_s2
Active Contributor
0 Kudos

Gowri

Here u have a N:2 Transformation scenario in BPM i.e. N source message to file1 and file2. In this case u wil have an target field in file1 which can hold the message id. U need to have this messge id for file 2 also. Is this ur ur post all abt? Kindly clarify

Former Member
0 Kudos

Hi Prabhu,

You are correct. I have N:2 transformation in BPM. I have 2 send (i.e send1 for file1 and send2 for file2).

I do not need Message ID field for file1. but i need file1's MessageID to be captured in file2 for reconciliation. How do i get that?

Any idea?

Thanks,

Gowri

prabhu_s2
Active Contributor
0 Kudos

Gowri

here then u need to have a field which holds the message id. say u will have an mapping for o/b interface to abs/ interface...ie for getting the message inside bpm. try to have the message id captured at this point as insde the bpm it is not possible to have message id. then in transformation step u can have this value passed to file1 and the same to file2. as u wud do in transformation step. i believe u may want to have xi message id. if not xi message id u can have ur own message id interms of some constant+datetime stamp that is mapped to a field in file1 and this in terms can be mapped to file2 thru using lookup fucntionality.

Former Member
0 Kudos

Hi Prabhu,

Thanks for the information.

Could you please provide me some more information on how i can set the Message id and what step should i set up message id.

Thanks,

Gowri

prabhu_s2
Active Contributor
0 Kudos

for xi message id u need to have it implemented using udf.

java.util.Map map = container.getTransformationParameters();

String msgid = (String) map.get ( StreamTransformationConstants.MESSAGE_ID);

return msgid;

if u want to set a meesage id for urself for file1 and then use it in file2 use a udf which will store the id fo ex const+datetime stamp in a file/table and then in file u retireive it using lookup functionlity,

Message was edited by:

Prabhu S

Former Member
0 Kudos

Gowri,

We've decided that we want to have incomming message ID in you of the fields of your abstract interface.

We create a Simple Java function to that will map the MESSAGE_ID to one of the fields of our absrtract interface.

String constant;

java.util.Map map;

map = container.getTransformationParameters();

constant = (String) map.get(StreamTransformationConstants.MESSAGE_ID);

return constant;

thn use inteface mapping in interface selecthe mapping where you wortethe above code.

regards

sreeram.g.reddy

prabhu_s2
Active Contributor
0 Kudos

also u can refer this blog:

<a href="/people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm: How to... retrieve MESSAGE_ID from a BPM</a>

Former Member
0 Kudos

Bhavesh,

I have reached a step further in my Mapping.

I have defined a Mapping between File1_ABS and File2_IN (get Message ID)

Second Mapping is between File2_ABS and File2_IN

for Scenario : N:2 Transformation

N IDoc collected (Receive) -> Transform(2 files) -> Send1(File1_ABS)

-> Send2(File2_ABS)

I am struck at the Scenario. How do i define Receiver Agreement, Interface determination and Receiver determination?

Kindly Advice.

Thanks,

Gowri

bhavesh_kantilal
Active Contributor
0 Kudos

Gowri,

Not sure i am getting the entire requirement here.

1. Can you let us know, what the entire process is. Are you getting the messge ID inside the file in some field or do you need to access the XI Message's Message ID?

2. Can you give us more details on your BPM flow?

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

I have N(IDoc) to 2 Transformation in BPM.

I collect PAYEXT IDoc for 2 minutes and then transform it to EDI820 structure and RECON structure. So My BPM has one input and 2 outputs.

EDI820 structure is send to ftp server and RECON structure updates the XI table.

In the RECON structure, i have to capture XI message's Message ID of EDI820 structure before inserting it in Database.

I know that in BPM i cannot capture XI Message id. It can be captured only in IM.

My question: How do i define the whole process of getting the Message ID and defining it in RECON?

Thanks,

Gowri

prabhu_s2
Active Contributor
0 Kudos

<b>How do i define the whole process of getting the Message ID and defining it in RECON?</b>

as discussed did u try with UDF. u will able to get the message id

Former Member
0 Kudos

Prabhu,

I know to get the xi message id. My question is not on UDF.

My question is about the scenario. What step should i retrieve it and assign it to RECON?

Thanks,

Gowri

Former Member
0 Kudos

Hi,

see the below link and do accordingly,sure you can do it for msd id.

Regards

Chilla

bhavesh_kantilal
Active Contributor
0 Kudos

Gowri,

><i>In the RECON structure, i have to capture XI message's Message ID of EDI820 structure before inserting it in Database.</i>

This is not possbile. The message ID for EDI820 will be created only after the message leaves your BPM and so there is no way you can read the same message Id inside the BPM before sending the RECON message.

Regards

Bhavesh

Former Member
0 Kudos

Hi

Please see the below for the solution

Use UDF and maintain the another structure for only msg id - header info and use transform into that and this transformation you can do it in IP and assign to target fiedl whatever you want..

Because In IP we cannot access the Msg ID, but if it is in structure as a field then you can capture it via any way like xpath context object..

i hope it is clear..

Regards

Chilla..

points rewarded if it is helpful..

bhavesh_kantilal
Active Contributor
0 Kudos

Chilla,

When you deal with BPM's you have 2 message Id's.

1. Message Id for the message when it enters the BPM

2. Another message Id for the message going out of the BPM.

In this case, the requirement is to access the Message ID 2 inside the BPM for one of the messages. This is not possible as you cannot read the messge Id of the message that is still to go out of the BPM before the message leaves the BPM.

The UDF idea will be useful only if you need to access Message ID in Step 1.

Regards

Bhavesh

Former Member
0 Kudos

HI,

Thanks Bhavesh,but the msg ID in IP is it somting related to Conversation ID or Correlation ID??

Plz clarify if i am away..

Regards

Chilla..

bhavesh_kantilal
Active Contributor
0 Kudos

><i>but the msg ID in IP is it somting related to Conversation ID or Correlation ID??</i>

Not related to the Correlation Id for sure.

Have not worked with Conversation Id's much,but from what I know they are also not related to Conversation Id's.

Regards

Bhavesh

Former Member
0 Kudos

Hi,

Thank you for helping me. I have awarded some points.

If anybody finds any information on my above scenario, do let me know.

Thanks,

Gowri