Skip to Content
Author's profile photo Former Member

First Steps with SAP Application Interface Framework

In this blog I would like to show you how you can get your first impressions of the SAP Application Interface Framework 2.0 right after installation. With the SAP Application Interface Framework an example of an interface creating flight bookings is delivered. This interface is using the runtime and persistence of the SAP Application Interface Framework.

Prerequisites:

  • Make sure that you have completed the post-installation steps.
    • Transport the delivered default customizing into target client. This is necessary since the default customizing will only be available in client 000.
    • Generate number ranges with report /AIF/GENERATE_NUMBER_RANGE
  • Since the interface is using the flight model, you should check that enough valid data exists in your system. In case there is no data, the flights are out-of-date, or all flights are fully booked you can use transaction BC_DATA_GEN to (re-)generate data.

Process Data:

Access the customizing for the SAP Application Interface Framework by calling transaction /AIF/CUST and go to customizing activity Interface Development->Define Interfaces and insert Namespace /AIF/. An interface FLBOOKING with interface version 1 should be displayed.

AIF_FLBOOKING_1_Intereface.png

To send test data to this interface call transaction /AIF/PERS_TEST. You can use the default entries of the screen to process data with interface /AIF//FLBOOKING/1. Click the execute button to sent data.

Monitoring and Error Handling

After the data has been processed you should be able to see the data messages in Monitoring and Error Handling. Call transaction /AIF/ERR and select namespace /AIF/, interface name FLBOOKING and version 1. In the status selection click Select All button. Click Execute.

The data messages you just processed should be selected and displayed in the Monitoring and Error Handling. You can expand the tree in Data Messages view to display the single messages. Note that the messages will be grouped by airline ID, since an interface specific key field was customized. When you select one or multiple messages the structure of the message will be displayed in Data Structure view. Furthermore, the log messages written during processing of the data message will be displayed in Log Messages view. If you double click structure BOOKING in Data Structure view, the content of the selected data message(s) will be loaded into Data Content view. Below you can have a look at the layout of the Monitoring and Error Handling transaction.

ErrorHandlingLayout.png

If errors occured during processing of some messages you can try to restart and cancel those messages.

Interface Specific Selection Screen

If you restart transaction /AIF/ERR and insert interface /AIF//FLBOOKING/1 on the selection screen you will realize that an additional sub-selection screen will be displayed. This sub-selection screen is specific for the selected interface. You can use the sub-selection screen to restrict the data messages that should be selected. For example, if you enter Airline “LH” only the flight bookings for Lufthansa flights should be selected.

Assigned Tags

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

      I tried to do like you said, but don't know how to Transport the delivered default customizing into target client. Is there a easy way to do that, without compare client 000 with target client?

      i try to figure out how AIF work out. I can't understand how "SAP Data Structure" can mapped to Function module / BAPI that called in Action.

      I already define "Raw Data Structure"  to "SAP Data Structure"  Mapping in Structure Mapping, but error when test that interface. input value not passed to Function Module.

      is there something i missed?

      1. Implement Proxy method to call AIF.

      2. create SAP Data Structure (add all field : Import , Export, Changing, Table to this)

      3.define Interface

      4.define Actions

      5. define Structure Mapping

      6. Test Proxy method --> error

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

      Yes, to transport the customizing to the target client you can use transaction SCC1. You have to insert transport request SAPK-701AGINAIF.

      Regarding your interface...When defining the action you also have created an action function module. This function module should have the same paramters as the template /AIF/FILE_TEMPL_PROCESS. Within your function module you call the BAPI/function module. Parameter CURR_LINE contains the data of the current line that is proccessed with the function module. You can change the type of CURR_LINE to fit to the data that you want to process. You can than pass the data of CURR_LINE to your BAPI. What data is passed to this parameter depends on what you inserted as Rercord Type when assigning the action to your structure mapping. The Record Type can be a sub-structure of your SAP data structure or the SAP data structure itself (in this case Record Type field will be empty). The type of CURR_LINE should fit to the Record Type you defined.

      I hope this helps. Otherwise, maybe you could give me some more information on which BAPI you want to call and how your SAP structure does look like?

      Author's profile photo Former Member
      Former Member

      thanks for the answer.

      I tried like your suggestion, but transport request SAPK-701AGINAIF can't founded.

      maybe because I installed AIF700 than upgrade to AIF701.

      wait a minute, i can transport request SAPK-700AGINAIF. if  i transport it, does the customizing included in AIF701 transport too?

      About the action, is that mean in action you must make new function module for it?

      could we just put BAPI or Function module call directly in action?

      I try to call USER=>GetDetail or BAPI_USER_GET_DETAIL.

      In SAP Structure i put all paramater (Import,Export, and Tables) of BAPI_USER_GET_DETAIL 😯 .

      and I wonder how you mapping the result to proxy response?

      is AIF just for asynchronous one?

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

      No, the customizing is not included in the TR of AIF700. You have to transaport SAPK-700AGINAIF. Furthermore, you have to transport SAPK-701BGINAIF since you did an upgrade.

      Yes, you have to create a new function module that fits to the template and from within the function module you can than call the BAPI or user=>getDetail

      Author's profile photo Former Member
      Former Member

      thanks.

      "Transport the delivered default customizing into target client" problem solved.

      but, your still don't answer how to return query result to proxy using AIF.

      Or is AIF just for asynchronous process only?

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

      You can also use AIF for synchronous processing. We will publish a guide on SCN about how to set up such a scenario.

      Author's profile photo Former Member
      Former Member

      thanks. looking forward for it.

      Author's profile photo Former Member
      Former Member

      Hi Verena

      Thanks a lot for all this information about AIF, I have read in the cookbook that SAP delivers a default /AIF/ Error handling application but I just could not see it in our system. I was not aware of any post-installation steps untill I read your blog and now things are making some sense.

      Mark

      Author's profile photo Former Member
      Former Member

      Hi,

      Please answer my query

      https://answers.sap.com/questions/123132/how-to-connect-odata-service-to-sap-aif.html

      Author's profile photo Former Member
      Former Member

      Can we send data from a report / OData service to AIF? Please explain with steps. I checked many forums in SAP, but didn’t find any document for that

       

      Author's profile photo Former Member
      Former Member

      Hi,

       

      Thanks for all the information. I am currently defining an action and the Function module for the action has a call to another FM by which i insert an error message into the return table. Now, I get the error message in /AIF/ERR, which is correct, but even after defining the changeable field, I am unable to edit the field and restart the FM. Can you tell me what the probable reason could be?

      Thank you,

      Sana