ServiceNowのREST APIのコールアウト設定手順

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

ServiceNowのREST APIのコールアウト設定手順

はじめに

 ServiceNowからMuleのAPIを呼び出す機会があり、コールアウトの設定手順を説明する。

設定手順

設定手順は以下の通り。

  1. REST APIのコールアウトプログラムを設定する。
  2. コールアウトプログラムを実行し結果を確認する。

手順詳細

1.REST APIのコールアウトプログラムを設定する。

 サイドメニューから[Scheduled Jobs]を選択して、新規でジョブを作成する。

 スクリプト実行用のジョブタイプを選択する。

 ジョブのNameは、”Mule REST API Caller”とした。
 REST API コールアウト用のプログラムを[Run this script]に張り付けて、[Submit]ボタンを押下する。

REST API呼び出し用のプログラムは以下の通り。

// Settings
var simpleDateFormat = 'dd MMMM yyyy HH:mm:ss.SSS';

sender();

// Send Request
function sender() {

    var endpointName = 'Accounts';
    try {
        var Url = 'http://{Mule Application Endpoint}/api/accounts';
        var httpreq = new sn_ws.RESTMessageV2();
        httpreq.setHttpMethod('GET');
        httpreq.setEndpoint(Url);
        //httpreq.setRequestHeader('jwt', createJWT());
        httpreq.setRequestHeader('Content-Type', 'application/json');
        var starttime = new GlideDateTime();
        starttime.setDisplayValue(simpleDateFormat);
        log('httpStatus', "Send Message!! " + starttime.getDisplayValue());

        var response = httpreq.execute();
        
        var endtime = new GlideDateTime();
        endtime.setDisplayValue(simpleDateFormat);
        
        var responseBody = response.getBody();
        var httpStatus = response.getStatusCode();
        
        log('httpStatus', "Recieve Message!! " + httpStatus + " : " + endtime.getDisplayValue());
        log('Response', responseBody);
    } catch (ex) {
        log('message', "" + ex.message);
    }
}

// JWT generator
function createJWT() {
    var jwtAPI = new sn_auth.GlideJWTAPI();
    var headerJSON = {"alg": "RS256","typ": "JWT"};
    var header = JSON.stringify(headerJSON);
    var payloadJSON = {};
    var payload = JSON.stringify(payloadJSON);
    var jwtProviderSysId = "{Mule JWT ProviderのSysID}";
    var jwt = jwtAPI.generateJWT(jwtProviderSysId, headerJSON, null);
    return jwt;
}

// Logging
function log(marker, msg) {
    gs.info('>>> ' + marker + ' ... ' + msg);
}

2.コールアウトプログラムを実行し結果を確認する。

 先ほど登録したジョブを再表示すると右上に[Execute Now]ボタンが表示される。
 ボタンを押下してスクリプトを実行する。

 [Application Logs]にレスポンス結果が表示されたことが確認できた。

さいごに

 いかがだったでしょうか?
 ServiceNowのREST APIのコールアウト手順について説明しました。
 是非、活用してみてください。では、