SAP FSCM or Financial Supply chain management for Credit Management is a widely used SAP Application package on an SAP implementation.
The business logic for the credit management function exists with the SAP FINBASIS core component. Interestingly the integration medium used for the above is SAP PI. SAP PI provides out of the box integration content around FSCM.
The core scenarios involved in FSCM are Creditworthiness Query and Credit Exposure updates.
The FSCM Creditworthiness calls are synchronous in nature and are triggered whenever a configured document type like Sales Order/Delivery/Invoice is changed or created.
Though the FSCM business function lays on the same box as ECC, the driver for using PI, in my opinion was to leverage SAP FSCM as a separate SAP product for clients not implementing ECC.
This PI integration can sometimes become a major pinch-point of PI and operations in general. The following are the distinct disadvantages which I observed:
- The above brings PI on a critical path for the order acceptance process. This is because if PI communications are not up, order save or create fails due to the synchronous credit queries failing.
- It also makes scheduling outage/maintenance windows for PI difficult, and unavailability of PI, might have adverse business impacts on incoming orders via various channels.
- This process also takes a major performance hit on PI. Each Synchronous message engages additional dialog resources on PI, whereby increasing CPU utilizations. In one of my implementations, the customer’s business process involved accepting over half a million orders a day. This results in as many calls to PI. Analysis showed that over 60% PI resources consumption was due to the above calls.
- This also increases the effective order creation time in ECC, due to an additional loop in PI.
Overall a PI based solution for a customer, implementing SAP adds considerable overhead.
Looking into the future - Per SAP documentation and product management briefings, there is a potential non PI solution available for SAP ECC Ehp5. It is a web service – WSRM based solution. The web service provider and the consumer are on the same physical system. In my opinion the following could be dis-advantages of the solution:
- Web Service calls would also go through the ICM. This increases the number of HTTP connections to be opened for direct ECC order creation calls.
- Along with this Web service also bring in an additional overhead, whereby impacting the order creation or change times.
Overall the WS-RM solution might also add additional overheads.
A far simpler solution in this use-case would be to eliminate PI as well as Web Services and do a direct ECC query. This can easily be achieved as the Function Modules and bAdis exists in ECC.
I did this for one of my client, who had a requirement of over .5 million orders a day. This can be achieved, by simply by-passing the call to the outbound proxies and calling the inbound proxies directly via an implicit enhancement. This can be done on the method CHECK_CREDIT of class IF_UKM_CREDIT_QUERY_R3.
The following is the advantage to this approach:
- It reduces the load on PI for Sync Calls
- It reduces the order creation times
- It makes the maintenance of PI more manageable
- It does not create any additional load on the ICM either.
I feel such a solution is far more sustainable and performant in such situations.
I am working on putting a How to Document for the same and would post it soon somewhere on SDN.