Stran 1 od 1
Uporaba spremenljivk v nalogi (Convert Task) za pretvorbo datotek
Objavljeno: 24 Mar 2016, 09:12
Napisal/-a caddy
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
Objavljeno: 24 Mar 2016, 09:52
Napisal/-a ssotlar
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".
- 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.
- task_2.JPG (11.45 KiB) Pogledano 9815 krat
- Pod sekcijo deklaracij spremenljivk (vrstice z "Dim" na vrhu) dodamo naslednje:
- task_3.JPG (29.04 KiB) Pogledano 9815 krat
- 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 (48.33 KiB) Pogledano 9815 krat
- 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 (37.64 KiB) Pogledano 9815 krat
- 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 (32.41 KiB) Pogledano 9815 krat
- 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 (39.66 KiB) Pogledano 9815 krat
Ko se naloga zažene se mora sedaj v ime datoteke zapisati vrednost spremenljivke "Number".
- task_8.JPG (25.69 KiB) Pogledano 9815 krat