Skip to Content
Author's profile photo Former Member

Functional Acknowledgement (Inbound and Outbound FA 997)- for Beginners

There are already some amazing blogs around Functional acknowledgement for EDI interfaces

The specified item was not found.

Functional Acknowledgement Status Reporting in sap PI 7.31 B2B add-on

For beginners in B2B integration,it’s still a challenge to distinguish between the approaches for sending 997 in inbound and outbound scenarios(personal experience 🙂 )

Thought of sharing these two different methods in a simple blog:

(Will take example of ANSI X12 EDI message)

Outbound Scenario:

-> Order change IDoc from SAP is transmitted to EDI VAN in form of EDI 860

->EDI 997 (to concede the receipt of EDI 860)  is sent back by vendors, this should update the status of Outbound ORDCHG IDoc from 03 to 16 (FA received)  

   one possible way is to translate incoming 997 to STATUS IDoc


Outbound IDoc to EDI Mapping -> Send IDoc number(trailing 9 characters) in any of the control numbers ( this case we have per IDoc one EDI document)

  here, ISA13/GS06 can be mapped as per requirement



EDI 997 to STATUS IDoc Mapping ->

EDI 997 structure, has different AK levels, in this case we consider GS level

AK102 is mapped to ESTATS-> DOCNUM


AK901 is mapped to STATUS field ( A (accepted) -> 16, R (rejected)-> 17))


First Flow:

ORDCHG IDoc to EDI 860


Module X12ConverterModule is used at the receiver side


Second Flow:

EDI 997 to EDI separator receiver; EDI separator sender to STATUS IDoc (refer Inbound Scenario in the latter part)

Once the STATUS IDoc is delivered successfully, the status of original Outbound IDoc is changed to 16


Inbound Scenario:

B2B- EDI Inbound -Step by Step Configuration


First Flow-> EDI 855 is sent from EDI VAN (any B2B sender adapter) to EDI separator receiver (no mapping is required)


EDI separator receiver splits the received bulk messages and has a configuration to send back FA 997(options- required/ not required/ read from envelope (ISA segment)


Second Flow -> EDI separator sender (855) to SAP (here, IDoc)->( mapping is required)


Module X12ConverterModule is used at the sender side


Third Flow-> EDI separator sender (997) to EDI VAN -> (no mapping required) 


Reverse the sender /receiver ID of the first flow in the 997 configuration


Note- No converter module is required here, as 997 is generated by adapter in raw EDI format.

Monitoring of acknowledgements is already covered in blogs related to B2B monitoring

Improved monitoring of B2B scenarios running on SAP NetWeaver Process Orchestration – part 2: local message monitoring capabilities

Note– FA 997 can also be configured based on partner profiles using TPM

Hope this helps 🙂

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Good one again !!

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Thanks Tarun

      Author's profile photo Former Member
      Former Member

      Nice one...keep blogging!

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Thank you Sreedhar

      Author's profile photo Former Member
      Former Member

      Good work Pooja

      Author's profile photo Former Member
      Former Member

      Hi Pooja,

      Thanks for this post. We are working on outbound B2B scenario and the 997 being sent from partner is not getting properly in PI monitoring.

      I understand that this blog talks about updating the status of the transaction at SAP ECC.

      But can also get similar status in PI.

      We are working with SAP PI B2B Add-on SP04



      Author's profile photo Ajay Garg
      Ajay Garg

      In case we have some proxy to EDI scenario, can we still use STATUS Idoc for inbound 997 ?

      Else what is the good approach for handling 997 back.

      Kindly Advise.

      Ajay Garg

      Author's profile photo Former Member
      Former Member

      STATUS IDOC can't be used for proxy. You can generate custom proxy for ACK.