Le
CadConnector peut exécuter des scripts qui s’exécutent en $CADENAS_SETUP\scripts\cadconnector\web
sont déposés.
Une méthode que l'on peut faire fonctionner doit être une fonction et prendre un paramètre "Context".
Les parties possibles (members) de l'objet "Context" sont jusqu'à présent les suivantes : Mident, DialogResult, DialogDefinition, MailTemplate, ErrorDetails
Il existe différents cas d'application où une telle fonction peut être appelée, par exemple pour vérifier/enrichir les données de la boîte de dialogue "add2db".
Crochets
aux boîtes de dialogue « Add2db » et « request by mail » peuvent être configurées dans erpcustom.cfg
devenir:
[WEB_CALLBACKS] BeforeShowModule= BeforeShowFunction= BeforeCommitModule= BeforeCommitFunction=
Ils
Doit spécifier le nom du fichier vbs/vbb et le nom de la fonction à appeler
sous $CADENAS_SETUP\scripts\cadconnector\web
spécifier.
Le "hook" présenté précédemment pourrait modifier les données/la structure du dialogue et, par exemple, pré-remplir des valeurs ou même modifier la définition du dialogue, éventuellement en désactivant certains champs. Pour ce faire, il faut modifier la partie "DialogDefinition" du paramètre "context". Pour plus de détails, voir la documentation VBS du "prxWebDialog".
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
Le "hook" passé précédemment peut vérifier l'entrée utilisateur du dialogue au moyen de la partie DialogResult. Pour plus de détails, voir 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
Il existe d'autres situations où une boîte de dialogue Web pourrait être affichée. Par exemple, les callbacks OnExport dans CadConnector (le même que PSOL) pourraient créer une boîte de dialogue Web (prxWebDialog) et faire en sorte que 3Dfindit l'affiche par un appel 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
