@ScanDB
Syntax
@ScanDB(DBHANDLE1;FORMULA2;SINCE3;NOTECLASSES4);
@ScanDB(DBHANDLE1;FORMULA2;SINCE3;NOTECLASSES4;MODUS5);
Beschreibung
Sucht alle Dokumente in der Datenbank mit dem DBHANDLE DBHANDLE1 die der Selection-Formula TEXT FORMULA2 entsprechen, vor dem Zeitpunkt TD SINCE3 in dieser DB geändert wurden und in NOTECLASSES NOTECLASSES4 enthalten sind. Sollen die Dokumente unabhängig von ihrer letzten Änderung selektiert werden liefert die @Funktion @AnyAllDay den passenden Zeit-Datums-Wert (siehe @AnyDay/@AllDay/@AnyAllDay). Zurückgegeben wird eine IDLIST mit den NoteIDs der selektierten Dokumente.
(Bei APIEngine <V2.10 wurde der Datentyp FLOATLIST zurückgegeben (siehe LIMITS). Ab V2.10 wird der Datentyp IDList zurückgegeben.
Da auf den Datentyp IDList nicht alle @Funktionen angewendet werden können, die auf den Datentyp FLOATLIST angewendet werden können, kann zur Kompatibilitätssicherung mit dem NOTES.INI Eintrag APIVersionModus eine prä V2.10 Version simuliert werden.)
Es ist auch möglich das Domino-Directory mit dieser @Function zu scannen (dazu einen Pseudo-DBHANDLE über @OpenDB mit einem Leestring "" erzeugen).
In diesem Fall wird über FN NOTECLASSES4 gesteuert, welche Files gefunden werden sollen.
Der Rückgabe-Wert ist in diesem Fall immer eine HUGETEXTLIST und die FORMULA2 wird ignoriert, sollte aber mit "SELECT @All" trotzdem angegeben werden.
NOTECLASSES4:
DEC BIT Bedeutung
00000 XX No Notes keine Dokumente
00001 01 Documents Daten-Dokumente
00002 02 Policy-Note Über-DB-Dokument
00004 03 Form-Note Masken-Design-Dokumente
00008 04 View-Note Ansicht-Design-Dokumente
00016 05 Icon-Note Piktogramm-Dokument
00032 06 Design-Collection-Note Ansicht-Dokumente
00064 07 ACL-Info-Note ACL-Info-Dokument
00128 08 Help-Index-Note
00256 09 Help-Note Hilfe-DB-Dokument
00512 10 Filter-Note Macro-Design-Dokumente
01024 11 Feld-Note Feld-Design-Dokumente
02048 12 Replication-Note Replikations-Dokumente
04096 13 Privat_Design Privat-Design-Dokumente
32768 16 Default-Note of Each Von jedem das Vorgabe-Dokument
32767 01-15 Notes Alle Dokumente
32766 02-15 All Non-Document-Notes Alle nicht Daten-Dokumente
Um mehrere Dokumenten-Klassen anzugeben werden die Werte der betreffenden Klassen addiert oder durch @BitVektor aufgebaut.
NOTECLASSES4 (für den Fall eines Directory-Scans):
Types:
DEC Bedeutung
00000 FILE_ANY alle Dateitypen
00001 FILE_DBREPL alle DBs die repliziert werden könnten
00002 FILE_DBDESIGN alle DBs die Templates sein könnten
00003 FILE_DBDESIGN alle Mail-Box-DBs (MAIL.BOX, SMTP.BOX, …)
00004 FILE_DBANY alle DBs (NS?)
00005 FILE_FTANY alle NTF-DBs (NT?)
00006 FILE_MDMTYPE Modem-Command-Files (MDM)
00007 FILE_DIRSONLY Nur Verzeichnisse
00008 FILE_VPCTYPE Virtual-Port-Command-Files (VPC)
00009 FILE_SCRTYPE COMM-Port-Script-Files (SCR)
00010 FILE_ANYNOTEFILE absolut alle Notes-BDs (NS?, NT?, BOX)
00011 FILE_UNIQUETEMP Container und Sort-Temp-Files (DTF)
00012 FILE_MULTICLN Multi-User-Cleanup-Files (CLN)
00013 FILE_SMARTI alle SMARTICON-Files (SMI)
00014 FILE_DBREP_REDIR FILE_DBREPL und database-redirects
Flags:
HEX DEC BIT Bedeutung
0100 00256 09 FILE_SKIPDAOS DAOS-Repository nicht durchsuchen
0200 00512 10 FILE_SKIPJS HTTP-JavaScript-Verzeichnisse nicht durchlaufen
1000 04096 13 FILE_LINKSONLY alle Verzeichnisse, linked Files und linked Directories
2000 08192 14 FILE_RECURSE rekurive Suche in den Unterverzeichnissen
4000 16384 15 FILE_NOUPDIRS die Rücksprungverzeichnisse (..) nicht mit zurückgeben
8000 32768 16 FILE_DIRS Unterverzeichnisse und normale Files zurückgeben
Es kann nur ein Type, aber mehre Flags angegeben werden. Die Werte müssen dafür einfach addiert werden.
MODUS5:
0= Wie ohne Angabe
1= Es wird auf jedenfall der Datentyp IDList zurückgegeben, unabhängig von der APIVersionModus(NOTES.INI) Einstellung.
2= Es wird eine UNIDList zurückgegeben (ab V3.00).
LIMITS:
bei FLOATLIST als Rückgabe maximal 8063 Elemente -> Datentyp FLOATLIST.
Beispiel: @ScanDB(DBHANDLE1;FORMULA2;SINCE3;NOTECLASSES4)
DBHANDLE1:=@OpenDB("TEST.NSF");
FORMULA2:="SELECT Form=\"TEST FORM\" & Category=\"Kat1\"";
@LogReport(@ScanDB(DBHANDLE1;FORMULA2;@AnyAllDay;32767));
DBHANDLE1:=@CloseDB(DBHANDLE1);
Es wird eine Datenbank geöffnet, alle Dokumente (unabhängig von ihrem Erstellungsdatum) ausgewählt, die im Feld Form den Inhalt "TEST FORM" und im Feld Category den Inhalt "Kat1" haben, deren NoteIDs ausgeben und schließlich die Datenbank wieder geschlossen.
