f$SAP_Funktion (engl. f$SAP_Function)
f$SAP_Funktion (engl. f$SAP_Function)
Mit dieser Funktion wird ein BAPI oder ein anderer Funktionsbaustein in SAP aufgerufen. Die für den Funktionsbaustein notwendigen Daten werden in einer Parametergruppe vom Typ tdv: SAP_BAPI übergeben. In der Definition des Funktionsbausteins kann nachgelesen werden, welche Daten der Funktionsbaustein benötigt. Die Schnittstelle liest aus dem SAP System den Aufbau der verwendeten Tabellen und bereitet mit diesen Informationen die zu übertragenden Daten auf. Bei Bedarf wird eine Datentypkonvertierung vorgenommen. So wird beispielsweise ein Datum automatisch von 31.01.2005 zu 20050131 konvertiert. Lediglich Zeichenketten in SAP mit führenden Nullen müssen auch in ePOS Zeichenketten mit führenden Nullen sein. Ansonsten ist es erlaubt, in ePOS andere Datentyp zu verwenden als in SAP. Ebenso ist es auch nicht zwingend notwendig, alle Felder einer SAP Tabelle in der zugeordneten ePOS Parametergruppe zu definieren.
Syntax: | Status = f$Sap_funktion( PGName ) | |||
| Argument | Typ | Bedeutung | |
| PGName | Zeichenkette | Name der Verwaltungsparametergruppe, die die Informationen über den Funktionsbaustein und dessen Daten enthält. Bei Verwendung der Funktionen p$tdv:sap:add_export etc. muss der Name dieser Parametergruppe SAPDef lauten. Wenn die Verwaltungsparametergruppe durch direkte Zuweisungen geschieht, kann der Name der Parametergruppe auch anders lauten. | |
Ergebnis: | Ganzzahl | Status der Funktion: | ||
| -999 | nicht genügend Speicher verfügbar | ||
| -6 | Die Daten der zugeordneten Parametergruppen sind nicht korrekt | ||
| -5 | Die Daten der Verwaltungsparametergruppe sind nicht vollständig | ||
| -4 | Die Verwaltungsparametergruppe existiert nicht | ||
| -3 | Der Befehl konnte nicht erfolgreich durchgeführt werden | ||
| -2 | kann das Objekt nicht erzeugen (außen) | ||
| -1 | Kann nicht angemeldet werden | ||
| 0 | Der Befehl wurde erfolgreich abgesetzt. Dies betrifft allerdings nur den Anteil der Schnittstelle. Ob der eingetragene Funktionsbaustein erfolgreich war, muss durch Auswerten dessen Rückgabetabellen geschehen | ||
Beispiel: | Beispiel zum Anlegen eines Materials für Fertigungshilfsmittel MARA_UEB[1].MANDT = '020' MARA_UEB[1].MATNR = MaterialNummer MARA_UEB[1].TCODE = 'MM01' MARA_UEB[1].TRANC = '1' MARA_UEB[1].ERSDA = '07.12.2005' MARA_UEB[1].ERNAM = 'ACBIS' MARA_UEB[1].VPSTA = 'KEF' MARA_UEB[1].PSTAT = 'KEF' MARA_UEB[1].MTART = 'FHMI' MARA_UEB[1].MBRSH = '1' MARA_UEB[1].MEINS = 'ST' MARA_UEB[1].MATKL = '01' MARA_UEB[1].COMPL = '00' MAKT_UEB[1].MANDT = MARA_UEB[1].MANDT MAKT_UEB[1].MATNR = MARA_UEB[1].MATNR MAKT_UEB[1].SPRAS = 'DE' MAKT_UEB[1].MAKTX = 'Test Material' MAKT_UEB[1].MAKTG = 'Test Material' MAKT_UEB[1].TRANC = MARA_UEB[1].TRANC MARC_UEB[1].MANDT = MARA_UEB[1].MANDT MARC_UEB[1].MATNR = MARA_UEB[1].MATNR MARC_UEB[1].WERKS = '0001' MARC_UEB[1].TRANC = MARA_UEB[1].TRANC MARC_UEB[1].DISMM = 'ND' MARC_UEB[1].MTVFP = '01' MARD_UEB[1].MANDT = MARA_UEB[1].MANDT MARD_UEB[1].MATNR = MARA_UEB[1].MATNR MARD_UEB[1].WERKS = MARC_UEB[1].WERKS MARD_UEB[1].LGORT = '0001' MARD_UEB[1].TRANC = MARA_UEB[1].TRANC MARD_UEB[1].LFGJA = '2005' MFHM_UEB[1].MATNR = MARA_UEB[1].MATNR MFHM_UEB[1].STEUF = '1' MFHM_UEB[1].PLANV = '009' MFHM_UEB[1].TRANC = MARA_UEB[1].TRANC MFHM_UEB[1].MANDT = MARA_UEB[1].MANDT MFHM_UEB[1].WERKS = MARC_UEB[1].WERKS Status = f$SAP_Anmelden (3,'194.180.172.133','','00','020','ACBIS','ACBIS','de',0) SAPDef.FunktionsName = 'Z_EPOS_CREATE_MATERIAL' p$tdv:sap:add_export( 'IV_MATNR' ,MaterialNummer , 0 , 0 ) p$tdv:sap:add_tabelle( 'GT_EPOS_SYSTEM' , 'ZEPOS_SYSTEM' ,'EPOS_System' , 0 ,0 ) p$tdv:sap:add_tabelle( 'GT_AMERRDAT' , 'MERRDAT' ,'MERRDAT' , 0 ,0 ) p$tdv:sap:add_tabelle( 'GT_AMARA_UEB' , 'MARA_UEB' ,'MARA_UEB' , 2 ,1 ) p$tdv:sap:add_tabelle( 'GT_AMAKT_UEB' ,'MAKT_UEB' ,'MAKT_UEB' , 2 , 1 ) p$tdv:sap:add_tabelle( 'GT_AMARC_UEB' ,'MARC_UEB' ,'MARC_UEB' , 2 , 1 ) p$tdv:sap:add_tabelle( 'GT_AMARD_UEB' ,'MARD_UEB' ,'MARD_UEB' , 2 , 1 ) p$tdv:sap:add_tabelle( 'GT_AMFHM_UEB' ,'MFHM_UEB' ,'MFHM_UEB' ,2 , 1 ) Status = f$Sap_funktion( 'SAPDef' ) p$test_erfolg() Status = f$SAP_Abmelden () | |||