Skip to Content
Author's profile photo Michal Krawczyk

XI: Playing with the file adapter’s acknowledgments

In this weblog I will try to explain the answer to another very popular question from the XI forum:
“Does the File/FTP adapter support acknowledgments?” The shortes answer to this question is YES it does
but it’s not the answer but the explanation is what you probably expect.

First of all we need to have explain the difference between the transport and application acknowledgments:

transport acknowledgments – they tell us that the message was transferred from the XI adapter
(successfully or with errors)

application acknowledgments – they tell us that the message was processed by the receiver application
(again either successfully or with errors)

File adapter can only work with the transport acknowledgments so it cannot/should not be used
with application acknowledgments. The file adapter’s acknowledgments can be requested
if you’re using a BPM (integration process) so you cannot request them if you have a simple flow (except if your use proxies – see comment below)
in which you’re not using any integration process.

If you want to request an acknowledgment from the file adapter you can set it in the send step:


If everything will be ok – the file adapter will be able to connect with the ftp server
and start sending the file you will receive the positive transport acknowledgment:


Since this is “playing weblog” we can also try setting the application acknowledgment request
but as you see you’ll get AckRequestNotSupported (so once more one way to try
if the adapter supports any kind of acknowledgment is to try is on your test system)


The second question (maybe even more important then the first one) could be:
how to implement our business process to work with the acknowledgments ?
If we just set the acknowledgment request in the send step of our BPM
and this send step will be our last in the BPM then in case of any error
(like the invalid password – when the password will expire or any other) the BPM will not stop.
It will continue receiving negative acknowledgments till the number of retries will be reached.
Then the process will continue to run and it will finish only when you will manually restart
the message successfully. Is this a good idea ? Imagine what would happen if the password
would expire and no one would have a look at the SXMB_MONI for a whole day.
You could have thousands of running BPMs with the same error and since we know that
it’s not a good idea to have to many running BPMs (in terms of performance) maybe we can try something else.

If you wrap your send step (then one that sends the file) with an deadline branch and exception branch
and set the deadline branch to execute an exception after the time needed for adapter framework
to execute all retries then your BPM will finish. It will finish with a negative acknowledgment
so you’ll be able to sort the wrong messages but the BPM will be finished successfully
(as the exception branch will be reached).

The piece of your BPM can look like that:


Than if you see any negative confirmations you can investigate the error
and later you can go to the Messaging System and restart your messages.


but no need to hurry as your BPMs are not running anymore so they are not blocking the XI’s performance

for more have a look question:
6. Acknowledgements
from the file adapter FAQ note: 821267

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Boris Rubarth
      Boris Rubarth
      Hi Michal,
      thanks for the information.
      Additiona: technical Acknowledgements for file adapter can be requested using client proxies as well.
      Best regards, Boris
      Author's profile photo Michal Krawczyk
      Michal Krawczyk
      Blog Post Author
      Hi Boris,

      thanks for the update 🙂


      Author's profile photo Naama Meroz
      Naama Meroz
      Hi Boris,

      Can you please explain how this can be done when using proxies?


      Author's profile photo Former Member
      Former Member
      Hi Michal,

      I just logged into SDN to find an answer for my file adapter acknowledgment question - and found a link to this blog on the main XI page. 🙂

      Thanks for the thorough explanations.
      As there are no application acknowledgments, is there another way to find out whether a file has been written?

      In my scenario, it can take > 1 minute to write the file, but an event at the end of my BPM starts a processing of the file.
      Is there a solution other than to wait a couple of minutes?


      Author's profile photo Former Member
      Former Member

      I tried exactly what you mentined, but the exception handler is not getting triggerd.

      Do I need to do any setup or implenet any SNOTE.


      Author's profile photo Rohit Jha
      Rohit Jha
      can you pls let me know how can I map this idoc to SYSTAT01 idoc and send it to R3. Basically It would be in BPM only but i am not getting as to what interface i should use to refer to the acknowledgement message in the sent send step
      Author's profile photo Former Member
      Former Member
      Super blog Michal. I was researching information about this topic till I found your blog. Now everything is clear 🙂

      Thank you very much for your contribution.

      Arman EKER

      Author's profile photo Former Member
      Former Member
      Hi Michal,

      How do we get the system or transport acknowledgment from the file receiver adapter without using BPM? Is this possible? Please help enlighten.


      Author's profile photo Former Member
      Former Member

      Issue I am facing is that even the acknowledgement is success, still it is going to deadline branch. After thorough investigation I found out that as I am creating two files through two interface Mappings configured in interface determination of ID. Removing one interface from this interface determination had resolved the issue.

      Why BPM is not able to understand success of acknowledgement if two files are being created successfully in the send process step???