cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP Server Proxy in PI ABAP Stack, is that possible???

Former Member
0 Kudos

Hello everybody,

I have a question, I need to generate an Inbound ABAP Server Proxy called from a BPM in PI, but I need that the proxy exists in PI ABAP Stack itself, I've never tried this before but I'm getting the next error:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Call Adapter

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIServer</SAP:Category>

<SAP:Code area="INTERNAL">LOOP_IN_MESSAGE_ROUTING</SAP:Code>

<SAP:P1>is.01.lrazs12</SAP:P1>

<SAP:P2>CENTRAL</SAP:P2>

<SAP:P3>XI</SAP:P3>

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>Loop in message flow found: system is.01.lrazs12, pipeline CENTRAL with inbound adapter XI already processed (see hoplist header)</SAP:Stack>

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

I think I'm messing with PI with this kind of requirement and I'm making it to be confused, have anybody tried this before?, Why I need to do this?, well actually I'm handling application and system errors and exceptions in my BPM, so what I need is that the BPM generates a new message in scheduled status when an error such an error occurs, it's not working for me to reprocess BPM's cause when an error happends I need to modify the content of the original message, so I thought to call an inbound proxy in PI with the original content then modify it, and call again an Outbound Client ABAP Proxy without the COMMIT WORK in the ABAP code lines so it would be like scheduled until I called a job to process it, I know is kind a strange scenario but beleive me it's not that I want to do it just for fun, is just the requirement, thanks in advance for your answers.

Regards,

Julio Cesar

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Julio

I dont suggest to do coding at PI for proxy.

Well it is possible to use PI for (Proxy client and server). I have done this. But if the PI client is defined as Integration server then you cant use it as Application server. You need to have different client to achieve this.

We came through a requirement where two ERP was connected to two PI and as one of the ERP was ruled out we loaded the proxy to one PI system.

To check the content you need to have RFC connection between PI and R/3 otherwise we cannot verify data from standard Tables

I didn't understand your requirement properly. But i will suggest to look for workaround instead of loading PI with BPM as well as ABAP proxy codes.

Thanks

Gaurav

Answers (2)

Answers (2)

Former Member
0 Kudos

Thanks again for your anwers Gaurav, yes it makes sense but maybe the complication is as follows, messages are synchronous, let's see an example, PI picks up a file, and in the file is a sequence of 5 transactions to be processed in an R/3, they must be executed in the order they are and they are dependant on one another(meaning respecting the order), so if for example R/3 went down after the correct execution of transaction 3, I can't continue with transaction 5 before 4 is processed, so the BPM's must stop as synchronous error, now if I'm correct synchronous messages are no possible to restart, maybe I could work arround that but it will only reprocess the erroneous message for transaction 4 and not for transaction 5, I think, correct me if I'm wrong, and here's another queestion, if I restart the BPM, it will reprocess from transaction 1, or it will reprocess erroneous synchronous call to abap proxy server for transaction 4 and continue with transaction 5? I have a doubt on that, thanks again for your attention.

Regards,

Julio Cesar

Former Member
0 Kudos

Thanks Gaurav for your answer, well I need to do this with PI cause is going to be the handling in case the application systems(like R/3, database, filesystem server, etc) are down or maybe the network failed, when this happends and the BPM is running I'm going to need to stop the BPM and make a new message in PI with status sheduled so it will start when systems are back up, now the errors can occur in a sequence of transaction calls, so I need to generate the new message only with the transactions that were not succesfully processed cause this system errors, and I can't use the reprocessing of erroneous BPM's or the reprocessing of erroneous individual messages cause the initial payload has to change extracting the succesfully processed transactions, so I can´t put this Proxy in another system cause the fail may affect it too, I'was really trying to avoid this but I don't see any other way to do this, I hope is more clear my situation, thanks again for your answers.

Regards,

JUlio Cesar

Former Member
0 Kudos

Hi Julio

I understand the situation.

Ask basis if the PI system is configured as Integration server. even you can check this but basis can confirm on this. In that case you need to have another client which can work as R/3 for you. Then you can proceed with ABAP proxies on the client.

Now coming back to what i can think of a work around. When a target system fails PI will retry and end up as System failure. This system failure can be retrieved from SXMB_MONI tables. Now if you create a ABAP report which pics all records with Status = "SYS_FAIL" and reprocess (which is a inbuilt functionality) then you can make RFC call to this report which can end up reprocessing and can give response for Success for Failure or any reprocess. This you can use in BPM.

Make sense ..

Thanks

Gaurav