Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek

Odgovori
caddy
Prispevkov: 426
Pridružen: 03 Mar 2014, 12:55

Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek

Odgovor Napisal/-a caddy » 24 Mar 2016, 09:12

Kako lahko v nalogi (Convert Task) uporabimo spremenljivke iz kartice datoteke, nad katero se naloga izvaja? Vrednosti spremenljivk bi radi uporabili za dodatno poimenovanje datoteke kreirane s to nalogo.
ssotlar
Prispevkov: 55
Pridružen: 16 Maj 2014, 11:59

Re: Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek

Odgovor Napisal/-a ssotlar » 24 Mar 2016, 09:52

Direktni način za uporabo vrednosti spremenljivk iz izvorne datoteke v nalogi "Convert Task" sicer ne obstaja, lahko pa to funkcionalnost realiziramo s spreminjanjem oz. dodelavo skripte, ki nalogo izvede.

Za spodnji postopek je priporočljivo osnovno poznavanje programiranja in branje programske kode. Priporočljivo je tudi, da kodo spreminjamo v nekem drugem urejevalniku (npr. Notepad++). Primer v ime kreirane PDF datoteke doda vrednost spremenljivke "Number".
  1. Odpremo "Convert task" in navigiramo na zavihek "Output File Details". V ime izhodne datoteke dodamo niz "<VariableValue>" (brez navednic) na mesto, kjer si želimo zapisati vrednost željene spremenljivke.
    task_1.JPG
  2. Klik na "Advanced Scripting Options" nam odpre skripto, ki se bo izvedla ob konvertiranju datoteke. To skripto bomo sedaj dodelali.
    task_2.JPG
    task_2.JPG (11.45 KiB) Pogledano 8999 krat
  3. Pod sekcijo deklaracij spremenljivk (vrstice z "Dim" na vrhu) dodamo naslednje:

    Koda: Izberi vse

    Dim vault As Object
    task_3.JPG
    task_3.JPG (29.04 KiB) Pogledano 8999 krat
  4. Pod deklaracijami, dodamo naslednjo funkcijo - "LoginToVault" (funkcija poskrbi da pridobimo vmesnik do zalogovnika)

    Koda: Izberi vse

    Private Sub LoginToVault()
    On Error GoTo ErrHand
    Dim strTempVaultName As String
    Dim strVaultName As String
    strTempVaultName = "<VaultPath>"
    i = Len(strTempVaultName)
    j = InStrRev(strTempVaultName, "\")
    strVaultName = Right(strTempVaultName, i - j)
    Set vault = CreateObject("ConisioLib.EdmVault")
    vault.LoginAuto strVaultName, 0
    Exit Sub
    ErrHand:
    If Not vault Is Nothing Then
     Dim errname As String
     Dim errdesc As String
     vault.GetErrorString Err.Number, errname, errdesc
     Log ("LoginToVault error" & vbCrLf & errname & vbCrLf & errdesc )
    Else
     Log "Error creating file vault interface."
    End If
    End Sub
    task_4.JPG
    task_4.JPG (48.33 KiB) Pogledano 8999 krat
  5. Pod ravno dodano funkcijo, dodamo še eno funkcijo - "GetVariableValue" (funkcija pridobi vrednost spremenljivke iz kartice trenutne datoteke)

    Koda: Izberi vse

    Private Function GetVariableValue(FilePath, VariableName, Configuration)
    On Error GoTo ErrHand
    Dim File As Object
    'Get the interface of the file (and its parent folder)
    Dim Folder As Object
    Set File = vault.GetFileFromPath(FilePath, Folder)
    'Obtain the variable interface
    Dim pEnumVar As Object
    Set pEnumVar = File.GetEnumeratorVariable
    Dim Value As Variant
    If pEnumVar.GetVar(VariableName, Configuration, Value) Then
     GetVariableValue = Value
     Else
     GetVariableValue = ""
    End If
    Exit Function
    ErrHand:
     Dim ename As String
     Dim edesc As String
     vault.GetErrorString Err.Number, ename, edesc
     Log "GetvariableValue error" & vbCrLf & ename & vbCrLf & errdesc
    End Function
    task_5.JPG
    task_5.JPG (37.64 KiB) Pogledano 8999 krat
  6. Poiščemo funkcijo "Sub Convert(docFileName)" in dodamo naslednje vrstice, ki pokličejo zgoraj definirani funkciji.

    Koda: Izberi vse

     'Get the vault interface
     Call LoginToVault
     'Get Variable Value
     Dim VarValue
     VarValue = GetVariableValue(docFileName, "Number", "@")
    "Number" v vrstici "VarValue = GetVariableValue(docFileName, "Number", "@")" zamenjamo z imenom tiste spremenljivke, katere vrednost želimo zapisati v ime datoteke (skupaj z navednicami).
    task_6.JPG
    task_6.JPG (32.41 KiB) Pogledano 8999 krat
  7. Poiščemo sekcijo "Build destination filenames" in dodamo naslednjo vrstico, ki <VariableValue> niz zamenja z vrednostjo spremenljivke:

    Koda: Izberi vse

    convFileName = Replace(convFileName, "<VariableValue>", VarValue)
    task_7.JPG
    task_7.JPG (39.66 KiB) Pogledano 8999 krat
Ko se naloga zažene se mora sedaj v ime datoteke zapisati vrednost spremenljivke "Number".
task_8.JPG
task_8.JPG (25.69 KiB) Pogledano 8999 krat
Odgovori