Konverter anbinden 

Verwendung

Es gibt verschiedene Möglichkeiten, einen Konverter an das SAP-System anzubinden. Berücksichtigen Sie dabei das Konvertierungsziel. Wenn beispielsweise auf einem Konvertierungsserver Originaldaldateien von Dokumenten konvertiert werden sollen, müssen Sie anders vorgehen als zur Konvertierung von Baugruppen.

Es gibt drei unterschiedliche Methoden, Ihren Konverter an das SAP-System anzubinden:

Methode

Objekte, die konvertiert werden

Übergabe der Parameter

1

einzelne Originaldateien von Dokumenten

Parameter werden über Dateien zwischen dem SAP-System und dem Konverter übergeben

2

einzelne Originaldateien von Dokumenten und Baugruppen

3

einzelne Originaldateien von Dokumenten und Baugruppen

Parameter werden über die RFC-Schnittstelle zwischen dem SAP-System und dem Konverter übergeben

  1. Methode

Mit einem Konverter, den Sie nach dieser Methode anbinden, können Sie einzelne Originaldateien von Dokumenten konvertieren. Sie benötigen für diese Anbindung keine Programmierkenntnisse, da Sie den kompilierten Beispielserver ConvServSamp nutzen können. Es ist aber erforderlich, daß Sie shell-script bzw. Batch-Dateien modifizieren.

Beispiele finden Sie auf dem SAP-Server SapservX im Verzeichnis ~ftp/general/misc/converter/.

Die folgende Grafik veranschaulicht, wie der Beispielkonverter All2txt, der aus jeder Datei eine Textdatei erzeugt, mit der 1. Methode an das SAP-System angebunden wird. ConvServSamp wird von einer shell-script- Datei (z.B. ConvServ ) gestartet. Bei dieser Methode werden folgende wesentlichen Konvertierungsschritte durchlaufen:

Nachfolgend erhalten Sie Hinweise für die einzelnen Schritte:

Schritt

Hinweis

Aufruf von ConvServSamp

Beim Aufruf von ConvServSamp müssen Sie folgende Parameter angeben:

  • RFC Parameter
  • Pfadnamen der shell-script- Datei, die von ConvServSamp zur Konvertierung gestartet werden soll (mit dem Parameter -s<shell-script Dateiname> )

Falls Sie außerdem den Parameter -readDocumentDetails angeben, werden Informationen über das Dokument, das konvertiert wird, gelesen und als Dateien gespeichert.

Beispiele:

  • ConvServSamp -s c:\bat\StartConv.bat <RFC Parameter>
  • ConvServSamp -s $HOME/bin/StartConv <RFC Parameter>

ConvServSamp erzeugt <WorkingDirectory>
/Parameters.txt

Die Datei <WorkingDirectory>/Parameters.txt wird vor dem Aufruf von StartConv erzeugt und enthält die Parameter, die im Customizing der Konvertierungsspezifikation gepflegt wurden. Diese Einstellungen erfolgen im Customizing der Konvertierung, unter Logistik Allgemein ® Konvertierung ® Konvertierung festlegen.

Zusätzliche Dateien

Folgende Dateien werden zusätzlich erzeugt, falls beim Aufruf von ConvServSamp der Parameter -readDocumentDetails angegeben wird:

  • <WorkingDirectory>/Documentdata.txt
  • <WorkingDirectory>/Ecmdata.txt
  • <WorkingDirectory>/Documentdescriptions.txt
  • <WorkingDirectory>/Longtexts.txt
  • <WorkingDirectory>/ClassData.txt
  • <WorkingDirectory>/Objectlinks.txt
  • <WorkingDirectory>/Statuslog.txt
  • <WorkingDirectory>/ExportData.txt
  • <WorkingDirectory>/UserData.txt

Die Dateien enthalten diejenigen Daten, die der Funktionsbaustein CAD_GET_TITLE_BLOCK_DATA ermittelt. Informationen zum Inhalt der Dateien finden Sie in der Dokumentation zu diesem Funktionsbaustein (Export Parameter DOCUMENTDATA und ECMDATA und Tabellen DOCUMENTDESCRIPTIONS, LONGTEXTS, CLASS_DATA, OBJECTLINKS, STATUSLOG, EXPORT_DATA und USER_DATA ).

 

  • Die Dateien Documentdata.txt und Ecmdata.txt enthalten zu jedem Element der Strukturen DOCUMENTDATA bzw. ECMDATA eine Zeile, in der der Name und der Wert des Elementes angegeben werden:
    <Name> = <Wert> (Beispiel: DOCUMENTTYPE = DRW)
  • Alle anderen Dateien enthalten je Zeile der zugehörigen Struktur eine Zeile. Jede Zeile enthält pro Element der Struktur der Tabelle einen Wert. Die Zahl der Spalten richtet sich nach der im SAP-System definierten Breite.
    Es werden keine Begrenzer verwendet.

ConvServSamp setzt Parameterwerte für StartConv

Der Beispielserver ConvServSamp ruft die Datei StartConv auf:

StartConv <Version> <WorkingDirectory> <FileToConvert> <language> <ConverterTimeOut> <conversionName> <DocumentKey> <current_user_name> <sy_language>

  • ConvServSamp setzt für die Parameterwerte <WorkingDirectory> <FileToConvert>, <DocumentKey>, <current_user_name> und <sy_language> jeweils am Anfang und Ende das Sonderzeichen "
    Damit wird die Interpretation von Sonderzeichen durch die Shell verhindert.
  • Jeder Konvertierung steht ein eigenes Verzeichnis (<WorkingDirectory>) zur Verfügung, in das die konvertierten Dateien geschrieben werden sollten.

Die Parameter haben folgende Bedeutung:

  • <Version> (z.B: 5):
    Angabe, welche Funktionen im aktuellen SAP-System unterstützt werden
  • <WorkingDirectory>:
    Arbeitsverzeichnis, beispielsweise für die konvertierten Dateien
  • <FileToConvert>:
    Datei, die konvertiert werden soll
  • <language>:
    Sprache für Fehlermeldungen ('X' => keine Sprache angegeben)
  • <ConverterTimeOut>:
    Nach dieser Zeit (in Minuten) sollte die Konvertierung abgebrochen werden.
  • <conversionName>:
    Eindeutiger Name für diese Konvertierung
  • <DocumentKey>:
    Schlüssel des Dokumentes in folgender Reihenfolge:
    3 Zeichen: documenttype (Dokumentart)
    25 Zeichen: documentnumber (Dokumentnummer)
    3 Zeichen: documentpart (Teildokument)
    2 Zeichen: documentversion (Dokumentversion)
  • <current_user_name>:
    Name des Anwenders, der die Konvertierung gestartet hat (implizit oder explizit)
  • <sy_language>:
    Sprache, die von <current_user_name> benutzt wird

Modifizieren der Datei StartConv

Verändern Sie die Beispieldatei StartConv so, daß

  • von dieser Datei Ihr Konverter gerufen wird und
  • eine der Dateien <WorkingDirectory>/Error.txt oder <WorkingDirectory>/ConvPath.txt erzeugt wird.

Nach dem Ende von StartConv durchläuft ConvServSamp folgende Schritte:

  • Die erste Zeile der Datei <WorkingDirectory>/Error.txt wird an das SAP-System als Fehlermeldung weitergegeben, falls
  • die Datei <WorkingDirectory>/Error.txt existiert und
  • die erste Zeile dieser Datei nicht leer ist
  • Falls der exit code des shell-scripts (z.B. StartConv) ungleich 0 (Null) ist, wird dieser Wert an das SAP-System als Fehler weitergegeben.
  • Falls keine der genannten Bedingungen zutrifft, wird der Pfadname der konvertierten Datei aus der Datei <WorkingDirectory>/ConvPath.txt gelesen.
    Diese Datei wird automatisch in das SAP-System transportiert und als weiteres Original abgelegt.

2. Methode

Mit einem Konverter, den Sie nach dieser Methode anbinden, können Sie sowohl einzelne Originaldateien von Dokumenten als auch Baugruppen konvertieren.

Sie benötigen für diese Anbindung keine Programmierkenntnisse, da Sie den kompilierten Beispielserver ConvServSamp nutzen können. Es ist aber erforderlich, daß Sie shell-script bzw. Batch-Dateien modifizieren.

Das Vorgehen entspricht in vielen Schritten der ersten Möglichkeit.

In der nachfolgenden Übersicht erhalten Sie Informationen zu den Dateien und Parametern, die speziell für die Konvertierung von Baugruppen bearbeitet werden.

Aktivität

Hinweis

ConvServSamp
erzeugt <WorkingDirectory>/
ConvStructFilename.txt

Vor dem Aufruf von StartConv wird von ConvServSamp die Datei <WorkingDirectory>/ConvStructFilename.txt erzeugt.

Jede Zeile dieser Datei enthält folgende Parameter:

  • parent_guid[38]
    eindeutige ID des Vaters dieses Teils
  • guid[38]
    eindeutige ID dieses Teils
  • file_changed[1]
    falls das Teil geändert wurde (z.Z. nicht unterstützt)
  • filename[255]
    Pfad name dieses Teils

Das Format ist fest. Es gibt keine Begrenzer zwischen den Einträgen.

Konverter erzeugt <WorkingDirectory>
/ConvPathAndMatrix.txt

Der Konverter erzeugt anstelle der Datei <WorkingDirectory>/ConvPath.txt die Datei <WorkingDirectory>/ConvPathAndMatrix.txt.
Diese Datei wird nicht gelesen, falls die Datei <WorkingDirectory>/ConvPath.txt existiert.

Jede Zeile dieser Datei enthält folgende Parameter:

  • parent_guid[38]
    eindeutige ID des Vaters dieses Teils (wie Eingabe)
  • guid[38]
    eindeutige ID dieses Teils (wie Eingabe)
  • filename[255]
    Pfadname dieses Teils
    Pfadname: darf keine Leerzeichen enthalten, Ende mit Leerzeichen oder Zeilenende

Für diese drei Parameter ist das Format fest. Es gibt keine Begrenzer zwischen den Einträgen.

Falls die Zeile nach dem Pfadnamen noch nicht zu Ende ist, muß sie 13 real Zahlen enthalten, zwischen denen Leerzeichen stehen müssen:
locox, locoy, locoz, axis1x, axis2x, axis3x, axis1y, axis2y,
axis3y, axis1z, axis2z, axis3z, scale

Mit dieser Transformationsmatrix wird die relative Position des Teils gegenüber dem Vater beschrieben.

Falls es mehrere Instanzen gibt, muß für jede Instanz eine eigene Zeile geschrieben werden. Diese Zeilen müssen bis auf die Transformationsmatrix identisch sein.

3. Methode

Wenn Sie die Konvertierungsparameter nicht in Dateien übergeben wollen oder mit der ersten oder zweiten Methode nicht Ihre Anforderungen realisieren können, können Sie den Beispieserver ConvServSamp ändern. Sie benötigen für diese Änderung Programmierkenntnisse (C-Quellcode).

Den C-Quellcode für den RFC-Server ConvServSamp finden Sie auf dem SAP-Server SapservX in folgendem Verzeichnis: ~ftp/general/misc/converter/source.SAR

Der Konverter wird aus dem SAP-System folgendermaßen gerufen:

CALL FUNCTION 'ASSEMBLIE_CONVERTER'

DESTINATION wa_converter_dests-conv_dest

EXPORTING interface_version = interface_version

output_directory = output_directory

language = isola

sy_language = sy_isola

timeout_minutes = timeout_minutes

conversion_name = wa_conv_requested-handle

document_key = document_key

current_user_name = sy-uname

IMPORTING error_message = error_message

return = bapireturn

TABLES ti_conv_struct_filename = t_conv_struct_filename

ti_parameters = te_parameters

te_conv_path_and_matrix = ti_conv_path_and_matrix

Informationen zum Typ und die Struktur der Felder finden Sie in der Datei ConvServ.h.

Nachfolgend erhalten Sie Informationen über die Verwendung der einzelnen Felder.

Eingaben für den Konverter

Eingabe

Verwendung

interface_version
(int, z.B. 3)

Angabe, welche Funktionen von der aktuellen SAP-Version unterstützt werden

output_directory
(char *255)

Arbeitsverzeichnis, in das beispielsweise die konvertierten Dateien gestellt werden sollten

language
(char *2, z.B. DE oder EN)

Sprache, in der Fehlermeldungen an R/3 gegeben werden sollten

sy_language
(char *2, z.B. DE oder EN)

Sprache, mit der sich der Benutzer, der die Konvertierung gestartet hat, am SAP-System angemeldet hat

timeout_minutes
(int, z.B. 30)

Zeit in Minuten, nach der die Konvertierung als nicht erfolgreich abgebrochen werden sollte

conversion_name
(char *32)

Name zur eindeutigen Identifizierung dieser Konvertierung

document_key
(struct DOCUMENT_KEY)

Schlüssel des Dokumentes, das konvertiert werden soll

current_user_name
(char 12*)

Benutzer, der die Konvertierung gestartet hat

ti_conv_struct_filename (tabelle)

Struktur und Pfadnamen
Siehe: Abschnitt Konvertierung von Baugruppen, <WorkingDirectory>/ConvStructFilename.txt

ti_parameters (tabelle)

Siehe: Abschnitt Konvertierung von Originaldateien eines Dokuments, <WorkingDirectory>/Parameters.txt

Ausgaben des Konverters

Ausgabe

Verwendung

te_conv_path_and_matrix
(tabelle)

Hier können zu jeder eingegebenen Datei die konvertierte Datei und Transformationsmatrix oder eine Fehlermeldung (oder beides, in 2 Tabellenzeilen) übergeben werden.

  • msg_type = ' ' (Blank)
    Die Tabellenzeile (struct CONV_PATH_AND_MATRIX) enthält eine konvertierte Datei und, falls transformation_matrix_valid = 'X', eine Transformationsmatrix.
    Siehe: Abschnitt Konvertierung von Baugruppen, <WorkingDirectory>/ConvPath.txt)
  • msg_type <> ' ' (Blank)
    Die Tabellenzeile (struct CONV_PATH_AND_MATRIX_ERR) enthält eine Fehlermeldung.

error_message
(struct MESSAGES)

Fehlermeldungen:

  • msg_type = ' ' (Blank)
    Kein Fehler
  • msg_type = 'W'
    Warnung: Datei wurde konvertiert; allerdings soll der Benutzer auf ein Problem hingewiesen werden
  • msg_type = 'E'
    Fehler: Datei bzw. Baugruppe konnte nicht konvertiert werden
  • msg_type = 'F'
    In te_conv_path_and_matrix gibt es Fehlermeldungen; Teile der Baugruppe oder die gesamte Baugruppe konnte nicht konvertiert werden.
  • msg_type = 'L'
    Nicht alle zur Konvertierung notwendigen Lizenzen waren verfügbar. Der Konverter wird zu einem späteren Zeitpunkt, aber ohne Eingreifen eines Administrators verfügbar sein.
  • msg_type = 'C'
    Systemfehler, der das Eingreifen eines Administrators erforderlich macht (z.B. Festplatte voll)

Werden alle anderen Felder (außer msg_type und msg_txt) freigelassen, kann in msg_txt eine bis zu 200 Zeichen lange Meldung übergeben werden.

return
(struct BAPIRET2)

Fehlermeldungen können (wahlweise) auch in dieser Struktur übergeben werden

Der RFC-Server muß außerdem die Funktion CONV_SERV_ABOUT enthalten, die Sie ohne Veränderung aus dem Beispiel ConvServSamp.c verwenden können.