Service Desk-Mitarbeiter, der einen Fall übermittelt
Dieser Anwendungsfall zeigt, wie ein Service Desk-Mitarbeiter in die Lage versetzt wird, einen Fall für einen bekannten Kunden zu übermitteln.
In diesem Szenario sucht ein Service Desk-Mitarbeiter in einem FSO-Beschwerdeformular nach Kontoinformationen eines Kunden, die sich in einer Remote-Bankanwendung befinden. Sobald sie gefunden wurde, wird sie im Beschwerdeformular angezeigt, und der Service Desk-Mitarbeiter füllt dann die Falldetails im Zusammenhang mit dem Hypothekenkonto des Kunden manuell aus und speichert den Beschwerdefall. Im Hintergrund speichert das Formularskript die Kundendetails und Finanzkontoinformationen lokal in der Instanz ServiceNow.
- Verbraucher [csm_consumer]: Enthält den Kundendatensatz.
- Darlehenskonto [sn_bom_loan_account]: Enthält Darlehenskontoinformationen für jeden Kunden. Hinweis:Darlehenskonto ist eine Art von Finanzkonto.
Das folgende Beispiel zeigt ein Beschwerdeformular ServiceNow (Fallformular), das einen Service Desk-Mitarbeiter durch die Einreichung einer Beschwerde im Namen eines Kunden führt. In diesem Formular klickt der Service Desk-Mitarbeiter auf die Schaltfläche Accountsuche, um die Accountinformationen des Kunden zu finden.
Wenn der Service Desk-Mitarbeiter auf Account Search klickt, wird ein Popup ähnlich dem folgenden angezeigt. Über das Popup-Fenster kann der Service Desk-Mitarbeiter den Account des Kunden mit einem der angezeigten Suchparameter suchen. Sie können Ihre eigenen Suchkriterien basierend auf Ihrem spezifischen Webservice erstellen. Diese Webservices stammen im Allgemeinen aus Kundenstamm- und Account Master-Systemen, CRMs, Core-Banking-Mainframes und APIs von Core-Banking-Softwareanbietern wie Fiserv, FIS, Jack Henry, Finastra und anderen.
Die Suche gibt die folgenden Accounts für diesen Kunden zurück.
Der Service Desk-Mitarbeiter wählt den entsprechenden Account aus, und die erforderlichen Account-Informationen werden automatisch im Fallformular ausgefüllt. Der Service Desk-Mitarbeiter fügt dann zusätzliche Informationen hinzu, die zum Übermitteln des Kundenfalls erforderlich sind, und klickt auf die Schaltfläche Absenden, um die Beschwerde in der Instanz ServiceNow zu speichern.
Das folgende Diagramm zeigt den Flow der REST API-Aufrufe für diesen Anwendungsfall und enthält kurze Anmerkungen zur erforderlichen Verarbeitung.
|
Beispielcode
// Fetch consumers for the given first name and last name and associated
// financial accounts from the remote bank application
function fetchConsumers(consumer_fname, consumer_lname) {
var request = new sn_ws.RESTMessageV2();
request.setHttpMethod('get');
request.setEndpoint('api/getConsumerDetails?fname=consumer_fname&lname=consumer_lname');
var response = request.execute();
var responseBody = response.getBody();
var responseObj = JSON.parse(responseBody);
var consumers = responseObj.consumers;
// Create a record in the ServiceNow Consumer [csm_consumer] table for the specified consumer
var consumerDetails = [];
consumers.foreach(function(consumer){
var consumerGR = new GlideRecord('csm_consumer');
consumerGR.initialize();
consumerGR.setValue('uid', consumer.uid);
consumerGR.setValue('name', consumer.name);
consumerGR.setValue('email', consumer.email);
consumerGR.setValue('mobile', consumer.mobile);
consumerGR.setValue('address', consumer.address);
if(consumerGR.update()){
consumer.sysId = consumerGR.getValue('sys_id');
consumer.financialAccount = fetchFinancialAccountsForConsumer(consumer);
}
});
}
// Fetch financial accounts for the specified consumer
function fetchFinancialAccountsForConsumer(consumer) {
var financialAccounts = [];
var request = new sn_ws.RESTMessageV2();
request.setHttpMethod('get');
request.setEndpoint('api/getFinancialAccounts/' + consumer);
var response = request.execute();
var responseBody = response.getBody();
var responseObj = JSON.parse(responseBody);
var financialAccounts = responseObj.financialAccounts;
// Create a record in the ServiceNow financial_account table for each of the customer's financial accounts
financialAccounts.foreach(function(finAccount){
var finAccountGR = new GlideRecord('financial_account');
finAccountGR.initialize();
finAccountGR.setValue('uid', finAccount.uid);
finAccountGR.setValue('type', finAccount.type);
finAccountGR.setValue('number', finAccount.ac_number);
finAccountGR.setValue('balance', finAccount.balance);
if(finAccountGR.update()){
finAccount.sysId = finAccountGR.getValue('balance');
financialAccounts.push(finAccount);
}
});
return financialAccounts;
}
// The following retrieves an object to display in UI page
fnmae = ‘john’;
lname = ‘brown’;
var consumerObj = fetchConsumers(fname, lname);
consumerObj.foreach(function(consumer){
// Display the details on the page and populate it in the form as necessary
console.log(consumer);
});