Conversion Engine API

Funktionscodes

Folgende Funktionscodes werden von der API unterstützt.

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_StartStack700Markiert den Beginn eines Dokumentstapels
ccfCode_CE_EndStack710Markiert 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

ccfCode_ES_AddField  

FieldName[DataType]=Value

ccfCode_ES_AddTableDataColumnName[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.