Um Felder mit Daten auszufüllen, die nicht über JavaScript-Ausdrücke zugreifbar sind, können Sie ein Berichtsdatenobjekt (Datenobjekt), anwenderdefinierte JavaScript-Funktionen und vordefinierte JavaScript-Funktionen, insbesondere ca_reportQuery(reportId, variables, onSuccess, onFailure) verwenden. Ein repräsentativer Fall wäre die Abfrage der Human Resources-Datenbank Ihrer Organisation (nicht die CA MDB) auf sensible Daten, wie z. B. die Kontodaten plus zugehörige Daten für einen Anwender.
Sie können beispielsweise ein Formular erstellen, um das Bankkonto, auf das das Gehalt eines Anwenders automatisch überwiesen wird, zu ändern. In diesem Formular können die Felder mit dem Namen der aktuellen Bank und der Kontonummer vorausgefüllt werden. Spätere Formularfelder werden für die Eingabe des neuen Banknamens und der neuen Kontonummer verwendet.
Zuerst ruft ca_reportQuery(reportId, variables, onSuccess, onFailure) diejenigen Variablen vom Berichtsdatenobjekt ab, die mit den vom Datenobjekt abgefragten Feldern übereinstimmen. Anschließend wird die Funktion "OnSuccess" aufgerufen; an dieser Stelle können Sie weitere vordefinierte JavaScript-Funktionen verwenden, um mehrere Felder im Formular mit den Ergebnissen der Abfrage vorauszufüllen. Sie können beispielsweise eine anwenderdefinierte Funktion schreiben, die ca_fdSetTextFieldValue(formId, _id, text) mehrfach aufruft, d. h. einmal für jedes Feld, das Sie vorausfüllen möchten. Dieses Szenario ist typischerweise am besten für das Vorausfüllen von Textfeldern geeignet, kann aber auch zum Ausfüllen anderer Felder verwendet werden.
Um Daten in Formularfeldern mit einem Datenobjekt und sowohl anwenderdefinierten als auch vordefinierten JavaScript-Funktionen vorauszufüllen, gehen Sie wie folgt vor:
Zeichnen Sie die ID des Datenobjektes für spätere Verweise auf.
Das folgende Beispiel führt eine Abfrage in der MDB entsprechend dem Beispiel durch, das weiter vorne in diesem Kapitel begonnen wurde:
SELECT bank_name,account_number FROM my_hr_db WHERE userid ='%userid% '
CA Service Catalog verarbeitet diese Abfrage wie folgt:
Für unser Beispiel fügen Sie zwei Textfelder hinzu, eines für den Banknamen und ein weiteres für die Kontonummer.
Für unser Beispiel fügen Sie zwei Textfelder hinzu, nämlich bank_name und account_number.
In unserem Beispiel benennen Sie die Felder in "Bankname" und "Kontonummer" um.
Es wird empfohlen, diesen Speicherort in der Dateiablage zu verwenden: FileStore/scripts/custom_form_lib.js.
Wichtig! Bei dem Ordnername FileStore ist Groß-/Kleinschreibung zu beachten. Achten Sie deshalb darauf, dass Sie bei Pfadnamen und bei allen anderen programmgesteuerten Referenzen die richtige Schreibweise verwenden.
Hinweis: Informationen über die Einrichtung der Dateiablage finden Sie im Implementierungshandbuch.
In diesem Beispiel verwenden Sie die Ergebnisse für zwei Aufrufe: einen, um das Feld "Bankname" zu aktualisieren und den zweiten, um das Feld "Kontonummer" zu aktualisieren.
Geben Sie in unserem Beispiel {“userid”:_.user.id} an.
Diese Variablen müssen mit denjenigen übereinstimmen, die Sie im Datenobjekt abfragen, wobei die Reihenfolge nicht identisch sein muss.
Für unser Beispiel geben Sie Folgendes an:
function updateFields(result) {
if (result.length == 1) {
ca_fdSetTextFieldValue(formId, ‘bank_name’, result[0].[‘bank_name’]);
ca_fdSetTextFieldValue(formId,’account_number’,result[0].[‘account_number’]);
} else {
alert('Bankkontendaten konnten nicht gefunden werden')
}
}
Für unser Beispiel geben Sie Folgendes an:
function onGetAcctDataFail() { alert("Ihr Konto konnte nicht gefunden werden"); }
Es wird empfohlen, dass Sie sich vergewissern, dass der Ausdruck in einem Formular getestet wird, das mit einem Service in einer Testumgebung verwendet wird, ehe Sie das Formular und den Service in einer Produktionsumgebung einsetzen.
| Copyright © 2013 CA. Alle Rechte vorbehalten. |
|