Dies ist ein Beispiel für das Hinzufügen eines Felds Unternehmen zum Bezahlvorgang unter dem Feld Angefordert für mithilfe von Nicht-Einkaufswagenlayout-Makros, d. h. glide.sc.use_cart_layouts ist false.
Vorbereitungen
Erforderliche Rolle: admin
Warum und wann dieser Vorgang ausgeführt wird
Abbildung : 1. Feld „Angefordert für“
Dieses Feld übergibt dann den Wert dieses Felds an das Feld Unternehmen der Servicekatalog-Anforderung.
Dieses Beispiel geht von den folgenden Annahmen aus.
Dieses Beispiel bezieht sich auf eine Instanz, die einen zweistufigen Checkout verwendet. Wenn der zweistufige Checkout nicht aktiviert ist, aktivieren Sie ihn, bevor Sie beginnen.
Dieses Beispiel füllt das Feld Unternehmen im Formular einer Servicekatalog-Anforderung. Wenn das Feld nicht im Formular angezeigt wird, konfigurieren Sie das Formular, bevor Sie beginnen.
Prozedur
Gehen Sie zu System-UI > UI-Makros, und wählen Sie servicecatalog_cart_template aus.
Ermitteln Sie, wo versteckte Variablen deklariert sind, und fügen Sie die folgende Zeile hinzu:
Das Makro „ui_reference“ definiert ein Referenzfeld. Es gibt mehrere Makros für verschiedene Feldtypen. Beispiele für diese Feldtypen finden Sie unter System-UI -> UI-Makros. Diese Makros beginnen mit 'ui_'. In diesem Beispiel heißt das erstellte Referenzfeld core_company.
Navigieren Sie jetzt zu System-UI > UI-Seiten, und wählen Sie die UI-Seite servicecatalog_checkout_one aus.
Fügen Sie dem Feld Clientskript das folgende Skript hinzu.
function setCartValue() {
var newField = gel('core_company');
var myCart = gel('cart_id');
var cart_item = new GlideRecord('sc_cart_item');
cart_item.addQuery('cart', myCart.value);
cart_item.query();
if(cart_item.next()) {
cart_item.hints = "<hints><entry key='sysparm_processing_hint' value='setfield:request.company=" + newField.value + "'/></hints>";
cart_item.update();
}
}
In diesem Beispiel heißt das Referenzfeld core_company, und das Feld, das in der Anforderung ausgefüllt wird, ist company. Wenn verschiedene Felder verwendet werden:
Suchen Sie nach dieser Zeile: var company = gel('core_company'); Ersetzen Sie core_company durch den Namen des Felds im Checkout.
Ersetzen Sie in der Zeile, die mit 'cart_item.hints' beginnt, 'request.company' durch den Namen des Felds, das im Anforderungsticket ausgefüllt werden soll, wobei 'request' die Anforderung ist, die generiert wird, und 'company' der Name des Felds.
Ergebnisse
Wenn ein Artikel bestellt wird, wird das Feld „Unternehmen“ im Katalogformular angezeigt: