XOpsは、XOpsストーリーと外部サービス管理プラットフォーム間の双方向同期をサポートしています。 この統合により、プラットフォーム間で調査活動を整合させることができ、一方のプラットフォームで行った更新が他方に反映されます。
詳細については、サービス管理プラットフォームと双方向統合を作成するを参照してください。
サービスNowの統合を設定するには、次の5つの手順を完了します。
Cato管理アプリケーション(CMA)でチケット制されたときに入力されるフィールドを作成します。
サービスAPIキーは、外部ツールやサービスとのスケーラブルな統合を可能にし、このフォーマットで作成されます: R=<...>|K=<...>。 サービスAPIキーの作成方法についての詳細は、Cato APIのためにAPIキーを生成するをご覧ください。
サービスAPIキーを作成したら、コピーして保存し、サービスNowプラットフォームに入力できるようにします。
サービスNowのインシデントからCatoに詳細を送信するRESTメッセージを作成します:
RESTメッセージを作成するには:
- サービスNowプラットフォームで、すべて>システムWebサービス>アウトバウンド>RESTメッセージに進みます。
- 新規をクリックします。
-
RESTメッセージフォームで、以下の詳細を追加します:
- 名前: RESTメッセージの名前を追加
- エンドポイント: https://<お使いのCatoアカウント名>.cc.catonetworks.com/api/v1/graphql2
- 認証タイプ: 認証なし
-
HTTPメソッド: 新規をクリックして次の詳細を追加します:
- 名前: 名前を追加
- HTTPメソッド: POST
- エンドポイント: https://<お使いのCatoアカウント名>.cc.catonetworks.com/api/v1/graphql2
- 送信をクリックします。
RESTメッセージをトリガーするビジネスルールを作成します。
ビジネスルールを作成するには:
- サービスNowプラットフォームで、すべて> システム定義> ビジネスルールに進みます。
- 新規をクリックします。
-
ビジネスルール新規レコードフォームで、次の詳細を追加します:
- 名前: ビジネスルールの名前を追加
- テーブル: インシデント
- タイミング: 後
- 更新: 真 (チェックボックスをオンにする)
- フィルター条件: コメントの変更
-
詳細設定タブで、このスクリプトを追加します:
(function executeRule(current, previous) { try { var lastComment = current.comments.getJournalEntry(1) || ''; lastComment = stripJournalHeader(lastComment); if (!lastComment) { gs.info("GraphQL webhook: Empty comment, skipping " + current.number); return; } var accountId = current.u_cma_account_id; var storyId = current.u_cma_story_id; gs.info("GraphQL webhook: accountId " + accountId + " story " + storyId); if (!accountId || !storyId) { gs.error("GraphQL webhook: Missing accountId/storyId for " + current.number); return; } var gqlQuery = "mutation CreateStoryComment($accountId: ID!, $input: AddStoryCommentInput!) {" + " xdr(accountId: $accountId) {" + " addStoryComment(input: $input) {" + " comment { id type __typename }" + " __typename" + " }" + " __typename" + " }" + "}"; var body = { query: gqlQuery, variables: { accountId: accountId.toString(), input: { type: "USER", storyId: storyId.toString(), text: lastComment } } }; var apiKey = gs.getProperty('cma_prod_api_key'); var r = new sn_ws.RESTMessageV2('Update XDR story comments CMA Prod', 'post'); r.setRequestHeader('Content-Type', 'application/json'); r.setRequestHeader('Accept', 'application/json'); r.setRequestHeader('x-api-key', apiKey); r.setRequestBody(JSON.stringify(body)); //var response = r.execute(); // can be changed to Async - only for debug purposes var eccSysId = r.executeAsync(); gs.info("GraphQL webhook queued, ECC sys_id=" + eccSysId); var status = response.getStatusCode(); var responseBody = response.getBody(); // Safe logging (see next section for masking) gs.info("GraphQL webhook: status=" + status); gs.info("GraphQL webhook: responseBody=" + responseBody); } catch (ex) { gs.info("GraphQL webhook: Failed: " + ex.message); } function stripJournalHeader(text) { text = text || ''; if (text.indexOf('\n') > -1) { return text.split('\n').slice(1).join('\n').trim(); } return text.trim(); } })(current, previous); - 送信をクリックします。
次のいずれかで問題やエラーを特定できます:
- システムログ: システムログ > すべてに移動し、
GraphQL webhookを含むメッセージを検索します。 - ECCレコード: https://<インスタンス>.service-now.com/sys_ecc_queue_list.do に移動し、ログに記録された
ECC sys_idを持つECCレコードを見つけます。
0件のコメント
サインインしてコメントを残してください。