[ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.
2432 단어 ServiceNowServiceNow 개발 메모
개요
MID Server를 통해 REST를 실행해 보았습니다.
여러가지 조사해 보았습니다만 ServiceNow로부터 편리한 기능이 준비되어 있던 것은 아니고,
아래의 순서로 실시
①MID Server에 BATCH 파일 작성
②BATCH 파일 실행할 Queue 등록
③BATCH 파일에 기재되어 있는 CURL 커맨드를 실행
상세
①MID Server에 스크립트(BATCH 파일) 작성
MID Server에서 실행할 BATCH 파일을 만듭니다.
ServiceNow에서 만든 후 MID Server의 agent/scripts 폴더에 만든 BATCH 파일이 자동으로 저장됩니다.
1. MID Server – Script Files를 실행한다.
2. Name에 BATCH 파일명을 입력한다.
3.Script에 CURL 명령을 입력한다.
4. Submit을 실행한다.
②BATCH 파일 실행할 Queue 등록
MID Server에 BATCH 파일을 제출하는 Queue를 작성하십시오.
MID Server에서 Queue를 감지하면 BATCH 파일이 실행됩니다.
1. ECC - Queue를 실행한다.
2.NEW를 실행한다.
3. Agent 필드에 MID Server 이름을 입력합니다.
4.Topic란에 "Command"를 입력한다.
5. Name 필드에 실행할 BATCH 파일의 전체 경로를 입력합니다.
6. Queue란에 output을 선택한다.
7. State란이 ready인지 확인한다.
8. Submit을 실행한다.
BATCH 파일에 나열된 CURL 명령 실행
1. Queue는 MID 서버에서 처리되면 State가 ready에서 변경된다.
(성공의 경우는 procesed, 실패의 경우는 error)
2. MID Server에서 BATCH 파일이 실행되면 Queue란이 input, payload란에 실행 결과가 설정된 응답 Queue가 작성된다.
보충
페이로드의 깨짐
payload란은 문자 코드 UTF-8이 되어 있는 BATCH 파일은
그대로 실행하면 문자 코드가 SJIS가 된다.
따라서 페이로드에 메시지를 표시하려면
BATCH 파일의 선두에 chcp 65001
라고 기재해 문자 코드를 UTF-8 로 변경할 필요가 있다.
BATCH 파일의 정기 실행
Scheduled jobs를 이용해 정기적으로 Queue에 레코드를 작성하도록(듯이) 하는 것으로 실현.
var queue = new GlideRecord(‘ecc_queue’); //Queueテーブル
queue.initialize(); //初期化
queue.agent = ‘mid.server.XXXXXXXX’; //MIDサーバ
queue.topic = 'Command';
queue.name = 'c:\\agent\\scripts\\import.bat'; //BATCHファイル
queue.queue = 'output';
queue.state = 'ready';
queue.insert();
마지막으로
이 방법으로 REST 실행할 수 있었는지 여부는 불안합니다.
더 좋은 방법이 있다면 공유 할 수 있기를 바랍니다.
Reference
이 문제에 관하여([ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ysnow/items/34fd80791f820a1d032a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
①MID Server에 스크립트(BATCH 파일) 작성
MID Server에서 실행할 BATCH 파일을 만듭니다.
ServiceNow에서 만든 후 MID Server의 agent/scripts 폴더에 만든 BATCH 파일이 자동으로 저장됩니다.
1. MID Server – Script Files를 실행한다.
2. Name에 BATCH 파일명을 입력한다.
3.Script에 CURL 명령을 입력한다.
4. Submit을 실행한다.
②BATCH 파일 실행할 Queue 등록
MID Server에 BATCH 파일을 제출하는 Queue를 작성하십시오.
MID Server에서 Queue를 감지하면 BATCH 파일이 실행됩니다.
1. ECC - Queue를 실행한다.
2.NEW를 실행한다.
3. Agent 필드에 MID Server 이름을 입력합니다.
4.Topic란에 "Command"를 입력한다.
5. Name 필드에 실행할 BATCH 파일의 전체 경로를 입력합니다.
6. Queue란에 output을 선택한다.
7. State란이 ready인지 확인한다.
8. Submit을 실행한다.
BATCH 파일에 나열된 CURL 명령 실행
1. Queue는 MID 서버에서 처리되면 State가 ready에서 변경된다.
(성공의 경우는 procesed, 실패의 경우는 error)
2. MID Server에서 BATCH 파일이 실행되면 Queue란이 input, payload란에 실행 결과가 설정된 응답 Queue가 작성된다.
보충
페이로드의 깨짐
payload란은 문자 코드 UTF-8이 되어 있는 BATCH 파일은
그대로 실행하면 문자 코드가 SJIS가 된다.
따라서 페이로드에 메시지를 표시하려면
BATCH 파일의 선두에 chcp 65001
라고 기재해 문자 코드를 UTF-8 로 변경할 필요가 있다.
BATCH 파일의 정기 실행
Scheduled jobs를 이용해 정기적으로 Queue에 레코드를 작성하도록(듯이) 하는 것으로 실현.
var queue = new GlideRecord(‘ecc_queue’); //Queueテーブル
queue.initialize(); //初期化
queue.agent = ‘mid.server.XXXXXXXX’; //MIDサーバ
queue.topic = 'Command';
queue.name = 'c:\\agent\\scripts\\import.bat'; //BATCHファイル
queue.queue = 'output';
queue.state = 'ready';
queue.insert();
마지막으로
이 방법으로 REST 실행할 수 있었는지 여부는 불안합니다.
더 좋은 방법이 있다면 공유 할 수 있기를 바랍니다.
Reference
이 문제에 관하여([ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ysnow/items/34fd80791f820a1d032a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var queue = new GlideRecord(‘ecc_queue’); //Queueテーブル
queue.initialize(); //初期化
queue.agent = ‘mid.server.XXXXXXXX’; //MIDサーバ
queue.topic = 'Command';
queue.name = 'c:\\agent\\scripts\\import.bat'; //BATCHファイル
queue.queue = 'output';
queue.state = 'ready';
queue.insert();
이 방법으로 REST 실행할 수 있었는지 여부는 불안합니다.
더 좋은 방법이 있다면 공유 할 수 있기를 바랍니다.
Reference
이 문제에 관하여([ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ysnow/items/34fd80791f820a1d032a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)