4.21.2.4. Code exécuté localement dans le CADconnector (VBS)

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

Exemple

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.

Exemple

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.

Exemple

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