openFrameAPI - クライアント
openFrameAPI は、OpenFrame とやり取りするメソッドを提供します。OpenFrame は、コミュニケーションパートナーがシステムを ServiceNow プラットフォームに統合するために使用できる、非常に一般的なフレームです。
コア要件の 1 つが、パートナーサブシステムとシームレスに接続できるさまざまなドメインから取得したコードをつないで提供する機能です。このクロスドメイン接続は、クロスドメインの問題を発生させることなく接続とコールバックを通信システムに登録するために必要です。
openFrameAPI - getAWAAgentPresence(文字列 success, 文字列 failure)
ログインしているエージェントの現在の在席状況を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 正常終了 | 文字列 | メソッドが成功した場合、呼び出すコールバック関数の名前。 |
| 失敗 | 文字列 | メソッドが失敗した場合に呼び出すコールバック関数の名前。 |
| タイプ | 説明 |
|---|---|
| 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 | エージェントの在席状況の名前。 データタイプ:文字列 |
| presents.sys_id | 在席状況レコードのSys_id。在席状況 [awa_presence_state] テーブルにあります。 データタイプ:文字列 |
次のコード例は、このメソッドを呼び出す方法を示しています。
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 を非表示にします。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.hide()
openFrameAPI - init(オブジェクト config, 関数 successCallback, 関数 failureCallback)
OpenFrame を初期化します。これは、呼び出す最初のメソッドである必要があります。
このメソッドは、TopFrame への通信を初期化し、 config パラメーターで渡されたすべてのビジュアル要素を初期化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| config | オブジェクト | 初期化プロセス中に使用する名前と値のペア。 可能なキー: すべてのキーはオプションです。これらのキーと値のペアを設定しない場合は、空のオブジェクトを渡します。
|
| successCallback | 関数 | init メソッドが成功した場合に使用するコールバック関数の名前。システムに保存されている OpenFrame 構成 は、パラメーターとしてコールバック関数に渡されます。 |
| failureCallback | 関数 | init メソッドが失敗した場合に使用するコールバック関数の名前。 |
| タイプ | 説明 |
|---|---|
| なし |
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)
OpenFrame が TopFrame に表示されるかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| callback | 関数 | true または false の値を持つパラメーターがコールバック関数に返されます。OpenFrame が表示される場合は true、表示されない場合は false です。 |
| タイプ | 説明 |
|---|---|
| なし |
function callback(isVisible) {
console.log(isVisible)
}
openFrameAPI.isVisible(callback)
openFrameAPI - openCustomURL(文字列 details)
UI16 インターフェイスでカスタム URL を開きます。
| 名前 | タイプ | 説明 |
|---|---|---|
| Url | 文字列 | カスタム URL のテキスト。 最大サイズ:2083 文字 |
| タイプ | 説明 |
|---|---|
| なし |
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>' |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、プラットフォームでの基本的な使い方を示しています。
openFrameAPI.openServiceNowForm({entity:'customer_account',
query:'sys_id=447832786f0331003b3c498f5d3ee452', 'interaction_sys_id':'3be092313b711300758ce9b534efc4dd'});
次の例は、query パラメーターを使用して、フォームで提供されたデータを使って sysparm_query とエンコードされたクエリーで新しいレコードを作成し、Workspace の姓と名のフィールドに入力する方法を示しています。
openFrameAPI.openServiceNowForm({ entity: 'sys_user',
query: 'sys_id=-1&sysparm_query=first_name=Ivan^last_name=Greggor' });
openFrameAPI:openServiceNowFormwithChildTabIf()
ワークスペースで呼び出された場合は子タブを含む ServiceNow フォームを開き、UI16 インターフェイスで呼び出された場合はエンティティを開きます。
| 名前 | タイプ | 説明 |
|---|---|---|
| OpenServiceNowFormwithChildTab | オブジェクト | ワークスペースで呼び出された場合に 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 を開くときに使用するコンテンツを説明するキーと値のペア。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.openServiceNowList({entity:'case', query:'active=true'});
openFrameAPI - setFrameMode(mode)
OpenFrame のモードを設定します。
- ヘッダーに適切なアイコン (折りたたみまたは展開) を設定する
- CTI に対して以下の関連イベントを発生させる
- openFrameAPI.EVENTS.COLLAPSE
- openFrameAPI.EVENTS.EXPAND
| 名前 | タイプ | 説明 |
|---|---|---|
| モード | 文字列 | OpenFrame のモードを設定します。オプションは以下のとおりです。
|
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.setFrameMode(openFrameAPI.FRAME_MODE.COLLAPSE);
openFrameAPI - setHeight(height)
OpenFrame の高さを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| Height | 数字 | 高さ (ピクセル) |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.setHeight(100);
openFrameAPI - setIcons(アレイ icons)
閉じるアイコンの横に配置される OpenFrame ヘッダーのアイコンを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| アイコン | オブジェクトのアレイ | アイコン構成のリスト。各アイコン構成は、キー値 imageURL、 imageTitle、およびその他の必要なコンテキストを持つオブジェクトです。 最大サイズ:アイコンのサイズは最大 16 x 16 ピクセルです。大きな画像は、この最大値に自動的に調整されます。 |
| タイプ | 説明 |
|---|---|
| なし |
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)
エージェントの空き状況を表示するプレゼンスインジケーターを Workspace に設定します。
OpenFrame の構成の詳細については、「OpenFrame 構成の作成」を参照してください
| 名前 | タイプ | 説明 |
|---|---|---|
| state | 文字列 | エージェントの在席ステータス。 デフォルトのステータス:
カスタムのステータスも指定できます。 |
| 色 | 文字列 | Workspace のプレゼンスインジケーターの色。 サポートされている色:
|
| タイプ | 説明 |
|---|---|
| なし |
openframeAPI.setPresenceIndicator('Available', 'green');
openFrameAPI - setSize(数字 width, 数字 height)
OpenFrame のサイズを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| width | 数字 | ゼロより大きくする必要があります。 |
| height | 数字 | ゼロより大きくする必要があります。 |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.setSize(300, 370);
openFrameAPI - setSubtitle(文字列 subTitle)
OpenFrame のサブタイトルを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| subTitle | 文字列 | 256 文字以下の文字列。 |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.setSubtitle('+18888888888');
openFrameAPI - setTitle(文字列 title)
OpenFrame のタイトルを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| title | 文字列 | 256 文字以下の文字列。 |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.setTitle('Incoming Call');
openFrameAPI - setTitleIcon(オブジェクト icon)
OpenFrame のタイトルアイコンを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| icon | オブジェクト | キーと値のペアのオブジェクト。キーには、 imageURL、 imageTitle、および必要なその他のコンテキストが含まれます。 最大サイズ:アイコンのサイズは最大 16 x 16 ピクセルです。大きな画像は、この最大値に自動的に調整されます。 |
| タイプ | 説明 |
|---|---|
| なし |
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 の幅を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| Width | 数字 | 幅 (ピクセル) |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.setWidth(100);
openFrameAPI - show()
TopFrame で OpenFrame を表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
openFrameAPI.show()
openFrameAPI - subscribe(openFrameAPIEVENT event, 関数 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_accepted イベントと openframe_awa_workitem_offered イベントは workItem オブジェクトを返します。workItem:イベントに関連付けられている作業アイテムに関する情報。
|
| openframe_awa_workitem_rejected | AWA、openframe_awa_workitem_rejected イベントは workItem オブジェクトを返します。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);