Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerServiceNow 用 Anypoint Connector (ServiceNow Connector) を最大限活用するには、次の Anypoint Studio と Flow Designer の両方での設定例を参照してください。
この例では、インシデント番号に基づいてレコードを取得するための Mule フローを Flow Designer で作成します。
Flow Designer で Mule アプリケーションをプロジェクトとして作成します。
HTTP の Listener をフローのソースとして追加して設定し、[Path (パス)] を /incident/get
に設定します。
または、HTTP リスナーの接続にデフォルトの設定を使用します。
ServiceNow の Invoke 操作をフローに追加します。
ServiceNow サーバーに接続するための ServiceNow 設定を次のようにセットアップしてテストします。
Configuration Name (設定名): ServiceNow_Config
Username (ユーザー名): my_user_name
Password (パスワード): my_password
Service Address (サービスアドレス): https://my_account.service-now.com
ServiceNow Version (ServiceNow バージョン): Quebec
ServiceNow アカウントに soap ロールセットがあるか、ServiceNow アカウントが admin アカウントである必要があります。システム管理者アカウントには SOAP へのアクセス権が自動的に付与されるため、テストにはシステム管理者アカウントが適しています。ただし、本番環境では、専用の API アカウントを作成し、soap ロールと、必要最低限のアクセス権を付与する追加のロールセットを設定してください。
|
接続に失敗した場合テストは、無効な接続パラメーターを確認して修正し、接続をもう一度テストしてください。
ServiceNow 設定の [Transport (トランスポート)] タブで、Basic Auth HTTP
メッセージディスパッチャーをセットアップし、テストして、保存します。
[General (一般)] タブで指定したものと同じユーザー名とパスワードを使用します。たとえば、次のように指定します。
Username (ユーザー名): my_user_name
Password (パスワード): my_password
接続に失敗した場合テストは、無効な接続パラメーターを確認して修正し、接続をもう一度テストしてください。
ServiceNow Connector の [Web Service Configuration (Web サービス設定)] 値を選択します。たとえば、次のようにします。
Service (サービス): incident
Operation (操作): getRecords
これらの値を [Service (サービス)] 項目と [Operation (操作)] 項目のメニュー項目として使用できるようにします。
名前は、コネクタがメタデータを読み込むと入力されます。
これらの名前を手動で入力しないでください。 |
コネクタの変換スクリプトを提供します。
Design Center の Invoke 操作から、[Body (本文)] 項目の [Map (マップ)] をクリックします。
[Body (本文)] ウィンドウの下部にある [Script (スクリプト)] タブをクリックします。
次の例のように、変換スクリプトをコピーして貼り付けます。
%dw 2.0 output application/xml ns inc http://www.service-now.com/incident --- { inc#getRecords: { inc#number: "INC0012345" } }
この例では、output データ型を application/xml に変更しています。
|
フローの最後にpayload
をメッセージとして使用するロガーを追加します。
アプリケーションをデプロイ、同期、または実行します。
ブラウザーまたは Postman などのアプリケーションから URL http://url.for.your.app:8081/incident/get
を開いて、アプリケーションをテストします。
応答は次の例のようになります (簡潔にするため、いくつかの項目が省略されています)。
<getRecordsResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <getRecordsResult> <active>1</active> <additional_assignee_list/> <approval>not requested</approval> <business_stc>0</business_stc> <calendar_duration/> <calendar_stc>0</calendar_stc> <caller_id>6816f79cc0a8016401c5a33be04be441</caller_id> <category>inquiry</category> <escalation>0</escalation> <knowledge>0</knowledge> <made_sla>1</made_sla> <notify>1</notify> <number>INC0021195</number> <opened_at>2017-07-27 03:13:54</opened_at> <opened_by>6816f79cc0a8016401c5a33be04be441</opened_by> <order>0</order> <priority>5</priority> <short_description>Server outage</short_description> <state>1</state> <sys_class_name>incident</sys_class_name> <sys_created_by>admin</sys_created_by> <sys_created_on>2017-07-27 03:14:52</sys_created_on> <sys_domain>global</sys_domain> </getRecordsResult> </getRecordsResponse>
この例では、Incident
テーブルからレコードを取得するための Mule フローを Studio で作成します。次のスクリーンショットは、この例の 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 インスタンスのインシデントテーブルからキーを取得するための Mule フローを Studio で作成します。
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" } } }