scan2find bietet anderen Anwendungen die Möglichkeit, über OLE auf die Daten zuzugreifen bzw. Daten hinzuzufügen.

Zum Beispiel kann ein Warenwirtschaftsprogramm Lieferscheine oder Rechnungen in scan2find ablegen oder eine Suche in scan2find starten.

Voraussetzung
Damit scan2find als OLE-Server genutzt werden kann, muss die scan2finda.exe (beachte: Nicht die scan2find.exe) nach jedem Update einmal mit dem Parameter /regserver gestartet werden. Dabei wird scan2find nicht gestartet. Am einfachsten geht der Aufruf über Start->Ausführen->Durchsuchen:
Die Eingabe könnte dann so aussehen:
c:\Programme\ASPOA GmbH\scan2finda.exe /regserver

Verwendung unter VISTA / Windows7 / Windows 8 / Windows 10
Ab Vista sind die OLE-Funktionen nur nutzbar, wenn scan2find mit dem Parameter "MitOLE" gestartet wird. die Verknüpfung zum Programm könnte dann so aussehen:
"c:\Programme\ASPOA GmbH\scan2find.exe" /MitOLE
Beim ersten Start mit diesem Parameter benötigen Sie unbedingt Adminrechte. Deshalb müssen Sie beim ersten Start mit der rechten Maustaste auf die Verknüpfung klicken und dann "Als Administrator ausführen" wählen. Die folgenden Warnhinweise müssen Sie bestätigen.
Danach kann scan2find ganz normal mit dem Parameter gestartet werden.


Verfügbare Funktionen


BringToFront bringt scan2find in den Vordergrund des Desktops


BelegartHinzufuegen(Belegart: WideString): Integer
Mit dieser Funktion können neue Belegarten in scan2find definiert werden.
Belegart
Bezeichnung für die neue Belegart
Rückgabewert
-99 = nicht eingeloggt
0 = Neue Belegart wurde angelegt
-1 = Leerstring
-2 = Belegart existiert
-3 = Fehler beim Speichern


BelegartLesenErste: OleVariant (String); 
Rückgabewert
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt
Leerstring = keine Belegarten im System angelegt
Bezeichnung der ersten Belegart im System


BelegartLesenNaechste: OleVariant (String); 
Nachdem mit BelegartLesenErste alle Belegarten des Systems in einen Zwischenspeicher gelesen wurden, können mit dieser Funktion alle übrigen Belegarten abgerufen werden. Sobald ein Leerstring zurückgegeben wird, sind alle Einträge abgearbeitet.
Rückgabewert
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt
Leerstring = keine weiteren Belegarten im System
Bezeichnung der Belegart


Veraltet, wird ab scan2find 6.000 nicht mehr genutzt

BelegartPartnerHinzufuegen(PNr, Belegart: WideString): Integer
Mit dieser Funktion kann einem Partner eine neue Belegart zugewiesen werden.
PNr
Eine gültige Partnernummer
Belegart
Name der Belegart, die dem Partner zugewiesen werden soll
Rückgabewert
-99 = nicht eingeloggt
0 = Neue Belegart wurde zugewiesen
-1 = PNr ungültig
-2 = Belegart ungültig


Veraltet, wird ab scan2find 6.000 nicht mehr genutzt

BelegartPartnerLesenErste(PNr WideString): Integer 
PNr
Eine gültige Partnernummer
Rückgabewert
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt
-1 = PNr ungültig
Bezeichnung der ersten Belegart des Partners


Veraltet, wird ab scan2find 6.000 nicht mehr genutzt

BelegartPartnerLesenNaechste: OleVariant (String); 
Nachdem mit BelegartPartnerLesenErste alle Belegarten des Partners in einen Zwischenspeicher gelesen wurden, können mit dieser Funktion alle übrigen Belegarten abgerufen werden. Sobald ein Leerstring zurückgegeben wird, sind alle Einträge abgearbeitet.
Rückgabewert
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt
Leerstring = dem Partner sind keine weiteren Belegarten zugewiesen
Bezeichnung der Belegart


DokumentNeu(Dateiname, Bereich, Belegart, Scandatum, Belegdatum, Bemerkung, Periode, PNr: WideString; 
LoeschOrg: Integer): Integer

Mit dieser Funktion können Dokumente in scan2find abgelegt werden. Alle Parameter müssen übergeben werden. Nur die Felder "Bemerkung" und "Periode" dürfen Leerstrings enthalten. 
Parameter Dateiname
Hier muss der Dateiname der zu importierenden Datei übergeben werden. Eine Übergabe in der Form "C:\Imports\TextDatei*.DOC" ist erlaubt. In diesem Fall wird nur die erste Datei, die dem Suchmuster entspricht importiert. Falls mehrere Dateien importiert werden sollen, sollte der Parameter LoeschOrg auf 1 gesetzt werden. Dann können Sie die Funktion so oft aufrufen, bis die Fehlermeldung "Datei nicht gefunden" zurückgegeben wird.
Parameter PNr
In diesem String können Partnernummern übergeben werden. Wenn mehrere Nummern übergeben werden, müssen diese mit ; voneinander getrennt werden. Leerzeichen sind nicht erlaubt.
Parameter LoeschOrg
Dieser Parameter entscheidet darüber, ob scan2find die übergebene Original-Datei nach der erfolgreichen Zuordnung löscht.
0 => Die Originaldatei wird nicht gelöscht
1 => Die Originaldatei wird nach erfolgreicher Übernahme gelöscht
Rückgabewert
>0 = Zuordnung erfolgreich. Die eindeutige DokumentenID wird zurückgegeben. 
-1 = Originaldatei nicht gefunden
-2 = Bereich ungültig
-3 = Belegart ungültig
-4 = Scandatum ungültig
-5 = Belegdatum ungültig
-6 = Datei-Extension nicht in scan2find registriert  (siehe Belegtypen verwalten)
-7 = Originaldatei kann nicht geöffnet werden
-9 = Mindestens eine Partnernummer nicht gefunden
-10 = Import gesperrt (Kann ab scan2find 6.000 nicht mehr vorkommen)
-20 = Datei kann nicht kopiert werden! scan2find konnte keine Kopie von der Originaldatei erstellen.
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


LeseFensterStatus :Integer ermittelt den aktuellen Fensterstatus von scan2find
Rückgabewert
0 = Fensterstatus normal
1 = Fensterstatus minimiert
2 = Fensterstatus maximiert
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


NeueSuche(SuchText: WideString) :Integer 
Löst in scan2find eine Suche aus. Für die Suche über OLE wird in scan2find ein eigenes Fenster erzeugt. Die Suche erfolgt immer in diesem Fenster. Ist das Fenster bereits gefüllt, so wird es vor der Suche geleert. Hat der Anwender das Fenster geschlossen, so wird ein Neues erzeugt.
Parameter Suchtext
Der String kann mehrere Suchbegriffe enthalten, die mit ; getrennt werden müssen. Am Ende muss kein ; stehen. Folgende Suchbegriffe sind möglich:
PNr; VName; Name; Zusatz; Str; HsNr; Suchname; Nation; PLZ; Ort; EMail; Internet; Tel; Tel2; Fax; Fax2; Handy; WVLDatVon; WVLDatBis; BelDatVon; BelDatBis; ScanDatVon; ScanDatBis; Bemerkung; Belegart (Text muss der Schreibweise in scan2find exakt entsprechen)
Beispiel: NeueSuche('Name=Müller;VName=Hans');
Rückgabewert
>0 = Anzahl der gefundenen Belege
-1 = Suchstring hat Länge 0
-2 = Suchstring enthält kein =
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


NeueSucheMini(SuchText: WideString) :Integer 
Diese Funktion arbeitet wie NeueSuche, hat aber weniger Suchparameter! Bei der Minisuche sind nur folgende Parameter möglich (überzählige werden ignoriert):
PNr; VName; Name; Zusatz; Suchname; Nation; PLZ; Ort; EMail; Internet; Tel; Tel2; Handy; BelDatVon; BelDatBis; Bemerkung; Belegart (Text muss der Schreibweise in scan2find exakt entsprechen)
Rückgabewert
>0 = Anzahl der gefundenen Belege
-1 = Suchstring hat Länge 0
-2 = Suchstring enthält kein =
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


NeueSucheNurListe(SuchText: WideString) :Integer 
Diese Funktion arbeitet wie NeueSuche, es werden aber nur die Ergebnisse angezeigt. Die Überschrift des Fensters enthält den Suchtext. Keine Eingabefelder oder sonstige Buttons. Bei den Informationen zum Beleg werden nur die Bemerkungen angezeigt. Alle anderen Optionen (Wiedervorlage, Weiterleitung, Historie, Korrektur, Vorgangsverwaltung) sind ausgeblendet.
Rückgabewert
>0 = Anzahl der gefundenen Belege
-1 = Suchstring hat Länge 0
-2 = Suchstring enthält kein =
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


PartnerNeu(PNr: String 10;Partnernummer 
Anrede: String 30; Anrede Adresse
AnredeBf: String 256; Briefanrede
VName: String 30; Vorname
Name: String 30; Nachname/Firma
Suchname: String 30; Suchname
Zusatz: String 30; Zusatztext, 3. Zeile Adresse
Str: String 30; Straße
HsNr: String 10; Hausnummer
Nation; : String 10; 
PLZ: String 10; Postleitzahl
Ort: String 30; 
Ortsteil: String 30; 
Tel: String 30; Telefon
Tel2: String 30; Telefon 2
Fax: String 30; 
Fax2: String 30; 
Handy: String 30; 
eMail: String 70; 
eMail2: String 70; 
Internet: String 70; 
Internet2: String 70; 
Geburtstag: String 30;(Format TT.MM.JJJJ)
IstNatPers: Integer; (0=nein, 1=ja) Natürliche / Juristische Person
EigeneKdNr: String 20; Eigene Kundennummer
EigeneLNr: String 20; Eigene Lieferantenummer
BankKonto: String 14; Kontonummer
BankBLZ: String 10; Bankleitzahl
BankName: String 60; 
BankBIC: String 11; 
BankIBAN: String 22; 
UStID: String 20; UmsatzsteuerID
Bemerkung: WideString;(max. 64000 Bytes) Bemerkung zum Dokument
IstKunde: Integer; (0=nein, 1=ja)
IstLieferant: Integer; (0=nein, 1=ja)
IstMitarbeiter: Integer; (0=nein, 1=ja)
IstSonstPart: Integer; (0=nein, 1=ja)
IstAktiv: Integer; (0=nein, 1=ja) nur aktiven Partnern können Dokumente zugeordnet werden
Warnung: Integer; (0=nein, 1=ja) Warnkennzeichen in der scan2find Adressanzeige
): Integer

Mit dieser Funktion können neue Partner in scan2find angelegt werden. Alle Parameter müssen übergeben werden. Die Felder PNr, Name und Suchname sind Pflichtfelder und müssen gefüllt sein. Alle anderen Stringfelder dürfen Leerstrings enthalten.
Rückgabewert
0 = alles ok
1 = Partnernummer bereits vergeben
2 = Fehler beim Speichern
3 = Partnernummer fehlt
4 = Name fehlt
5 = Suchname fehlt
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


PartnerUpdate(PNr: String 10;Partnernummer 
Anrede: String 30; Anrede Adresse
AnredeBf: String 256; Briefanrede
VName: String 30; Vorname
Name: String 30; Nachname/Firma
Suchname: String 30; Suchname
Zusatz: String 30; Zusatztext, 3. Zeile Adresse
Str: String 30; Straße
HsNr: String 10; Hausnummer
Nation; : String 10; 
PLZ: String 10; Postleitzahl
Ort: String 30; 
Ortsteil: String 30; 
Tel: String 30; Telefon
Tel2: String 30; Telefon 2
Fax: String 30; 
Fax2: String 30; 
Handy: String 30; 
eMail: String 70; 
eMail2: String 70; 
Internet: String 70; 
Internet2: String 70; 
Geburtstag: String 30;(Format TT.MM.JJJJ)
IstNatPers: Integer; (0=nein, 1=ja) Natürliche / Juristische Person
EigeneKdNr: String 20; Eigene Kundennummer
EigeneLNr: String 20; Eigene Lieferantenummer
BankKonto: String 14; Kontonummer
BankBLZ: String 10; Bankleitzahl
BankName: String 60; 
BankBIC: String 11; 
BankIBAN: String 22; 
UStID: String 20; UmsatzsteuerID
Bemerkung: WideString;(max. 64000 Bytes) Bemerkung zum Dokument
IstKunde: Integer; (0=nein, 1=ja)
IstLieferant: Integer; (0=nein, 1=ja)
IstMitarbeiter: Integer; (0=nein, 1=ja)
IstSonstPart: Integer; (0=nein, 1=ja)
IstAktiv: Integer; (0=nein, 1=ja) nur aktiven Partnern können Dokumente zugeordnet werden
Warnung: Integer; (0=nein, 1=ja) Warnkennzeichen in der scan2find Adressanzeige
): Integer

Mit dieser Funktion können Adressen in scan2find aktualisiert werden. Alle Parameter müssen übergeben werden und alle Felder werden aktualisiert. Es ist nicht möglich, nur einzelne Felder zu aktualisieren. Die Felder PNr, Name und Suchname sind Pflichtfelder und müssen gefüllt sein. Alle anderen Stringfelder dürfen Leerstrings enthalten. 

Rückgabewert
0 = alles ok
1 = Partnernummer nicht vergeben
2 = Fehler beim Speichern
3 = Partnernummer fehlt
4 = Name fehlt
5 = Suchname fehlt
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


Scannen(Bereich, PNr, Belegart, BelegDatum, Periode: WideString):Integer
Mit diesem Befehl kann ein Scanfenster in scan2find gestartet werden. Alle Parameter müssen übergeben werden, können aber Leerstrings enthalten. Ist ein Wert gefüllt, so versucht scan2find die Zuordnungsmaske entsprechend auszufüllen.
Rückgabewert
0 = kein Fehler
-99 = scan2find gestartet, aber Benutzer nicht eingeloggt


Beispielcode Visual Basic:
(Eine Suche auslösen und bei Erfolg scan2find in den Vordergrund bringen)

Private Sub btnSuchen_Click()
 Dim scan2find
 Dim Treffer
 Set scan2find = CreateObject("scan2finda.s2fOLE")
 Treffer = scan2find.NeueSuche("Name=Meier;PLZ=12345")
 If Treffer > 0 Then scan2find.BringToFront
 Set scan2find = Nothing
End Sub