XOps는 XOps 스토리와 외부 서비스 관리 플랫폼 간의 양방향 동기화를 지원합니다. 이 통합은 플랫폼 간 조사 활동이 일치하도록 도와주며, 한 플랫폼에서 이루어진 업데이트가 다른 플랫폼에 반영되도록 합니다.
자세한 내용은 서비스 관리 플랫폼과의 양방향 통합 생성하기를 참조하십시오.
서비스나우 통합을 구성하려면, 다섯 가지 단계를 완료하십시오.
서비스 API 키는 외부 도구와 서비스와의 확장 가능한 통합을 가능하게 하며 다음 형식으로 생성됩니다: R=<...>|K=<...>. 서비스 API 키 생성에 대한 정보와 세부 정보는 Cato API에 대한 API 키 생성하기를 참조하십시오.
서비스 API 키를 생성한 후, 이를 복사하고 저장하여 서비스나우 플랫폼에 입력할 수 있도록 하십시오.
서비스나우 사건에서 Cato로 세부 사항을 보내기 위한 REST 메시지를 생성하십시오:
REST 메시지를 생성하려면:
- 서비스나우 플랫폼에서, All>System Web Services > Outbound > REST Message로 이동하십시오.
- 새로 만들기를 클릭하십시오.
-
REST 메시지 양식에서, 다음 세부 사항을 추가하십시오:
- 이름: REST 메시지에 대한 이름 추가
- 종점: https://<귀하의 Cato 계정 이름>.cc.catonetworks.com/api/v1/graphql2
- 인증 유형: 인증 없음
-
HTTP 메서드: 새로 만들기를 클릭하여 다음 세부 내용을 추가하십시오:
- 이름: 이름 추가
- HTTP 메서드: POST
- 종점: https://<귀하의 Cato 계정 이름>.cc.catonetworks.com/api/v1/graphql2
- 제출을 클릭하십시오.
REST 메시지를 트리거하기 위한 비즈니스 규칙을 생성하십시오.
비즈니스 규칙을 생성하려면:
- 서비스나우 플랫폼에서, All > System Definitions > Business Rule로 이동하십시오.
- 새로 만들기를 클릭하십시오.
-
새 비즈니스 규칙 레코드 양식에서, 다음 세부 정보를 추가하십시오:
- 이름: 비즈니스 규칙에 대한 이름 추가
- 테이블: 사건
- 시기: 후
- 업데이트: 참 (체크박스를 선택하십시오)
- 필터 조건: 댓글 변경
-
고급 탭에서, 이 스크립트를 추가하십시오:
(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); - 제출을 클릭하십시오.
다음을 통해 문제와 오류를 식별할 수 있습니다.:
- 시스템 로그: System Logs > All로 이동하여
GraphQL webhook이 포함된 메시지를 검색하십시오. - ECC 레코드: https://<작업 인스턴스>.service-now.com/sys_ecc_queue_list.do로 이동하여 기록된
ECC sys_id가 포함된 ECC 레코드를 찾아보십시오.
댓글 0개
댓글을 남기려면 로그인하세요.