Buongiorno Giulio,
e grazie mille per la rispsota rapida. Forse ho capito l'inghippo.
devo recuperare il contenuto del campo container con il comando GetField ( $contenitore ).
Poi eseguo CryptDecrypt ( $contenutoContenitore; $chiave )
Così sembra funzionare
# -------------------------------------------------------------------------
# @ 2022 by Giorgio Ferrari Software
# -------------------------------------------------------------------------
# De-Cripta una campo container e lo mette al posto degli asterischi
# la tabella deve avere un campo container che si chiama come il campo da crittografare con l'aggiunta di _container
# ESEMPIO
#
# SE IL MIO CAMPO DA CRITTOGRAFARE SI CHIAMA "Password" devo creare anche un campo nella tabella che si chiama "Password_container" di tipo container per salvare
#
#
# Passo come parametro un Json che contiene le seguenti chiavi
# nomeCampo --> il nome del campo da de-crittografare
# contenutoCampo --> il contenuto del mio campo da de-crittografare
# chiave --> la chiave di crittografia da usare
# ESEMPIO JSON DA PASSARE :JSONSetElement ( "{}" ;
["nomeCampo" ;GetFieldName ( t_Users::Pwd ); JSONString];
["contenutoCampo" ;t_Users::Pwd; JSONString];
["chiave" ;"prova"; JSONString]
)
#
# Prelevo il json che mi passa i parametri script
Set Variable [ $par ; Value: JSONFormatElements ( Get ( ScriptParameter ) ) ]
Set Variable [ $nomeCampo ; Value: JSONGetElement ( $par;"nomeCampo" ) ]
Set Variable [ $contenutoCampo ; Value: JSONGetElement ( $par;"contenutoCampo" ) ]
Set Variable [ $chiave ; Value: JSONGetElement ( $par;"chiave" ) ]
#
# controllo che il valore del campo contenga 10 asterischi
If [ $contenutoCampo = "**********" ]
# Imposto il nome del campo contenitore da dove prelevare il file crittografato
Set Variable [ $contenitore ; Value: $nomeCampo & "_container" ]
Set Variable [ $contenutoContenitore ; Value: GetField ( $contenitore ) ]
# Eseguo la de-crittografia
Set Error Capture [ On ]
Set Variable [ $dec ; Value: CryptDecrypt ( $contenutoContenitore; $chiave ) ]
If [ Get ( LastError )=0 ]
Set Field By Name [ $nomeCampo ; $dec ]
Set Field By Name [ $contenitore ; "" ]
Exit Script [ Text Result: ]
End If
Else
Show Custom Dialog [ "Error" ; "nessun dato presente" ]
Exit Script [ Text Result: ]
End If
#
#
#
#
#
#
#