ServiceNow에서 Teams로 알림 건너뛰기

개요



ServiceNow에서는 IntegrationHub에 Slack Spoke, Microsoft Teams Spoke 및 기타 메시지를 보내는 작업이 있습니다.
다른 구독이 필요하므로 REST 메시지를 사용하여 구현할 수 없는지 확인해 보았습니다.

플랫폼



파리

샘플 케이스



변경 요청의 상태가 구현되면 Teams에 알리는 경우를 가정합니다.
변경 요청 업데이트를 트리거하여 비즈니스 규칙에서 Teams 웹후크에 메시지를 보냅니다.

절차



Webhook 설정



Webhook 설정은 다른 기사를 참고하여
Microsoft Teams API (Incoming Webhook)에서 게시

엔드포인트를 복사하십시오.

REST 메시지 설정



System Web Services > Outbound > REST Message에서 [New] 버튼을 눌러 REST Message를 등록

복사한 엔드포인트를 여기에 붙여넣기

등록 후 REST 메시지 함수(HTTP Methods) 생성
이번에는 Default GET을 편집했습니다.

HTTP 메서드를 POST로 업데이트


테스트 전송



Script - Background에서 실행해 봅니다.

bg_script.js
var restMessage = new sn_ws.RESTMessageV2("Teams通知", "メッセージ送信");
var message = "メッセージテスト"; 
var body = createBody(message);
restMessage.setRequestBody(body);
var response = restMessage.executeAsync();

 function createBody(message) {
    var body = {
        type : "message",
        text : message
    };
  return new JSON().encode(body);
 }

날아갔다.


비즈니스 규칙 설정



변경 요청 업데이트를 트리거하고 메시지를 보내는 비즈니스 규칙 만들기
실행 타이밍은 비동기입니다.
Changes나 ChangesTo는 변경 전이 없기 때문에 비동기로는 사용할 수 없다고 생각했습니다만, 컨디션 빌더로 사용하는 경우에는 사용할 수 있는 것 같습니다. 몰랐다.
htps : // / cs. 세레 ゔ 세세의 w. 코 m / 브 d ぇ / 파리 s - p p 카치 온 - ゔ ぇ p 맨 t / 펑 / sc pt / 부시 네 s 루 ぇ s / 레후 렌세 / r_ 호 w 부시 네 s 루 ぇ ぉ rk. HTML


코드는 이런 느낌으로 써본다

send_change_implementation.js
(function executeRule(current, previous /*null when async*/) {
    var restMessage = new sn_ws.RESTMessageV2("Teams通知", "メッセージ送信");
    var message = createMessage(current);
    var body = createBody(current, message);
    restMessage.setRequestBody(body);
    var response = restMessage.executeAsync();
})(current, previous);

function createMessage(current) {
    var url = gs.getProperty('glide.servlet.uri')+'/change_request.do?sys_id=' + current.sys_id;
    var message = '【お知らせ】以下の変更を実装します!<br/>' +
            '番号:<a href="' + url + '">' + current.number + '</a><br/>';
    message += '作業名: ' + current.short_description + '<br/>';
    message += '終了予定時刻: ' + current.end_date.getDisplayValue();

    return message;
}

function createBody(current, message) {
    var body = {
        type : "message",
        text : message
    };
    return new JSON().encode(body);
}

결과는 여기

좋은 웹페이지 즐겨찾기