openFrameAPI - 클라이언트
openFrameAPI는 OpenFrame과 상호 작용하는 메서드를 제공합니다. OpenFrame은 통신 파트너가 시스템을 ServiceNow 플랫폼에 통합하는 데 사용할 수 있는 편재 프레임입니다.
핵심 요구사항 중 하나는 파트너 하위 시스템과 원활하게 연결할 수 있는 여러 도메인의 코드를 연결하고 제공하는 기능입니다. 이 교차 도메인 연결은 교차 도메인 문제 없이 연결 및 콜백을 통신 시스템에 등록하는 데 필요합니다.
openFrameAPI - getAWAAgentPresence(문자열 성공, 문자열 실패)
로그인한 에이전트의 현재 상태를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 성공 | 문자열 | 메서드가 성공하면 호출할 콜백 함수의 이름입니다. |
| 실패 | 문자열 | 메서드가 실패하면 호출할 콜백 함수의 이름입니다. |
| 유형 | 설명 |
|---|---|
| presence | OpenFrame 인프라에서 성공 콜백 함수에 전달된 결과입니다. 데이터 유형: 객체 |
| presence.available | 연결된 에이전트를 사용할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 부울 |
| presence.channels | 에이전트와의 사용 가능한 통신 채널 목록입니다. 데이터 형식: 객체 배열
|
| presence.channels.available | 채널을 사용할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 형식: 부울 |
| presence.channels.name | 채팅 또는 전화 같은 채널의 이름입니다. 데이터 유형: 문자열 |
| presence.channels.restrict_update | 사용자가 채널에 대한 업데이트를 제한할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 형식: 부울 |
| presence.channels.service_channel_type | 서비스 채널의 유형입니다. 데이터 유형: 문자열 |
| presence.channels.sys_id | 채널 기록의 Sys_id입니다. 서비스 채널 [awa_service_channel] 테이블에 있습니다. 데이터 유형: 문자열 |
| presence.name | 에이전트의 현재 상태 이름입니다. 데이터 유형: 문자열 |
| presence.sys_id | 현재 상태 기록의 Sys_id입니다. 현재 상태 [awa_presence_state] 테이블에 있습니다. 데이터 유형: 문자열 |
다음 코드 exapmle은 이 메서드를 호출하는 방법을 보여 줍니다.
function failure(data)
{
console.log("failure: " + JSON.stringify(data));
}
function success(data)
{
console.log("success: " + JSON.stringify(data));
}
openFrameAPI.getAWAAgentPresence(success, failure)
성공 콜백 함수에 대한 응답:
success: {
"presence": {
"name": "Available",
"sys_id": "0b10223c57a313005baaaa65ef94f970",
"available": true,
"channels": [
{
"name": "Chat",
"available": true,
"sys_id": "27f675e3739713004a905ee515f6a7c3",
"restrict_update": false,
"service_channel_type": "chat"
}
]
}
}
openFrameAPI - hide()
TopFrame에서 OpenFrame을 숨깁니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.hide()
openFrameAPI - init(config 객체, successCallback 함수, failureCallback 함수)
OpenFrame을 초기화합니다. 이 메서드는 호출하는 첫 번째 메서드여야 합니다.
이 메서드는 TopFrame에 대한 통신을 초기화하고 매개 변수에 전달된 모든 시각적 요소를 초기화합니다 config .
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | 객체 | 초기화 프로세스 중에 사용할 이름-값 쌍입니다. 가능한 키: 모든 키는 옵션입니다. 이러한 키-값 쌍을 설정하지 않으려면 빈 객체를 전달합니다.
|
| successCallback | 함수 | init 메서드가 성공할 경우 사용할 콜백 함수의 이름입니다. 시스템에 저장된 OpenFrame 구성 은 콜백 함수에 매개변수로 전달됩니다. |
| failureCallback | 함수 | init 메서드가 실패할 경우 사용할 콜백 함수의 이름입니다. |
| 유형 | 설명 |
|---|---|
| void |
var config = {
height: 300,
width: 200
}
function handleCommunicationEvent(context) {
console.log("Communication from Topframe", context);
}
function initSuccess(snConfig) {
console.log("openframe configuration", snConfig);
//register for communication event from TopFrame
openFrameAPI.subscribe(openFrameAPI.EVENTS.COMMUNICATION_EVENT,
handleCommunicationEvent);
}
function initFailure(error) {
console.log("OpenFrame init failed...", error);
}
openFrameAPI.init(config, initSuccess, initFailure);
openFrameAPI - isVisible(callback 함수)
TopFrame에 OpenFrame이 표시되는지 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| callback | 함수 | callback 함수는 true 또는 false 값을 가진 매개변수를 받습니다. OpenFrame이 표시되면 true이고 표시되지 않으면 false입니다. |
| 유형 | 설명 |
|---|---|
| void |
function callback(isVisible) {
console.log(isVisible)
}
openFrameAPI.isVisible(callback)
openFrameAPI - openCustomURL(details 문자열)
UI16 인터페이스에서 사용자 지정 URL을 엽니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| URL | 문자열 | 사용자 지정 URL의 텍스트입니다. 최대 크기: 2083자 |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.openCustomURL('10_cool_things.do');
openFrameAPI - openServiceNowForm(details 객체)
양식 URL을 엽니다.
- 플랫폼 인터페이스에서 이 API는 TopFrame에 양식 URL을 엽니다.
- 에이전트 작업 공간에서는 이 API가 상호작용 탭 관리를 지원합니다. 에이전트 작업 공간에서는 상호작용 기록이 상위 탭에 열리고 지정된 엔터티 기록이 상호작용 탭 아래의 하위 탭에 열립니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| details | 객체 | 열려는 양식 URL을 식별 하는 키-값 쌍입니다. |
| details.entity | 문자열 | 테이블 또는 엔터티 이름입니다. |
| details.interaction_sys_id | 문자열 | 옵션입니다. 에서 상위 탭 에이전트 작업 공간으로 열 상호작용 기록의 Sys_id입니다. 주: 플랫폼 인터페이스에서는 interaction_sys_id가 무시됩니다. |
| details.query | 문자열 | 열려는 기록을 식별하는 쿼리입니다(예: query:'sys_id=<record_sys_id>'). |
| 유형 | 설명 |
|---|---|
| void |
다음 예제는 플랫폼에서의 기본 사용법을 보여줍니다.
openFrameAPI.openServiceNowForm({entity:'customer_account',
query:'sys_id=447832786f0331003b3c498f5d3ee452', 'interaction_sys_id':'3be092313b711300758ce9b534efc4dd'});
다음 예제에서는 매개 변수를 사용하여 query sysparm_query 및 인코딩된 쿼리를 사용하여 양식에 제공된 데이터로 새 레코드를 만드는 방법을 보여 줍니다.
openFrameAPI.openServiceNowForm({ entity: 'sys_user',
query: 'sys_id=-1&sysparm_query=first_name=Ivan^last_name=Greggor' });
openFrameAPI - openServiceNowFormwithChildTabIf()
작업 공간에서 호출되는 ServiceNow 경우 하위 탭이 있는 양식을 열거나 UI16 인터페이스에서 호출되는 경우 엔터티를 엽니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| openServiceNow FormwithChildTab | 객체 | API가 작업 공간에서 호출되는 경우 하위 탭이 있는 양식을 열 ServiceNow 거나 UI16 인터페이스에서 호출되는 경우 엔터티를 여는지 정의합니다. |
| openServiceNowFormwithChildTab.entity | 문자열 | 테이블의 이름입니다. |
| openServiceNowFormwithChildTab.sys_id | 문자열 | 오픈할 기록의 Sys_id입니다. |
| openServiceNowFormwithChildTab.parent_entity | 문자열 | 상위 탭으로 열 테이블의 이름입니다. |
| openServiceNowFormwithChildTab.parent_entity_sys_id | 문자열 | 열려는 상위 기록의 Sys_id입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 구성된 작업 공간에서 상위 엔터티를 상위 탭으로 열거나, UI16에서 호출된 경우 엔터티만 엽니다.
openFrameAPI.openServiceNowFormwithChildTablf({
entity: “customer_account”,
sys_id: “447832786f0331003b3c498f5d3ee452”,
parent_entity: “interaction”,
parent_entity_sys_id: “3be092313b711300758ce9b534efc4dd”
});
openFrameAPI - openServiceNowList(details 객체)
UI16 인터페이스에서 목록 URL을 엽니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| details | 객체 | 목록 URL을 열 때 사용할 컨텐츠를 설명하는 키 값 쌍입니다. 유효한 값은 다음과 같습니다.
|
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.openServiceNowList({entity:'case', query:'active=true'});
openFrameAPI - setFrameMode(mode)
OpenFrame 모드를 설정합니다.
- 헤더에 적절한 아이콘을 설정합니다(축소 또는 확장).
- CTI의 관련 이벤트를 발생시킵니다.
- openFrameAPI.EVENTS.COLLAPSE
- openFrameAPI.EVENTS.EXPAND
| 이름 | 유형 | 설명 |
|---|---|---|
| Mode | 문자열 | OpenFrame 모드를 설정합니다. 열거 옵션:
|
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setFrameMode(openFrameAPI.FRAME_MODE.COLLAPSE);
openFrameAPI - setHeight(height)
OpenFrame 높이를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 높이 | 번호 | 높이(픽셀) |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setHeight(100);
openFrameAPI - setIcons(icons 배열)
닫기 아이콘 옆에 배치되는 OpenFrame 헤더의 아이콘을 정의합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| icons | 객체 배열 | 각 아이콘 구성이 키 값 imageURL, imageTitle및 기타 필요한 컨텍스트가 있는 객체인 아이콘 구성 목록입니다. 최대 크기: 아이콘은 최대 16x16픽셀일 수 있습니다. 더 큰 이미지는 자동으로 이 최대값으로 조정됩니다. |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setIcons([{imageURL:'https://mydomian.com/image/mute.png',
imageTitle:'mute', id:101}, {imageURL:'https://mydomian.com/image/hold.png',
imageTitle:'hold', id:102}]);
openFrameAPI - setPresenceIndicator(presence)
작업 영역에서 에이전트 가용성을 표시하도록 현재 상태 표시기를 설정합니다.
OpenFrame 구성에 대한 자세한 내용은 OpenFrame 구성 생성을 참조하십시오
| 이름 | 유형 | 설명 |
|---|---|---|
| state | 문자열 | 에이전트의 현재 상태입니다. 기본 상태:
사용자 지정 상태를 지정할 수도 있습니다. |
| color | 문자열 | 작업 영역의 현재 상태 표시기 색입니다. 지원되는 색:
|
| 유형 | 설명 |
|---|---|
| void |
openframeAPI.setPresenceIndicator('Available', 'green');
openFrameAPI - setSize(width 숫자, height 숫자)
OpenFrame 크기를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| width | 번호 | 0보다 커야 합니다. |
| height | 번호 | 0보다 커야 합니다. |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setSize(300, 370);
openFrameAPI - setSubtitle(subTitle 문자열)
OpenFrame 부제목을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| subTitle | 문자열 | 256자 이하의 문자열입니다. |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setSubtitle('+18888888888');
openFrameAPI - setTitle(title 문자열)
OpenFrame 제목을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제목 | 문자열 | 256자 이하의 문자열입니다. |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setTitle('Incoming Call');
openFrameAPI - setTitleIcon(icon 객체)
OpenFrame의 제목 아이콘을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| icon | 객체 | 키 값 쌍의 객체입니다. 키에는 , imageTitle및 기타 필요한 컨텍스트가 포함됩니다imageURL. 최대 크기: 아이콘은 최대 16x16픽셀일 수 있습니다. 더 큰 이미지는 자동으로 이 최대값으로 조정됩니다. |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setTitleIcon({imageURL:'/my/image/path.png', imageTitle:'mute', id:101});
openFrameAPI.setTitleIcon({imageURL:'https://mydomian.com/image/path.png',
imageTitle:'mute', id:101});
openFrameAPI - setWidth(width)
OpenFrame 너비를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 너비 | 번호 | 너비(픽셀) |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.setWidth(100);
openFrameAPI - show()
TopFrame에서 OpenFrame을 표시합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| void |
openFrameAPI.show()
openFrameAPI - subscribe(openFrameAPIEVENT 이벤트, eventCallback 함수)
지정된 이벤트를 구독합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이벤트 | openFrameAPIEVENT | 구독할 이벤트:
|
| eventCallback | 함수 | 지정된 이벤트가 발생할 때 호출할 함수입니다. |
| 유형 | 설명 |
|---|---|
| 결과 | 대부분의 이벤트 구독에는 반환 값이 없습니다. 값을 반환하는 이벤트 구독은 다음 테이블 항목에 설명되어 있습니다. |
| openframe_awa_agent_presence | 에서 AWA이벤트는 openframe_awa_agent_presence현재 상태 개체를 반환합니다.presence: 에이전트의 현재 상태 및 채널에 대한 정보입니다.
|
| openframe_awa_workitem_accepted 및 openframe_awa_workitem_offered | 에서 AWA및 openframe_awa_workitem_offered 이벤트는 openframe_awa_workitem_acceptedworkItem 객체를 반환합니다.workItem: 이벤트와 연결된 작업 항목에 대한 정보입니다.
|
| openframe_awa_workitem_rejected | 에서 AWA이벤트는 openframe_awa_workitem_rejectedworkItem 객체를 반환합니다.workItem: 이벤트와 연결된 작업 항목에 대한 정보입니다.
|
다음 코드 예제에서는 openframe_awa_agent_presence 이벤트에 대해 이 메서드를 호출하는 방법을 보여 줍니다.
function handleIconClick(context) {
console.log("Icon was clicked", context);
}
openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_agent_presence, handleIconClick);
출력:
// Sample presence object output
// openframe_awa_agent_presence event only
{
"result":{
"presence":{
"name":"Available",
"sys_id":"27f675e3739713004a905ee515f6a7c3",
"available":true,
"channels":[
{
"name":"Chat",
"available":true,
"sys_id":"36f675e4239713124a905fe515f6a832",
"restrict_update":false
},
{
"name":"Phone",
"available":true,
"sys_id":"9378a530a1820610f809018efd9bc01e",
"restrict_update":false
}
]
}
}
}
다음 코드 예제에서는 openframe_awa_workitem_accepted 이벤트에 대해 이 메서드를 호출하는 방법을 보여 줍니다.
function handleIconClick(context) {
console.log("Icon was clicked", context);
}
openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_workitem_accepted, handleIconClick);
출력:
// Sample workItem object output
// openframe_awa_workitem_accepted event only
{
"result": {
"workItem": {
"sys_id": "14c86c40a1650610f87701807d9bc0be",
"size": 1,
"serviceChannel": {
"name": "Chat",
"sys_id": "27f675e3739713004a905ee515f6a7c3"
},
"document": {
"sys_id": "aa582040a1650610f87701807d9bc076",
"table": "interaction"
},
"previousWorkItem": "7c78a440a1650610f87701807d9bc02b",
"isQueueTransferred": true
}
}
}
다음 코드 예제에서는 openframe_awa_workitem_rejected 이벤트에 대해 이 메서드를 호출하는 방법을 보여 줍니다.
function handleIconClick(context) {
console.log("Icon was clicked", context);
}
openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_workitem_rejected, handleIconClick);
출력:
// Sample workItem object output
// openframe_awa_workitem_rejected event only
{
"payload": {
"workItem": {
"sys_id": "2c3bdc4824250610f8775e73b116f8de",
"size": "1",
"serviceChannel": {
"name": "Chat",
"sysID": "27f675e3739713004a905ee515f6a7c3"
},
"document": {
"sys_id": "cf0a180824250610f8775e73b116f80c",
"table": "interaction"
},
"rejection": {
"reason": "Busy",
"sys_id": "4e93fa29b38023002e7b6e5f26a8dc20"
},
"previousWorkItem": "831b9c4824250610f8775e73b116f841",
"isQueueTransferred": true
}
}
}
openFrameAPI - version()
OpenFrame API 버전을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | OpenFrame API 버전 |
var version = openFrameAPI.version();
console.log("API version " + version);