Conversion Engine API

Conversion Engine API

Funktionscodes

Folgende Funktionscodes werden von der API unterstützt.

Funktion

Code

Beschreibung

Funktion

Code

Beschreibung

ccfCode_CE_Initialize

100

Initialisierung der Schnittstelle

ccfCode_CE_GetInterfaceVersion

101

Abfrage der Interface Version (Default ist 1)

ccfCode_CE_GetVersion

105

Versionsabfrage

ccfCode_CE_SetConfig

110

Übergabe der Konfigurationsdaten vom aufrufenden Programm

ccfCode_CE_SetParameter       

115

Parameterübergabe

ccfCode_CE_SetOEMInfos

116

OEM Informationen übergeben

ccfCode_CE_GetDocPath

120

Abfrage des Ablageverzeichnisses für Dateien

ccfCode_CE_SetDocPath

130

Übergabe des Ablageverzeichnisses für Dateien

ccfCode_CE_GetDocCount

200

Abfrage der Dateimenge nach der Konvertierung

ccfCode_CE_GetBlob  

300

Abfrage einer Datei nach der Konvertierung über Id (0 based)

ccfCode_CE_AddField  

400

Übergabe von Feldwerten

ccfCode_CE_AddTableData

450

Übergabe von Positionsdaten

ccfCode_CE_AddBlob  

500

Übergabe eines Blobs als Pfadangabe (full qualified)

ccfCode_CE_Reset

550

Zurücksetzen der Schnittstelle – Vorbereitung für neuen Lauf

ccfCode_CE_Convert

600

Konvertierung

ccfCode_CE_StartStack

700

Markiert den Beginn eines Dokumentstapels

ccfCode_CE_EndStack

710

Markiert das Ende eines Dokumentstapels in der Verarbeitung

ccfCode_CE_CallCfgDlg

800

Aufruf des Konfigurationsdialogs (im Return die Konfigurationsdaten übergeben)

ccfCode_CE_GetConfig 

850

Abfrage der Konfigurationsdaten

ccfCode_CE_Finalize  

900

Freigabe der Schnittstelle

Funktionsdeklaration ANSI

function ccConvert( fCode : LongInt; fData : PChar; fSize : LongInt; Msg : PChar ) : LongInt;

Mit der Übergabe eines Funktionscodes in der Variable fCode wird die entsprechende Funktion ausgewählt (siehe Tabelle).

Im Erfolgsfall wird im Funktionsresult 0 zurückgegeben. Im Fehlerfall ein Wert von -1 (grundsätzlich <> 0). Der Returncode -3 zeigt ein Lizenzproblem an.

Die Variable Msg nimmt einen Meldungstext auf welcher im Problemfall durch die aufrufende Anwendung im entsprechenden Logfile protokolliert wird. Eine Erfolgsmeldung nach ccfCode_CE_Convert wird je nach Anwendung ebenfalls protokolliert.

fData nimmt alle übrigen Übergabedaten, wie z.B. die Indexfelder, auf. Zugehörig muss immer fSize mit der entsprechenden Größe von fData gesetzt werden.

Das ANSI Interface ist optional und nur zur Abwärtskompatibilität erforderlich (z.B. eWork 2.x).

Funktionsdeklaration UNICODE

function ccWideConvert( fCode : LongInt; fData : PWideChar; fSize : LongInt; Msg : PWideChar ) : LongInt;

ANSI und UNICODE Interfaces können in einer Conversion Engine gleichzeitig verwendet werden.

Übergabe von Metadaten

Die Übergabe erfolgt als String und hat nachfolgenden Aufbau.

Datentypen werden direkt unterstützt und als Variant-Type mit übergeben.

Funktion

Übergabestruktur

Funktion

Übergabestruktur

ccfCode_ES_AddField  

FieldName[DataType]=Value

ccfCode_ES_AddTableData

ColumnName[DataType],Row=Value

Delphi Codeframe

Auf Basis von Delphi XE5 bzw. Lazarus.

// ================================================================ {$R *.res} {$WARN UNIT_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF} // ================================================================ uses Classes; // ================================================================ const Version = '1.0.0'; // ---------------------------------------------------------------- const ccfCode_CE_Initialize = 100; ccfCode_CE_GetInterfaceVersion = 101; ccfCode_CE_GetVersion = 105; ccfCode_CE_SetConfig = 110; ccfCode_CE_SetParameter = 115; ccfCode_CE_SetOEMInfos = 116; ccfCode_CE_GetDocPath = 120; ccfCode_CE_SetDocPath = 130; ccfCode_CE_GetDocCount = 200; ccfCode_CE_GetBlob = 300; ccfCode_CE_AddField = 400; ccfCode_CE_AddTableData = 450; ccfCode_CE_AddBlob = 500; ccfCode_CE_Reset = 550; ccfCode_CE_Convert = 600; ccfCode_CE_StartStack = 700; ccfCode_CE_EndStack = 710; ccfCode_CE_CallCfgDlg = 800; ccfCode_CE_GetConfig = 850; ccfCode_CE_Finalize = 900; // ---------------------------------------------------------------- const ccfCode_FB_Common = 100; // ================================================================ function ccConvert( fCode : LongInt; fData : PChar; fSize : LongInt; Msg : PChar ) : LongInt; begin Result := 0; try case fCode of // --------------------------------- // Initialisierung // --------------------------------- ccfCode_CE_Initialize : begin CoInitialize(nil); end; // --------------------------------- // Get Version // --------------------------------- ccfCode_CE_GetVersion : begin strpcopy(fData,GetProgramVersion); end; // --------------------------------- // Konfiguration übergeben // --------------------------------- ccfCode_CE_GetInterfaceVersion: begin // Feld- und Positionsdatenübergabe aktivieren strpcopy(fData,'3'); end; // --------------------------------- // Konfiguration übergeben // --------------------------------- ccfCode_CE_SetConfig : begin end; // --------------------------------- // Parameterübergabe // --------------------------------- ccfCode_CE_SetParameter : begin end; // --------------------------------- // OEM Infos übergeben // --------------------------------- ccfCode_UX_SetOEMInfos : begin end; // --------------------------------- // Index // --------------------------------- ccfCode_CE_AddField: begin end; // --------------------------------- // Positionsdaten // --------------------------------- ccfCode_CE_AddTableData: begin end; // --------------------------------- // Reset // --------------------------------- ccfCode_CE_Reset : begin end; // --------------------------------- // Dokumentablage // --------------------------------- ccfCode_CE_GetDocPath : begin end; // --------------------------------- // Blobs // --------------------------------- ccfCode_CE_AddBlob : begin end; // --------------------------------- // Blobcount abfragen // --------------------------------- ccfCode_CE_GetDocCount : begin end; // --------------------------------- // Blobs abfragen // --------------------------------- ccfCode_CE_GetBlob : begin end; // --------------------------------- // Konvertierung // --------------------------------- ccfCode_CE_Convert : begin end; // --------------------------------- // Schliessen // --------------------------------- ccfCode_CE_Finalize : begin end; // --------------------------------- // Konfigurationsdialog öffnen // --------------------------------- ccfCode_CE_CallCfgDlg : begin end; // --------------------------------- // Konfiguration abfragen // --------------------------------- ccfCode_CE_GetConfig : begin end; end; except on e: exception do begin strpcopy(msg,e.classname + ' - ' + e.Message); Result := -1; end; end; end; // ================================================================ // clarc final builder Engine Test Function // ================================================================ function ccBuildTest( fCode : LongInt; fData : PWideChar; Msg : PWideChar ) : LongInt; begin Result := -1; case fCode of // --------------------------------- // Common // --------------------------------- ccfCode_FB_Common: begin // Test something... Result := 0; end; end; end; // ================================================================ Exports ccConvert, ccBuildTest; // ================================================================ begin end.