Demystifying AIF: Use cases
In this blog I would like to talk about some points and arguments in a conversation with the customer about AIF. It will be useful if you would like to help your sales guys or customer directly to understand – why do they need AIF ?
We already have a PI/PO…
The main idea of Application Interface Framework is to monitor an APPLICATION and BUSINESS errors, not TECHNICAL. If you use PI/PO as a transport layer, you can monitor adapter errors, mapping errors, XML-validation exceptions, routing problems etc. But it is very likely situation – your message (e.g. Business Partner creation) were delivered without any errors in PO, but it’s impossible to save Business Partner data because the country name was unacceptable. So, the next point – Value Mapping.
Of course, you can set up a value mapping replication to PO and use it in your mapping. But that way you don’t have any possibilities to correct the data “on the fly”, only in master-tables. Anyway, it’s not a good idea to have VM in PO, but in AIF as a local VM-provider.
For example, we can receive “Russia1” of “RF” instead of “RU”. Technically, “Russia1” and “RF” are Ok for XML-schema element “String”, but not for the system “Country” field. So, you create a Value Mapping Rule in AIF, enter a lot of dummy things like “Russia1” and “RF” and map it to correct value “RU”. Now your AIF system will automatically map this values. If your receive “new” dummy value, say “Russian Fed”, an AIF user will get a VM error and the button if AIF interface to fix it! Very cool and simple.
Say, you want to get a thousands of records to record in your system. But you need to run one Function Module for each record. Of course, you can use PO mapping to split the messages and send it to your system separately. But that way you get thousands of messages to deliver – not so good idea for performance.
In AIF you can receive all the records in one message and then execute an FM for each record!
Few more cases. Say, you want to check all records in one FM, and then save the records separately – of course it is possible also with AIF actions!
You received few messages from different systems. First, you need to create a Business Partner record that came from System 1, then you need to create a Contract record from System 2.
Due to technical issues you received a Contract record first. If you try to create a record, based on non-existent Business Partner, you will get an error. But you can use a simple Check in AIF – if there required BP is created already or not. If not, you can automatically reprocess a message in 10 minutes or something like that! So, we are giving a chance to receive a Business Partner record.
Error corrections by user
In AIF you can fix some errors by user by setting up a fields as editable.
Case: you are receiving an information from flight booking system. There is a “Phone” field with a phone numbers in different formats. Say, “tel 8-10-342342423”, “+7 34234242 3 New cust” or something like that. In some cases it is not possible to parse this values automatically and a system needs user help.
You simply turn on the field as editable – et voi la !
Of course, it can be based on roles and permissions…
Roles and permissions
You decide, if all the users can see AIF errors for all interfaces, or it is only possible the interfaces for this user. It is very flexible and simple model on Recipients in AIF.
It’s only few use cases showed in this article, but clear your mind and continue to invent!