6.3.4. Code exécuté localement dans CADconnector (VBS)

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.

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

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.

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

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