Introduction
If you have reached this journey so far, then well you have got most of the basics covered. We will now look at additional nuances of EDI Message processing and TPM Configuration for handling Functional Acknowledgments.
In this post we will look at handling Functional Acknowledgements for a Incoming EDI Message. We will extend our scenario from Trading Partner Management – Part 3 – EDI over AS2 to IDoc Flows(s) where we processed a Incoming EDI file over AS2 to trigger a Outbound Functional Acknowledgement.
Pre-requisites
You have a working AS2 to EDI Flow as per my Trading Partner Management – Part 3 – EDI over AS2 to IDoc Flows(s). The Data encryption and signatures are optional but you need to make sure you have so far been able to get a EDI message over AS2 and send back a MDN.
Change TPM Agreement to Generate Functional Acknowledgement -Required
The step to generate a Functional Acknowledgement are very straightforward, all we will need to do it change the TPM Agreement created in the previous dependent post to generate the FA.
- Go to the Agreement for processing the Incoming EDIFACT EDI Message over AS2 and enable the Functional Ack (Customer2 Initiates EDIFACT ORDERS D96B in our case) .
- Ensure you are in EDIT mode and In B2B Scenarios.
- Go to the Interchange and Change Option “Create Functional Acknowledgement” from None to Required. Below are what the options mean, but for now we will set this to required
- None – No Functional Acknowledgment is generated
- Check EDI Envelop – The Incoming EDI message is checked and if FA is requested in the EDI Control Records, then the Functional Acknowledgment is generated. In this case the FA is generated only if the Partner requests it. Use this option with care ( see my additional feedback on this option in the next sections).
- Required – FA will be always generated
- Go to Communications and Select “Communication For Sender Functional Acknowledgement” -> As we receive a Incoming EDI File, and need to send back a EDI FA, we need to select our Receiver AS2 Channel.
- Save And Update your Agreement
Test for Functional Acknowledgment – Required
Your configuration is done! You can now push a Test EDI Message and you should see the EDIFACT FA CONTROL Message generated irrespective of whether it was requested in the Original EDI message or not.
Prior to doing that lets enable the Trace on the Flow: Step 2 – Interchange Processing Flow V2 as this is the flow that will generate the FA and send this to the Iflow: Step 3 – Receiver Communication Flow V2
EDI Message Sent without any FA Details
In the below EDIFACT ORDERS D96B Message, we do not request for a FA but the FA is generated as you will see in line with our configuration ( Required for Create Functional Acknowledgement )
FA is sent back from Integration Suite in line with our Configuration
You can see the Original Request sent and a immediate Incoming message back that is the Functional Acknowledgement of your EDIFACT message.
Raw EDI File for EDIFACT FA – CONTROL message
UNB+UNOC:3+SELF_1234:30+CUSTOMER2:30231108:1135+22672972'
UNH+22672972+CONTRL:D:3:UN:A18030'
UCI+22672972+CUSTOMER2:30+SELF_1234:30+7'
UNT+3+22672972'
UNZ+1+22672972'
B2B Monitoring Logs and Trace from Step 2 – Interchange Processing Flow V2
In B2B Monitoring you can see all these logs and statuses. The Most important one’s being
- Sender Technical Acknowledgment Status -> Acknowledged ( This is our MDN)
- Sender Functional Acknowledgment Status -> Accepted ( This is our FA generated due to the Configuration we just did )
- Transmission Status -> If the FA was successfully Sent to the receiver.
- Technical Acknowledgement Received (for Sent Functional Acknowledgement) -> This is the MDN back for the FA.
Change TPM Agreement to Generate Functional Acknowledgement -Check EDI Envelope
In real cases, it is the Sender of the EDI Message that controls the request to Generate the Functional Acknowledgment. Hence we will change the setting
- Generate Functional Acknowledgment from Required to Check EDI Envelop.
- Additionally save and Update our Trading Partner Agreement.
Test For Functional Acknowledgement to Check EDI Envelope
FA not Requested in UNB Segment
Trigger a EDI Message where the FA is not requested in the UNB Segment. You will notice that now the FA ( EDIFACT CONTROL) message is not generated by Cloud Integration / TPM.
Note: This demands that we have the EDI Control Record UNB with the FA as 0. If this is not sent, then Message processing will Fail. Only enable this setting of Check EDI Envelope if you have agreed with your Partner that they will set the flag explicitly.
UNB+UNOC:3+SELF_1234:30+CUSTOMER2:30231108:1135+22672972++++0'
UNH+22672972+CONTRL:D:3:UN:A18030'
UCI+22672972+CUSTOMER2:30+SELF_1234:30+7'
UNT+3+22672972'
UNZ+1+22672972'
B2B Monitoring now shows that only Technical Acknowledgement is sent
As FA is not requested in EDI Envelope, the message is not processed through the FA Block in IFlow: Step 2 – Interchange Processing Flow V2
FA Requested in UNB Segment
Trigger a EDI Message where the FA is now requested in the UNB Segment. You will notice that now the FA ( EDIFACT CONTROL) message is now generated by Cloud Integration / TPM.
Note: This demands that we have the EDI Control Record UNB with the FA as 0. If this is not sent, then Message processing will Fail. Only enable this setting of Check EDI Envelope if you have agreed with your Partner that they will set the flag explicitly.
UNB+UNOC:3+SELF_1234:30+CUSTOMER2:30231108:1135+22672972++++0'
UNH+22672972+CONTRL:D:3:UN:A18030'
UCI+22672972+CUSTOMER2:30+SELF_1234:30+7'
UNT+3+22672972'
UNZ+1+22672972'
B2B Monitoring now shows that both Technical Acknowledgement and Functional Acknowledgment are sent.
FA is requested in EDI Envelope, and hence the message is now processed through the FA Block in IFlow: Step 2 – Interchange Processing Flow V2. The EDI Splitter generates the FA looking at the EDI Control Record UNB Segment
The EDIFACT Control Message generated is as below
UNB+UNOC:3+SELF_1234:30+CUSTOMER2:30+231108:1210+22672972++++1'
UNH+22672972+CONTRL:D:3:UN:A18030'
UCI+22672972+CUSTOMER2:30+SELF_1234:30+7'
UNT+3+22672972'
UNZ+1+22672972'
What About Sending EDIFACT FAs over SFTP
As of writing this post in Nov 2023, the TPM release of the standard Iflows only Supports Functional Acknowledgements over AS2 Adapters. You cannot send this over SFTP (ProcessDirect Adapter).
In a real world project, while FAs over AS2 works, you will need to for now look at alternate workarounds to transmit this over Non AS2 channels like SFTP ( ProcessDirect). This ideally should be fixed by SAP at some point but at the moment it is not supported. The fix should be a easy fix in the Groovy Scripts of SAP in the package : Cloud Integration – Trading Partner Management V2 but we will explore that in a subsequent post.
Final Thoughts
Generating Functional Acknowledgements for your Incoming EDI messages is an out of the box feature of Integration Suite. All you need to do is enable the Check Functional Acknowledgement status in the TPM Agreement of your Partner.
We will look at Functional Acknowledgements for outgoing EDI Messages and tracking Functional Acknowledgment status for Outgoing EDI Messages in a subsequent post.
Additional Blogs from this Series
- Trading Partner Management – Part 1 – IDoc to EDI Flow(s)
- Trading Partner Management – Part 2 – EDI to IDoc Flows(s)
- Trading Partner Management – Part 3 – EDI over AS2 to IDoc Flows(s)
- Trading Partner Management – Part 4 – IDoc to EDI over AS2 Flow(s)
- Trading Partner Management – Part 5 – Custom IDoc Flow
- Trading Partner Management – Part 6 – Custom Search Attributes
- Trading Partner Management – Part 8 – EDI Functional Acknowledgements for Outbound EDI Messages
- Trading Partner Management – Part 9 – Outgoing IDoc Bundling
- Trading Partner Management – Part 10 – Outgoing IDoc Bundling With EDI Bundling
- Trading Partner Management – Part 11 – Handling Parameters
- B2B on SAP Integration Suite – Part 12 – Migrating SAP PI / PO B2B Mappings without TPM
- Trading Partner Management – Part 13 – Migrating SAP PI / PO B2B Mappings with TPM
- Trading Partner Management – Part 14 – Handling Bundled Incoming EDIs
- Trading Partner Management – Part 15 – Handling Message Retries
- Trading Partner Management – Part 16 – B2B Failed Message Alerting
- Trading Partner Management – Part 17 – TPM Naming Convention Guideline