cancel
Showing results for 
Search instead for 
Did you mean: 

Pass field value from Request to Response Mapping, without BPM in PI 7.11

nabendu_sen
Active Contributor
0 Kudos

Hi Experts,

I have a requirement to pass (store & retrieve) the value of a Field from Request Mapping to Response Mapping. I am not using any ccBPM and Client doesn't want that approach. My version of PI is 7.1 EHP 1 SPS 11.

Can I use the below Blog solution by   without BPM?:

I would not be able to use the blog by

and by as they are only available with 7.3.

Please let me know if you think there is any other way to avoid BPM and implement this requirement in PI 7.11

Regards,

Nabendu.

Accepted Solutions (1)

Accepted Solutions (1)

former_member181985
Active Contributor
0 Kudos

Hi Nabendu,

Since your PI version is 7.1 EHP 1 SPS 11, may be you can also consider this custom module solution blog by Roger Allue: which is equivalent to PI7.31 ehp1 feature new modules

Best Regards,

Praveen Gujjeti

nabendu_sen
Active Contributor
0 Kudos

Hi Praveen,

My first preference would be handling this requirement in Mapping. Otherwise I will go for Adapter Module.

I am still working with "DCUsage.com" as per your blog. Only concern I have this to make the namespace unique, otherwise if 2nd message comes before completion of the first, it would be messed up.

Regards,

Nabendu.

former_member181985
Active Contributor
0 Kudos

Hi Nabendu,


I am still working with "DCUsage.com" as per your blog. Only concern I have this to make the namespace unique, otherwise if 2nd message comes before completion of the first, it would be messed up.

Sorry, I am not sure if I have understood your point. I hope each synchronous message is independent (transaction) and hence having a fixed namespace for custom DC shouldn't be an issue

Best Regards,

Praveen Gujjeti

nabendu_sen
Active Contributor
0 Kudos

Hi Praveen,

Does that mean each individual Synchronous / Asynchronous message has its corresponding DCUsuage space and there could not be any conflict?

Suppose 1st Message completes its Request Flow, stored values in DCUsuage and gets stuck. Now 2nd Message comes after that and it completes Request as well as Response. If now 1st Message Response tries to retrieve value from DCUsuage, it would be the value which was set at 1st Message Request.

So there would be no conflict because 2nd Message could never access 1st Message's DCUsuage.

All messages have their own separate DCUsuage.

Am I correct?

Regards,

Nabendu.

former_member181985
Active Contributor
0 Kudos

Hi Nabendu,

Exactly, your understanding is right. In general, each message is independent (a separate transaction)

Best Regards,

Praveen Gujjeti

nabendu_sen
Active Contributor
0 Kudos

Hi Praveen,

It worked successfully and we almost in the phase of testing completion. Thanks for your help.

Regards,

Nabendu.

Answers (2)

Answers (2)

iaki_vila
Active Contributor
0 Kudos

Hi Nabendu,

You can use static variables to store the values. Check this blog

Regards.

nabendu_sen
Active Contributor
0 Kudos

Hi Inaki,

Thanks for the reply. As per my understanding, those variables would not be able to hold values from Request Mapping to Response Mapping. As soon as the Request Mapping gets completed, those would get refreshed. Variables would be helpful for Multi Level mapping as described in the Blog.

Regards,

Nabendu.

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Nabendu,

DC should work but it can only hold 200 characters, so take this into account too.

Regards,

Mark

JuanDK78
Participant
0 Kudos

you can try using Globals in a UDF, thought I am not sure this works in PI 7.1

setParameter


public String setParameter(String parameterName, String parameterValue, Container container) throws StreamTransformationException{

GlobalContainer glc = container.getGlobalContainer();

glc.setParameter(parameterName, parameterValue);

return(parameterValue);

}

getParameter


public String getParameter(String parameterName, Container container) throws StreamTransformationException{

GlobalContainer glc = container.getGlobalContainer();

String value = (String) glc.getParameter(parameterName);

return(value);

}

good luck

nabendu_sen
Active Contributor
0 Kudos

Hi Juan,

I am not sure but don't think Global Container can hold the values after Mapping is complete. As soon as Request Mapping would be completed, they will be refreshed.

Regards,

Nabendu.

nabendu_sen
Active Contributor
0 Kudos

Thanks Mark for this valuable information. I am keeping this in mind.

Regards,

Nabendu.

Former Member
0 Kudos

Hello,

Below approach will work for any sync scenario - BPM is not needed.

You have to set some custom namespace and key name in request and use the same parameters while retrieving the value from key in response 

Usage of Dynamic Configuration in Synchronous Scenarios

Thanks

Amit Srivastava

nabendu_sen
Active Contributor
0 Kudos

Hi Amit,

Thanks for the reply. Let me dig out a little bit. I will come back to you.

Regards,

Nabendu.

nabendu_sen
Active Contributor
0 Kudos

Hi Amit,

Thanks.

As always you are very helpful.

Regards,

Nabendu.