Zum Hauptinhalt springen

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)
}
})
})