UserExit und synchrones Laden
Neben der preLookupScript Option kann alternativ auch nur die Option async auf false gesetzt werden. Hierbei wird der Dialog nicht angezeigt, wenn es keine Einträge oder nur einen Eintrag gibt, außer showDialogOnSingleResult ist auf true gesetzt, dann wird der Dialog nur nicht angezeigt, wenn es keine Einträge gibt.
gefahr
Diese Option sollte nur gewählt werden, wenn davon auszugehen ist, dass die Treffermenge nicht zu groß ist, um die Ladezeit so kurz wie möglich zu halten.
vorsicht
Während das Skript läuft, erhält der User keine Rückmeldung!
Beispiel
Portalskript
Zunächst wird ein Portalskript ou.cust.tableDialog.callback.fetch angelegt:
context.enableModules();
const { tableDialog } = require("ou.sp.gadget.tableDialog");
context.returnValue = TableDialog.from([
{ id: "1", name: "name1" },
{ id: "2", name: "name2" },
{ id: "3", name: "name3" }
]).transfer();
UserExit
Im UserExit wird dieses Portalskript unter der Option script hinterlegt:
documents.sdk.exitRegistry.registerFileFieldExitCallback("ouspDemo", "mappenFeld", function (documentsContext, options) {
var fileContext = documentsContext.getFileContext()
showTableDialog({
title: "Beispieldatensätze",
script: "ou.cust.tableDialog.callback.fetchStatic",
async: false,
multiSelect: true,
success: function(selectedRows) {
if (selectedRows.length <= 0) {
return
}
var name = selectedRows[0].name
fileContext.setFileFieldValue(options.fileFieldName, name)
}
})
})