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
Go to the Agreement for generating processing the Incoming EDIFACT EDI Message over AS2 and enable the Functional Ack
Go to the Interchange and Change Option "Create Functional Acknowledgement" from None 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.

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.
Update TPM for changes for the FA to be deployed to Partner Directory
Partner Directory is now Updated.

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 )

EDIFACT ORDERS D86B Message with FA not requested.

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

MPL Logs and Trace from Step 2 - Interchange Processing Flow V2 . generate and send FA

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.
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.
Change Create Functional Acknowledgement to Check EDI Envelop

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

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

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'
The Partner Receives the FA Back from Integration Suite

B2B Monitoring now shows that both Technical Acknowledgement and Functional Acknowledgment are sent.

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

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

References