cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping error in multiple Synchronous scenarios

udayabhaskar
Explorer
0 Kudos

Dear Gurus,

I am using PI for connecting MQ server to ECC server. The adapters being used are JMS and RFC. There are multiple synchronous scenarios (5 scenarios). MQ team has provided individual XSD's for each scenario.

I have created separate Synchronous server interface, message mapping, operation mapping, Sender and Receiver communication channel for MQ and receiver communication channel for RFC, Sender Agreement, Receiver Agreement, Receiver Determination & Interface Determination.

There are multiple JMS queue, channels and IP address provided for the MQ server connection. I am using only a single queue, channel and IP address for the connection as of now. There is a CCDT file provided by the MQ team and I need to use it for which also I need help.

The problem I have is, if I start all the communication channels and trigger a data from the MQ side, the data is being sent to any of the synchronous scenario and not the particular scenario for which it has been triggered and giving mapping error.

I am manually starting the channel for which I need to do the testing and have all the other channels stopped.

Please help me out in how exactly I can achieve this. I need to have all the communication channels started and the data needs to go to the particular interface for which it has been triggered.

Also, help me out in how I can use CCDT. I have placed the CCDT file in a location on the PI server and mentioned the same in the communication channel. However, getting the CCDT connection error.

Regards,

Uday

Accepted Solutions (0)

Answers (2)

Answers (2)

udayabhaskar
Explorer
0 Kudos

Dear Gurus,

Please help me out on this one.

Regards,

Udaya Bhaskar

turmoll
Active Contributor
0 Kudos

Have you you tried to have one outbound interface with five synchronous operations? And use only one channel?

Maybe consider also using aync to sync bridge if SAP PO "complains" about many "synchronous" operation in one "sender agreement"/ICo.

/k

udayabhaskar
Explorer
0 Kudos

Hi Jakub,

Thank you for your reply.

I have tried to create a single Synchronous Service Interface with different message mappings and operation mappings. Getting an error when creating a single operation mapping for multiple message mappings as all the scenarios are synchronous.

I will try to explain my scenario in detail

1. MQ is putting multiple message types (with different root nodes in the XML schema) on the same queue.

2. I have created multiple communication channels for each message type which contain the same parameter details (A single communication channel cannot be used as the scenarios are synchronous).

3. When the messages are put on the MQ queue, they are randomly picked by the communication channels (irrespective of the XML message type) and giving mapping error.

4. Enhanced interface determination or multi-mapping or multiple operations cannot be used as the scenarios are synchronous. JMS Async/Sync bridge is being used to deal with this issue.

5. The option (I think the only option) left to use is the JMS selector in all the communication channels created to segregate/identify the correct XML message type. Is there any particular JMS selector that needs to be used for this?

As a single RFC is used for all the scenarios and if all the XML schemas are bought into a single XML schema will there be any mapping issue or any issue in creating the sender agreement?

Regards,

Uday

turmoll
Active Contributor
0 Kudos

What about:

- outbound interface with many asynchronous operations (that should fix problem of picking up wrong message by wrong operation) and async-sync bridge ?

/k

udayabhaskar
Explorer
0 Kudos

Hi Jakub,

After the response from R/3 is sent to the MQ server, MQ will validate the data and another data for the same fields is sent to PI through the same XML schema.

So, I think asynchronous operations are not a possible option.

Regards,

Uday

turmoll
Active Contributor
0 Kudos

Uday,

Can you elaborate last sentence?

Do you have 5 different Request/Response messages for 5 synchronous outbound interfaces? Or you use 5 different  Requests and one common Response?

I understand you use only one RFC module as target interface (for all aforementioned 5 synchronous outbound interfaces)?.

/Jakub

Harish
Active Contributor
0 Kudos

hi Uday,

The best solution is to have different queues for different channel (flows). do you have any limitation to create different queues?

The other option is use the additional parameter (it should be set in MQ) so PI channel can pick the relevant message for them from the same queue.

regards,

Harish

udayabhaskar
Explorer
0 Kudos

Dear Harish,

Thank you for your quick response.

There are total 3 queues in MQ and data can be triggered from any of the queue. That is the reason we need to go for CCDT. If any queue is down then automatically PI will receive the data from another queue. It is not possible to assign a particular queue for a particular channel. All the MQ communication channels (JMS adapter communication channels) should have the same information (a particular queue or the CCDT).

What would be the parameters that need to be set in the MQ side so that I can check with the MQ team if that is a possible option from them?

Regards,

Uday