4.21.2.4. Codice eseguito localmente nel CADconnector (VBS)

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".

Esempio

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.

Esempio

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.

Esempio

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