CadConnector peut exécuter des scripts stockés dans $CADENAS_SETUP\scripts\cadconnector\web
Une méthode qui peut être exécutée doit être une fonction et prendre un paramètre de contexte.
Les membres possibles de l'objet contexte sont jusqu'à présent : Mident, DialogResult, DialogDefinition, MailTemplate, ErrorDetails.
Il existe plusieurs cas d'utilisation où une telle fonction peut être appelée, par exemple pour vérifier/enrichir les données de la boîte de dialogue add2db.
Les hooks Add2db et request per mail dialog peuvent être configurés dans erpcustom.cfg :
[WEB_CALLBACKS] BeforeShowModule= BeforeShowFunction= BeforeCommitModule= BeforeCommitFunction=
Vous
doit spécifier le nom du fichier vbs/vbb sous $CADENAS_SETUP\scripts\cadconnector\web
,
et le nom de la fonction à appeler.
L'accroche précédente pourrait modifier les données/la structure de la boîte de dialogue, et par exemple pré-remplir des valeurs ou même modifier la définition de la boîte de dialogue, peut-être en désactivant certains champs. Pour ce faire, vous devez accéder et modifier le membre DialogDefinition du paramètre de contexte. Voir la documentation VBS du prxWebDialog pour plus de détails.
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
L'accroche avant l'engagement peut vérifier les entrées utilisateur du dialogue via le membre DialogResult. Voir prxWebDialogResult pour plus de détails.
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
Il existe également d'autres situations dans lesquelles un dialogue web pourrait être affiché. Par exemple, les callbacks OnExport dans CadConnector (le même que PSOL) pouvaient créer un WebDialog (prxWebDialog) et permettre à 3df de l'afficher en l'appelant à s'exécuter sur lui.
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