Die Datei bapi.xml enthält eine Liste der Eingabe- und Ausgabefelder, sowie der zu dem Baustein zugehörigen SAP-Tabellen.
<?xml version="1.0" encoding="UTF-8"?>
<jobsapbapi bapiId="Z_ACC_DOCUMENT_POST" bapiName="CONST_Z_ACC_DOCUMENT_POST_NAME"
bapiDescription="CONST_Z_ACC_DOCUMENT_POST_DESCRIPTION">
<input>
<field name="OBJ_TYPE" table="DOCUMENTHEADER" description="CONST_Z_ACC_DOCUMENT_POST_FIELD_OBJ_TYPE"
required="true" />
<field name="COMP_CODE" table="DOCUMENTHEADER" description="CONST_Z_ACC_DOCUMENT_POST_FIELD_COMP_CODE"
required="true" />
<field name="BUS_ACT" table="DOCUMENTHEADER" description="CONST_Z_ACC_DOCUMENT_POST_FIELD_BUS_ACT"
required="true" />
<field name="CREDIT_NOTE" table="DOCUMENTHEADER" type="xflag"
description="CONST_Z_ACC_DOCUMENT_POST_FIELD_CREDIT_NOTE" />
<field name="PSTNG_DATE" table="DOCUMENTHEADER" type="date"
description="CONST_Z_ACC_DOCUMENT_POST_FIELD_PSTNG_DATE" required="true" />
<field name="USERNAME" table="DOCUMENTHEADER" userdefined="true"
description="CONST_Z_ACC_DOCUMENT_POST_FIELD_USERNAME" />
<field name="SAP_USERNAME" table="DOCUMENTHEADER" userdefined="true"
description="CONST_Z_ACC_DOCUMENT_POST_FIELD_SAP_USERNAME" />
<field name="DOC_DATE" table="DOCUMENTHEADER" type="date"
description="CONST_Z_ACC_DOCUMENT_POST_FIELD_DOC_DATE" required="true" />
Root-Element jobsapbapi
Feld |
Beschreibung |
---|---|
bapiId |
Name des Funktionsbausteins (entspricht dem Namen im SAP-System) |
bapiName |
Bezeichnung des JobSAP BAPI-Bausteins (erscheint z.B. in der Funktionsauswahlliste der Systemaktivität) |
bapiDescription |
Beschreibung des JobSAP BAPI-Bausteins (erscheint z.B. in der Systemaktivität als Zusatztext) |
Element input
Das Element enthält Einzelfelder und list-Elemente mit Positionsfeldern. Sie werden als Eingabeparameter der Systemaktivität bzw. des Dialogelements verwendet und an den Funktionsbaustein in dem SAP-System übergeben.
Element output
Das Element enthält Einzelfelder und list-Elemente mit Positionsfeldern. Sie werden als Ausgabeparameter der Systemaktivität bzw. des Dialogelements verwendet. Damit können aus dem SAP-System zurückgelieferte Werte in der JobRouter-Datenbank gespeichert werden.
</input>
<output>
<field name="FISCALYEAR" description="CONST_Z_ACC_DOCUMENT_POST_FIELD_FISCALYEAR" />
<field name="INVOICEDOCNUMBER" description="CONST_Z_ACC_DOCUMENT_POST_FIELD_INVOICEDOCNUMBER" />
</output>
<tables>
Element field
Hier werden Einzelfelder definiert.
Jedes field-Element hat folgende Attribute:
Feld |
Beschreibung |
---|---|
name |
Feldname (wie im SAP-System definiert) |
table |
Tabelle in dem SAP-System, die das Feld beinhaltet. Die Tabelle wird in einem tables-Element aufgelistet. |
description |
Beschreibung des Feldes. Sie wird z.B. als Tooltip in der Systemaktivität-Konfiguration angezeigt. |
type |
Datentyp des Feldes. Folgende Datentypen können angegeben werden: •date - Datumswerte im Format (yyyy-mm-dd) •decimal - Dezimalzahlen •xflag - übergibt ein "X" an das SAP-System, wenn im Feld 1 oder "x" eingetragen wurde •fixLengthChar:<Länge>:<Füllzeichen> - definiert die Länge einer Eingabe und ein Füllzeichen. Die Definition fixLengthChar:10:0 gibt an, dass die Eingabe 10 Zeichen lang sein soll und mit 0 aufgefüllt wird (von Links). |
required |
Angabe, ob es sich um ein Pflichtfeld handelt. |
userdefined |
Benutzerdefinierte Felder, die in der PHP-Datei des Bausteins gesondert behandelt werden können (z.B. USERNAME oder SAP_USERNAME). |
amount |
Ein benutzerdefiniertes Attribut, das mit dem Beispiel-Baustein verwendet wird. Handelt es sich um ein Gutschrift und ist das Attribut auf true gesetzt, wird der Wert dieses Feldes mit einem Minus-Zeichen an das SAP-System übergeben. |
Die Attribute name und table sind Pflichtattribute. Ansonsten können beliebige Attribute hinzugefügt werden, die in den jeweiligen bapi.php - Dateien gesondert behandelt werden müssen.
Handelt es sich um unstrukturierte Daten, d.h. diese sind keiner Tabelle zugeordnet, wird in dem table-Attribut der Wert HEAD eingetragen. Die Tabelle HEAD wird nicht in dem tables-Element aufgelistet. In diesem Beispiel ist ersichtlich wie diese Tabelle in dem JobSAP BAPI-Baustein Z_INCOMINGINVOICE_CHANGE benutzt wird:
<?xml version="1.0" encoding="UTF-8"?>
<jobsapbapi bapiId="Z_INCOMINGINVOICE_CHANGE" bapiName="Z_INCOMINGINVOICE_CHANGE_NAME"
bapiDescription="Z_INCOMINGINVOICE_CHANGE_DESCRIPTION">
<input>
<field name="FISCALYEAR" table="HEAD" description="CONST_Z_INCOMINGINVOICE_CHANGE_FIELD_FISCALYEAR"
required="true" />
<field name="INVOICEDOCNUMBER" table="HEAD" description="CONST_Z_INCOMINGINVOICE_CHANGE_FIELD_INVOICEDOCNUMBER"
required="true" />
Element list
Positionsfelder werden innerhalb eines list-Elements definiert. Das list-Element hat folgende Attribute:
Feld |
Beschreibung |
---|---|
id |
Eindeutige ID. Die ID kann benutzt werden, um die Liste mit einer Tabelle zu verknüpfen (Attribute inputList und outputList) |
name |
Name |
description |
Beschreibung |
<list id="items" name="CONST_Z_ACC_DOCUMENT_POST_LIST_ITEMS_NAME"
description="CONST_Z_ACC_DOCUMENT_POST_LIST_ITEMS_DESCRIPTION">
<field name="GL_ACCOUNT" table="ACCOUNTGL" type="fixLengthChar:10:0"
description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_GL_ACCOUNT" />
<field name="COSTCENTER" table="ACCOUNTGL" type="fixLengthChar:10:0"
description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_COSTCENTER" />
<field name="WBS_ELEMENT" table="ACCOUNTGL" description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_WBS_ELEMENT" />
<field name="ITEM_TEXT" table="ACCOUNTGL" description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_ITEM_TEXT" />
<field name="TAX_CODE" table="ACCOUNTGL" description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_TAX_CODE" />
<field name="ITEM_AMOUNT" table="CURRENCYAMOUNT" userdefined="true"
description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_ITEM_AMOUNT" amount="true" />
<field name="ALLOC_NMBR" table="ACCOUNTGL" description="CONST_Z_ACC_DOCUMENT_POST_ITEMS_ALLOC_NMBR" />
</list>
Element tables
Hier werden die SAP-Tabellen aufgelistet, die von einem Funktionsbaustein angesprochen werden. Die Definition der Tabellen kann der SAP-BAPI-Dokumentation entnommen werden. Anhand des Transaktionscodes se37 wird der Dialog Function Builder: Einstieg geöffnet. Nach der Eingabe von Z_ACC_DOCUMENT_POST im Feld Funktionsbaustein, wird die Übersicht des Funktionsbausteins angezeigt. Die Tabellen sind den Reitern Import, Export und Tabellen zu entnehmen.
Jedes table-Element hat folgende Attribute:
Feld |
Beschreibung |
---|---|
name |
Tabellenname (wie im SAP-System definiert) |
inputList |
verknüpft die Tabelle mit einem list-Element aus dem Input anhand der ID (optional) |
outputList |
verknüpft die Tabelle mit einem list-Element aus dem Output anhand der ID (optional) |
</output>
<tables>
<table name="DOCUMENTHEADER" />
<table name="ACCOUNTPAYABLE" />
<table name="ACCOUNTGL" inputList="items" />
<table name="ACCOUNTTAX" />
<table name="CURRENCYAMOUNT" inputList="items" />
<table name="EXTENSION1" />
<table name="ACCOUNTRECEIVABLE" />
<table name="ACCOUNTWT" />
<table name="CONTRACTHEADER" />
<table name="CONTRACTITEM" />
<table name="CRITERIA" />
<table name="CUSTOMERCPD" />
<table name="EXTENSION2" />
<table name="PAYMENTCARD" />
<table name="REALESTATE" />
<table name="RETURN" outputList="returnItems"/>
<table name="VALUEFIELD" />
</tables>
Element include
Neben einfachen JobSAP BAPI-Bausteinen ist es möglich mittels des include - Elements zusammengesetzte Bausteine zu definieren. Dadurch werden, die mit dem element - Element eingebundenen Bausteine, sequentiell ausgeführt. Die Rückgabewerte der ersten Funktion können als Input der nächsten Funktion weiterverwendet werden.
Hinweis: Die zusammengesetzten Funktionen sind nicht transaktional, d.h. wenn die zweite Funktion fehlschlägt, werden die Änderungen der ersten Funktion nicht mehr rückgängig gemacht. Wenn allerdings die erste Funktion fehlschlägt, wird die Zweite nicht mehr ausgeführt.
<?xml version="1.0" encoding="UTF-8"?>
<jobsapbapi bapiId="Z_ACC_DOCUMENT_CHANGE" bapiName="CONST_Z_ACC_DOCUMENT_CHANGE_NAME"
bapiDescription="CONST_Z_ACC_DOCUMENT_CHANGE_DESCRIPTION">
<include>
<element name="Z_ACC_DOCUMENT_DELETE"/>
<element name="Z_ACC_DOCUMENT_POST"/>
</include>
</jobsapbapi>