Z-SCAN11

Dieses Dokument behandelt die folgenden Themen:


Beschreibung

Eine bestimmte Zeichenkette (Suchwert) in einem Dokument suchen.

Die folgenden Dokumentelemente können nach dem Suchwert durchsucht werden: Beschreibung, Dokumentrumpf, Begleitschreiben, Anlagen und Notizen. Dies ist von dem Wert abhängig, der im Parameter Zu-durchsuchende-Elemente angegeben wird.

Durchsucht werden nur Dokumente und Anlagen mit den Dokumentformaten 0 (Txt) und 1 (Cnf).

Dieses Subprogramm durchsucht zuerst die Beschreibung, dann den Begleitschreibentext, den Dokumentrumpf, die Anlagen und zum Schluß die Notizen.

Dieses Subprogramm gibt keine Suchwerte aus, die eine Zeile überschreiten. Wenn zum Beispiel eine Instanz des Suchwertes John Eshberry in Zeile 22 beginnt und in Zeile 23 endet, wird diese Instanz nicht ausgegeben.

Wenn Sie den Parameter Suche-mit-Muster markieren, können Sie den Suchwert als Muster definieren. In diesem Fall kann eines der folgenden Symbole im Suchwert enthalten sein:

  • Punkt (.), Fragezeichen (?) oder Unterstrich (_). Diese Symbole werden verwendet, wenn einzelne Positionen ignoriert werden soll. Beispiel: wenn C?????M als Suchwert definiert ist, können die Zeichenketten CONFORM und Cadmium gefunden werden.

  • Stern (*) oder Prozentzeichen (%). Diese Symbole werden verwendet, wenn mehrere aufeinander folgende Positionen ignoriert werden sollen. Beispiel: wenn C*M als Suchwert definiert ist, können die Zeichenketten Chrom, Cham, CD-ROM und auch Champagner gefunden werden.

Die Verarbeitungslogik des Parameters Suche-mit-Muster basiert auf dem Natural-Statement EXAMINE und dessen Option PATTERN. Weitere Informationen hierzu finden Sie der Natural-Dokumentation.

Wenn keine Instanz des Suchwerts gefunden wird, wird der Return-Code 90 ausgegeben.

Jede Textzeile, die den Suchwert enthält, wird im Array Textliste ausgegeben.

Sie sollten dieses Subprogramm solange iterativ aufrufen, bis der Return-Code 77 darauf hinweist, dass das Dokument, einschließlich aller Begleitschreiben, Anlagen und Notizen durchsucht wurde.

Anmerkungen:

  1. Um ein Objekt auszugeben, das im Fach Posteingang, Tageskopien oder Papierkorb abgelegt ist, müssen Sie die ISN übergeben, die von einem vorherigen API-Subprogramm ausgegeben wurde.
  2. Ein Dokument, das keinen Namen hat (d.h. ein Dokument, das über seine Beschreibung identifiziert wird), kann nur über die ISN aufgerufen werden.

Parameter

Parameter Format Ein Aus Bemerkung
Return-Code N2 O X Eingabe -1: kein ET.
Buero A8 E   Das Büro, in dem das zu durchsuchende Dokument enthalten ist.
Passwort A8 E   Das Passwort des o.g. Büros.
Dokumentname A32 E*   Der Name des Dokuments, das Sie durchsuchen wollen. Entweder Dokumentname oder ISN, nicht beides.
ISN P10 E*   Die ISN des Dokuments, das Sie durchsuchen wollen. Entweder ISN oder Dokumentname, nicht beides.
Suchwert A32 E   Zeichenkette, nach der im Dokument gesucht werden soll.
Suche-mit-Delimiter A1 O   Wenn markiert, wird die Suche auf ganze Wörter beschränkt (d.h. auf Zeichenketten, die nicht von Leerzeichen oder beliebigen alphanumerischen Zeichen umgeben ist). Wenn nicht markiert, wird jede Zeichenkette gefunden, die dem Suchwert entspricht, und zwar unabhängig von den Zeichen, die direkt vor oder hinter der Zeichenkette stehen.
Suche-mit-Muster A1 O   Wenn markiert, wird der Suchwert als Muster verwendet. In diesem Fall geben bestimmte Symbole im Suchwert (Punkt, Fragezeichen, Unterstrich, Stern und Prozentzeichen) die Position(en) an, die ignoriert werden soll(en).
Gross-/Kleinschreibung-unterscheiden A1 O   Wenn markiert, wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden. Wenn nicht markiert, werden alle Buchstaben, unabhängig von Groß- und Kleinschreibung, gefunden.
Zu-durchsuchende-Elemente A5 E   Die Elemente des Dokuments, die durchsucht werden sollen: D=Beschreibung (Description), B=Dokumentrumpf (Body of the document), C=Begleitschreiben (Cover note), E=Anlage (Enclosed document), N=Notiz. Beispiel: DBC bedeutet, dass nur Beschreibung, Dokumentrumpf und Begleitschreiben durchsucht werden sollen.
Dokumentformat A1   X Format des Dokumentrumpfes. Siehe Dokumentformate.
Zeilen-in-Textliste P2   X Anzahl der Textzeilen, die mit dem aktuellen Subprogrammaufruf im Parameter Textliste ausgegeben werden.
Textliste (20)
  Durchsuchtes-Dokumentelement A1   X D=Beschreibung (Description), B=Dokumentrumpf (Body of the document), C=Begleitschreiben (Cover note), E=Anlage (Enclosed document), N=Notiz.
  Element-Sequenznummer P3   X Für Beschreibung und Dokumentrumpf wird die Sequenznummer 1 ausgegeben. Bei allen anderen Elementen des Dokuments wird die jeweilige Sequenznummer des Begleitschreibens, der Anlage oder der Notiz ausgegeben.
  Zeile-Sequenznummer P7   X Interne sequentielle Zeilennummer eines Elements. Für den Dokumenttext ist dies die Nummer, die im "Dokument zeigen"-Schirm angezeigt wird.
  Anzahl-gefundene-Zeichenketten P3   X Anzahl, wie oft eine Zeichenkette in dieser Zeile gefunden wurde.
  Textzeile A250   X Textzeile, in der der Suchwert gefunden wurde.
Work-Parameter-1 A240     Für den internen Gebrauch. Siehe Work-Parameter.
Work-Parameter-2 A91     Für den internen Gebrauch. Siehe Work-Parameter.

Return-Codes

00 Erfolg
02 Ungültiger Büroname oder - nur im Batch-Betrieb - Büro gesperrt
03 Falsches Passwort
04 ISN wurde nicht gefunden
08 Geben Sie entweder ISN oder Name ein - nicht beides
09 ISN zeigt nicht auf das richtige Objekt
15 Ungültiger Administratorstatus
51 Ungültiger Name
53 Das gewünschte Objekt existiert nicht
57 Das Dokument enthält keinen Text
77 Ende des Objekts
90 Falsches Element
91 Zeichenkette nicht gefunden
92 Geben Sie einen Suchwert an

Subprogramme

Z-120
Z-122
Z-123
Z-165
Z-175
Z-194
Z-197
Z-222
Z-223
Z-400
Z-401
Z-1200&0

Beispiel

0010 *
0020 * Zeichenkette in allen Dokumenten eines Bueros suchen
0030 *
0040 *
0050 DEFINE DATA LOCAL
0060 1 DIS-RETURN-CODE      (N2)
0070 1 BUERO                (A8)
0080 1 PASSWORT             (A8)
0090 1 FACHNAME             (A15)
0100 1 ORDNERNAME           (A15)
0110 1 ORDNERNUMMER         (N5)
0120 1 FACHNUMMER           (N5)
0130 1 FACHABLAGEFOLGE      (N1)
0140 1 STARTWERT            (A32)
0150 1 ANZAHL               (N2)
0160 1 DOKUMENTLISTE        (1:20)
0170   2 ISN                (P8)
0180   2 DOKUMENTNAME       (A32)
0190   2 BESCHREIBUNG       (A60)
0200   2 DOKUMENTFORMAT     (A1)
0210   2 ABGELEGT-IN-ORDNER (A15)
0220   2 DATUM-ABGELEGT     (N8)
0230   2 ABSENDER-/EMPFAENGERNAME (A20)
0240   2 POSTZAEHLER        (N7)
0250 1 WORK-PARAMETER       (A49)
0260 *
0270 1 SCAN-RETURN-CODE     (N2)
0280 1 SCAN-DOKUMENTNAME    (A32)
0290 1 SCAN-ISN             (P10)
0300 1 SUCHWERT             (A32)
0310 1 ZU-DURCHSUCHENDE-ELEMENTE (A5)
0320 1 SUCHE-MIT-DELIMITER  (A1)
0330 1 SUCHE-MIT-MUSTER     (A1)
0340 1 GROSS-/KLEINSCHREIBUNG-UNTERSCHEIDEN (A1)
0350 1 SCAN-DOKUMENTFORMAT  (A1)
0360 1 ZEILEN-IN-TEXTLISTE  (P2)
0370 1 TEXTLISTE            (1:20)
0380   2 DURCHSUCHTES-DOKUMENTELEMENT   (A1)
0390   2 ELEMENT-SEQUENZNUMMER (P3)
0400   2 ZEILE-SEQUENZNUMMER   (P7)
0410   2 ANZAHL-GEFUNDENE-ZEICHENKETTEN (P3)
0420   2 TEXTZEILE          (A250)
0430 1 WORK-PAR-1           (A240)
0440 1 WORK-PAR-2           (A91)
0450 *
0460 1 #INX1                 (N2)
0470 1 #INX2                 (N2)
0480 1 ERSTER-IN-DOKUMENT    (L)
0490 1 ZEICHENKETTE-GEFUNDEN (L)
0500 END-DEFINE
0510 *
0520 INPUT (AD=I)
0530   'BUERO' BUERO /
0540   'PASSWORT' PASSWORT /
0550   'SUCHWERT' SUCHWERT /
0560   'ZU DURCHSUCHENDE ELEMENTE' ZU-DURCHSUCHENDE-ELEMENTE /
0570 *
0580 MOVE TRUE TO ZEICHENKETTE-GEFUNDEN
0590 REPEAT UNTIL DIS-RETURN-CODE EQ 77
0600   CALLNAT 'Z-DIS11'
0610     DIS-RETURN-CODE
0620     BUERO
0630     PASSWORT
0640     FACHNAME
0650     ORDNERNAME
0660     FACHNUMMER
0670     ORDNERNUMMER
0680     FACH-ABLAGEFOLGE
0690     STARTWERT
0700     ANZAHL
0710     DOKUMENTLISTE (*)
0720     WORK-PARAMETER
0730   IF DIS-RETURN-CODE NE 0 AND DIS-RETURN-CODE NE 77
0740     WRITE 'Z-DIS11 unterbrochen. Fehler-Code' DIS-RETURN-CODE
0750     STOP
0760   END-IF
0770 *
0780   FOR #INX1=1 TO 20
0790     IF ISN (#INX1) NE 0 THEN
0800       MOVE ISN (#INX1) TO SCAN-ISN
0810       MOVE TRUE TO ERSTER-IN-DOKUMENT
0820 *
0830       REPEAT UNTIL SCAN-RETURN-CODE EQ 77
0840         CALLNAT 'Z-SCAN11'
0850           SCAN-RETURN-CODE
0860           BUERO
0870           PASSWORT
0880           SCAN-DOKUMENTNAME
0890           SCAN-ISN
0900           SUCHWERT
0910           SUCHE-MIT-DELIMITER
0920           SUCHE-MIT-MUSTER
0930           GROSS-/KLEINSCHREIBUNG-UNTERSCHEIDEN
0940           ZU-DURCHSUCHENDE-ELEMENTE
0950           SCAN-DOKUMENTFORMAT
0960           ZEILEN-IN-TEXTLISTE
0970           TEXTLISTE (*)
0980           WORK-PAR-1
0990           WORK-PAR-2
1000 *
1010         DECIDE ON FIRST VALUE OF SCAN-RETURN-CODE
1020           VALUE 0, 77
1030             IF ERSTER-IN-DOKUMENT
1040               WRITE (AD=I) / '-' (79) / 'Zeichenkette in: Dokument'
1050                 DOKUMENTNAME (#INX1) (AL=21) '(siehe Text unten)'
1060               MOVE TRUE TO ZEICHENKETTE-GEFUNDEN
1070               MOVE FALSE TO ERSTER-IN-DOKUMENT
1080             END-IF
1090             FOR #INX2 1 ZEILEN-IN-TEXTLISTE
1100               WRITE TEXTZEILE (#INX2) (AL=79)
1110             END-FOR
1120           VALUE 91, 57
1130             IF ZEICHENKETTE-GEFUNDEN
1140               WRITE / '-' (79) / 'Zeichenkette nicht in:'
1150               MOVE FALSE TO ZEICHENKETTE-GEFUNDEN
1160             END-IF
1170             WRITE (AD=I) 25T 'Dokument' DOKUMENTNAME (#INX1)(AL=21)
1180             ESCAPE BOTTOM
1190           NONE VALUE
1200             WRITE 'Z-SCAN11 unterbrochen. Fehler-Code' SCAN-RETURN-CODE
1210             STOP
1220         END-DECIDE
1230 *
1240       END-REPEAT
1250       RESET SCAN-RETURN-CODE SCAN-DOKUMENTNAME WORK-PAR-1 WORK-PAR-2
1260     END-IF
1270   END-FOR
1280 END-REPEAT
1290 END