ServiceNow 用 Anypoint Connector (ServiceNow Connector) を最大限活用するには、次の例を参照してください。
ServiceNow インシデントテーブルからのレコードの取得
この例では、Incident テーブルからレコードを取得する Mule フローを作成します。次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
-
Studio で Mule プロジェクトを作成します。
-
次のパスを使用して、フローの HTTP リスナートリガーを追加して設定します。
getrecords
-
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 インシデントテーブルのレコードに一致する記述を追加します。 -
Transform コンポーネントの後に ServiceNow からの Invoke 操作を追加します。
-
ServiceNow サーバーに接続するための ServiceNow 設定をセットアップし、テストして、保存します。接続に失敗した場合は、無効な接続パラメーターを確認して修正し、もう一度テストを実行してください。
-
ナビゲーションの [General (一般)] タブで [Service (サービス)] を
incident に設定し、[Operation (操作)] を getRecords に設定します。 -
必要に応じて、値 (
ALL、TRUE、FALSE) から [Show Reference Values (参照値を表示)] を選択します。Studio 7.5.0 以降では、 Show Reference Values キーを指定せずに service および operation キーを選択してメタデータを解決できます。ただし、以前の Studio バージョンでは、すべてのメタデータキーを指定するまではメタデータは読み込まれず、すべてのメタデータキーを指定しないとツール例外が発生します。
-
[Message Body (メッセージ本文)] を
payload に設定します。 -
Transform Message コンポーネントを追加し、
transform XML to JSON を行って、読みやすさを向上します。次に例を示します。%dw 2.0 output application/json --- payload
-
フローの最後に
payload (または #[payload]) をメッセージとして使用する Logger コンポーネントを追加します。 -
アプリケーションをデプロイまたは実行します。
-
http://localhost:8081/getrecords に移動してアプリケーションをテストします。
応答は次の例のようになります (簡潔にするため、いくつかの項目が省略されています)。
{
"headers": {
},
"attachments": {
},
"body": {
"getRecordsResponse": {
"getRecordsResult": {
"active": "1",
"activity_due": "2019-09-24 09:48:15",
"approval": "not requested",
"business_stc": "0",
"calendar_stc": "0",
"category": "Software",
"child_incidents": "0",
"description": "Test WSDL QA",
"escalation": "0",
"hold_reason": "0",
"impact": "1",
"incident_state": "1",
"knowledge": "0",
"made_sla": "1",
"notify": "1",
"number": "INC0011616",
"opened_at": "2019-09-20 07:30:34",
"opened_by": "6816f79cc0a8016401c5a33be04be441",
"order": "0",
"priority": "1",
"reassignment_count": "0",
"reopen_count": "0",
"severity": "3",
"state": "1",
"sys_class_name": "incident",
"sys_created_by": "admin",
"sys_created_on": "2019-09-20 07:30:34",
"sys_domain": "global",
"sys_domain_path": "/",
"sys_id": "c03deab4db840010a0e6e04a48961999",
"sys_mod_count": "47",
"sys_updated_by": "system",
"sys_updated_on": "2019-09-24 07:48:15",
"upon_approval": "proceed",
"upon_reject": "cancel",
"urgency": "1",
}
}
}
}
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 インシデントテーブルキーの取得
この例では、ServiceNow インスタンスの Incident テーブルからキーを取得する Mule フローを作成します。
-
Studio で Mule アプリケーションをプロジェクトとして作成します。
-
フローの HTTP の Listener トリガーを追加して設定し、[Path (パス)] を
/getkeys に設定します。 -
HTTP の Listener 操作の後に Transform Message コンポーネントを追加します。
-
次のような変換スクリプトを提供します (ServiceNow インシデントテーブルのレコードに一致する記述を使用します)。
%dw 2.0 output application/xml ns ns0 http://www.service-now.com/incident --- { ns0#getKeys: { ns0#description: 'Test WSDL QA' } } -
Transform Message コンポーネントの後に ServiceNow の Invoke 操作を追加します。
-
ServiceNow サーバーに接続するための ServiceNow 設定をセットアップし、テストして、保存します。接続に失敗した場合は、無効な接続パラメーターを確認して修正し、もう一度テストを実行してください。
-
[General (一般)] タブのナビゲーションで [Service (サービス)] を
incident に設定し、[Operation (操作)] を getKeys に設定します。 -
[Message Body (メッセージ本文)] を
payload に設定します。 -
Transform Message コンポーネントを追加し、XML から JSON への変換を行って、読みやすさを向上します。次に例を示します。
%dw 2.0 output application/json --- payload
-
フローの最後に
payload (または #[payload]) をメッセージとして使用する Logger コンポーネントを追加します。 -
アプリケーションをデプロイまたは実行します。
-
アプリケーションをテストするため、
http://localhost:8081/getkeys に移動します。 -
応答は次のようになります。
{ "headers": { }, "attachments": { }, "body": { "getKeysResponse": { "sys_id": "c03deab4db840010a0e6e04a48961999,0f517ab8db840010a0e6e04a489619bc,6f1236f8db840010a0e6e04a489619f5", "count": "3" } } }