Datenablage und -ermittlung via ArchiveLink

Im SAP ERP– bzw. SAP S/4HANA-System ist es notwendig, Dokumente via ArchiveLink abzulegen und in einer Anwendung anzeigen bzw. aufrufen zu lassen. Hiermit ist es möglich, Dokumente abzulegen und aufzurufen. In diesem Artikel wird näher erläutert wie man mithilfe einem ABAP-Programm einfach und schnell eine Ablage via ArchiveLink einrichtet und gleichzeitig wieder ermitteln kann. Zudem hinaus wird gezeigt wie man Dokumente als XSTRING ermitteln kann.

Datenablage via ArchiveLink

Das Vorgehen für die Einrichtung einer Datenablage via ArchiveLink in Form einer Datenbankablage ist im SAP Hinweis 595563 im Detail beschrieben. Darin wird erläutert, dass folgende Schritte für die Einrichtung notwendig sind:

  1. HTTP Port aktivieren – Transaktion SMICM
  2. Service “/sap/bc/contentserver” aktivieren – Transaktion SICF
  3. Zertifikat für System-PSE einrichten – Transaktion STRUST
  4. Gültiges Austauschverzeichnis festlegen – Programm RSPARAM (Transaktion SA38)
  5. Tabelle erstellen als Kopie von SDOKCONT1 – Transaktion SE11
  6. Content-Repository erstellen – Transaktion OAC0
  7. Dokumentart erstellen – Transaktion OAC2 und OAC3
  8. ABAP-Report für Dokumentenablage via ArchiveLink

Die hier erläuterten Schritte sind für die Ablage kleinerer Dateien geeignet. Im Produktivsystem oder bei größeren Daten sollte man die Daten nicht in Form einer Datenbankablage speichern, sondern mit einem SAP Content Server.

HTTP Port aktivieren

Zuerst muss geprüft werden, ob der HTTP-Port aktiv ist. Hierfür startet man die Transaktion SMICM und ruft die Serviceanzeige mit “Springen > Services” oder “Umschalt+F1” auf. Hier gilt es zu prüfen, ob der Port für das Protokoll HTTP eingerichtet ist. Es muss ein Port außer 0 vorhanden sein. Wenn dieser HTTP-Port fehlt, muss er definiert werden über “Services > Anlegen”.

Über “Services > Aktivieren” kann man den HTTP-Port aktivieren, falls er deaktiviert ist.

Zuerst muss geprüft werden, ob der HTTP-Port aktiv ist. Hierfür startet man die Transaktion SMICM und ruft die Serviceanzeige mit “Springen > Services” oder “Umschalt+F1” auf. Hier gilt es zu prüfen, ob der Port für das Protokoll HTTP eingerichtet ist. Hier muss ein Port außer 0 vorhanden sein. Wenn dieser HTTP-Port fehlt oder nicht aktiv ist, muss er definiert werden über “Services > Anlegen”.

Über “Services > Aktivieren” kann man den HTTP-Port aktivieren, falls er deaktiviert ist.

Service “/sap/bc/contentserver” aktivieren

Als Nächstes prüft man in der Transaktion SICF, ob der Service “/sap/bc/contentserver” aktiv ist. Wenn nicht, kann man ihn mit einem Rechtsklick aktivieren.

Als nächstes prüft man in der Transaktion SICF, ob der Service "/sap/bc/contentserver" aktiv ist. Wenn nicht, kann man ihn mit einem Rechtsklick aktivieren.

Zertifikat für System-PSE einrichten

Im Trust-Manager muss das Zertifikat für das System-PSE eingerichtet und aktiviert sein. Das kann man einfach in der Transaktion STRUST prüfen und ggf. anpassen.

Gültiges Austauschverzeichnis festlegen

Für die Dokumentenablage muss ein geeignetes Austauschverzeichnis ermittelt werden. Es empfiehlt sich, den globalen Profil-Parameter “DIR_GLOBAL” zu verwenden. Mit dem Report RSPARAM und der Transaktion SA38 kann man die Profil-Parameter im System anzeigen lassen und ein passendes Verzeichnis ermitteln.

Tabelle erstellen als Kopie von SDOKCONT1

Die Dokumente werden in einer SAP-Tabelle gespeichert. Als Vorlage für dieses Vorgehen eignet sich die Tabelle SDOKCONT1 ideal. Hierbei handelt es sich um eine SAP-Tabelle für Dokumenteninhalte. Sowohl für einen Import als auch einen Export. Die Tabelle befindet sich im Paket SDOK.

Um eine eigene Tabelle auf Basis der Tabelle SDOKCONT1 erstellen zu können, ruft man den ABAP-Dictionary mit dem Transaktionscode SE11 auf. Im Feld “Datenbanktabelle” gibt man die Tabelle SDOKCONT1 ein und klickt auf den Button “Kopieren” oder die Tastenkombination “Strg+F5”. Im Feld “nach Tabelle” gibt man den gewünschten Namen an. Hierbei muss man auf den Namensraum achten.

Um eine eigene Tabelle auf Basis der Tabelle SDOKCONT1 erstellen zu können, ruft man den ABAP-Dictionary mit dem Transaktionscode SE11 auf. Im Feld "Datenbanktabelle" gibt man die Tabelle SDOKCONT1 ein und klickt auf den Button "Kopieren" oder die Tastenkombination "Strg+F5". Im Feld "nach Tabelle" gibt man den gewünschten Namen an. Hierbei muss man auf den Namensraum achten.

Nach Klick auf “Weiter” bzw. Enter, gibt man das Paket an, in das man die Tabelle zuordnen möchte.

Nach dem Erstellen der Tabelle kann sie noch nicht genutzt werden. Es soll die Erweiterungskategorie definiert werden und die Tabelle muss noch aktiviert werden. Dafür gibt man im ABAP-Dictionary (Transaktion SE11) einfach im Feld “Datenbanktabelle” den Namen der erstellten Tabelle ein und geht anschließend in den Änderungsmodus. Unter “Zusätze > Erweiterungskategorie…” wählt man nun die Erweiterungskategorie aus. Es empfiehlt sich, diese Tabelle als “beliebig erweiterbar” einzustellen.

Nach dem Erstellen der Tabelle kann sie noch nicht genutzt werden. Es soll die Erweiterungskategorie definiert werden und die Tabelle muss noch aktiviert werden. Dafür gibt man im ABAP-Dictionary (Transaktion SE11) einfach im Feld "Datenbanktabelle" den Namen der erstellten Tabelle ein und geht anschließend in den Änderungsmodus. Unter "Zusätze > Erweiterungskategorie..." wählt man nun die Erweiterungskategorie aus. Es empfiehlt sich, diese Tabelle als "beliebig erweiterbar" einzustellen.

Anschließend aktiviert man die Tabelle, indem man auf den Button “Aktivieren” klickt oder “Strg+F3” nutzt.

Content-Repository erstellen

Ein Content-Repository ist die Schnittstelle zwischen dem physischen Ablageort der Dokumente (Tabelle auf Basis von SDOKCONT1) und dem SAP-System selbst. Für die Datenablage via ArchiveLink muss deshalb ein Content-Repository in der Transaktion OAC0 angelegt werden.

Sobald man die Transaktion OAC0 aufruft, klickt man auf den “Anlegen”-Button oder verwendet die F5-Taste. Eventuell muss man in den Änderungsmodus wechseln.

Anschließend gibt man in der Detailansicht die notwendigen Informationen für das Content-Repository an. Folgende Informationen sind bei der Erstellung des Content-Repositories notwendig:

  • Dokumentenbereich: ARCHLINK (ArchiveLink)
  • Ablagetyp: Datenbank des SAP-Systems
  • Ablagesubtyp: Normal
  • Inhaltstabelle: <erstellte Tabelle auf Basis von SDOKCONT1>
Sobald man die Transaktion OAC0 aufruft, klickt man auf den “Anlegen”-Button oder verwendet die F5-Taste. Eventuell muss man in den Änderungsmodus wechseln.

Anschließend gibt man in der Detailansicht die notwendigen Informationen für das Content-Repository an. Folgende Informationen sind bei der Erstellung des Content-Repositories notwendig:

Dokumentenbereich: ARCHLINK (ArchiveLink)
Ablagetyp: Datenbank des SAP-Systems
Ablagesubtyp: Normal
Inhaltstabelle: <erstellte Tabelle auf Basis von SDOKCONT1>

Dokumentart erstellen

Die Klassifizierung der Dokumente erfolgt über eine Dokumentart. Hierbei erstellt man in der Transaktion OAC2 eine gewünschte Dokumentart. Dabei gibt man auch den Dokumententyp an. In diesem Beispiel werden somit PDF-Dokumente via ArchiveLink abgelegt.

Die Klassifizierung der Dokumente erfolgt über eine Dokumentart. Hierbei erstellt man in der Transaktion OAC2 eine gewünschte Dokumentart. Dabei gibt man auch den Dokumententyp an. In diesem Beispiel werden somit PDF-Dokumente via ArchiveLink abgelegt.

Nachdem die Dokumentart in der Transaktion OCA2 erstellt wurde, muss diese dem Content-Repository verknüpft werden. Die Verknüpfung für Content-Repositories wird in der Transaktion OAC3 eingerichtet. Hier gibt man den Objekttyp, die Dokumentart, das Content-Repository, die Verknüpfungstabelle und die Verweilzeit an. Im Änderungsmodus kann man einfach einen neuen Eintrag hinzufügen.

In diesem Beispiel legen wir das Dokument mit dem Objekttyp “DRAW” ab und verknüpfen es mit der Verknüpfungstabelle TOA01. Als Alternative sind TOA02 und TOA03 ebenfalls möglich.

ABAP-Report für Dokumentenablage via ArchiveLink

Mit einem einfachen Report kann man nun Dokumente via ArchiveLink ablegen. Dabei verwendet man folgende Funktionsbausteine:

  • ARCHIVOBJECT_CREATE_FILE
    • Legt die Datei über logischen oder physischen Pfad ab
  • ARCHIV_CONNECTION_INSERT
    • Fügt einen Satz in der Verknüpfungstabelle ein
    • Gemäß Customizing in der Transaktion OAC3, z. B. TOA01
  • ARCHIVOBJECT_DELETE
    • Löscht das abgelegte Dokument, falls kein Eintrag in der Verknüpfungstabelle erzeugt werden konnte
Mit einem einfachen Report kann man nun Dokumente via ArchiveLink ablegen. Dabei verwendet man folgende Funktionsbausteine:

ARCHIVOBJECT_CREATE_FILE
Legt die Datei über logischen oder physischen Pfad ab
ARCHIV_CONNECTION_INSERT
Fügt einen Satz in der Verknüpfungstabelle ein
Gemäß Customizing in der Transaktion OAC3, z. B. TOA01
ARCHIVOBJECT_DELETE
Löscht das abgelegte Dokument, falls kein Eintrag in der Verknüpfungstabelle erzeugt werden konnte
*&---------------------------------------------------------------------*
*& Report Z_DOK_ARCHIVELINK
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_dok_archivelink.


*----------------------------------------------------------------------
* Datendeklaration
*----------------------------------------------------------------------
DATA: lv_arc_doc_id TYPE saeardoid,
      lv_archiv_id  TYPE saearchivi,
      lv_doc_type   TYPE saedoktyp.

*----------------------------------------------------------------------
* Selektionsbild
*----------------------------------------------------------------------

PARAMETERS: p_file   TYPE saepfad LOWER CASE,
            p_sapobj TYPE toa01-sap_object,
            p_arobj  TYPE toa01-ar_object,
            p_objid  TYPE saeobjid LOWER CASE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN PUSHBUTTON /2(38) save_doc USER-COMMAND save_doc.
SELECTION-SCREEN SKIP 1.
PARAMETERS p_docid TYPE saeardoid.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN PUSHBUTTON /2(38) show_doc USER-COMMAND show_doc.
SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN COMMENT /2(38) TEXT-001. "Customizing für Datenablage
SELECTION-SCREEN PUSHBUTTON /2(38) smicm USER-COMMAND smicm.
SELECTION-SCREEN PUSHBUTTON /2(38) sicf USER-COMMAND sicf.
SELECTION-SCREEN PUSHBUTTON /2(38) strust USER-COMMAND strust.
SELECTION-SCREEN PUSHBUTTON /2(38) sa38 USER-COMMAND sa38.
SELECTION-SCREEN PUSHBUTTON /2(38) se11 USER-COMMAND se11.
SELECTION-SCREEN PUSHBUTTON /2(38) oac0 USER-COMMAND oac0.
SELECTION-SCREEN PUSHBUTTON /2(38) oac2 USER-COMMAND oac2.
SELECTION-SCREEN PUSHBUTTON /2(38) oac3 USER-COMMAND oac3.



*----------------------------------------------------------------------
* Initialisierung
*----------------------------------------------------------------------
INITIALIZATION.
  save_doc = |{ icon_system_save }Dokument via ArchiveLink ablegen|.
  show_doc = |{ icon_display }Dokument anzeigen|.
  smicm = |{ icon_execute_object }HTTP-Port aktivieren (SMICM)|.
  sicf = |{ icon_execute_object }Service aktivieren (SICF)|.
  strust = |{ icon_execute_object }Zertifikat einrichten (STRUST)|.
  sa38 = |{ icon_execute_object }Austauschverzeichnis|.
  se11 = |{ icon_execute_object }Tabelle erstellen (SE11)|.
  oac0 = |{ icon_execute_object }Content-Repository (OAC0)|.
  oac2 = |{ icon_execute_object }Dokumentart erstellen (OAC2)|.
  oac3 = |{ icon_execute_object }Verknüpfung einrichten (OAC3)|.


*----------------------------------------------------------------------
* AT SELECTION-SCREEN - Lokale Datei
*----------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CLEAR p_file.

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      mask             = '*.*'
      title            = 'Datenbankablage via ArchiveLink'
    IMPORTING
      filename         = p_file
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

*----------------------------------------------------------------------
* AT SELECTION-SCREEN - Buttons
*----------------------------------------------------------------------
AT SELECTION-SCREEN.

  CASE sy-ucomm.
    WHEN 'SAVE_DOC'.

*----------------------------------------------------------------------
* Prüfe Customizing (OAC3)
*----------------------------------------------------------------------
      CLEAR lv_archiv_id.
      CLEAR lv_doc_type.
      SELECT SINGLE archiv_id doc_type FROM toaom INTO (lv_archiv_id, lv_doc_type)
        WHERE sap_object = p_sapobj
          AND ar_object  = p_arobj.

      IF lv_archiv_id IS NOT INITIAL AND lv_doc_type IS NOT INITIAL.

*----------------------------------------------------------------------
* Legt die Datei über logischen oder physischen Pfad ab
*----------------------------------------------------------------------
        CALL FUNCTION 'ARCHIVOBJECT_CREATE_FILE'
          EXPORTING
            archiv_id                = lv_archiv_id
            document_type            = lv_doc_type
            path                     = p_file
          IMPORTING
            archiv_doc_id            = lv_arc_doc_id
          EXCEPTIONS
            error_archiv             = 1
            error_communicationtable = 2
            error_upload             = 3
            error_kernel             = 4
            OTHERS                   = 5.

        IF sy-subrc = 0.
          p_docid = lv_arc_doc_id.
*----------------------------------------------------------------------
* Fügt einen Satz in der Verknüpfungstabelle ein
*----------------------------------------------------------------------

          CALL FUNCTION 'ARCHIV_CONNECTION_INSERT'
            EXPORTING
              archiv_id             = lv_archiv_id
              arc_doc_id            = lv_arc_doc_id
              ar_object             = p_arobj
              object_id             = p_objid
              sap_object            = p_sapobj
              doc_type              = lv_doc_type
            EXCEPTIONS
              error_connectiontable = 1
              OTHERS                = 2.

          IF sy-subrc = 0.
            MESSAGE 'Datenbankablage erfolgreich' TYPE 'S'.
          ELSE.

*----------------------------------------------------------------------
* Löscht das abgelegte Dokument, falls kein Eintrag in der Verknüpfungstabelle erzeugt werden konnte
*----------------------------------------------------------------------
            CALL FUNCTION 'ARCHIVOBJECT_DELETE'
              EXPORTING
                archiv_id                = lv_archiv_id
                archiv_doc_id            = lv_arc_doc_id
              EXCEPTIONS
                error_archiv             = 1
                error_communicationtable = 2
                error_kernel             = 3
                OTHERS                   = 4.

            MESSAGE 'Fehler bei Datenbankablage' TYPE 'E'.
          ENDIF.

        ELSE.
          MESSAGE 'Fehler bei Archivierung' TYPE 'E'.
        ENDIF.
      ELSE. "Fehler im Customizing in OAC3
        MESSAGE 'Fehler im Customizing - Bitte OAC3 prüfen.' TYPE 'E'.
      ENDIF.
    WHEN 'SHOW_DOC'.
      IF p_docid IS NOT INITIAL AND lv_archiv_id IS NOT INITIAL.

*----------------------------------------------------------------------
* Zeige Dokument im Document Viewer an
*----------------------------------------------------------------------
        CALL FUNCTION 'ARCHIVOBJECT_DISPLAY'
          EXPORTING
            archiv_doc_id = p_docid
            archiv_id     = lv_archiv_id.

        IF sy-subrc <> 0.
          MESSAGE 'Dokument kann nicht angezeigt werden' TYPE 'E'.
        ENDIF.
      ELSE.
        MESSAGE 'Dokument-Id, Dokumenttyp oder Objekttyp fehlt' TYPE 'W'.
      ENDIF.
    WHEN 'SMICM'.
      CALL TRANSACTION 'SMICM'.
    WHEN 'SICF'.
      CALL TRANSACTION 'SICF'.

    WHEN 'STRUST'.
      CALL TRANSACTION 'STRUST'.

    WHEN 'SA38'.
      SET PARAMETER ID 'RID' FIELD 'RSPARAM'.
      CALL TRANSACTION 'SA38'.

    WHEN 'SE11'.
      SET PARAMETER ID 'DTB' FIELD 'SDOKCONT1'.
      CALL TRANSACTION 'SE11'.

    WHEN 'OAC0'.
      CALL TRANSACTION 'OAC0'.

    WHEN 'OAC2'.
      CALL TRANSACTION 'OAC2'.

    WHEN 'OAC3'.
      CALL TRANSACTION 'OAC3'.


  ENDCASE.

Mit dem Button “Dokument anzeigen” wird der Funktionsbaustein ARCHIVOBJECT_DISPLAY aufgerufen, der das gespeicherte Dokument anzeigt.

Wenn man nun ein Dokument erfolgreich hochgeladen hat, kann man in der Verknüpfungstabelle (TOA01) und Inhaltstabelle (ZERP_SDOKCONT1) mit dem Data Browser (Transaktion SE16N) die Einträge erfolgreich überprüfen.

Wenn man nun ein Dokument erfolgreich hochgeladen hat, kann man in der Verknüpfungstabelle (TOA01) und Inhaltstabelle (ZERP_SDOKCONT1) mit dem Data Browser (Transaktion SE16N) die Einträge erfolgreich überprüfen.

Du möchtest Dein ABAP-Wissen vertiefen? Hier erfährst Du die besten ABAP-Tricks beim Entwickeln.

Hier erhältst Du den perfekten Einstieg in ABAP.

Ermittlung der Dokumente via ArchiveLink

Wie im vorherigen Abschnitt gesehen, kann man den Funktionsbaustein ARCHIVOBJECT_DISPLAY nutzen, um sich Dokumente via ArchiveLink anzeigen zu lassen. Man kann also den ABAP-Report Z_DOK_ARCHIVELINK auch dafür nutzen, Dokumente via ArchiveLink anzeigen zu lassen, wenn man die Dokumenten-ID, den Objekttyp und die Dokumentart kennt.

Eine im SAP-Standard zur Verfügung stehende Transaktion ist die ArchiveLink-Administration für abgelegte Dokumente im Transaktionscode OAAD. Sobald man auf den Button “Technische Suche” klickt, kann man ebenfalls nach den abgelegten Dokumenten suchen und sich diese anzeigen lassen.

Eine im SAP-Standard zur Verfügung stehende Transaktion ist die ArchiveLink-Administration für abgelegte Dokumente im Transaktionscode OAAD. Sobald man auf den Button "Technische Suche" klickt, kann man ebenfalls nach den abgelegten Dokumenten suchen und sich diese anzeigen lassen.

Abgelegte Dokumente als XSTRING zurückgeben

Die via ArchiveLink abgelegten Dokumente sollen häufig in einem externen System verarbeitet werden. Hierzu müssen die Dokumente ausgelesen und als XSTRING zurückgegeben werden.

Mit dem folgenden ABAP-Report kann man sich die abgelegten Dokumente als XSTRING ausgeben lassen. Hierfür muss man folgende Informationen haben

  • Dokumentart
  • Objekt-ID
  • Business Objekt

Das Content-Repository und der Dokumenttyp kann man durch Selektion auf die Tabelle TOAOM (Transaktion OAC3) ermitteln. Das ist generell eine Voraussetzung für eine Dokumentenablage via ArchiveLink.

*&---------------------------------------------------------------------*
*& Report Z_DOK_AL_XSTRING
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_dok_al_xstring.

*----------------------------------------------------------------------
* Datendeklaration
*----------------------------------------------------------------------
DATA: lv_archiv_id TYPE saearchivi,
      lv_doc_type  TYPE saedoktyp,
      lt_bin_data  TYPE STANDARD TABLE OF tbl1024 WITH DEFAULT KEY,
      lv_length    TYPE i VALUE 0,
      lv_xstring   TYPE xstring.

PARAMETERS: p_arobj  TYPE toa01-ar_object,
            p_objid  TYPE saeobjid,
            p_sapobj TYPE toa01-sap_object.


IF p_arobj IS NOT INITIAL
  AND p_objid IS NOT INITIAL
  AND p_sapobj IS NOT INITIAL.

*----------------------------------------------------------------------
* Prüfe Customizing (OAC3)
*----------------------------------------------------------------------
  CLEAR lv_archiv_id.
  CLEAR lv_doc_type.
  SELECT SINGLE archiv_id doc_type FROM toaom INTO (lv_archiv_id, lv_doc_type)
    WHERE sap_object = p_sapobj
      AND ar_object  = p_arobj.

  IF lv_archiv_id IS NOT INITIAL AND lv_doc_type IS NOT INITIAL.

    CLEAR: lt_bin_data.
*----------------------------------------------------------------------
* Binärdaten aus dem Archiv-Objekt lesen
*----------------------------------------------------------------------
    CALL FUNCTION 'SCMS_AO_TABLE_GET'
      EXPORTING
        arc_id       = lv_archiv_id
        doc_id       = p_objid
      IMPORTING
        length       = lv_length
      TABLES
        data         = lt_bin_data
      EXCEPTIONS
        error_http   = 1
        error_archiv = 2
        error_kernel = 3
        error_config = 4
        OTHERS       = 5.

    IF sy-subrc = 0.
*----------------------------------------------------------------------
* Binär in xstring konvertieren
*----------------------------------------------------------------------
      CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
        EXPORTING
          input_length = lv_length
        IMPORTING
          buffer       = lv_xstring
        TABLES
          binary_tab   = lt_bin_data
        EXCEPTIONS
          failed       = 1
          OTHERS       = 2.

*----------------------------------------------------------------------
* Rückgabewert = Datei als XSTRING --> lv_xstring
*----------------------------------------------------------------------
      MESSAGE 'XSTRING erfolgreich ausgelesen' TYPE 'S'.
    ELSE.
      MESSAGE 'Fehler beim Lesen aus dem Archiv-Objekt' TYPE 'E'.
    ENDIF.
  ELSE.
    MESSAGE 'Bitte Customizing prüfen (OAC3)' TYPE 'E'.
  ENDIF.
ELSE. " Eingabefelder fehlen
  MESSAGE 'Bitte alle Felder füllen' TYPE 'W'.
ENDIF.

In diesem Artikel wird erläutert, wie man ein Dynpro programmiert, der ein Dokument als XSTRING in ein PDF konvertiert und anzeigt.

Hinweis: Als Datenelement im ABAP Dictionary kann man den Datentyp RAWSTRING verwenden. XSTRING wird als Datentyp in SAP nicht akzeptiert.

Du möchtest Dein ABAP-Wissen vertiefen? Hier erfährst Du die besten ABAP-Tricks beim Entwickeln.

Hier erhältst Du den perfekten Einstieg in ABAP.

Über den Autor

Andreas Geiger

Schön, dass Du Dich für SAP ERP interessierst.

Mein Name ist Andreas Geiger und ich bin der Gründer von ERP-UP.de. Mein Ziel ist es, so viel nützliches Wissen wie möglich über das SAP ERP-System zu vermitteln. Ich möchte Dir damit einen Mehrwert bieten. Es freut mich, wenn ich Dir damit helfen kann.

Mehr zu ERP UP

Schreibe einen Kommentar