Le
CadConnector può eseguire script che vengono eseguiti in $CADENAS_SETUP\scripts\cadconnector\web
sono depositati.
Un metodo che può essere eseguito deve essere una funzione e accettare un parametro "contesto".
Le possibili parti (membri) dell'oggetto "Context" sono le seguenti: Mident, DialogResult, DialogDefinition, MailTemplate, ErrorDetails
Esistono diversi casi d'uso in cui tale funzione può essere richiamata, ad esempio per verificare/arricchire i dati della finestra di dialogo "add2db".
Ganci
le finestre di dialogo "Add2db" e "Request by mail" possono essere configurate in erpcustom.cfg
divenire:
[WEB_CALLBACKS] BeforeShowModule= BeforeShowFunction= BeforeCommitModule= BeforeCommitFunction=
Essi
Deve specificare il nome del file VBS/VBB e il nome della funzione da chiamare
sotto $CADENAS_SETUP\scripts\cadconnector\web
specificare.
Il "Gancio" mostrato sopra potrebbe modificare i dati/struttura del dialogo e, ad esempio, precompilare i valori o addirittura cambiare la definizione del dialogo, eventualmente disattivando alcuni campi. Per fare ciò, è necessario modificare la parte "DialogueDefinition" del parametro "context". Per maggiori dettagli, consultare la documentazione VBS di "prxWebDialogue".
function PreProcessAdd2DbDialog(context)
dim dlg = context.DialogDefinition
dim priceField = dlg.GetRootContainer().FindElement("price")
'get price from SAP
priceField.Value = CStr(25)
set PreProcessAdd2DbDialog = dlg
end function
Il "Gancio" passato in precedenza può controllare l'input dell'utente del dialogo utilizzando la parte DialogResult. Per maggiori dettagli, vedere prxWebDialogResult.
function VerifyInput(context)
dim price = CInt(context.DialogResult.Values.Item("price"))
if (price < 1000) then
context.ErrorDetails = "Test error!"
VerifyInput = false
else
VerifyInput = true
end if
end function
Ci sono anche altre situazioni in cui potrebbe essere visualizzata una finestra di dialogo web, ad esempio: i callback OnExport in CadConnector (come PSOL) potrebbero creare una finestra di dialogo web (prxWebDialog) e far sì che 3Dfindit la visualizzi tramite una chiamata Execute.
function OnExportCad()
dim dlg = CreateObject("cnstools.webdialog")
dlg.Title = "Enter value"
dim container = dlg.getRootContainer()
dim lbl = container.addLabel("lbl1")
lbl.Label = "Value: "
container.addTextEdit("id1")
dlg.addButton("ok", "OK", "submit")
dlg.addButton("cancel", "Cancel", "cancel")
dim result = dlg.execute()
stdprint(result.action)
stdprint(result.values.Item("id1"))
end function
