Connector für SAP Business Suite - Entwicklerhandbuch Anhang

API Funktionen SimpleRfc

Methode

Bemerkung

Funktionen für SAP-Verbindungen

boolean simpleRfcConnect(String p_instance, String p_loginmode)

Verbindung zum SAP-System aufbauen

boolean simpleRfcClose()

Verbindung zum SAP-System abbauen

Funktionen für BAPI/RFC Funktionen

boolean simpleRfcFunctionLoad(String p_function)

BAPI/RFC-Funktion laden

boolean simpleRfcFunctionExecute(boolean p_commit)

BAPI/RFC-Funktion ausführen

boolean simpleRfcFunctionClose(boolean p_commit)

BAPI/RFC-Funktion beenden

Funktionen für den Zugriff auf Funktionsbausteinparameter

boolean simpleRfcSetFocusImportParameter(String p_parameter)

Import-Parameter in den Fokus nehmen

boolean simpleRfcSetFocusImportStructure(String p_structure)

Import-Struktur in den Fokus nehmen

boolean simpleRfcSetFocusImportTable(String p_table)

Import-Tabelle in den Fokus nehmen

boolean simpleRfcSetFocusExportParameter(String p_parameter)

Export-Parameter in den Fokus nehmen

boolean simpleRfcSetFocusExportStructure(String p_structure)

Export-Struktur in den Fokus nehmen

boolean simpleRfcSetFocusExportTable(String p_table)

Export-Tabelle in den Fokus

boolean simpleRfcSetFocusTable(String p_table)

Tabelle aus Tabellenparameter in den Fokus nehmen

Funktionen für den Zugriff auf Tabellen und Strukturen

boolean simpleRfcSetFocusStructureField(String p_fieldname)

Feld aus der aktuellen Struktur in den Fokus nehmen

boolean simpleRfcSetFocusTableField(String p_fieldname)

Feld aus der aktuellen Tabelle(nzeile) in den Fokus nehmen

int simpleRfcTableGetCount()

Anzahl der Tabellenzeilen der aktuellen Tabelle ermitteln

Vector simpleRfcTableGetEntries()

Alle Tabellenzeile der aktuellen Tabelle als Menge

boolean simpleRfcTableSetLine(Integer p_index)

Setze den Fokus auf eine Zeile in der aktuellen Tabelle

boolean simpleRfcTableAddLine()

Eine neue Zeile der aktuellen Tabelle hinzufügen

Zugriff auf Parameter/Einzelwerte

boolean simpleRfcSetParameterValue(String p_value)

Setze den Wert des aktuellen Parameters/Feldes als String

boolean simpleRfcSetParameterValue(double p_value)

Setze den Wert des aktuellen Parameters/Feldes als Double

String simpleRfcGetParameterValue()

Ermittle den Wert des aktuellen Parameters als String

Sonstige Funktionen

void simpleRfcErrorReset()

Fehlermeldungen zurücksetzen

String simpleRfcErrorGet()

Letzte Fehlermeldung als String ermitteln

String simpleRfcTrigger(String p_instance, String p_loginmode, String p_function, String p_parameter)

Aufruf eines speziellen RFC-Bausteins, der den Wert von "p_parameter" im Parameter "INPUT" entgegen nimmt. Ein evtl. vorhandener Parameter "RESULT" wird im Ergebnis zurückgegeben

API Funktionen für SAP-SSO-Szenarien

Methode

Bemerkung

Funktionen für SAP-Verbindungen

boolean SAPConnectionCheck(String p_instance, String p_loginmode, boolean p_connect)

Prüfe eine existierende Verbindung zum SAP-System "p_instance" im Anmeldemodus "p_loginmode". Falls "p_connect = true" und noch nicht verbunden, wird eine Verbindung aufgebaut.

boolean SAPConnectionSystemClose(String p_instance)

Eine Verbindung zum SAP-System "p_instance" schließen

boolean SAPConnectionUserClose(String p_instance)

Eine SAP Verbindung zum SAP System p_instance des Anwenders schließen

boolean SAPConnectionSystemConnect(String p_instance)

Eine Verbindung zum SAP-System "p_instance" aufbauen

boolean SAPConnectWithUserPassword(String p_instance, String p_user,String p_password)

Eine Benutzerverbindung zum SAP-System "p_instance" mit Benutzer/Passwort aufbauen

Funktionen für Personalisierungsfunktionen

void SAPUserLoginSetToken(String p_instance, String p_user, String p_token, String p_method)

Die Anmeldeinformationen via Token für ein SAP-System manuell setzen. Das Token (z.B. SSO Ticket) enthält Parameter "p_token". Abhängig von der Art des Tokens muss der Parameter "p_method" gesetzt werden (z.B. "MYSAPSSO2" für SSO-Ticket)

void SAPUserLoginSetUserPassword(String p_instance, String p_user, String p_password)

Die Anmeldeinformationen Benutzer/Password für einen Benutzer der aktuellen Session manuell setzen

boolean SAPUserLoginDelete(String p_instance)

Die Anmeldeinformationen für einen Anwender zurücksetzen (z.B. SSO-Ticketinformationen, für Benutzerwechsel)

String ssoPrepare(String p_instance, String p_loginmode, ServerBridgeRequest p_request, boolean p_mapurl)

Das Einbinden dieser Funktion im Velocity ermöglicht das Verwenden von SAP-Oberflächen auf der verwendenden Seite. Es werden SSO-Initialisierungen durchgeführt und beispielsweise SSO-Javascript-Funktionen bereit gestellt. Der Parameter "p_request" erwartet die Übergabe des Velocity-$Request-Objektes. Durch das Flag "p_mapurl" wird das Mapping von SAP-URLs gesteuert.

public String ssoIncludeURL(String p_url, String p_width, String p_height, boolean p_mapurl)

Die Verwendung dieser Funktion im Velocity bindet eine SAP-Weboberfläche als iFrame ein. Der Aufruf setzt die Funktion "ssoPrepare" auf der gleichen Seite voraus, um die notwendigen Javascript-Funktionen (z.B. SAP-Ticket setzen, URL-Mapping initialisieren). Das URL-Mapping wird über das aktive Flag "p_mapurl" aktiviert.

public String ssoIXLoginUserPasswordSession(Session p_session, String p_user, String p_password, String p_domain, String p_method)

Diese Funktion ermöglicht das Login ins Intrexx-Portal über eine Intrexx-Seite (anonym). Ist das Login erfolgreich, wird eine Session-ID zurück gegeben.

public void ssoMapUrlDeleteCache()

Löscht den Cache von URL-Mappings (benötigt bei administrativen Änderungen).

Javascript Funktionen für SAP SSO Szenarien

Methode

Bemerkung

function biasap_start_transaction_url(p_instance, p_loginmode, p_transaction, p_extra, p_skip, p_url)

Startet die SAPGUI für die angegebene SAP-Datenquelle als Transaktion im gegebenen Loginmodus (meist "user"). Zusätzliche Parameter (z.B. zu füllende Felder) werden in "p_extra" mitgegeben. Mit "p_skip = "true"" kann der Startscreen übersprungen werden. Das Flag "p_url" steuert, ob eine Auswertung der Portal-URL notwendig ist (z.B. abweichende SAP-Router-Strings). Dazu musste die Seite aber mit "ssoPrepare" im Velocity initialisiert worden sein.

function biasap_start_transaction(p_instance, p_loginmode, p_transaction, p_extra, p_skip)

Wie function "biasap_start_transaction_url" ohne URL-Auswertung

function biasap_start_report_url(p_instance, p_loginmode, p_report, p_variant, p_url)

Startet einen Report im angegebenen SAP-System mit oder ohne Variante. Das Flag "p_url" steuert das Anpassen des Pfades zum SAP-System über die Portal-URL.

function biasap_start_report(p_instance, p_loginmode, p_report, p_variant)

Wie "biasap_start_report_url" ohne URL-Auswertung

function biasap_set_cookie( name, value, expires, path, domain, secure )

Setze ein Cookie (z.B. für SSO)

function biasap_get_cookie( name )

Ermittle ein Cookie

function biasap_delete_cookie( name, path, domain )

Lösche ein Cookie

function biasap_set_ticket(p_message, p_cancel_on_error)

Setze das SSO Ticket für SAP-Weboberflächen. Ist die Ermittlung eines gültigen SSO-Tokens nicht möglich und eine Fehlermeldung über "p_message" verfügbar, wird diese Fehlermeldung angezeigt. Der Parameter "p_cancel_on_error" steuert, ob ein fehlerhaftes Ticket die Verarbeitung des Skripts und auch der Folgeskripte (z.B. bei Schaltflächen) abbrechen soll (Effekt: keine Anzeige der SAP Weboberfläche bei falschem Ticket).

function biasap_call_sapurl(p_button, p_url)

Ruft aus seiner Schaltfläche heraus eine SAP-Weboberfläche auf und kann in Ereignissen von Schaltflächen verwendet werden (z.B. onclick). "p_button" enthält eine Referenz auf die Schaltfläche. Die URL zur SAP-Seite wurde evtl. bereits als externes Sprungziel gepflegt. Ein gefüllter Parameter "p_url" würde dieses Sprungziel überschreiben. In der URL können Platzhalter (z.B. "<sapserver>") verwendet werden, die über ein vorheriges "ssoPrepare()" aufgelöst werden können.

API-Funktionen für die SAP-OCI-Schnittstelle

Methode

Bemerkung

boolean ociInit(Session p_session, ServerBridgeRequest p_request, String p_loginmethod)

Die Methode initialisiert die SAP-OCI Funktionen des Connectors für SAP Business Suite. Diese Methode ist zur Einbindung auf einer Ansichtsseite gedacht (Velocity). Übergeben werden die aktuelle Session und der Request. Der dritte Parameter legt das zu verwendende Autorisierungsverfahren fest. Voreingestellt ist "PlainAuth", das im Portal konfiguriert sein muss. Mit den übergebenen Parametern wird eine Anmeldung am Portal durchgeführt und die empfangenen Parameter auf Gültigkeit für SAP-OCI geprüft. Das Ergebnis ist boolean. Hat es den Wert "true", so war die Anmeldung erfolgreich. Mit dem Wert "false" war die Anmeldung entweder nicht korrekt oder die übergebenen Parameter sind für SAP-OCI nicht gültig.

boolean ociCheck()

Diese Funktion prüft, ob eine gültige SAP-OCI-Session aktiv ist. Verwenden Sie diese Funktion, um in der Applikation z.B. Sprungziele anzupassen, wenn die Applikation nicht nur für SAP-OCI-Szenarien verwendet wird.

String ociStatus()

Diese Funktion gibt einen HTML-Text zurück, der die aktuellen OCI-Informationen enthält. Verwendet werden kann die Funktion für die schnelle Darstellung der technische OCI-Informationen.

String ociGetInfo(String p_info)

Mit dieser Funktion kann ein bestimmter Wert aus den OCI-Daten ermittelt werden. Mit "$!GSAP.ociGetInfo("vendor")" kann z.B. die Lieferantennummer ausgelesen und als Vorschlagswert für Eingabefelder verwendet werden. Mögliche Werte für "p_info" sind:

  • sapuser

    Technischer Name des angemeldeten SAP Benutzers

  • login

    Anmeldename am Portal

  • domain

    Anmeldedomäne am Portal

  • customer

    Kundennummer des Einkaufenden beim Lieferanten

  • vendor

    Lieferantennummer beim Einkäufer

  • oci_version

    OCI-Version

  • opi_version

    OPI-Version

String ociCheckout(String p_instance)

Diese Funktion wird für die letzte Seite benötigt, auf der der Warenkorb zusammengestellt ist und an das SAP-System gesendet werden muss. Dadurch werden automatisch bestimmte Funktionen für die SAP-OCI-Schnittstelle zur Verfügung gestellt (z.B. Javascripts, Initialisierungen). Als Parameter wird hier eine konfigurierte SAP-Datenquelle erwartet. In Systemen ohne ein angeschlossenes SAP-System ist hier "sapoci" einzutragen.

Die API-Funktion "ociCheckout()" stellt zusätzliche Javascript-Funktionen bereit:

Methode

Bemerkung

sapoci_set_returnurl(p_button)

Setzt die Rücksprungadresse nach dem Senden. Es wird die Übergabe einer Schaltfläche erwartet.

sapoci_addItemMain(row, quantity, unit, articleid, description)

Erzeugt die wichtigsten Transferdaten für eine Warenkorbposition (der Zeile "row")

sapoci_addItemField(row, name, value)

Erzeugt weitere Daten für eine Warenkorbposition. In "name" wird der technische Name der OCI-Spezifikation erwartet (z.B. "VENDORMAT")

sapoci_addLongText(row, value)

Erzeugt einen Langtext zur Position

sapoci_addFormField(name, value)

Erzeugt ein sonstiges Transferfeld unter Angabe des technischen Namens

sapoci_send()

Senden des Datenpaketes an den Aufrufer. Ein Abfangen von Fehlern mit try...catch ist möglich

Verfügbare Ressourcen für den Connector für SAP Business Suite

Kategorie

Technischer Name

Verwendung

Velocity Skript*

biasap_shortcut.vm

Zum Starten der SAPGUI aus dem Portal heraus

JavaScript**

sap_utils

Diverse Javascripts mit Utility-Funktionen

sapsso

Diverse Javascript-Funktionen zum SSO mit SAP

* wird automatisch über die SAP Adapter API Methode "install(boolean p_check, boolean p_full_log)" im Portalverzeichnis installiert
** kann über die SAP-API-Methode "getJavascriptInclude(String)" eingebunden werden.

Experten-Attribute für SAP-Fremddatengruppen

Die folgenden Experten-Attribute werden teilweise automatisch durch die Auswahl des Datahandlers gesetzt und können danach angepasst werden. Einige Parameter sind optional und bewirken spezielle Verhaltensweisen.

Attribute

Datentyp

Ebene*

Verwendung

bia-timezone

String

DQ, DG

Anpassung der Zeitzone für Zeitstempelfelder. SAP-Systeme laufen oft in der Zeitzone CET, Intrexx auf dem Server in UTC. Dadurch kommt es bei der Darstellung von Uhrzeiten zu Verschiebungen. Die Zeitzone sollte aber eher in der Konfiguration der Datenquelle vorgenommen werden (Attribut in der Datei sap.cfg).

bia-loginuser

String

DG

Loginmodus für den SAP-Zugriff (<system>|<user>|<mixed>)

bia-handler

String

DG

Handler für den SAP-Zugriff (z.B. "GENERIC_VIEW", "DEVELOPER_API")

bia-variant

String

DG

Variante des SAP Handlers (z.B. "DEFAULT"). Kann für eine abweichende Ermittlung des SAP-Datenhandlers verwendet werden

bia-param1...bia-param5

String

DG

Möglichkeit, steuerende Parameter an den SAP Handler zu übertragen. Die Werte stehen im SAP-Datahandler in der CONTROL-Struktur zur Verfügung.

bia-abapdebug

String

DG

Möglichkeit, das Debugging nur für die betreffende Fremddatengruppe zu aktivieren. "True" aktiviert das Debugging. Ein SAP-Debugging ist nur mögloch, wenn das Portal auf dem eigenen Rechner läuft und ein SAPGUI installiert ist.

bia-forcefilter

Boolean

DG

Mit diesem Parameter (aktiv = "true") kann für Tabellenzugriffe gesteuert werden, dass keine Daten ermittelt werden, wenn kein Filter aktiv ist. Damit wird verhindert, dass bei ausgeblendeten Tabellen in Zusammenhang mit dynamischen Filtern ein Zugriff in das SAP-System erfolgt.

bia-trace

Boolean

DG

Aktiviert das Trace für diese Datengruppe. Dadurch finden sich hier erweiterte Meldungen in der Logdatei.

bia-requiredbl

Boolean

DG

Enthält eine Angabe darüber, welche Version der Businesslogik vorausgesetzt wird, um vorab Fehler zu vermeiden (Nutzung neuer Features).

bia-simplekey

Boolean

DG

Bei SAP-Datengruppen mit komplexen Schlüssel (z.B. VBAP) wird hier vereinfacht nur eine Zählung von 1...n als Schlüssel verwendet. Ein Sprung auf eine Detailseite ist so nicht möglich. Allerdings kann diese Option den Zugriff auf die Zellen innerhalb von Frei gestalteten Ansichtstabellen vereinfachen.

bia-usecache

Boolean

DG

Ist diese Option aktiviert, werden die Daten auf dem Server gecacht. Ändern sich die Daten im SAP-System, werden im Portal trotzdem nur die alten Daten angezeigt. Die Option eignet sich vor allem für Customizingtabellen, die als Referenzen verwendet werden (Performance). Der serverseitige Cache kann durch Trennen der Verbindung zum SAP zurückgesetzt werden.

bia-newrec_getdetail

Boolean

DG

Diese Option ist nur relevant in den Datahandlern der Developer-API. Bei neuen Datensätzen würde die SAP-API-Methode "Get_Detail" normalerweise nicht aufgerufen werden. Dies kann aber durch diese Option erzwungen werden, um Werte aus SAP vorzubelegen.

bia-newrec_delrecid

Boolean

DG

Diese Option ist ebenfalls nur relevant innerhalb der Developer-API. Neue Datensätze erhalten von Intrexx generell die ID -1. Durch diese Option wird dieser vorgegebene Schlüssel gelöscht. Im SAP wäre er damit mit "if iv_key eq space" abfragbar.

bia-nolangtab

Boolean

DG

Diese Option aktiviert alternativ zur entsprechenden bia-variant, dass in SAP nicht automatisch die Texttabelle ermittelt wird. So können Problemfälle wie die Tabelle MARA mit vernünftigem Aufwand im Portal angezeigt werden.

bia-htmloutput

Boolean

DG

Diese Option aktiviert, dass bestimmte Daten als HTML-Code übergeben werden statt als normaler Text. Dieses Option wird beispielsweise im Data Handler "Generic Report" verwendet, um einen SAP-Report in den SAP-typischen Farben zu übertragen.

bia-singleline

Boolean

DG

Diese Option aktiviert die Übertragung von längeren Texten als Langtext statt in mehreren Zeilen. Verwendet wird diese Option im Datahandler "Generic Report". Der Report wird dann nicht mehr zeilweise übertragen und muss als frei gestaltete Tabelle dargestellt werden. Ein Stringfeld enthält mit dieser Option den gesamten Report.

bia-numkeylen

Integer

DG, DF

Diese Option aktiviert ein automatisches Mapping bei SAP-typischen numerischen Schlüsseln. Über die mitgegebene Länge weiß die Logik des Connectors für SAP Business Suite, dass dieses Feld bei der Übertragung zu SAP automatisch um führende Nullen ergänzt werden muss (Ausnahme alphanumerische Schlüssel). Bei der Darstellung im Portal werden diese Felder ohne führende Nullen dargestellt. Wird diese Option auf Datengruppenebene eingesetzt, wird automatisch der Schlüssel als numerische SAP-ID behandelt.

bia-timefield

String

DF

Diese Option versucht das Problem zu lösen, dass im SAP meistens keine Zeitstempel, sondern getrennte Felder für Datum und Zeit verwendet werden. Intrexx hingegen verwendet Zeitstempel und kann diese zusätzlich als "nur Datum" oder "nur Zeit" darstellen. Über diese Option wird dem Datenfeld des SAP-Systems mitgeteilt, welches SAP-Feld die zugehörige Uhrzeit enthält. Das SAP-Datumsfeld wird dadurch zum Zeitstempel und kann auch so verwendet werden (z.B. in Kalenderkontrollen). Bei der Darstellung von Uhrzeiten kommt es oft zu Verschiebungen der Uhrzeit (z.B. 2h). Das liegt daran, dass SAP-Server und Portal in unterschiedlichen Zeitzonen laufen (CET vs UTC). Deshalb kann an der Datenquelle oder über bia-timezone die SAP-Zeitzone konfiguriert werden. Dieses Verhalten sollte auch umgekehrt (schreiben von Zeitstempeln in zwei getrennte SAP-Felder) funktionieren. Das Feld für das SAP-Datum ist hier wieder führend. Das zugehörige Zeitfeld muss aber evtl. (versteckt) auf den Seiten verfügbar sein.

bia-mapcodefield

Boolean

DF

In SAP-Systemen werden oft Kodierungen benutzt (typische Charakter 1...6 Felder; z.B. VBAK-VBTYP). Diese werden als Text – also als SAP-Code – übertragen und sind für die Anwender so nicht verwendbar. Es besteht natürlich die Möglichkeit, die entsprechenden Customizingtabellen sprachabhängig als Referenz anzubinden. Dadurch entsteht aber unter Umständen viel Aufwand. Eine einfache Möglichkeit stellt diese Option zur Verfügung: der Datahandler "Generic View" versucht hier, aus der konfigurierten Suchhilfe bzw. anderen SAP-Mechanismen, geeignete Texte zu ermitteln. Dieses Verfahren ist nicht überall möglich (z.B. komplexere Suchhilfen mit mehreren Schlüsseln).

bia-mapurl

Boolean

DF

Mit dieser Option können URLs unter Berücksichtigung der Portal-URL gemappt werden. Dies wird z.B. zum Verstecken der realen URL auf SAP-Systemen (Aufruf von Archivdokumenten) benötigt. Ein interner Zugriff kann so von "sapsystem.internesicht.net" auf "archiv.externesicht.com" gemappt werden, sobald der Anwender den externen Zugriff auf das Intrexx-Portal verwendet.

bia-maptouppercase

Boolean

DF

Wandelt den Wert in Großbuchstaben um. Einsatz in SAP-Matchcode-Feldern sinnvoll.

bia-maptolowercase

Boolean

DF

Wandelt den Wert in kleine Buchstaben um.

* DQ – Datenquelle, DG – Datengruppe, DF - Datenfeld

Wichtige SAP-Transaktionen

Die folgende Tabelle enthält einen Überblick über die wichtigsten Transaktionen in Verbindung mit dem Intrexx-Portal. Diese Transaktionen sind unter Umständen nicht für jeden verfügbar (fehlende Berechtigungen).

Kategorie

Transaktionscode

Verwendung

Tabellen/Views

SE16

Data Browser: Anzeigen von Tabelleninhalten

SE11

Dictionary: Anzeigen von technischen Informationen zu Dictionary-Objekten (z.B. Tabellen, Views)

SAP-Konfiguration

SPRO

Implementierungsleitfaden: Zentrales SAP-Customizing

SM30

Tabellenpflege von Konfigurationstabellen

SM59

RFC-Destinationen pflegen: Zugriff auf externe Systeme konfigurieren

SICF

Internet Connectivity: freigegebene Services

Fehlersuche

ST22

Dumpanalyse: Fehlersuche nach Abbrüchen

SM21

Systemlog: Fehlersuche bei Systemproblemen

SLG1

Anwendungslog: Protokolle bei vielen Anwendungen

SMQ1, SMQ2, SM58

Datenaustausch mit externen Systemen mit qRFC und tRFC

Benutzer und Berechtigungen

SU01

Benutzerpflege

SU21

Pflege der Berechtigungsobjekte: u.a. mit Funktion "SAP_ALL" generieren

PFCG

Rollen und Berechtigungen

ST01

Berechtigungstrace

SM04

Angemeldete Benutzer

SMGW

Angemeldete Remote Systeme

Entwicklung

SE80

ABAP-Workbench: Zentrale Entwicklungstransaktion

SE38, SA38

ABAP-Reports: Entwicklung und Start

SE37

Funktionsbausteine/BAPI: Entwickeln, Testen

BAPI

BAPI-Browser

SWO1

SAP-Business-Objekte

Weitere Informationen

Allgemeines

Installation

Verbindung erstellen

Integration in Applikationen

SAP Skript Generator

SAP Trust Manager SSO configuration

API Beschreibung Teil 1 - Übersicht

API Beschreibung Teil 2 - SAP Portal Plugin

API Beschreibung Teil 3 - Implementierung eigener Verarbeitungsmodule

API Beschreibung Teil 4 - Beispielcodings

Entwicklerhandbuch Teil 1

Entwicklerhandbuch Teil 2 - Integrationsszenario SAP-Fremddatengruppe

Entwicklerhandbuch Teil 3 - Integrationsszenario Skripting

Entwicklerhandbuch Teil 4 - Personalisierter SAP Zugriff / Single Sign On (SSO)

Entwicklerhandbuch Teil 5 - Addons

Entwicklerhandbuch - Mustercodings