In this article I will talk about the RosettaNet integration in logic app by going through all actions offered by logic App.
please read the official documentation first and also you may refer the RosettaNet spec http://xml.coverpages.org/RNIF-Spec020000.pdf for more details.
Host ( Initiator) and Guest (Responder) Sequence Diagram
The artifacts in this article are divided into two groups based on the Role :
For the Host (Initiator) side I have three logic apps running on Host integration account (the shared template is combining all of the logic app in one )
- Initiator - Sender
- Initiator - Receiver
- Acknowledgment processor
- Response processor
For Guest (Responder) I have one logic app running on Guest integration account
- Responder
- Message receiver and Ack and response then wait for host to Ack
Host Initiator - Sender
The initiator flow is described below
Steps description for the Initiator
1 |
Initialize varaiable that has the unique message ID(PIP instant identifier ) Here i am using the current time ticks function |
2 |
The encode action , I am picking the Host and the Gust based on the configured agreement The message type is action (which mean that it is not a response to anything ) |
3 |
The URL of the partner http endpoint can be obtained from the agreement |
4 |
The Host will wait for the (Ack and response ) form the Sender to be processed |
4.1 |
process the responser ack |
4.2 |
process the responser response and send ack to the responser |
5 |
the wait action will be complated |
Initiator Receiver: Message receiver and Ack and response
Steps description for the Responder
1 |
Decode the incoming message that received from the Host Once the message received the message can be sent to backend system or store on Blob etc. note that all the decode action in the responder side needs to be responder
|
2 |
The receiver will generate an acknowledgment message |
3 |
Send the Ack message by getting the http endpoint from the agreement |
4 |
The receiver will encode a response message Note that the message type is Response, and the Role is Responder |
5 |
Send the Response message by getting the http endpoint from the agreement |
6 |
Send the response to the http request |
7 |
start waiting for acknowledgment for the Response |
Using Azure resource explorer
You may need to log to Azure resource explorer Resource Explorer (azure.com) to track the Session
It is extremely useful to see if the message get acked or response
As in the below picture and based on the lines 8 and 9 this message is not Acked and did not received any response
To check the session information, you can go to the below URL
How to use the solution
Click on the button below to deploy the Logic app to your subscription
Sample logic app templates in GitHub
Deploy to Azure: