ModifyDocumentAddAndUploadFile

ModifyDocumentAddAndUploadFile
Main
History-Relevant
Rückgabewert
FileId
RET
LONG_NUMERIC_IDENTIFIER
>FILE.FILEID
Parameterliste
DocumentId
IN
LONG_NUMERIC_IDENTIFIER
>VERSION.DOCUMENTID
NamedValueArray
IN
NamedValue[]
 
RealFileName
IN
REALFILENAME_STRING
>FILE.REALFILENAME
FileSize
IN
LONG_NUMERIC_IDENTIFIER
>FILE.FILESIZE
MasterFileFlag
INo
BOOLEAN
>FILE.MASTERFILEFLAG
ViewerFileFlag
INo
BOOLEAN
>FILE.VIEWERFILEFLAG
ExcludeFromIndex
INo
BOOLEAN
>FILE.EXCLUDEFROMINDEX
MediaSubTypeId
INo
LONG_NUMERIC_IDENTIFIER
>FILE.MEDIASUBTYPEID
ContentOriginCd
INo
SHORT_NUMERIC_IDENTIFIER
>FILE.CONTENTORIGINCD
ByteArray
IN
JUNK_FILE_BYTE_ARRAY
MAX_JUNK_FILE_SIZE_IN_KB
AppendFileId
IN
LONG_NUMERIC_IDENTIFIER
>FILE.FILEID
FileTransferToDmsState
OUT
Enum: FileTransferToDmsState
>FILE.RECEIVINGSTATE
Kurzbeschreibung:
Dieser Service verändert einen DOCUMENT/VERSION-Eintrag indem ein neuer Eintrag in der Tabelle FILE erstellt wird.
(AppendFileId ist beim ersten JunkFile 0 und bei allen weiteren die FileId, welche als Resultat dieser Methode zurückgegeben wird.)
Zuerst wird das Document geladen. Anschliessend wird die korrekte Version zugeladen. Anhand der Version kann das Storage etabliert werden. Nun wird in einem ersten Schritt der Eintrag in die Tabelle FILE geschrieben. Nachdem in einem zweiten Schritt die Datei über das Storage physikalisch geschrieben worden ist, wird dann in einem dritten Schritt der aktuelle File-Zustand (TransferMode, UsedSize) auf der Datenbank nachgeführt.
ContentOriginCd (nur relevant für Dateien mit MediaSubtyp vom Entstehungstyp AUTOMATIC):
  • UPLOAD - Wird von diesem Service automatisch gesetzt um die Datei (da bewusster, manueller Upload) zu fixieren!
  • AUTO_CONVERSION - Kann gesetzt werden um künftig wieder von der automatischen Konvertierung zu profitieren!
Fehlerhandling/Plausibilisierung:
Generell gelten die Regeln (PK, AK, FK, Unique, NotNull) der Datenbank. Die zusätzlichen Fehler sind:
  • Aufgrund von Validator-Prüfungen (VD)
  • Wenn das Document über die DocumentId nicht gefunden wird (1)
  • Wenn die korrekte Version nicht gefunden wird (2)
  • Wenn das File über die FileId nicht gefunden wird (3/4)
  • Wenn für die korrekte Version die Modify-Rechte fehlen (5/7)
  • Wenn der FileType beim automatisch eröffnen gegen die eindeutige Extension verstösst (6)
  • Wenn der RealFileName nicht übergeben wird (8)
  • Wenn der RealFileName leer übergeben wird (9)
  • Wenn der RealFileName in der Extension abweicht (10)
  • Wenn auf dem Storage nicht genügend freier Speicher verfügbar ist (11)
  • Wenn die FileSize den Wert 0 bekommen hat (12) vor Version 15.10.03 !
  • Wenn die FileSize einen Wert grösser der maximal zulässigen Grösse bekommen hat (13)
  • Wenn für die JunkFileSize der Wert 0 berechnet wurde (14) vor Version 15.10.03 !
  • Wenn für die JunkFileSize ein Wert grösser der maximal zulässigen Grösse berechnet wurde (15)
  • Wenn beim Verknüpfen des Files die Version nicht im Zugriff ist (16)
  • Wenn der FileType nicht zugeordnet werden kann (17)
  • Wenn der FileType inaktiv ist (18)
  • Wenn der FileAccess nicht registriert ist (19)
  • Wenn der StorageDirectorAndProtector im FileAccess nicht registriert ist (20)
  • Wenn die empfangene Datei auf dem Medium grösser ist als sie deklariert wurde (21)
  • Wenn das Schreiben der Datei aufgrund des geschlossenen StorageDirectors blockiert wurde (22)
  • Wenn das Schreiben der Datei aufgrund des „ReadOnly“ StorageDirectors blockiert wurde (23)
  • Wenn das Dokument nicht ausgecheckt ist (24)
  • Wenn das Dokument nicht vom ContextUser ausgecheckt wurde (25)
  • Wenn die Version bei der Storage-Zuweisung nicht zugegriffen werden kann (26)
  • Wenn das WorkingStorage nicht zugewiesen werden kann (27)
  • Wenn die Datei nicht erweitert werden kann weil sie physikalisch nicht existiert (28)
  • Wenn UniqueFileNames des Dokuments true ist und der RealFileName auf der Version schon existiert! (29,30)
  • Wenn der Mediensubtyp nicht existiert (31)
  • Wenn der Mediensubtyp inaktiv gesetzt ist (32)
  • Wenn der Mediensubtyp vom Entstehungstyp ONREQUEST ist und somit nicht erlaubt ist! (33)
  • Wenn der Mediensubtyp auf der Version bereits schon verwendet wurde! (34)
  • Wenn der Mediensubtyp nicht zum Medienbasistyp des Dokuments passt! (35)
  • Wenn der Filetype nicht mit dem FileType des Mediensubtyps übereinstimmt! (36)
  • Wenn ContentOriginCd auf AUTO_CONVERSION gesetzt wird und der Mediensubtyp nicht AUTOMATIC ist (37)
Bemerkungen:
(1): GetDocNEx
(2): GetVrsNEx
(3): GetFileNEx
(4): ModFileNEx
(5): ModeFileInsuffPriv
(6): AddFileTypeExnNUq
(7): AddFileInsuffPriv
(8): ModDocAddFileRealFileNmMs
(9): ModDocAddFileRealFileNmIsEmpty
(10): ModDocAddAndUplFileUplBlkExtMsm
(11): ModDocAddAndUplFileUplBlkNEnoughSpace
(12): ValMinFileSizeVio
(13): ValMaxFileSizeVio
(14): ValMinJunkFileSizeVio
(15): ValMaxJunkFileSizeVio
(16): AddFileAsgVrsNEx
(17): AddFileAsgFileTypeNEx
(18): AddFileAsgFileTypeIn
(19): EnvFileAccNReg
(20): EnvStrgDirAndProtNReg
(21): EnvStrgDirAndProtFileSizeExd
(22): EnvStrgDirAndProtWriteBlkClosedStrg
(23): EnvStrgDirAndProtWriteBlkReadOnlyStrg
(24): ModDocNCheckedOut
(25): ModDocCheckoutUsrMsm
(26): ModVrsNEx
(27): ModVrsNoStrg
(28): LoadFileNEx
(29): AddFileFileNmNUq
(30): ModFileFileNmNUq
(31): AddFileAsgMdaSubTypeNEx
(32): AddFileAsgMdaSubTypeIn
(33): AddFileAsgMdaSubTypeNAlw
(34): AddFileAsgMdaSubTypeNUq
(35): AddFileAsgMdaSubTypeMsm
(36): AddFileAsgFileTypeMsm
(37): Add(Mod)FileContOgnCdAutoConvNAlw
File an das DMS übertragen:
Das File ist in diesem Fall noch nicht registriert. Beim Upload wird über den Key (DocumentId) das Dokument addressiert. Zwingend muss der RealFileName und die FileSize übergeben werden. Der ByteArray darf maximal die Grösse MAX_JUNK_FILE_IN_KB umfassen. Mit AppendFileId = 0 wird dem DMS signalsiert, dass der ByteArray der Auftrakt der Uebermittlung des neuen Files darstellt und dieses zuerst registriert werden muss.
Nach dem ersten Aufruf steht im Out-Parameter FileTransferToDmsState FILE_TRANSFER_COMPLETE sofern die Datei bereits vollständig übertragen wurde, oder FILE_TRANSFER_IN_PROGRESS wenn das DMS weitere ByteArrays erwartet, die in ähnlicher Form übertragen werden müssen (AppendFileId dann auf FileId setzen!).
Wichtig
Wichtig
MasterFileFlag/ViewerFileFlag: Es wird nur das Setzen (Wert „true“) unterstützt.
Es ist sichergestellt, dass immer genau ein File das Master-Flag bzw. das Viewer-Flag gesetzt hat.