cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic queue name in graphical mapping UDF

che_eky
Active Contributor
0 Kudos

Hi All,

Scenario is:

Sender File Adapter EOIO -> PI Graphical Mapping produces multiple IDOCS -> Receiver IDOC Adapter

I have seen plenty of posts which have asked this question and people say it can be done BUT I have only ever seen solutions using Java code in Adapter Modules (set sequenceID from the payload value). I have never seen a solution where the receiver queue name can be set manually using a UDF in a graphical mapping.

As a test I implemented a UDF which tried to access QUEUE_ID but on compiling get the error "cannot find symbol variable QUEUE_ID". Some posts suggest that the parameter QUEUE_ID is only accessible at run time and the mapping cannot be tested stand alone, however the mapping will not activate with the syntax error in the UDF.

In my scenario it is not feasible to determine the queue name in the sender adapter, only during mapping.

Any thoughts appreciated.

Che

Accepted Solutions (0)

Answers (3)

Answers (3)

former_member190293
Active Contributor
0 Kudos

Hi Che!

That's not possible.

Regards, Evgeniy.

che_eky
Active Contributor
0 Kudos

Thanks Evgeniy.

former_member187339
Active Contributor
0 Kudos

Hi Che,

In you sender if you set the QoS as EOIO then you need to set a Queue Name (prefix).

Now if I understand your question, you wan the scenario to operate in EOIO mode but the queue name will be decided / set only during Message Mapping. This is not feasible as the name of the queue and QoS is set when the message enters Integration Engine and cannot be altered later.

The only option which I could think of is to have a separate interface, File to HTTP (or XI or SOAP), and in the receiver url set the QoS and the Queue name dynamically. This HTTP url will be invoking your actual scenario (File to IDoc).

The url will have &QueueId=<dynamically generated QueueName> at the end.


Regards

Suraj

che_eky
Active Contributor
0 Kudos

Hi Suraj,

Thanks for your thoughts on this. The separate interface sounds doable but looks like it could get messy. In the absence of any other solutions I think I will stick with the single queue for now.

Che

che_eky
Active Contributor
0 Kudos

I assume it is not possible then