on 08-04-2016 9:40 AM
Hi All,
Our customer wants to go to SAP PI from another ESB, but he also wants to temporarily retain legacy monitoring system, where business users can see statuses of processing key-business scenarios.
In most cases the customer uses asynchronous dataflows like JMS-to-SAP or SAP-to-JMS.
My idea is to create custom-adapter module, which will get message payload and send it to legacy monitoring system. Then I plan to set this custom-module in sender adapter and twice in receiver adapter, one time before adapter module and the second time after adapter module. For example for JMS receiver communication channel it should look like:
But I am not sure if it is possible to set my custom module after adapter module in asynchronous receiver adapter, I concern that it will be unachievable and message processing finishes right after CallSapAdapter.
Could anybody prove or disprove my concern?
Any thoughts or other suggestions how to organize the proposed task welcome.
Thank you in advance.
Hi Andrei,
For async scenarios, the custom modules should be placed before the CallSapAdapter module.
https://help.sap.com/saphelp_nw73/helpdata/en/a4/f13341771b4c0de10000000a1550b0/content.htm
Why would you need two modules? I assume you want to send the payload before and after mapping right? In that case, place the modules before the CallSapAdapter on both the sender and receiver channels.
Regards,
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Mark,
First of all thanks for your reply.
Yes, I've read this link therefore my concern occurred, but I've also met somewhere that we can use custom adapter module after CallSapAdapter in sender CC.
You are right, the customer wants to get payload before and after mapping, so it will means that SAP PI received and processed a message. But he also wants to see if target system received the message from PI, therefore I intended to use the second module in receiver CC after CallSapAdapter, which will send status of transferring.
The few channels that allow the module after the standard SAP Adaptermodules are SOAP Axis and if you plan to use a Sync/Asynch bridge ( the requestresponse bean , response one way bean etc ). But as a rule of thumb Mark is correct..
You can introduce the module before the standard SAP modules in both the sender and receiver channel and thereby have the input and the output payload available to you etc..
Regards
Bhavesh
Hi Bhavesh,
Thank you for your very useful answer.
It means that my approach is not relevant for this task...
I've also considered option with AdapterMessageMonitoringVi, but it seem too complicated. And I believe it will be better to propose customer to use central PI monitoring in SolMan (Message Flow Monitoring) at once.
BTW I assume that we can use PI+BPM to achive customer needs (though it is not the best choice) if he reject SolMan and stay on legacy monitoring.
What are your thoughts about it?
It means that my approach is not relevant for this task...
Sorry, can you explain this further? You can always use the module in both your sender and receiver channels. If you do not have a receiver channel, you can also use a custom mapping in your Operation Mapping ( Java Mapping ) and persist the data in your File system level. Again SAP also provides a java class / mapping for this on the PI B2B Add On. In summary, this is definitely possible with the approach you are taking, just be cautious! Is there something we are missing? Would you like to use the module to make a direct HTTP kind of call from the Module to the 3rd Party Application rather than persist the payload in the File system?
I've also considered option with AdapterMessageMonitoringVi, but it seem too complicated
Definitely is. This makes sense if you are looking to build dashoards and custom business specific UI's etc. Have seen a customer do this to give the power back to Business but this would be a custom approach for any customer depending on what their need is.
And I believe it will be better to propose customer to use central PI monitoring in SolMan (Message Flow Monitoring) at once
If we are looking at pure technical monitoring yes. But if we are looking at Business Monitoring and the customer is used to a custom framework I would ask them, hey what does it do and see if it can be attained in PI. I have seen custom frameworks where even the resubmission is triggered by Business from their own UI for a failed PI message including editing payload etc. I am not a fan of this but at times Business gets what they want ( my design thinking boss would say - Business should always get what they want ).
Can you let us know what the custom application does so we can look at a interim solution. What you are thinking of already seems achievable but am curious!
Regards
Bhavesh
For now the customer uses Kibana tool, where responsible key-business user can see what happened with a specific order by ID (e.g. was sent from one system, transformed and got by another system). Through this he can understand where the fail was occurred and go to the relevant person from distributed support team to fix it.
So my approach with custom modules is not quite relevant, because we won't be able to send confirmation that the message was received by target system or not.
Of cause I will mention about AdapterMessageMonitoringVi, but it will need many efforts to build really powerful tool.
As for Message Flow Monitoring in SolMan, I assume that it will allow to achieve all customer's needs that they already have for now. please see links:
Message Flow Monitoring - SAP Solution Manager - SAP Library
And at the end, I consider PI+BPM option as a fallback.
How about using the AdapterMonitoringVi Webservice to retrieve the payload from your message and then publish it to the custom application as required? This Webservice might not be realtime push but a job etc can be scheduled to pick messages etc. A little more complicated than your approach though but avoids a Custom Module.
Having said the same, another Alternate if you have the PI B2B Add On from SAP could be the pre-delivered ArchiverModuleBean from SAP for this. This can archive the payload to the filesystem and then a custom interface / process can pick this up. Basically you may even avoid a custom module if you have the B2B Add On!
Regards
Bhavesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Building on to what Bhavesh has said here, refer to this blog:
If you know which interfaces users want to monitor using the custom tool, you can define user defined search criteria for them and then use that as a basis to get the status of processed messages.
Let us break it down into steps:
1) You can create a custom EJB, that can be scheduled using Java scheduler every day to initiate a BPM.
2) You can then build a generic BPM that will first read all the types of messages that have user defined search configured and then call sub-process to get the status of each message using the approached described in the blog above.
3) Once you have all the responses collected, you can send them back to Kibana tool.
4) A parallel branch to this processing will have a timer event to finish the process at midnight next day.
5) Till the timer is reached, BPM keeps going in loop every 5 mins to see if there are any new messages.
To get the last time message was read, you can store that in a value-mapping table. For each call, stored value becomes the start time and end time would be current time. You will then need to modify the stored value every time you process.
Regards,
Sanjeev.
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.