Zum Hauptinhalt springen

Einsatz beim Kunden

Die Wahrscheinlichkeit, dass der TableResultDialog verwendet wurde ist sehr hoch. Um zu prüfen, ob die Komponente verwendet wird, müssen folgende Dateien auf deren Inhalt geprüft werden:

  • Workflow-ext/js/ou/cust/callback-*.js

Enthält eine der Dateien folgenden Aufruf

showTableResultDialog(...)
// also z. B.
showTableResultDialog(config, onSuccessCallback, onErrorCallback, options, onCloseCallback)

oder

documents.sdk.exitRegistry.registerFileFieldExitCallback("manGutschriften", "Kundennummer", function(documentsContext, options) {

// Hole Werte
var searchValue = documentsContext.getFileContext().getFileFieldValue("Kundennummer");

// Initial Config
var config = {
// WICHTIG: Labels, Felder, Columns müssen in der gleichen Reihenfolge sein
// Je nach dem, welches Feld in der Tabelle nicht angezeigt/in der Mappe nicht gefüllt werden soll,
// muss dieses bei labels oder fields leer gelassen werden ("")
labels: ["Kundennummer", "Kundenname"], // Spalten in Html Tabelle
fields: ["Kundennummer", "Kundenname"], // Felder in Documents
columns: ["Kundennummer", "Kundenname"], // Spalten in DB

// SQL Abfrage
db: "easy",
table: "tblKunden",
where: "Kundennummer LIKE '%" + searchValue + "%'",
orderBy: "Kundenname ASC",
// Maximale Treffer die geladen werden, darüber
maxCountToDisplay: 400,
rowsPerPage: 10, // [optional] Default 10

title: "Kunde auswählen", // Titel des Fensters
width: 1200, // Breite des Dialogs
height: 800, // Höhe des Dialogs

// Zusätzliche Einstellungen
// Art der Auswahl beim UserExit. WICHTIG: Beim onSuccessCallback muss hier anders reagiert werden!
multiSelect: false, // [optional] Default false
emptyResult: { // [optional] Verhalten bei leerem Ergebnis
message: "", // Bei leerem Ergebnis, Meldung als Dialog anzeigen
hideTable: false, // Bestimmt ob die leere Tabelle angezeigt werden soll (message: "" erforderlich)
where: "" // Abweichende where-Bedingung falls das erste Ergebnis leer ist (message: "" erforderlich)
}
};

// Einzelnes Feld setzen
documentsContext.getFileContext().setFileFieldValue("Kundennummer", "1");

// Bestimmte Felder mit Werten setzen
documentsContext.getFileContext().setFileFieldValues({
"Kundennummer": "1",
"Kundenname": "14"
});

// Alle unter config.fields definierten Felder leeren
clearAllFieldsWithBlank(config.fields, "", documentsContext);

// Felder leeren, wenn keine Treffer
if (searchValue.length == 0) {
clearAllFieldsWithBlank(config.fields, "", documentsContext);
return;
}

var onSuccessCallback = function(values) {
// Tabellenzeile mit neuen Werten befüllen

if (config.multiSelect) {
// Beispiel <<multiSelect>> => true
values.forEach(function(jsonValue) {
// jsonValue besitzt den Wert der gerade iterierten Zeile
jsonValue.ouspKundennummer;
});
} else {
// Beispiel <<multiSelect>> => false
documentsContext.getFileContext().setFileFieldValues(values);
}
}

// optional
var onErrorCallback = function() {
// Fehlerhandling
}

var onCloseCallback = function() {
// User hat im Dialog auf das X geklickt. Es wurden keine Daten selektiert.
};

showTableResultDialog(config, onSuccessCallback, onErrorCallback, options, onCloseCallback);
});

... wird der alte Table UserExit verwendet und muss migriert werden.