cancel
Showing results for 
Search instead for 
Did you mean: 

SAP PI - Audit logs to auditing system via webservice

former_member205100
Participant
0 Kudos

Hi there,

    currently we are in SAP PO single stack and my requirment is for each message I received irrespective of any interface from other system I need to log this audit information to an external auditing system via webservice,  we have got webservice url now and here we need to publish few key values from the payload.

  The key value which I'm going to pass will be same for all Interface message so I need to go for a generic approach here, can you pls suggest with a best approach to achieve this.

Regards,

Sethu.

Accepted Solutions (0)

Answers (3)

Answers (3)

former_member205100
Participant
0 Kudos

Thanks for your help , here I'm not looking for any job or something which executes at a point of time rather when ever I receive a message or even say while processing the message I need to publish few values from the payload to the external audit tool which I already have the webservice url.

since my passing parameter is going to be same across for all interface Im looking for a generice approach so that I can use it in all interface.

iaki_vila
Active Contributor
0 Kudos

Hi Setharaman,

Let me to expose what i think about your requirement. First of all, you will need a way that it doesn't affect your PI performance, with this i want to mean that you should avoid to use a module bean, any kind of lookup, to send the messages to two receivers and so on. You would need a kind of job that would be raised out of office time, may be by night. There is a useful API that let you to get the audit log from PI and data from the payload and metadata communication information.

Pay attention and read carefully these two blogs:

You can offer to the second party tool several webservices in a PI SOAP to SOAP scenarios (sync).

They can call to PI with the entries like a range of time and you map to your SOAP receiver. Your SOAP will consume the WS of AdapterMessageMonitoringVi API. You can start with the Method getMessageList to give a list of messages. Also you can develop a second SOAP to SOAP scenario to let your second party tool access with the IDs of the first service to the desired messages. Finally the the second party tool would call these WS like a job during the night.

Hope i explain correctly, i'm not so good writing in english

Regards.

former_member184720
Active Contributor
0 Kudos

Just to add - I believe doesn't recommend to use the above API's on production systems and it does impact the performance due to heavy DB traffic.

I prefer the other approach itself i..e create an additional inbound interface and check maintain order run-time which ensures that information will only be reported if the message get's processed through PI.

That second interface is reusable.

former_member205100
Participant
0 Kudos

Hi Hareesh, can you pls expalin in details about your approach for a second interface,

  how the maintain order runtime option will help in these case.

iaki_vila
Active Contributor
0 Kudos

Hi Setharaman,

I think Haresh wanted to say that you have two receivers in your scenarios, the first one with the scenario purpose and the second one to send the information to the third-party tool but i think he can explain better his idea.

Regards.

former_member193376
Active Contributor
0 Kudos

When every inbound interface executes, in addition to your normal scenario,you need to extract some values from the source payload and publish to a webservice? Please correct if understood it differently.

Regards,
Saiyog

former_member205100
Participant
0 Kudos

Hi Saiyog,

    yes your understanding is correct .

to rephrase - whenever PO system receives a message for any inbound scenario I need to log the  audit details (few unique field values) from payload to external system via webservice.

former_member193376
Active Contributor
0 Kudos

if you have to extract a few values from the inbound payload, then why dont you have another structure in your mapping for the Webservice call(multimapping), so whenever your inbound interface is executed, at the mapping level, you can map the input values to the wsdl structure for the webservice, this way you achieve both requirements, execution of your inbound inteface + sending data to your web service.


Regards,
Saiyog

former_member205100
Participant
0 Kudos

thanks for your input, let me try with this .

thanks again.