数式の使用法
多くのルーティング ノードでは、数式を使用することで、コンタクトの分類とルーティング ターゲットの選択を実行できます。
数式は、後続のスクリプト処理で使用される値を得るために Packaged CCE により評価される 1 つ以上の式で構成されます。式は、変数、定数、演算子、および関数で構成され、スクリプト内ではカスタム選択ルールや分配基準の一部として使用されます。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
多くのルーティング ノードでは、数式を使用することで、コンタクトの分類とルーティング ターゲットの選択を実行できます。
数式は、後続のスクリプト処理で使用される値を得るために Packaged CCE により評価される 1 つ以上の式で構成されます。式は、変数、定数、演算子、および関数で構成され、スクリプト内ではカスタム選択ルールや分配基準の一部として使用されます。
以下に、簡単な数式の例を示します。
CallerEnteredDigits == 1
この例では、以下の通りなります。
左辺の値 CallerEnteredDigits は、変数です。(具体的には、コール制御変数)です。
演算子は、「イコール」を意味する等価演算子です。
右側の値は数字の 1 です。
CallerEnteredDigits の値が 1 の場合は、この数式によって True が返され、そうでない場合は、False が返されます。
変数とは、値を保持する名前付きオブジェクトです。数式の中で変数を使用すると、ターゲットを選択したり、コールを追跡したりできます。
次に、数式の中で変数を使用するための構文を示します。
object-type.object-name.variable-name
ここで、
object-type は、オブジェクトのカテゴリです(例:SkillGroup)。
object-name は、SkillGroup の名前など、Packaged CCE データベースに保存されているオブジェクトの名前です(例:BosSales)。
variable-name は、スキル グループのコール情報など、値を保持できるオブジェクトの名前です(例:CallsInProgress)。
変数の各要素は、ピリオド(.)で区切られます。
(注) |
メディア ルーティング インターフェイスを介した国際文字の送信はサポートされていません。メディア ルーティング インターフェイスを介して ICM と連携するアプリケーションは、コール関連のデータを英語でのみ送信する必要があります。 |
シングルターゲット変数では、指定された 1 つのルーティング ターゲットに対して、データの評価が行われます。例えば、次の変数があります。
SkillGroup.BosSales.CallsInProgress:BosSales スキル グループに対して進行中のコールの数を評価します。
マルチターゲット変数では、複数のルーティング ターゲットに対して、データの評価が行われます。例えば、次の関数があります。
Max(SkillGroup.*.LongestAvailable):この関数を使用すると、この関数を呼び出したスクリプト ノードのターゲット セットで定義されているすべてのスキル グループの中から、最長時間対応可能なエージェントが含まれるスキル グループが検索されます。
object-name の値としてアスタリスク(*)を使用すると、複数のターゲットに対してデータの評価が行われます。
コール制御変数を使用すると、そのスクリプトによって現在ルーティングされているコンタクトについての情報を取得できます。コール制御変数には、ルート要求の発行元に関する情報、コンタクト分類データ、およびコンタクトを受信する Peripheral に渡されるデータが含まれます。
変数 |
データ タイプ |
説明 |
ユーザによる設定が可能 |
---|---|---|---|
CallerEnteredDigits |
文字列 |
要求に応じて発信者が入力した番号。 |
はい |
CallingLineID |
文字列 |
発信者の課金電話番号 |
No |
DialedNumberString |
文字列 |
発信者によってダイヤルされた番号。 |
No |
ExpCallVarName |
文字列 |
拡張コール コンテキスト(ECC)変数の値。スクリプト内で代入され、コンタクトとともに渡される。 |
はい |
PeripheralVariable1 ~ PeripheralVariable10 |
文字列 |
Peripheral との間で交換される値。 |
はい |
RequeryStatus |
整数 |
ラベル、キュー、ルート選択、および選択の各ノードのエラーの経路をテストして、ネットワークにおける障害の原因を特定し、必要に応じて条件付きで試行を再度試みる機能が提供されます。 |
No |
RouterCallDay |
整数 |
Packaged CCE がそのコールを処理した日付を表す符号化済みの値。 |
No |
RouterCallKey |
整数 |
Packaged CCE が午前 0 時以降に処理したすべてのコールを通じて一意の値。RouterCallDay と RouterCallKey を組み合わせることで、一意のコール ID が作成されます。 |
No |
RoutingClient |
文字列 |
ルート要求を発行したルーティング クライアントの名前。 |
No |
TimeInQueue |
整数 |
コールがキューに入っている時間(秒)。 |
No |
UserToUserInfo |
文字列 |
ISDN プライベート ネットワークにおける User to User 情報 |
はい |
VruStatus |
整数 |
以前の VRU ノードの結果が示されます。 |
No |
CallGUID |
Varchar (32) |
グローバルに一意のコール識別子。 |
No |
LocationParamName |
varchar(50) |
場所の名前。 |
No |
PstnTrunkGroupID |
varchar(32) |
IOS ゲートウェイに到着したコールのトランク グループ ID。 |
No |
PstnTrunkGroupChannelNumber |
整数 |
IOS ゲートウェイに到着したコールのトランク グループ チャネル番号。 |
No |
SIPHeader |
varchar(255) |
CVP(または VRU)に到着した SIP コールから抽出した特定のヘッダ情報。 |
はい |
(注) |
コール変数は、複雑な計算用の一時的なプレースホルダーとして、管理スクリプトの「設定」ノードで使用できます。ただし、コール コンテキストが存在するのはそのコールの間だけなので、ルート要求(コールとも呼ばれる)の完了(ルーティング スクリプトの実行完了または管理スクリプトの実行完了)後はこれらの変数は消滅します。これらのコール変数は、ルーティング スクリプトでルート要求に対するコール変数のセットが新たに作成されるときに、そのルーティング スクリプトで再利用されるため、これらのコール変数を使用して値を保存することはできません。 |
(注) |
数値文字列の 2 つのコール変数を比較する際は、条件ノードで組み込み関数「value()」を使用して数値比較を実行してください。そうしないと、文字列の比較になります。例:value(Call.PeripheralVariable1)>=value(Call.PeripheralVariable2)。ここで、Call.PeripheralVariable1 と Call.PeripheralVariable2 は数値文字列となります。 |
拡張コール 変数は、コンタクトに関連付けられた値が格納されます。
拡張コール値は、ECC 値が明示的に設定されている場合にのみ、終了コール詳細レコードに書き込まれます。変数を設定するには、スクリプト、Unified CVP、CTI など、いくつかの方法を使用することができます。これは、null 値と非 null 値の両方に適用されます。
拡張コール 変数が定義されていて、値が割り当てられていない場合、終端コール詳細レコードの書き込み時には終端コール変数テーブルに行がありません。
拡張コール コンテキスト変数およびペリフェラル コール変数のラテン 1 文字セットは、Unified CVP、Cisco Finesse、Cisco Social Miner などを使用した場合にサポートされます。
ECC およびペリフェラル コール変数に限定的に使用するマルチバイト文字セットも、次の場合にサポートされます。
二重引用符を使用するスクリプト エディタで設定する場合
適切な SQL の照合と終端コール変数に格納する場合
CTI OS デスクトップで設定および受信する場合
通常、拡張コール値はコールの区間から区間に渡されます。値の割り当て後に、値は、各終端コール詳細セグメントに対して終端コール変数に記録されます。ただし、これは各新規コール セグメントの作成方法によって異なります。
このソリューションには、事前定義済みの 拡張コール変数がいくつか含まれています。ユーザ変数の作成は、Unified ICM Configuration Managerで行います。
必要に応じて、ECC 変数はいくつでも定義することができます。ただし、特定のインターフェイスでは、一度に 2000 バイトの ECC 変数のみを渡すことができます。特定の目的のために ECC 変数を整理するサポートを提供するように、このソリューションには ECC ペイロード が含まれています。
ECC ペイロードは、最大サイズが 2000 バイトである定義された ECC 変数のセットです。ECC ペイロードを作成して、特定の操作に必要な情報を満たすことができます。特定の ECC 変数を複数の ECC ペイロードに含めることができます。特定の ECC ペイロード内の特定の ECC 変数は、その メンバーと呼ばれます。
(注) |
CTI クライアントに対する ECC ペイロードの場合、サイズ制限は 2000 バイトとなり、ECC 変数名のために追加の 500 バイトがあります。他のインターフェイスとは異なり、CTI メッセージには、ECC の変数名が含まれています。 特定の状況では、主に API を使用すると、CTI サーバ メッセージ サイズの制限を超える ECC ペイロードを作成する場合があります。このような ECC ペイロードをクライアント要求で使用すると、その要求は CTI サーバによって拒否されます。このような ECC ペイロードの OPC メッセージの場合、CTI サーバは ECC データなしでメッセージを送信します。この場合、「CTI サーバは、オーバーフロー状態になったために ECC 変数を転送できませんでした」というイベントがログに記録されます。 |
同じコールフローで複数の ECC ペイロードを使用することはできますが、一定の時点で有効範囲を持つ ECC ペイロードは 1 つのみとなります。TCD と RCD は、通話中に対象範囲を持つ ECC ペイロードの ID を記録します。ECCPayloadID 変数には、現在対象範囲を持つ ECC ペイロードの ID が含まれています。
デフォルトの ECC ペイロードのみを使用するソリューションでは、ECC ペイロードまたは 2500 バイトの CTI メッセージサイズ制限の 2000 バイト制限を超える ECC 変数は作成されません。
(注) |
Packaged CCE 2000 エージェント展開では、ネットワーク VRU のデフォルトの ECC ペイロードのみが使用可能です。 |
別の ECC ペイロードを作成した場合、システムは ECC 変数の作成時に 2000 バイト制限の確認を行いません。システムは ECC ペイロードには割り当てずに、ECC 変数を作成します。ECC ペイロード ツールを使用して、新しい ECC 変数を適切な ECC ペイロードに割り当てます。
ECC ペイロードを作成して変更するには、Packaged CCE 4000 エージェントおよび 12000 エージェント展開では、Configuration Manager 内の Network VRU Explorer ツールを使用して、ネットワーク VRU に ECC ペイロードを割り当てることができます。
ツールを使用します。このソリューションには、下位互換性のために「デフォルト」名を持つ ECC ペイロードが含まれています。ソリューションがより多くの ECC 変数スペースを必要としない場合は、デフォルトのペイロードのみが必要となります。このソリューションは、上書きされない限り、デフォルトのペイロードを使用します。
ソリューションがデフォルトのペイロードのみを保持している場合、ソリューションは、2000 バイトの制限に達するまで、新しい ECC 変数をすべてデフォルトのペイロードに自動的に追加します。
(注) |
デフォルトのペイロードを削除することはできません。ただし、そのメンバーを変更することはできます。 |
重要 |
アップグレード中に、システムが最初に既存の ECC 変数をデフォルトのペイロードに移行する場合、CTI メッセージ サイズの制限は確認されません。メンバー名が、CTI クライアントに対して ECC ペイロードに割り当てられている追加の 500 バイトを超える場合があります。デフォルトのペイロードが制限を超過していないことは、拡張コール変数ペイロード一覧 ツール内の CTI メッセージのサイズ カウンターを手動で確認します。デフォルトのペイロードが制限を超える場合は、制限に合わせて変更します。 |
新規インストールでは、デフォルトのペイロードに、定義済みのシステム ECC 変数が含まれます。アップグレードの際、開始リリースが ECC ペイロードをサポートしているかどうかによって、デフォルトのペイロードの内容が異なります。
ECC ペイロードはサポートされていない場合:アップグレード中に、スクリプトが、既存の ECC 変数をデフォルトのペイロードに追加します。
ECC ペイロードがサポートされている場合:アップグレードでは、デフォルトのペイロードの既存の定義が転送されます。
(注) |
ソリューションに、ECC ペイロードをサポートしていない以前のリリースからの PG が含まれている場合、常にルータがデフォルトのペイロードを PG に送信します。PG は、デフォルトのペイロードを適切に処理することができます。 |
ECC ペイロード ノードは、 オブジェクト パレットの全般 タブから利用できます。
このノードを使用して、スクリプトの以下の範囲を対象とする ECC ペイロードを変更します。ある ECC ペイロードを選択すると、すべての非 VRU 操作の適用範囲が変更されます。ECC ペイロードは、ペイロードのエンタープライズ名または ID によって静的あるいはダイナミックに選択することができます。
Packaged CCE がコール データ レコードを履歴データベースに書き込む際に、すべてのコール変数の値を格納することができます。コール変数データの格納数が多すぎると、履歴データベースのパフォーマンスが低下する可能性があります。(Unified CCE 管理 Web ツールの拡張コール変数ガジェットを使用して)コール変数を定義する際、固定 あるいは 非固定のタグを付けることができます。固定コール変数だけが履歴データに書き込まれます。非固定コール変数は、ルーティング スクリプトで使用できますが、データベースには書き込まれません。
ユーザ変数とは、[条件(If)] ノードでテスト可能な値を一時的に格納するために作成する変数です。例えば、条件ノードで使用する文字列値を一時的に格納するために、usertemp というユーザ変数を作成できます。
ユーザ変数の作成は、Unified CCE 管理ツールで行います。
各ユーザ変数は、以下の通り定義されている必要があります。
名前の先頭に user を使用する。
SkillGroup などのオブジェクト タイプに関連付けられている。(これにより、Packaged CCE は、システム内でそのタイプのオブジェクトごとに変数のインスタンスを保持できます)。
持続的な変数(コール ルータが再起動されても値が保持される)か、非持続的な変数(コール ルータが再起動されると値が保持されない)が指定されている。
40 文字以下の値を保存している。
変数の定義が完了すると、(組み込み済みの変数を使用する場合と同様に)数式エディタからその変数にアクセスして、式の中で使用できます。
変数設定ノードを使用すると、変数の値を設定できます。
[オブジェクト タイプ(Object type)]:変数に関連付けるオブジェクトのタイプを選択します。
[オブジェクト(Object)]:変数に関連付ける特定のオブジェクトを選択します。
(注) |
[オブジェクトタイプ(Call as the Object Type)] で [コール(Call)] を選択した場合は、このフィールドが適用されません。 |
[変数(Variable)]:設定する変数を選択します。
(注) |
使用可能な変数は、[オブジェクトタイプ(Object Type)] フィールドで選択した値によって異なります。 |
(注) |
変数設定ノードによってアクセスされる表内のすべての整数フィールドを NOT NULL として定義します。 |
[配列のインデックス(Array index)]:整数または、評価結果が整数になる式を入力します。例えば、[配列のインデックス(Array Index)] の式で 2 が返された場合、その変数設定ノードでは、変数配列の 2 番目の要素が設定されます。
(注) |
このフィールドは、[変数(Variable)] フィールドで配列変数が選択されている場合にだけ使用できます。 |
[値(Value)]:変数に割り当てる値を入力します。次の値を入力できます。
固定値
他の変数への参照
式
Packaged CCE システム内に音声チャネルしか存在しない場合、SkillGroup.Avail 変数の値は、応対可能なエージェント(新しいコールを処理できるエージェント)の人数を表します。
ただし、音声以外のメディア ルーティング ドメインで Web チャネルや電子メール チャネルが使用され、エージェントが複数のドメインにログインする環境の場合は、SkillGroup.Avail 変数の値の計算方法が異なります。この他に、SkillGroup.ICMAvail 変数もあります。
以下の表で、SkillGroup.Avail 変数と SkillGroup.ICMAvail 変数の相違点を説明します。
ケース |
SkillGroup.Avail |
SkillGroup.ICMAvailable |
---|---|---|
音声ドメインだけが使用されている場合 |
応対可能なエージェントの人数 |
同左 |
複数のドメインが使用されている場合 |
いずれかのドメインで作業を行っているかどうかにかかわらず、応対可能なエージェントの人数 |
そのドメインで新しいタスクまたはコールを実際に処理できるエージェントの人数 |
SkillGroup.ICMAvailable 変数の値は、スキル グループにログインしているエージェントのうち、新しいコールまたはタスクを実際に処理できるエージェントの人数を表します。そのようなエージェントは、次の条件をすべて満たしている必要があります。
ドメイン内でルーティング可能である。
ドメイン内での状態が「受信不可」ではない。
最大タスク数制限を超えていない。
(注) |
エンタープライズ チャットおよび電子メール マルチセッション エージェントの場合を除き、大半のドメインでの最大タスク数は 1 になります。その場合は、コールまたはタスクを処理していないエージェントだけが、最大タスク数制限に達していないエージェントとしてカウントされます。 |
割り込み不可能ドメインで別のタスクを処理していない。
SkillGroup.Avail は、スキル グループに含まれるエージェントのうち、ドメイン内で何も作業をしていないエージェントの人数です。2 つのドメインにログインしているエージェントは、割り込み不可能ドメインでタスクを処理している場合でも、もう一方のドメインで「Avail」にカウントされる場合があります。(チャットなど)1 つのドメインで複数のタスクを処理するエージェントは、さらに多くのタスクを処理できる場合でも、タスクを処理している間は、「Avail」にカウントされません。
以下の表に、これらの変数の値の一部を示します。音声スキル グループにログインしている 3 人のエージェントが、別の割り込み不可能ドメイン(チャット ドメイン等)にもログインしている場合も推定されます。この表は、音声スキル グループの状態と、その状態で利用可能なエージェントの数を示します。
ケース |
SkillGroup.Avail |
SkillGroup.ICMAvailable |
---|---|---|
初期状態 |
3 |
3 |
1 人目のエージェントがコールを処理 |
2 |
2 |
2 人目のエージェントがコラボレーション チャット セッションを処理 |
2(このドメインで処理を行っていないエージェントが 2 人いるため) |
1(音声コールを処理できるエージェントは 1 人しか残っていないため) |
音声コールが終了 |
3 |
2 |
チャットの終了 |
3 |
3 |
ルーティング スクリプトで応対可能なエージェントの人数を確認する必要がある場合は、SkillGroup.Avail を使用すると、応対可能なエージェントの判別において推定メカニズムが使用されるので、より効果的な結果が得られます。
以下で、エージェントが割り込み不可能なチャットのタスクを処理する場合の例を示します。3 人のチャット処理可能なエージェントがチャット スキル グループにログインしていると仮定します。以下の表は、チャット グループの状態を示しています。
ケース |
SkillGroup.Avail |
SkillGroup.TalkingIn |
SkillGroup.ICMAvailable |
---|---|---|---|
初期状態 |
3 |
[0] |
3 |
1 人目のエージェントがチャット セッションを処理 |
2(1 人目のエージェントが会話中のため) |
1 |
3(3 人のエージェント全員がまだ別のチャットを処理できるため) |
2 人目のエージェントがチャット セッションを処理 |
1 |
2 |
3 |
3 人目のエージェントがチャット セッションを処理 |
[0] |
3 |
3 |
1 人目のエージェントが 2 つ目のチャット セッションを処理 |
0 |
3(合計 4 つのチャットが進行しているものの、作業を行っているエージェントは 3 人だけであるため) |
2(2 人目と 3 人目のエージェントだけが別のチャットを処理できるため) |
Script Editor でスキル グループのリアルタイム データを表示した場合、デフォルトでは Avail ではなく ICMAvailable の値が表示されます。
Closed 変数は、スキル グループ、ペリフェラル、メディア ルーティング ドメインで使用可能です。Closed 変数により、管理スクリプトがこれらのオブジェクトへのキュー送出をオンまたはオフにすることができます。Closed 変数はデフォルトで 0 で、オブジェクトは開いています。スクリプト(通常管理スクリプト)は、Closed 変数の状態を変更できます。
Closed フラグがゼロ以外の整数に設定されている場合、状態に関係なくコールは対象エージェントのキューから外されません。
Closed 変数がゼロに設定されている場合、キューイングされたコールは対応可能なエージェントにすぐには送信されず、キューに留まります。エージェントの状態が「待受停止」から「待受中」に変わると、キューイングされたコールではなく、新規のコールだけが対応可能なエージェント(「待受中」状態のエージェント)に送信されます。
以下の表に、演算子の評価順序を示します。
(注) |
優先順位 1 の演算子は最初に評価され、次に優先順位 2 の演算子が評価されます。優先順位 3 以降も同様に評価されます。各優先順位レベルの評価順序も重要になることがあります。前置演算子は、式の右から左へ評価されます。代入演算子も右から左に評価されます。演算子が同じ優先順位を持つ上記以外のケースでは、演算子は左から右に評価されます。 |
優先順位 |
演算子のタイプ |
演算子 |
---|---|---|
1 |
前置(単項) |
+ - ! ~ |
2 |
乗算および除算 |
* / |
3 |
加算および減算 |
+ - |
4 |
右シフトおよび左シフト |
>> << |
5 |
比較 |
< > <= >= |
6 |
等非等号 |
== != |
7 |
ビット論理積 |
& |
8 |
ビット排他的論理和 |
^ |
9 |
ビット包括的論理和 |
| |
10 |
論理積 |
&& |
11 |
または |
|| |
12 |
条件 |
? |
13 |
逐次 |
, |
以下の表の前置演算子が取るオペランドは 1 つだけです。
演算子 |
意味 |
コメント/例 |
---|---|---|
+ |
正値 |
数値はデフォルトで正であるため、正の演算子(+)はオプションです。例:2 と +2 は同じ値を表します。 |
- |
負値 |
負の演算子(-)を使用すると、値の符号が正から負に変わります。例:2 は正の値を表し、-2 は負の値を表します。 |
! |
論理否定 |
論理式は、その評価結果が True か False となる式です。論理否定演算子(!)を使用すると、論理式の値が変わります。注意:数字で表すと、False は 0 になり、True は 0 以外の値になります。例:SkillGroup.Sales.Avail の現在の値が 3 の場合、SkillGroup.Sales.Avail > 0 は True であり、(SkillGroup.Sales.Avail > 0) は False になります。 |
~ |
1 の補数 |
ビット値に対して使用します。1 ビットは 0 に変わり、0 ビットは 1 に変わります。注意:この演算子は、ほとんど使用しません。 |
以下の表の算術演算子は、2 つのオペランドを取ります。
演算子 |
意味 |
コメント/例 |
---|---|---|
* |
乗算 |
算術演算子を使用すると、加算、減算、乗算、除算の基本演算が実行されます。スキル グループ、サービス、ルートなどに関する計算で使用できます。注意:乗算(*)と除算(/)の演算子は、加算(+)と減算(-)の演算子よりも先に評価されます。 |
/ |
除算 |
|
+ |
加算 |
|
- |
減算 |
以下の表の等価演算子は、2 つのオペランドを取ります。
演算子 |
意味 |
コメント/例 |
---|---|---|
== |
次の値と等しい |
等価演算子を使用すると、2 つの値が等しいかどうかを判別できます。 |
!= |
等しくない |
以下の表の比較演算子は、2 つのオペランドを取ります。
演算子 |
意味 |
コメント/例 |
---|---|---|
> |
右辺と比較して大きい |
比較演算子を使用すると、等価演算子よりも高度な比較を実行できます。 |
< |
より少ない |
|
>= |
以上 |
|
<= |
以下 |
以下の表の論理演算子は、2 つのオペランドを取ります。論理演算子により、2 つの論理式の値をまとめて評価できます。
演算子 |
意味 |
コメント/例 |
---|---|---|
&& |
論理積 |
両方のオペランドが True の場合、その式は True になります。一方が False の場合は、その式全体が False になります。 |
|| |
または |
オペランドの一方または両方が True の場合、その式は True になります。両方が False の場合は、式全体が False になります。 |
(注) |
等価演算子(==)および比較演算子(>)は、論理演算子(&& および ||)よりも先に評価されます。 |
以下の表のビット単位演算子は、2 つのオペランドを取ります。
演算子 |
意味 |
コメント/例 |
---|---|---|
& |
論理積 |
& ビット単位演算子を使用すると、値に含まれる特定のビットがオンまたはオフになります。 |
| |
論理和 |
論理和と排他的論理和では、両方の値のビットが 1 である場合の処理方法が異なります。論理和の場合、その結果は True として評価され、1 のビットがセットされます。排他的論理和の場合、その結果は False として評価され、0 ビットがセットされます(排他的論理和を使用すると、「両方ではなく、いずれか一方」という規則が適用されます)。 |
^ |
排他的論理和 |
以下の表に、その他の演算子を示します。
演算子 |
意味 |
コメント/例 |
---|---|---|
? |
条件 |
条件演算子(?)は、3 つのオペランドを取ります。構文は以下の通りなります。 Packaged CCE は、論理式の条件を評価した後、次の条件をテストします。条件が True の場合、その式全体の結果は true-result 式の値になります。条件が False の場合、その式全体の結果は false-result 式の値になります。 |
& |
連結 |
連結演算子(&)を使用すると、2 つの文字列全体が結合されます。例:abc def を実行すると、値 abcdef が返されます。 |
, |
逐次 |
順次演算子(,)は、オペランドとして 2 つの式を取ります。Packaged CCE は、左側の式を評価した後に、右側の式を評価します。式全体の値は、右側の式の値になります。通常、最初の式は 2 番目の式の評価に影響します。 |
<< >> |
左にシフトする 右にシフトする |
左に移動(<<)と右に移動(>>)の演算子を使用すると、値に含まれるビットが移動します。 |
以下の表に、日時の組み込み関数を示します。
機能 |
データ タイプ |
返される値/例 |
||
---|---|---|---|---|
date [(日付)] |
整数(Integer) |
システムの現在の日付、または指定日時の値の日付部分を返します。日付の指定には、now 関数で返される浮動小数点値、mm/dd/yy 形式の文字列、または 3 つの整数値 yyyy、mm、dd を使用できます。date(引数なし)では、現在の時刻が返されます。例えば、= date (2001, 7, 15) では、現在の日付が 2001 年 7 月 15 日であるかどうかが検証されます。
|
||
day [(日付)] |
整数(Integer) |
現在の日付または指定した日付の日(1 ~ 31)の部分が返されます。指定日付は、(date 関数または now 関数によって返されるような)整数値か浮動小数点数値にする必要があります。 |
||
hour [(時刻)] |
整数(Integer) |
現在の時刻または指定した時刻の時間(0 ~ 23)の部分が返されます。指定時刻は、(now 関数によって返されるような)浮動小数点数値にする必要があります。 |
||
minute [(時刻)] |
整数(Integer) |
現在の時刻または指定した時刻の分(0 ~ 59)の部分が返されます。指定時刻は、(time 関数によって返されるような)浮動小数点数値にする必要があります。 |
||
month [(日付)] |
整数(Integer) |
現在の月または指定した日付の月(1 ~ 12)の部分が返されます。指定日付は、(date 関数または now 関数によって返されるような)浮動小数点値にする必要があります。 |
||
now |
浮動小数点数(Float) |
現在の日時が返されます。整数部が日付を表し、小数部が時刻を表します。注意:日付または時間の関数を引数なしで使用すると、現在の日付または時刻を得ることができます。この関数は、現在の日付および時刻を特定の時点と比較する場合に便利です。 |
||
second [(時刻)] |
整数(Integer) |
現在の時刻または指定した時刻の秒(0 ~ 59)の部分が返されます。指定時刻は、(time 関数によって返されるような)浮動小数点数値にする必要があります。 |
||
time [(時刻)] |
浮動小数点数(Float) |
現在のシステム時刻または特定の日時値の時間部分が返されます。時刻の指定には、浮動小数点値、hh:mm:ss 形式の文字列、または hh, mm [, ss ] 形式の 2 つまたは 3 つの数値を使用できます。(引数なし)では、現在の時刻を返します。 例えば、= time (20:05:00) は、現在の時刻が 08:05:00 かどうかをテストします。 |
||
weekday [(日付)] |
整数(Integer) |
現在の日付または指定した日付の曜日(Sunday=1、Monday=2 など)が返されます。指定日付は、(date 関数または now 関数によって返されるような)整数値か浮動小数点数値にする必要があります。 |
||
year [(日付)] |
論理積(And) |
現在の日付または指定した日付の年の部分が返されます。指定日付は、(date 関数または now 関数によって返されるような)浮動小数点値にする必要があります。 |
以下の表に、数学関連の組み込み関数を示します。
機能 |
データ タイプ |
返される値/例 |
---|---|---|
abs(n) |
浮動小数点値または整数 |
n の絶対値(符号を除いた数値)を返します。 |
max(n1, n2 [,n3] . . .) |
浮動小数点値または整数 |
オペランドのうち、最大のものが返されます。各オペランドは数値である必要があります。 |
min(n1, n2 [,n3] . . .) |
整数 |
オペランドのうち、最小のものが返されます。各オペランドは数値である必要があります。 |
mod(n1,n2) |
浮動小数点値または整数 |
n1 を n2 で除算した際の整数の剰余を返します。 |
random() |
浮動小数点値または整数 |
0 から 1 の間の乱数値が返されます。 |
sqrt(n) |
浮動小数点値または整数 |
n の平方根を返します(オペランド n は、負でない数値である必要があります)。 |
trunc(n) |
浮動小数点値または整数 |
小数部を切り捨てた n の値を返します。 |
以下の表に、その他の組み込み関数を示します。
機能 |
データ タイプ |
返される値/例 |
---|---|---|
after(string1,string2) |
文字列 |
string2 のうち、最初の string1 以降にあたる部分。string1 が string2 にない場合、ヌル ストリングが返されます。string1 がヌル ストリングの場合、string2 が返されます。 |
before(string1,string2) |
文字列 |
string2 のうち、最初の string1 以前にある部分。string1 が string2 にない場合、string2 が返されます。string1 がヌル ストリングの場合、ヌル ストリングが返されます。 |
ClidInRegion |
Logical |
現在のコールの CLID が、文字列で指定された地域内にあるかどうかを示します。この文字列では、定義済みの地域名を指定する必要があります。地域の Name 変数を使用すると、リテラル値を入力せずに済みます。 |
concatenate(string1,string2, . . .) |
文字列 |
引数を連結した値が戻されます。関数には、最大 8 つの引数を指定できます。 |
EstimatedWaitTime |
整数 |
キューイングされているコール(スキル グループまたはプレシジョン キュー)に対して各キューの予想される最小待機時間を返します。[エージェント キューイング(Queue to Agent)] はサポートされません。利用可能なデータがない場合は、-1 を返します。予想待機時間はコールがキューに入ると 1 度計算されます。 デフォルトの EstimatedWaitTime は、実行中の 5 分間の枠におけるキューを離れるコールの割合に基づいたアルゴリズムです。過去 5 分間にルーティングまたは放棄されたコールは、キューを離れる割合としてカウントされます。プレシジョン キューの場合、キューを離れる割合は個々のプレシジョン キュー手順ではなく、プレシジョン キュー全体からコールが送信または放棄される割合を表します。 |
find(string1, string2 [,index ]) |
整数 |
string2 内での string1 の開始位置が戻されます。インデックス値を指定した場合は、string2 内の指定された文字から検索が開始されます。 |
if(condition,true-value,false-value) |
Logical |
condition が true の場合は、true-value の値を返します。condition が false の場合は、false-value の値を返します。24 時間形式ではなく 12 時間形式で現在の時刻を返します。 |
isPickPullRequest() |
論理 |
要求された現在のサービスがピック タイプまたはプル タイプかどうか。 |
isPickPullRequest() |
論理 |
要求された現在のサービスがピック タイプまたはプル タイプかどうか。 |
left(string,n) |
文字列 |
string の左端にある n 個の文字を返します。 |
len(string) |
整数 |
string の文字数を返します。 |
mid(string,start,length) |
文字列 |
start カラム目の文字から length 個の文字数分の部分文字列を返します。 |
結果 |
浮動小数点値または整数 |
現在の選択ノードの結果が戻されます(この関数は、[選択(Select)] ノードだけで使用できます)。[選択(Select)] ノードで LAA ルールを使用している場合は、選択されたエージェントが対応可能であった秒数が戻されます。 |
right(string,n) |
文字列 |
string の右端にある n 個の文字を返します。 |
substr(string,start [ , length ]) |
文字列 |
start カラム目の文字から length 個の文字数分の部分文字列を返します。 |
text(n) |
文字列 |
数値を文字列に変換します。 |
valid(variable) |
Logical |
variable が有効な値を持っているかどうかを返します。 |
ValidValue(variable,value) |
文字列 |
variable が有効な値を持っている場合はその値を、それ以外の場合は「value」を返します。データベース内の名前、または文字列値 None を返します。 |
value(string) |
浮動小数点値または整数 |
文字列を数値に変換します。 |
カスタム関数は、組み込み関数とは対照的に、スクリプト内で使用することを目的としてユーザが作成する関数です。
ステップ 1 |
Script Editor で、[スクリプト(Script)] メニューから、[カスタム関数(Custom Functions)] を選択します。[カスタム関数(Custom Functions)] ダイアログボックスが開き、現在定義されているカスタム関数がすべて表示されます。 |
ステップ 2 |
[追加(Add)] をクリックして、[カスタム関数の追加(Add Custom Function)] ダイアログボックスを開きます。 |
ステップ 3 |
次を指定します。 |
ステップ 4 |
作成し終わったら、[テスト(Test)] をクリックします。[関数のテスト(Test Function)] ダイアログボックスが開きます。 |
ステップ 5 |
その関数を呼び出す例を入力して、関数をテストします。各パラメータに具体的な値を指定します。 |
ステップ 6 |
[評価(Evaluate)] をクリックすると、その関数呼び出しが Script Editor によってどのように解釈されるかを確認できます。[カスタム関数の追加(Add Custom Function)] ダイアログボックスに戻るには、[閉じる(Close)] をクリックします。 |
ステップ 7 |
いずれかの検証ボタンを使用して、選択関数を参照するスクリプトを検証します([すべて検証(Validate All)] ボタンを使用すると、カスタム関数を参照するすべてのスクリプトを検証できます)。 |
ステップ 8 |
検証が完了したら、[OK] をクリックして、変更を適用しダイアログボックスを閉じます。 |
ステップ 1 |
Script Editor で、[スクリプト(Script)] メニューから、[カスタム関数(Custom Functions)] を選択します。[カスタム関数(Custom Functions)] ダイアログボックスが開き、現在定義されているカスタム関数がすべて表示されます。 |
||
ステップ 2 |
[インポート(Import)] をクリックします。[カスタム関数のインポート(Import Custom Function)] ダイアログボックスが開きます。 |
||
ステップ 3 |
ICMF 拡張子(.ICMF)が付いているファイル名を選択し、[開く(Open)] をクリックします。Script Editor によって、名前の競合がないかどうかが確認されます。重複がある場合、重複の解決方法をリストしたダイアログボックスが表示されます。 |
||
ステップ 4 |
オプションを選択して [OK] をクリックします。
|
Script Editor によって自動マッピングが実行されます。その後の動作は以下の通りなります。
インポートしたすべてのオブジェクトが正常に自動マッピングされた場合、マッピングをレビューするためのメッセージ ウィンドウが表示されます。[OK] をクリックして、[オブジェクト マッピング(Object Mapping)] ダイアログボックスにアクセスします。
インポートしたオブジェクトの一部で自動マッピングが成功しなかった場合は、[オブジェクトマッピング(Object Mapping)] ダイアログボックスが開き、マップされていないオブジェクト名の横に [マップされていません(Unmapped)] というラベルが表示されます。
[オブジェクト マッピング(Object Mapping)] ダイアログボックスには、次の 3 つのカラムがあります。
[オブジェクトタイプ(Object Types)]:インポートされたオブジェクトのタイプ。
[インポートしたオブジェクト(Imported Object)]:インポートされたオブジェクトの名前。
[マップ先(Mapped To)]:インポートされたこのオブジェクトのマップ先。
(オプション)[インポートしたオブジェクト(Imported Object)] カラムの値をクリックします。[マップ先(Mapped To)] カラムにはターゲット システム上の有効なすべてのオブジェクトが表示されます。
(オプション)[マップ先(Mapped To)] カラムのドロップダウン リストから、インポートしたオブジェクトのマップ先とするターゲット システムのオブジェクトを選択します。
(注) |
複数のオブジェクトを同じターゲットにマップすることもできます。マップされていないオブジェクトを残しておくこともできますが、そのカスタム関数はすべてのオブジェクトがマップされるまで有効になりません。 |
マッピングが完了したら、[適用(Apply)]、[完了(Finish)] の順にクリックします。
ステップ 1 |
Script Editor で、[スクリプト(Script)] メニューから、[カスタム関数(Custom Functions)] を選択します。[カスタム関数(Custom Functions)] ダイアログボックスが開き、現在定義されているカスタム関数がすべて表示されます。 |
||
ステップ 2 |
リストからカスタム関数を選択し、[エクスポート(Export)] をクリックします。[カスタム関数のエクスポート(Export Custom Function)] ダイアログボックスが開きます。
|
||
ステップ 3 |
(オプション)ファイル名を変更します。
|
||
ステップ 4 |
[保存(Save)] をクリックします。同じファイル名がすでに存在する場合、保存の確認メッセージが表示されます。 |
||
ステップ 5 |
確認メッセージが表示されたら、[OK] をクリックします。カスタム関数は指定したファイルにテキスト フォーマットで保存されます。 |