Konverter anbinden 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 |
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ß Sieshell-scriptbzw. Batch-Dateien modifizieren.
Beispiele finden Sie auf dem SAP-Server
SapservX
im Verzeichnis ~ftp/general/misc/converter/.
Die folgende Grafik veranschaulicht,wie der Beispielkonverter
All2tx
t, der aus jeder Datei eine Textdatei erzeugt, mit der 1. Methode an das SAP-System angebunden wird.
ConvServSamp
wird von einershell-script-Datei (z.B.ConvServ) gestartet. Bei dieser Methode werden folgende wesentlichen Konvertierungsschritte durchlaufen:
Informationen über die Konvertierung werden über die RFC Destination vom SAP-System zum Programm
ConvServSamp
übertragen.
ConvServSamp
legt diese Informationen in Form von Dateien auf dem Konvertierungsserver ab und startet eineshell-script-Datei (im Beispiel:StartConv) mit einigen Parametern.
Dieshell-script-Datei (im Beispiel:StartConv) ruft den eigentlichen Konverter (im Beispiel:
All2txt
) mit der Syntax des Konverters auf.
Zur Installation Ihres eigenen Konverters müssen Sie also die Datei
StartConv
so modifizieren, daß anstelle von
All2txt
Ihr Konverter mit seiner speziellen Syntax aufgerufen wird.

Nachfolgend erhalten Sie Hinweise für die einzelnen Schritte:
Schritt |
Hinweis |
|---|---|
Aufruf von
|
Beim Aufruf von
RFC Parameter Pfadnamen dershell-script-Datei, die von
Falls Sie außerdem den Parameter-readDocumentDetailsangeben, 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> |
|
Die Datei <WorkingDirectory>/Parameters.txt wird
vor dem Aufruf von
Zusätzliche Dateien Folgende Dateien werden zusätzlich erzeugt, falls beim Aufruf von
Die Dateien enthalten diejenigen Daten, die der FunktionsbausteinCAD_GET_TITLE_BLOCK_DATAermittelt. Informationen zum Inhalt der Dateien finden Sie in der Dokumentation zu diesem Funktionsbaustein (Export ParameterDOCUMENTDATAundECMDATAund TabellenDOCUMENTDESCRIPTIONS, LONGTEXTS, CLASS_DATA, OBJECTLINKS, STATUSLOG, EXPORT_DATAundUSER_DATA). Die Dateien
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. |
|
Der Beispielserver
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 dieShellverhindert. Jeder Konvertierung steht ein eigenes Verzeichnis (<WorkingDirectory>) zur Verfügung, in das die konvertierten Dateien geschrieben werden sollten. Die Parameter haben folgende Bedeutung: <
|
Modifizieren der Datei
|
Verändern Sie die Beispieldatei
von dieser Datei Ihr Konverter gerufen wird und eine der Dateien <WorkingDirectory>/Error.txt oder <WorkingDirectory>/ConvPath.txt erzeugt wird. Nach dem Ende von
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 derexit codedesshell-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. |
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ß Sieshell-scriptbzw. 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 |
|---|---|
|
Vor dem Aufruf von
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. |
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.
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 das System 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
|
ti_parameters (tabelle) |
Siehe: Abschnitt
|
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
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.