ServiceNow Connector 6.16 の例 - Mule 4

ServiceNow 用 Anypoint Connector (ServiceNow Connector) を最大限活用するには、次の例を参照してください。

ServiceNow インシデントテーブルからのレコードの取得

この例では、​Incident​ テーブルからレコードを取得する Mule フローを作成します。次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。

インシデントのレコード取得の ServiceNow フロー
Figure 1. レコードの取得の例のアプリケーションフロー
  1. Studio で Mule プロジェクトを作成します。

  2. 次のパスを使用して、フローの ​HTTP リスナー​トリガーを追加して設定します。

    getrecords

    パスが getrecords に設定されている HTTP リスナーの一般設定
  3. HTTP Connector の後に ​Transform Message​ コンポーネントを追加して、次のような変換スクリプトを提供します。

    %dw 2.0
    output application/xml
    ns ns0 http://www.service-now.com/incident
    ---
    {
    	ns0#getRecords: {
    		ns0#description: 'Test WSDL QA'
    	}
    }
    ServiceNow インシデントテーブルのレコードに一致する記述を追加します。
  4. Transform​ コンポーネントの後に ServiceNow からの ​Invoke​ 操作を追加します。

  5. ServiceNow サーバーに接続するための ServiceNow 設定をセットアップし、テストして、保存します。接続に失敗した場合は、無効な接続パラメーターを確認して修正し、もう一度テストを実行してください。

    [Global Element Properties (グローバル要素プロパティ)] ウィンドウ
    [Global Element Properties (グローバル要素プロパティ)] ウィンドウの [Transport (トランスポート)] タブ
  6. ナビゲーションの ​[General (一般)]​ タブで ​[Service (サービス)]​ を ​incident​ に設定し、​[Operation (操作)]​ を ​getRecords​ に設定します。

  7. 必要に応じて、値 (​ALL​、​TRUE​、​FALSE​) から ​[Show Reference Values (参照値を表示)]​ を選択します。

    Studio 7.5.0 以降では、​Show Reference Values​ キーを指定せずに ​service​ および ​operation​ キーを選択してメタデータを解決できます。ただし、以前の Studio バージョンでは、すべてのメタデータキーを指定するまではメタデータは読み込まれず、すべてのメタデータキーを指定しないとツール例外が発生します。
    参照値のない ServiceNow メタデータ
  8. [Message Body (メッセージ本文)] を ​payload​ に設定します。

  9. Transform Message​ コンポーネントを追加し、​transform XML to JSON​ を行って、読みやすさを向上します。次に例を示します。

    %dw 2.0
    output application/json
    ---
    payload
  10. フローの最後に ​payload​ (または ​#[payload]​) をメッセージとして使用する ​Logger​ コンポーネントを追加します。

  11. アプリケーションをデプロイまたは実行します。

  12. http://localhost:8081/getrecords​ に移動してアプリケーションをテストします。

応答は次の例のようになります (簡潔にするため、いくつかの項目が省略されています)。

Show Reference Values​ で ​ALL​ を使用した場合の応答は省略された出力と同じようになり、表示値項目の応答要素名の先頭には ​dv​ が付けられます。

{
  "headers": {

  },
  "attachments": {

  },
  "body": {
    "getRecordsResponse": {
      "getRecordsResult": {
        "active": "1",
        "dv_active": "true",
        "activity_due": "2020-05-07 13:14:19",
        "dv_activity_due": "2020-05-07 06:14:19",
        "additional_assignee_list": null,
        "dv_additional_assignee_list": null,
        "approval": "not requested",
        "dv_approval": "Not Yet Requested",
      }
    }
  }
}

表示値項目の応答要素名の先頭には ​dv​ が付けられます。

詳細は、 「ServiceNow - 表示値」Leaving the Site​を参照してください。

ServiceNow インシデントテーブルキーの取得

この例では、ServiceNow インスタンスの Incident テーブルからキーを取得する Mule フローを作成します。

  1. Studio で Mule アプリケーションをプロジェクトとして作成します。

  2. フローの HTTP の ​Listener​ トリガーを追加して設定し、​[Path (パス)]​ を ​/getkeys​ に設定します。

  3. HTTP の ​Listener​ 操作の後に ​Transform Message​ コンポーネントを追加します。

  4. 次のような変換スクリプトを提供します (ServiceNow インシデントテーブルのレコードに一致する記述を使用します)。

    %dw 2.0
    output application/xml
    ns ns0 http://www.service-now.com/incident
    ---
    {
    	ns0#getKeys: {
    		ns0#description: 'Test WSDL QA'
    	}
    }
  5. Transform Message​ コンポーネントの後に ServiceNow の ​Invoke​ 操作を追加します。

  6. ServiceNow サーバーに接続するための ServiceNow 設定をセットアップし、テストして、保存します。接続に失敗した場合は、無効な接続パラメーターを確認して修正し、もう一度テストを実行してください。

  7. [General (一般)]​ タブのナビゲーションで ​[Service (サービス)]​ を ​incident​ に設定し、​[Operation (操作)]​ を ​getKeys​ に設定します。

  8. [Message Body (メッセージ本文)] を ​payload​ に設定します。

  9. Transform Message​ コンポーネントを追加し、XML から JSON への変換を行って、読みやすさを向上します。次に例を示します。

    %dw 2.0
    output application/json
    ---
    payload
  10. フローの最後に ​payload​ (または ​#[payload]​) をメッセージとして使用する ​Logger​ コンポーネントを追加します。

  11. アプリケーションをデプロイまたは実行します。

  12. アプリケーションをテストするため、​http://localhost:8081/getkeys​ に移動します。

  13. 応答は次のようになります。

    {
      "headers": {
    
      },
      "attachments": {
    
      },
      "body": {
        "getKeysResponse": {
          "sys_id": "c03deab4db840010a0e6e04a48961999,0f517ab8db840010a0e6e04a489619bc,6f1236f8db840010a0e6e04a489619f5",
          "count": "3"
        }
      }
    }