2.2 Maskenfelder
Maskenfelder ermitteln
Mit folgenden Methoden können Felder auf DMS-Indexdatenmasken und -Workflowmasken ermittelt werden.
API-Methode | Verfügbar ab | Beschreibung |
|---|---|---|
formHelper.getFields() | 8.50 Final | Liefert ein JavaScript-Objekt mit allen Feldern zurück in der Form 'key - value'. Der Key entspricht im DMS-Umfeld dem internen Namen des Feldes und im Workflow der GUID des Feldes. |
formHelper.getFieldByName({name}) | 8.50 Final | Liefert zum übergebenen Namen genau ein Feldobjekt zurück oder NULL, wenn das Feld nicht existiert. Parameter:
Felder auf Workflowmasken ermitteln Ab Version 11.10 verfügen Felder auf Workflowmasken über einen internen Namen. Daraus folgt, dass diese ab 11.10 neben dem bis 11.10 verfügbaren Namen* auch über den internen Namen ermittelt werden können. *Es ist zu beachten, dass Workflow-Modelle, die aus früheren Versionen in 11.10 umziehen, behalten den bis 11.10 verfügbaren Namen für Felder auf Workflowmasken. Neu erstellte Felder verfügen dann ausschließlich über den internen Namen. |
formHelper.getFieldByInternal({internalName}) | 8.50 Final | Liefert zum übergebenen internen Namen genau ein Feldobjekt zurück oder NULL, wenn das Feld nicht existiert. Parameter:
Felder auf Workflowmasken ermitteln Ab Version 11.10 verfügen Felder auf Workflowmasken über einen internen Namen. Daraus folgt, dass diese ab 11.10 neben der Guid auch über den internen Namen ermittelt werden können. |
formHelper.getFieldByAnyName({name}) | 10.10 SR 2 | Liefert zum übergebenen sprachabhängigen Namen genau ein Feldobjekt zurück oder NULL, wenn das Feld nicht existiert. Parameter:
|
formHelper.getFieldByAnyKey({key}, {value}) | 8.50 Final | Liefert zum Key-Value-Paar das passende Feld oder NULL. Parameter:
Beispiel: formHelper.getFieldByAnyKey("internal", "PageCtrl"); |
formHelper.getFieldsFromPageControl({internal}, {pageIdentifier}) | 8.50 Final deprecated | Liefert die Models aller Felder eines PageControls zurück. Optional kann der 'pageIdentifier' angeben werden, wenn nur die Felder einer einzelnen Seite benötigt werden. Parameter:
Optionale Parameter:
|
formHelper.getCompleteFieldsFromPageControl({internal}, {pageIdentifier}) | 9.10 SR 6 | Liefert alle Felder eines PageControls zurück. Optional kann der 'pageIdentifier' angeben werden, wenn nur die Felder einer einzelnen Seite benötigt werden. Parameter:
Optionale Parameter:
|
Statischer Text
API-Methode | Verfügbar ab | Beschreibung |
|---|---|---|
setTitle({title}) | 10.00 SR4 | Ändert den Text des Feldes, z.B. beim Aufruf im onShow-Eventskript. Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.setTitle("neuer Text"); // Danach wird der neue Text angezeigt |
setTooltip({tooltip}) | 10.00 SR4 | Ändert den Tooltip des Feldes, z.B. beim Aufruf im onShow-Eventskript. Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.setTooltip("neuer Text"); // Danach wird der neue Tooltip angezeigt |
Textfelder, Checkboxen und Radiobuttons
Die Webclient-Skripting-API stellt für ein- und mehrzeilige Textfelder, Checkboxen ("Kontrollkästchen") und Radiobuttons ("Optionsschaltflächen") folgende Methoden auf dem jeweiligen Feld bereit. Das Feld wird entweder als Eventhandlerparameter direkt bereitgestellt, wenn ein Event auf dem jeweiligen Feld ausgelöst wurde oder es muss über den obenstehenden Methoden zuvor ermittelt werden.
API-Methode | Verfügbar ab | Beschreibung |
|---|---|---|
show()hide() | 8.50 Final | Blendet das Feld aus oder ein. Es wird sowohl Beschriftung als auch Dialogelement aus- und eingeblendet. Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.show(); // Danach ist es sichtbar
field.api.hide(); // Danach ist es unsichtbarAb 10.0 SR 3: Bei Radiobuttons ist es möglich, einzelne Knöpfe zu verstecken. Werden die Funktionen am ersten Knopf aufgerufen, betreffen sie standardmäßig zwecks Abwärtskompatibilität die gesamte Gruppe. Wird |
isVisible() | 8.50 SP6 | Gibt zurück, ob das Formularfeld sichtbar ist. Hierbei werden auch übergeordnete Maskenelemente wie Gruppen und PageControls mitbeachtet. Sind diese unsichtbar und das Feld selber jedoch sichtbar, so gibt die Methode trotzdem unsichtbar zurück. Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.isVisible(); // true wenn sichtbar, false wenn unsichtbar |
enable()disable() | 8.50 Final | Macht ein Feld beschreibbar oder schreibgeschützt. Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.enable(); // Danach ist es beschreibbar
field.api.disable(); // Danach ist es schreibgeschütztAb 10.0 SR 3: Bei Radiobuttons ist es möglich, einzelne Knöpfe zu deaktivieren. Werden die Funktionen am ersten Knopf aufgerufen, (de)aktivieren sie standardmäßig zwecks Abwärtskompatibilität die gesamte Gruppe. Wird |
isEnabled() | 8.50 SP6 | Gibt zurück, ob das Feld aktiviert oder deaktiviert ist. Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.isEnabled(); // true wenn aktiv, false wenn deaktiviert |
focus() | 8.50 Final | Fokussiert das Feld. Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.focus(); // Danach hat das Feld den Eingabefokus |
getRequired({initial}) | 9.00 SP1 SR4 | Gibt zurück, ob es sich um ein Pflichtfeld handelt. Optionaler Parameter:
Rückgabewert:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.getRequired(); |
setRequired({isRequired}) | 9.00 SP1 SR4 | Setzt den Pflichtfeldstatus eines Feldes. Sofern ein Feld in der Objektdefinition als Pflichtfeld markiert ist, lässt sich der Status nicht verändern. Es können Textfelder (ggf. mit Addons) als Pflichtfelder festgelegt werden. Parameter:
Rückgabewert:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.setRequired(true); // returns true |
setValue({value}, {executeOnChangeScript}) | 8.50 Final | Ändert den Wert des Feldes. Parameter:
Optionaler Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.setValue("neuer Wert", false); |
getValue({transformValues}) | 8.50 Final | Liefert den Wert des Feldes, wie er im Feld steht. Optionaler Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.getValue(false); |
getInitialValue({transformValues}) | 9.00 SR5 | Liefert den Wert des Feldes, wie er initial im Feld stand. Der Wert entspricht dem Wert des Feldes bevor das Show/BeforeOpen-Event ausgeführt wurde. Optionaler Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.getInitialValue(false); |
validate() | 8.50 Final | Validiert das Feld asynchron. Setzt das Feld automatisch auf ungültig, wenn eine Stufe der Validierung fehlschlägt. Ungültige Felder erhalten den Status 'isValid=false'. Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.validate().then(function(){
// everything is fine
},
function(){
// something went wrong
}); |
setValid() | 8.50 Final | Setzt das Feld wieder auf gültig, entfernt die rote Markierung und die Hover- und Fokus-Effekte des Feldes, welche das Feld als ungültig markiert haben. |
setInvalid({title}, {message}) | 8.50 Final | Setzt das Feld wieder auf ungültig. Setzt eine rote Markierung und fügt Hover- und Fokus-Effekte hinzu. Parameter:
Beispiel: var field = formHelper.getFieldByName("Textfeld");
field.api.setInvalid("Title", "This is a custom message"); |
isValid() | 8.50 SP6 | Gibt zurück, ob ein Feld valide oder invalide ist ohne selber nochmalig zu validieren. Beispiel: var field = formHelper.getFieldByName("Textfeld");
field.api.isValid(); // true wenn valide, false wenn invalide. |
addCustomValidation({function}, {title}, {message},{isAsynchronous}) | 8.50 Final | Fügt eine benutzerspezifische Validierung zum Feld hinzu. Diese Validierung wird automatisch bei 'onChange' ausgeführt sowie vor dem Weiterleiten und Speichern. Hinweis: Parameter:
Beispiel: // Synchrone Validierung
function myValidator(field, formHelper) {
var value = field.api.getValue()
return (value != "");
}
var field = formHelper.getFieldByName("Textfeld");
field.api.addCustomValidation(myValidator, "Fehler", "Der Wert darf nicht leer sein", false);Beispiel: // Asynchrone Validierung
// der dritte Parameter ist die "done" Funktion, die aufgerufen werden muss, wenn der asynchrone
// Vorgang abgeschlossen ist.
function myValidator(field, formHelper, done) {
var value = field.api.getValue()
if (value != ""){
done(true);
} else {
done(false);
}
}
var field = formHelper.getFieldByName("Textfeld");
field.api.addCustomValidation(myValidator, "Fehler", "Der Wert darf nicht leer sein", true); |
setTitle({title}) | 10.00 SR4 | Ändert den Text des Feldes, z.B. beim Aufruf im onShow-Eventskript. Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.setTitle("neuer Text"); // Danach wird der neue Text angezeigt |
setTooltip({tooltip}) | 10.00 SR4 | Ändert den Tooltip des Feldes, z.B. beim Aufruf im onShow-Eventskript. Parameter:
Beispiel: var field = formHelper.getFieldByInternal("meinFeld");
field.api.setTooltip("neuer Text"); // Danach wird der neue Tooltip angezeigt |
Inhalt:
- 1 Maskenfelder ermitteln
- 1.1 formHelper.getFields()
- 1.2 formHelper.getFieldByName({name})
- 1.3 formHelper.getFieldByInternal({internalName})
- 1.4 formHelper.getFieldByAnyName({name})
- 1.5 formHelper.getFieldByAnyKey({key}, {value})
- 1.6 formHelper.getFieldsFromPageControl({internal}, {pageIdentifier})
- 1.7 formHelper.getCompleteFieldsFromPageControl({internal}, {pageIdentifier})
- 2 Statischer Text
- 3 Textfelder, Checkboxen und Radiobuttons
- 3.1 show()
- 3.2 hide()
- 3.3 isVisible()
- 3.4 enable()
- 3.5 disable()
- 3.6 isEnabled()
- 3.7 focus()
- 3.8 getRequired({initial})
- 3.9 setRequired({isRequired})
- 3.10 setValue({value}, {executeOnChangeScript})
- 3.11 getValue({transformValues})
- 3.12 getInitialValue({transformValues})
- 3.13 validate()
- 3.14 setValid()
- 3.15 setInvalid({title}, {message})
- 3.16 isValid()
- 3.17 addCustomValidation({function}, {title}, {message},{isAsynchronous})
- 3.18 setTitle({title})
- 3.19 setTooltip({tooltip})
- 4 Radiobuttons ("Optionsschaltflächen")
- 5 Textfelder
- 6 Buttons (Schaltfächen)
- 7 Listen und Bäume
- 8 Tabellen
- 8.1 show()
- 8.2 hide()
- 8.3 isVisible()
- 8.4 enable()
- 8.5 disable()
- 8.6 isEnabled()
- 8.7 enableCell({rowIndex}, {colIndex})
- 8.8 disableCell({rowIndex}, {colIndex})
- 8.9 isCellEnabled({rowIndex}, {colIndex})
- 8.10 focusCell({rowIndex},{colIndex})
- 8.11 getCellValue({rowIndex},{colIndex})
- 8.12 getInitialCellValue({rowIndex},{colIndex})
- 8.13 setCellValue({rowIndex},{colIndex},{value},{executeOnChangeScript});
- 8.14 isCellValid({rowIndex},{colIndex})
- 8.15 setCellValid({rowIndex},{colIndex})
- 8.16 setCellInvalid({rowIndex},{colIndex},{title},{message})
- 8.17 getCellCatalogInfo({rowIndex},{colIndex})
- 8.18 editRow({rowIndex}, {rowValues})
- 8.19 addRow()
- 8.20 addRow({values})
- 8.21 addRow({values}, {rowindex})
- 8.22 addRows({values})
- 8.23 addRows({values}, {rowindex})
- 8.24 removeRow({rowIndex})
- 8.25 removeRows({rowIndexes})
- 8.26 scrollToRow({rowIndex})
- 8.27 getRows()
- 8.28 getInitialRows()
- 8.29 getRowByIndex({rowIndex})
- 8.30 getInitialRowByIndex({rowIndex})
- 8.31 getRowsByValue({value})
- 8.32 getRowIndexesByValue({value})
- 8.33 setSelectState({selectOption})
- 8.34 addSelectionChangeListener(fn)
- 8.35 selectRows({indexes})
- 8.36 deselectRows({indexes})
- 8.37 getSelectedRows()
- 8.38 createPseudoCatalog({columnIndex},{catalogConfig},{dataCallback})
- 8.39 showColumn(colId)
- 8.40 hideColumn(colId)
- 8.41 setColumnRequired({columnIndex})
- 8.42 setTitle({title})
- 8.43 setTooltip({tooltip})
- 8.44 refreshRowView()
- 9 PageControl
- 9.1 show()
- 9.2 hide()
- 9.3 isVisible()
- 9.4 enable()
- 9.5 disable()
- 9.6 isEnabled()
- 9.7 showPage({page})
- 9.8 hidePage({page})
- 9.9 isPageVisible({page})
- 9.10 enablePage({page})
- 9.11 disablePage({page})
- 9.12 isPageEnabled({page})
- 9.13 goToPage({page})
- 9.14 focus()
- 9.15 focusTab(tabIndex?)
- 9.16 setTitle({title})
- 10 Groupbox
- 10.1 show()
- 10.2 hide()
- 10.3 isVisible()
- 10.4 setTitle({title})
Radiobuttons ("Optionsschaltflächen")
Radiobuttons besitzen eine spezielle Eigenart, um diese skripttechnisch zu programmieren.
Zusammengehörige Radiobuttons müssen auf Masken immer in einem Gruppenfeld eingebettet sein. Das Gruppenfeld sorgt dafür, dass der enaio® webclient die Zusammengehörigkeit erkennt und somit Radiobuttons als eine Gruppe bedienbar macht.
Befinden sich Radiobuttons in einem Gruppenfeld, kann ein OnValueChange-Event im enaio® editor-for-events auf das Gruppenfeld gelegt werden. Dieses Event wird aufgerufen, wenn einer der Radiobuttons im Gruppenfeld vom Benutzer angeklickt wird. Befänden sich Radiobuttons hingegen nicht innerhalb eines Gruppenfelds, so ist der Radiobutton mit dem niedrigsten Tab-Index führend und wird für das OnValueChange-Event im enaio® editor-for-events angeboten. Hier ist dieser dann stellvertretend für alle Radiobuttons, die "irgendwie" als zusammenhängend erkannt werden.
Im Model besitzen alle Radiobuttons eine Eigenschaft masterRadioInternal, die den internen Namen des führenden Radiobuttons der Gruppe beinhaltet. Der führende Radiobutton einer Gruppe ist immer jener, der den kleinsten Tab-Index aller Radiobuttons der Gruppe im enaio® editor besitzt. API-Methoden wie getValue() oder setValue() können ausschließlich über den führenden Radiobutton im Skript angesprochen werden und nicht über alle Radiobuttons der Gruppe. Die API-Methode getValue() gibt über den führenden Radiobutton einen nullbasierten Index des ausgewählten Radiobuttons der Gruppe zurück. Mittels eines solchen Index lässt sich gleichermaßen via setValue(<Index>) der gewünschte Radiobutton der Gruppe auswählen.
Für Backend-Interaktionen, wie zum Beispiel die Suche (wo ein Radiobutton als Bedingung formuliert ist), muss ebenfalls immer der interne Name des führenden Radiobuttons einer Gruppe übermittelt werden. Als Value im JSON wird der nullbasierte Index, welcher Radiobutton der Gruppe aktiviert sein soll, übermittelt. Selbiges gilt auch für die Neuanlage- und die Aktualisierungs-Anfragen an das Backend.
Textfelder
Die Webclient-Skripting-API stellt für ein- und mehrzeilige Textfelder folgende Methoden bereit. Das Feld wird entweder als Eventhandler-Parameter direkt bereitgestellt, wenn ein Event auf dem jeweiligen Feld ausgelöst wurde oder es muss über den obenstehenden Methoden zuvor ermittelt werden.
API-Methode | Verfügbar ab | Beschreibung |
|---|---|---|
createPseudoCatalog({catalogConfig},{dataCallback}) | 8.50 SP6 | Ändert das Feld zu einem Katalogfeld gemäß der Konfiguration. Die Werte des Kataloges werden durch den Skripter in Form einer asynchronen Funktion bereitgestellt. Mögliche Kataloge sind Listen, Bäume und Hierarchien. Hinweis: Parameter:
Beispiel: var field = formHelper.getFieldByName("Feld")
var config = {
type :"list"
}
function dataCallback (field, fieldValue, done){
var entries = [{
short:"Mein Kurzwert 01",
value:"Beschreibung zum Kurzwert 01"
},{
short:"Mein Kurzwert 02",
value:"Beschreibung zum Kurzwert 02"
},{
short:"Mein Kurzwert 03",
value:"Beschreibung zum Kurzwert 03"
}];
// die done Funktion muss aufgerufen werden,
// ansonsten würde der Katalog niemals dargestellt werden
done(entries);
}
field.api.createPseudoCatalog(config, dataCallback) |
Buttons (Schaltfächen)
Die Webclient-Skripting-API stellt für Buttons folgende Methoden bereit. Das Feld wird entweder als Eventhandler-Parameter direkt bereitgestellt, wenn ein Event auf dem jeweiligen Feld ausgelöst wurde oder es muss über den obenstehenden Methoden zuvor ermittelt werden.
API-Methode | Verfügbar ab | Beschreibung |
|---|---|---|
Benutzerdefinierte Liste auf einem Button | 8.50 SP2 | Um einem Button einen Listen- oder ein Baumkatalog hinzuzufügen, der per Klick aufgerufen werden kann, müssen der komplette Katalog und eine zugehörige Konfiguration definiert werden. Zurückgegeben werden die durch den Benutzer ausgewählten Einträge als Liste und ggf. ob sie "UND"- oder "ODER"-verknüpft werden sollen. Bei Hierarchiekatalogen wird der Pfad als geordnete Liste der Hierarchieknoten zurückgegeben.
Beispiel: var button = formHelper.getFieldByInternal("myButton");
var entries = [{
icon:"",
short:"Baum",
value:"Mein Baum",
nodes:[{
icon:"",
short:"Nummer 1",
value:"Mein",
nodes: [{
icon:"",
short:"Nummer 2",
value:"Erster",
nodes: [{
icon:"",
short:"Nummer 3",
value:"Knoten"
}]
}]
}]},
{
icon:"",
short:"Kurzwert",
value:"Keine Knoten"
},{
icon:"1073742056",
short:"Custom",
value:"Dynamisch yeah!",
nodes:[{
short:"Letzter",
value:"Noch mehr Inhalt"
}]
}
];
var config = {
type: "tree"
};
// optionale config parameter
// multiSelect - Ermöglicht die mehrfachauswahl im Dialog
// readonly - Stellt den Dialog schreibgeschützt dar
// useCheckboxSelection - ermöglicht bei multiSelect die Auswahl durch Checkboxen
// sortEntries - sofern true, werden die Einträge nach short oder, falls nicht vorhanden, value sortiert (ab 9.10 SR4)
button.api.showList(entries, config).then(function(resultObject){
var joinOperator = (resultObject.joinMode == "AND") ? "+" : ";";
var values = [];
for (var i in resultObject.raw) {
values.push(resultObject.raw[i].value);
}
console.log(resultObject.selection + "<->" + values.join(joinOperator));
}, function (error) {
// Fehler
});Wenn ein benutzerdefinierten Button für ein Eingabefeld definiert wurde, muss für die Keyboard Navigation der Fokus bei Übernahme des Wertes manuell auf das Eingabefeld zurücksetzt werden.
|
setTitle({title}) | 10.00 SR4 | Ändert die Beschriftung des Buttons, z.B. beim Aufruf im onShow-Eventskript. Parameter:
Beispiel: var field = formHelper.getFieldByInternal("myButton");
field.api.setTitle("neuer Text"); // Danach wird der neue Text angezeigt |
setTooltip({tooltip}) | 10.00 SR4 | Ändert den Tooltip des Buttons, z.B. beim Aufruf im onShow-Eventskript. Parameter:
Beispiel: var field = formHelper.getFieldByInternal("myButton");
field.api.setTooltip("neuer Text"); // Danach wird der neue Tooltip angezeigt |
openModalDialog({URI}, {title}, {width}, {height}) | 11.10.7 | Das "ModalDialog-AddOn" und die "ModalDialog API" sind lizenzpflichtig ("MDA"). Das Vorhandensein der Lizenz wird beim Öffnen des modalen Dialoges überprüft. Ermöglicht das Öffnen eines modalen Dialoges im Beispiel: var field = formHelper.openModalDialog("http://85.38.152.187/resources/apps/osweb/public/modalDialogs/demo-modalDialog/index.html", "My modal dialog", "800", "800").then((result) => {
// Geschlossen mit dem Rückgabewert 1 oder 2
}, function (error) {
// Fehler
});Parameter
Stellen Sie sicher, dass die URI an derselben Stelle gehostet wird wie der enaio® webclient, um eine ordnungsgemäße Anzeige aus Sicherheitsgründen zu gewährleisten. Optionale Parameter:
Der Wert für die Breite sowie die Höhe sollte eine ganze Zahl sein und als Zeichenkette ohne Einheiten angegeben werden. Rückgabewert: Die Methode gibt einen Promise<number> zurück, welcher aufgelöst wird, sobald der modale Dialog geschlossen wird.
|
Listen und Bäume
Listen und Bäume sind in enaio® webclient generell Zusätze zu einem Feld, die bei der Gestaltung der Masken konfiguriert werden. Die Werte eines Kataloges auf einer Workflow-Maske (nicht Indexdatenmaske) können dynamisch per Script erweitert werden. Im Folgenden wird in verschiedenen Varianten auf die Funktion 'setCustomListEntries' eingegangen, die dies ermöglicht. Listen, Bäume und Hierarchien verwenden dasselbe Steuerelement. Für das Generieren eines dynamischen Baums ist kein XML-Tree erforderlich.
Infos zur Mehrsprachigkeit
In einem mehrsprachig aufgesetztem enaio®-System werden Benutzern, abhängig von ihrer gewählten Objektdefinitionssprache, die Katalogwerte zur Auswahl angezeigt.
So kann zum Beispiel ein französisch sprechender Kollege die zur Auswahl stehenden Werte in einem Katalog in seiner Sprache lesen und verstehen.
Hierbei wird in zwei Arten von mehrsprachigen Katalogen unterschieden:
statische mehrsprachige Kataloge
Kataloge, bei denen Werte vorkonfiguriert worden sind (enao® editor / enao® editor-for-workflow)dynamische mehrsprachige Kataloge (ausschließlich auf Workflow-Masken)
Kataloge, bei denen KEINE Werte vorkonfiguriert worden sind, sondern diese komplett dynamisch per Script zur Auswahl gestellt werden.
Für die statischen mehrsprachigen Kataloge auf Workflow-Masken können ab Version 11.0 generell dynamische Werte über die Funktion 'setCustomListEntries' ergänzt werden. Diese unterstützen jedoch die Mehrsprachigkeit nicht und es wird immer der im Parameter entries mitgegebene sprachunabhängige "technische" Wert des Kataloges dem Benutzer angezeigt.
Für die dynamischen mehrsprachigen Kataloge auf Workflow-Masken, die ausschließlich per Script mit Werten gefüllt werden, können ab Version 11.10 alle sprachabhängigen Werte mitgegeben werden (Parameter resources).
Der enaio® webclient prüft, ob es sich wirklich um einen leeren dynamischen mehrsprachigen Katalog auf einer Workflow-Maske handelt. Trifft eines der Kriterien nicht zu, dann wird der Katalog wie ein statischer mehrsprachiger Katalog behandelt (Parameter resources wird ignoriert).
Für dynamische mehrsprachige Kataloge müssen Sie die Werte für ALLE aktiven Objektdefinitionssprachen des Systems übermittelt, damit die Anzeige in den Clients sprachabhängig funktioniert.
Funktion 'setCustomListEntries'
Parameter:
entries – eine Liste von Werten, die im Listen-/Baumkatalog auf der Workflow-Maske dargestellt werden sollen.
Ab 11.10: Wenn der dynamische mehrsprachige Katalog auf einer Workflow-Maske dargestellt werden soll, hält dieser Parameter die sprachunabhängigen "technischen" Werte.
Optionale Parameter:
resources (ab 11.10) - eine Liste von mehrsprachigen Werten, die in einem dynamischen mehrsprachigen Listen-/Baumkatalog auf der Workflow-Maske entsprechend der eingestellten Objektdefinitionssprache des Benutzers dargestellt werden sollen.
Ein Eintrag in dieser Liste entspricht einem JavaScript-Objekt mit sprachabhängigen Werten in Form 'key - value':Der Key entspricht einer Locale z.B. de_DE für Deutsch (Deutschland). Für eine Übersicht der unterstützen Locales siehe die auf dem System konfigurierten Objektdefinitionssprachen (asobjdef.xml).