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.