인스턴스에 Open Message Bus를 배포했거나 배포할 계획이라면 이 메시지 버스에 대한 생산자 이벤트 알림 프레임워크를 구성해야 합니다. 클라우드 인스턴스와 온프레미스 인스턴스 모두에 이 메시지 버스를 배포할 수 있습니다.
프로시저
-
현재 메시지 버스의 주제를 인스턴스와 ServiceNow 동기화합니다.
-
미리 구성된 REST 작업에 메시지를 직접 보내도록 메서드를 사용자 지정합니다 OpenMessageBusEventPublisherOOB - publishMessageToComptibleRestProxy(객체 tmfEventPayload, 배열 compatibleTopicArr) .
이 메서드는 스포크 선택기를 사용하여 사용자 지정 메시지 플랫폼의 REST 프록시로 메시지를 보내는 작업을 담당합니다. 사용자 지정 메시지 플랫폼은 메시지가 게시되는 메시지 버스입니다.
다음 코드 예시에서는 스포크 선택기 대신 스포크 선택기 플로우 및 사용자 지정 작업을 사용하도록 이 방법을 사용자 지정하는 방법을 보여줍니다.
publishMessageToComptibleRestProxy: function(tmfEventPayload, compatibleTopicArr) {
if (gs.nil(tmfEventPayload) || gs.nil(compatibleTopicArr)) {
return;
}
for (var i = 0; i < compatibleTopicArr.length; i++) {
// Invoking spoke selector flow which will in turn pick the rest proxy based on the input condition
var topicGr = new GlideRecord(Constants.TABLE_TOPIC);
topicGr.get(compatibleTopicArr[i]);
if (!topicGr.isValidRecord()) {
this._logger.debug("Invalid topic sys_id passed to open message publisher. Sys_id passed is " + compatibleTopicArr[i]);
return;
}
// NOTE THAT IN THIS IMPLEMENTATION INVOKES A CUSTOM ACTION INSTEAD OF SPOKE SELECTOR
var restProxyResponse = new sn_appss.RequestAPI(spokeSelectorRequestTypeId, spokeSelectorRequestTypeInputMap, spokeSelectorRequestTypeContextObject).execute();
// var restProxyResponse = sn_fd.FlowAPI.executeActionQuick('sn_api_notif_mgmt.demo_topic_rest_proxy_response', spokeSelectorRequestTypeInputMap);
var responseCode = restProxyResponse.response.code;
if (Constants.REGISTRATION_RESPONSE_SUCCESS_CODES.indexOf(responseCode) == -1) {
this._logger.logErr("Publishing message to Message bus rest proxy failed with HTTP response code " + responseCode);
}
}
},
-
주제에 대한 REST 프록시를 구성합니다.
스포크가 구성되면 스포크에 구성된 주제에 대해 지정된 REST 프록시에 메시지가 게시됩니다.
-
다음으로 이동
-
주제 REST 프록시 아웃바운드 요청을 선택합니다.
-
통합 요청 정의 탭을 선택합니다.
-
통합 요청 정의 항목을 생성하여 스포크를 구성합니다.
추가 지침은 데모 REST 프록시 응답 정의 항목을 참조할 수도 있습니다.