Aufruf enaio® data2s

enaio® 10.10 »

Aufruf eines RFC-fähigen Funktionsbausteins

Der Aufruf eines RFC-fähigen Funktionsbausteins in einem SAP-System mit Hilfe von enaio® data2s erfolgt gemäß folgendem Beispiel:

' data2s initialisieren
Dim axData2Sap
Set axData2Sap = CreateObject("axData2SAP.ComServer.MainApp")
' Parameter-Objekt erzeugen
Dim oParameters
Set oParameters = CreateObject("Scripting.Dictionary")
' Eingabeparameter (EXPORTING) füllen
oParameters.Add "BUSINESSPARTNER","COL001"
' Aufruf Funktionsbaustein
Dim oFunc
Set oFunc = axData2Sap.ExecuteFunction("Testsystem", "BAPI_BUPA_CENTRAL_GETDETAIL", oParameters)
' Return-Code auswerten (z.B. SAP-System nicht verfügbar, etc.)
If oFunc is Nothing Then ' Lizenzfehler
    MsgBox "Keine Lizenz für data2s vorhanden"
Elseif oFunc.ReturnCode <> 0 Then ' Kommunikationsfehler
    MsgBox oFunc.ReturnCode & " " & oFunc.Exception
Else
    ' Meldungen aus dem BAPI auswerten
    Dim errortype
    errortype = ""
    For Each ret in oFunc.Tables("RETURN").Rows
        If ret("TYPE") = "E" or ret("TYPE") = "A" or _
           ret("TYPE") = "X" Then
            ' Eine Fehlermeldung:
            MsgBox ret("TYPE") & " " & ret("MESSAGE")
            errortype = ret("TYPE")
        End If
    Next
    If errortype = "" Then
        ' Daten auswerten
        Dim oDetail
        Set oDetail = oFunc.Imports("CENTRALDATAORGANIZATION")
        'MsgBox TypeName(oDetail)
        MsgBox oDetail("NAME1")
    End If
End If

Das Ergebnis des Aufrufs der Funktion 'ExecuteFunction' von enaio® data2s ist ein SAP-Funktionsobjekt, welches über seine Eigenschaften Zugriff auf die Rückgabewerte des Funktionsaufrufs ermöglicht.

Die Übergabe von Strukturen als Eingabeparameter und Tabellenparametern (TABLES) ist ebenfalls möglich, gemäß folgendem Beispiel:

' Array für Positionstabelle erzeugen
Dim aPositions(0)
' Objekt für eine Position erzeugen
Set oEntry = CreateObject("Scripting.Dictionary")
' Positionsdaten füllen
oEntry("Feld1") = "Wert1"
' Position in Array anhängen
Set aPositions(0) = oEntry
' Positionen zu Parameterobjekt hinzufügen
oParameters.Add "POSITIONS",aPositions
' Oder Struktur zu Parameterobjekt hinzufügen
oParameters.Add "STRUCTURE",oEntry

Aufruf zur Erzeugung einer Dokumentverknüpfung

Nach der erfolgreichen Erzeugung einer Anordnung sollen sowohl das zugrundeliegende Dokument, als auch ein zu erzeugendes Protokoll an das SAP gemeldet und in der Anlagenliste mit der zugehörigen Anordnung verknüpft werden. Dazu dient der Aufruf der Funktion 'DocConnect' von enaio® data2s, gemäß folgendem Beispiel:

' data2s initialisieren
Dim axData2Sap
Set axData2Sap = CreateObject("axData2SAP.ComServer.MainApp")
 
' Funktionsaufruf
set oRet = axData2Sap.DocConnect(19620, "Testsystem", "OS",
"BKPF", "100019000000172012", "FIIINVOICE")
' Fehler auswerten
If oRet is Nothing Then ' Lizenzfehler
    MsgBox "Keine Lizenz für data2s vorhanden"
Elseif oRet.ReturnCode <> 0 Then ' Kommunikationsfehler
    MsgBox oRet.ReturnCode & " " & oRet.Exception
Else
MsgBox "Alles OK"
end if

Das Beispiel-Skript enthält feste Beispieldaten und nur eine einfache Fehlerauswertung. Die Datenbeschaffung und geeignete Reaktionen auf auftretende Fehler müssen im Rahmen der Einbindung in das Gesamtprojekt durch den Auftraggeber erfolgen.

Die Funktion 'DocConnect' hat die folgenden Parameter:

Parameter

In obigem Beispiel

Bemerkung

Objekt-ID

19620

enaio®-Objekt-ID des abgelegten Dokuments bzw. Protokolls

SAP-Konfiguration

"Testsystem"

Identifikation des SAP-Zielsystems (siehe Abschnitt SAP-Konfiguration

Content Repository

"OS"

Name des Ziel-Repositories aus SAP (siehe Abschnitt DocConnect-Einstellungen)

SAP-Objekttyp

"BKPF"

BKPF ist der Objekttyp für Buchungsbelege

Objektschlüssel

"100019000000172012"

Gemäß dem SAP-Objekttyp zusammengesetzter Schlüssel des SAP-Objekts.

Im Beispiel besteht der Schlüssel aus Buchungskreis, Belegnummer und Geschäftsjahr.

SAP-Dokumentart

"FIIINVOICE"

Die Dokumentart muss im SAP-Customizing gepflegt sein.

Der Rückgabewert des Funktionsaufrufs ist ebenso ein SAP-Funktionsobjekt, das über seine Eigenschaften Zugriff auf die Rückgabewerte 'ReturnCode' und 'Exception' ermöglicht.

Die verwendete Dokumentart muss im SAP-Customizing (OAC3) mit dem SAP-Objekttyp und dem Content Repository verknüpft sein.

Im Rahmen dieses Funktionsaufrufes werden die folgenden Aktivitäten durchgeführt:

  • Aus der zentralen Konfigurationsdatei (Abschnitt Konfiguration enaio® data2s) wird anhand von SAP-Konfiguration und Content Repository der zu verwendende technische Schrank ermittelt.

  • In diesen technischen Schrank wird das Dokument mit der übergebenen Objekt-ID verschoben und an seiner Stelle ein Verweisdokument erzeugt (oder umgekehrt, falls das Ankreuzfeld dafür nicht gesetzt ist). Das Dokument erhält im technischen Schrank eine generierte GUID als SAP-Doc-ID.
    Es ist die Aufgabe von enaio® data2s, aus einem echten Dokument in einem sprechenden Schrank ein Paar von Dokument und Verweisdokument in sprechendem und technischem Schrank zu machen. Die Behandlung von zusätzlichen Verweisen ist nicht Bestandteil der Aufgabe von enaio® data2s, sondern es ist darauf zu achten, dass der illegale Zustand von Verweisen auf Verweise nicht auftritt.

  • Per RFC wird im SAP-Zielsystem eine Dokumentverknüpfung zwischen dem per Objekttyp und Objektschlüssel festgelegten SAP-Objekt (hier eine konkrete Buchung) einerseits und dem neuen Dokument im technischen Schrank anderseits erzeugt. Dadurch wird das Dokument in der Anlagenliste des Objektes recherchierbar.

Wechselwirkung mit enaio® data2ecm

Falls zeitgleich im SAP-Zielsystem auch die Komponente enaio® data2ecm aktiv ist, könnte bei entsprechendem Customizing durch das Erzeugen der Dokumentverknüpfung das sofortige Zurückschreiben von Daten aus SAP nach enaio® ausgelöst werden. Um das zu vermeiden, kann an Stelle der Funktion 'DocConnect' die Funktion 'DocConnectSAP' verwendet werden, welche identische Parameter und Funktionalität hat. Der Unterschied ist, dass bei Benutzung der Funktion 'DocConnectSAP' die Komponente enaio® data2ecm die erzeugte Verknüpfung ignoriert und nicht automatisch verarbeitet.

Die Funktion 'DocConnectSAP' steht nur zur Verfügung, wenn der Transport für enaio® data2ecm im SAP-Zielsystem vorhanden ist.