Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek
Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek
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.
Re: Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek
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".
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".
- 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.
- Klik na "Advanced Scripting Options" nam odpre skripto, ki se bo izvedla ob konvertiranju datoteke. To skripto bomo sedaj dodelali.
- Pod sekcijo deklaracij spremenljivk (vrstice z "Dim" na vrhu) dodamo naslednje:
Koda: Izberi vse
Dim vault As Object
- 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
- 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
- Poiščemo funkcijo "Sub Convert(docFileName)" in dodamo naslednje vrstice, ki pokličejo zgoraj definirani funkciji.
"Number" v vrstici "VarValue = GetVariableValue(docFileName, "Number", "@")" zamenjamo z imenom tiste spremenljivke, katere vrednost želimo zapisati v ime datoteke (skupaj z navednicami).
Koda: Izberi vse
'Get the vault interface Call LoginToVault 'Get Variable Value Dim VarValue VarValue = GetVariableValue(docFileName, "Number", "@")
- 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)