GetAttachmentsFromDms

Uložení příloh z enTeam DMS na disk

Popis

Skript provede vyhledávací dotaz do archivu enTeam DMS a pro vyhovující dokumenty uloží přílohy na disk.
declare function Dms_ExecuteQuery dll "ActualDocument" (string, var integer, pointer): integer
declare function Dms_GetDocument dll "ActualDocument" (integer, integer): integer
declare function DmsDocument_GetAspectByName dll "ActualDocument" (integer, string, var integer): string
declare function DmsDocument_GetAttachmentCount dll "ActualDocument" (integer): integer
declare function DmsDocument_GetAttachment dll "ActualDocument" (integer, integer): integer
declare function DmsAttachment_GetFile dll "ActualDocument" (integer, string): integer
declare function Dms_Release dll "ActualDocument" (integer): integer
declare function DmsAttachment_GetStrProperty dll "ActualDocument" (integer, string, var integer): string

script GetXFromMdms (): boolean
var
  DocCount: integer // Počet dokumentů
  QryRes, DocDesc, Attachment: integer // Identifikátory objektů
  I, J: integer // Řídící proměnné
  AspIndex: integer // Index aspektu
  AspValue: string  // Hodnota aspektu
  IntSuccess: integer // Výsledek zpracování
  AttCount: integer // Počet příloh dokumentu
  FileName: string // Soubor na disku
  AttName: string // Název přílohy dokumentu
begin
  QryRes := Dms_ExecuteQuery("dokument_nazev=""*Logo*""", DocCount, actualdocument)
  if QryRes > 0 then
    for I := 0 to DocCount - 1 do
      DocDesc := Dms_GetDocument(QryRes, I)
      if DocDesc > 0 then
        AspValue := DmsDocument_GetAspectByName(DocDesc, "dokument_nazev", AspIndex)
        if AspIndex > -1 then
          write(AspValue)
        else
          write("Tento aspekt neexistuje")
        end

        AttCount := DmsDocument_GetAttachmentCount(DocDesc)
        for J := 0 to AttCount - 1 do
          Attachment := DmsDocument_GetAttachment(DocDesc, J)
          if Attachment > 0 then
            // AttCreatedBy := DmsAttachment_GetStrProperty(Attachment, "CreatedBy", IntSuccess)
            // AttType := DmsAttachment_GetStrProperty(Attachment, "Type", IntSuccess)
            AttName := DmsAttachment_GetStrProperty(Attachment, "Name", IntSuccess)
            FileName := "c:\Temp\Dms\" + AttName
            IntSuccess := DmsAttachment_GetFile(Attachment, FileName)
            write(FileName)
          else
            write("Příloha nebyla nalezena")
          end
        end
      end
    end
    Dms_Release(QryRes)
  end
end