The post SAP AIF Interface Monitor (/AIF/IFMON) – useful features you might have overlooked appeared first on INT4.
]]>Reading time: 4 minutes
The topic of initial setup or SAP AIF Interface Monitor (/AIF/IFMON) was covered by my colleague Mateusz Nowak in his blog. As a follow up I wanted to give a brief introduction to the SAP AIF Interface Monitor and a few of its features that are easily overlooked. Oftentimes, SAP AIF Interface Monitor feels less useful then SAP AIF Monitoring and Error (/AIF/ERR) handling tool especially when looking for a quick way to troubleshoot an interface problem. However in the long run it may be beneficiary to spend some time familiarizing yourself with SAP AIF Interface Monitor and treat it as your starting point for SAP AIF activities. It helps organize monitoring and error handling process as a whole and better manage day-to-day interface maintenance tasks among team members.
I won’t be getting into details on every element of the SAP AIF Interface Monitor, instead I will focus on certain features which usefulness can be easily overlooked.
1. Set up interface in SAP AIF Interface Monitor (/aif/ifmon)
2. /AIF/ERR ? AIF Monitoring and Error handling
3. SAP AIF – How to create Interface Variants
The post SAP AIF Interface Monitor (/AIF/IFMON) – useful features you might have overlooked appeared first on INT4.
]]>The post Speed up Int4 IFTT test case creation using Message Selector appeared first on INT4.
]]>To aid test case creation process Int4 IFTT provides Message Selector – an enhanced search help utility built into Int4 IFTT Cockpit. It facilitates the often difficult task of picking the right messages for the test cases. Directly from the Int4 IFTT cockpit, you get to search for messages on your SAP PI system including advanced selection based on message content. So how does it work?
We start in Int4 IFTT Cockpit with a template row for a new test case. We fill in Interface Type, Test Case Description (optional), and Int4 IFTT Automation Object. We now launch the Message Selector either by hitting F4 or the search help button in the Document Number field. For our example, we’ve picked up ‘PI GUID E2E Inbound’ as the Interface Type and ‘PO_DELIVERY_INB’ as Int4 IFTT Automation Object.
The Message Selector displays a new selection screen. The first field is already set to the Int4 IFTT Automation Object (‘PO_DELIVERY_INB’) based on what we’ve specified in the previous screen (otherwise it can be entered here). We can now set the rest of the selection fields according to our requirements.
Once the filters are specified we execute the search and are presented with a list of messages matching our criteria.
To further help with picking up the right message their payload can be displayed using the “Content” button.
We can select one or more messages from the list and hit the “Transfer selected” button to use them as new test cases (in the example 3 messages were selected).
This brings us back to the main Int4 IFTT Cockpit screen. Depending on how many messages we’ve selected for transfer, many new rows are added to the Test Case list in the Int4 IFTT Cockpit. The Test Case Description is assigned a sequential number to distinguish each case.
Finally, we hit the “Save” button to confirm the creation of new test cases and we are ready to start testing.
As mentioned before I’ll elaborate briefly on the message content-based search provided by the Message Selector. If the Int4 IFTT Automation Object has variables referring to message content defined, these variables can be used to narrow down search results to specific documents. The example below for ‘PO_DELIVERY_INB’ Automation Object defines ‘PO_NUMBER’ as a variable referencing Purchase Order Number for the delivery. The variable specifies a path pointing to a field in the message content where Purchase Order Number is stored.
When in the Message Selector we enter a Purchase Order Number in the ‘Purchase Order’ selection field our results will include only delivery messages referencing this particular purchase order.
1. Bank Communication Management (BCM) – Collective Payment Order Notification In (CPON) mapping
2. Int4 IFTT crawler for robotic test case creation
The post Speed up Int4 IFTT test case creation using Message Selector appeared first on INT4.
]]>The post Bank Communication Management (BCM) – Collective Payment Order Notification In (CPON) mapping appeared first on INT4.
]]>Reading time: 4 minutes
When working with Bank Communication Management (BCM) you want to efficiently handle the confirmations for your payments. It’s vital to have up to date information about the status of your payment at various steps of it’s processing as quickly as possible. And usually you’ll receive multiple status updates. Was it processed correctly? Has its delivery failed or maybe it was rejected by the bank for some other reason? That’s where the BCM payment confirmations come into play. SAP offers two ways to handle confirmations listed below – you can decide to use only one approach or a combination of the two, depending on the requirement.
a) PROS:
– No PI/PO involvement needed
– PAIN.002 (v2 & v3) format works out-of-the-box
b) CONS:
– Dedicated file system storage required
– Runs as background job
– XSLT transformation development required for non-PAIN.002 formats
a) PROS:
– No background job – quicker execution
– No dedicated storage space required
– More flexibility with mapping (e.g. from legacy formats)
b) CONS:
– PI/PO required for mapping
– No pre-delivered mapping
As you can see, both solutions have their pros and cons. The RBNK_IMPORT_PAYM_STATUS_REPORT report is potentially easier to get it running. However, it is better to put the initial effort into setting up the CollectivePaymentOrderNotification_In for quicker status updates and a more streamlined message flow based on proxy engine processing.
I present below a simple mapping that will help you quickly start off with your interface. For the PAIN.002 format you could reuse pre-delivered transformation PAIN002_V2_TO_CPON or PAIN002_V3_TO_CPON however that’s not the scope of this article.
Important elements:
– Data medium reference number
– General batch execution status
– General batch execution note
– General batch rejection reason
– Document Number of the Payment Document
– Payment item execution status code
– Payment item execution note
– Payment item rejection code
– Payment item rejection reason (text description)
– Document Number of the Payment Document
The status code and note elements are being concatenated and mapped using the table TBNK_XST_2_IST to Payment business transaction (e.g. “Accepted by Bank”).
Example message:
<n0:CollectivePaymentOrderNotification_async xmlns:n0="http://sap.com/xi/SAPGlobal20/Global"> <MessageHeader> <ID/> <CreationDateTime>2020-01-30T14:55:03</CreationDateTime> <TestDataIndicator/> <BusinessScope> <TypeCode/> <InstantID/> <ID>SAA</ID> </BusinessScope> </MessageHeader> <CollectivePaymentOrderNotification> <ID>2012768126</ID> <ExecutionStatusCode>PAIN</ExecutionStatusCode> <ExecutionStatusNote>ABCD</ExecutionStatusNote> <PaymentOrderNotification> <ID>3000039647</ID> <ExecutionStatusCode>PAIN</ExecutionStatusCode> <ExecutionStatusNote>ACCP</ExecutionStatusNote> <PaymentReference> <ID>3000039647</ID> </PaymentReference> </PaymentOrderNotification> </CollectivePaymentOrderNotification> </n0:CollectivePaymentOrderNotification_async>
Although the message structure for CollectivePaymentOrderNotification_In is pretty complex only a few elements are actually required to start using this enterprise service. Some specifics (like status mappings) will of course differ from case to case, but I hope the general approach is clear now.
1. PGP (Pretty Good Privacy) in SAP PI/PO using Secure Connectivity Add-on
The post Bank Communication Management (BCM) – Collective Payment Order Notification In (CPON) mapping appeared first on INT4.
]]>The post PGP (Pretty Good Privacy) in SAP PI/PO using Secure Connectivity Add-on appeared first on INT4.
]]>
When developing SAP PI/PO interfaces, one might come across a requirement to provide a more secure way of sending messages back and forth. Especially, when setting up communication with banks, you want to ensure files send to bank reach their destination with original content. We want to be sure nobody modified details of our payment. This requirement can be met with use of PGP (Pretty Good Privacy) software, provided with SAP PGP module and adapter modules it provides. The idea behind PGP is to encrypt the message in such a way that only the intended recipient can decrypt it’s content. This is achieved using shared keys.
In the example below, we use Secure Store feature to store encryption/decryption keys, however, SAP PI/PO file system can be used as well.
On the screenshot above we can see three keys imported into PGP Secure Store:
Now we can configure our communication channels to implement PGP security with provided adapter modules.
First, let’s set up decription for messages we receive from third party. For this purpose, we use ‘localejbs/PGPDecryption’ module in our sender communication channel:
In order to send out encrypted messages to third party, use ‘localejbs/PGPEncryption’ adapter module in our receiver channel and configure following parameters:
For more details on additional parameters and allowed values, you can visit website below: https://help.sap.com/viewer/5336c62e683348a8886ff7ef4b15c40f/1.0.5/en-US/08d47f0c5abd4f4f9d0b167ff693b1a7.html
The post PGP (Pretty Good Privacy) in SAP PI/PO using Secure Connectivity Add-on appeared first on INT4.
]]>