Cisco Unity Express 7.0 スクリプト作成ガイド
Script Editor の使用方法
Script Editor の使用方法
発行日;2012/01/30 | 英語版ドキュメント(2010/05/03 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 5MB) | フィードバック

目次

Script Editor の使用方法

Cisco Unity Express Script Editor の概要

[Palette] ペイン

[Design] ペイン

ステップのプロパティ

[Variable] ペイン

変数

変数の定義

組み込み基本変数の型

パラメータを使用した変数のエクスポート

Contact 変数

Prompt 変数

User 変数

[Debug] ペイン

検証

スクリプトのデバッグ

デバッグ機能

デバッグ モード

リアクティブ デバッグ

ノンリアクティブ デバッグ

制限事項

プロンプトの使用方法

式の使用方法

演算子の使用方法

例外処理

Continue on Prompt Errors ステップ

エラー出力ブランチ

On Exception Goto ステップ

デフォルト スクリプトの使用方法

スクリプト割り込み

Cisco Unity Express Script Editor のインストール

Cisco Unity Express Script Editor の概要

Cisco Unity Express Script Editor は、自動受付アプリケーション スクリプトを作成するための視覚的なプログラミング環境です。

図 2 に、Cisco Unity Express Script Editor ウィンドウを示します。このウィンドウは次の 4 つのペインに分かれています。

1. パレット

2. 設計

3. デバッグ

4. 変数

図 2 Cisco Unity Express Script Editor ウィンドウ

 

[Palette] ペイン

[Palette] ペインは、スクリプトの作成に必要なステップを選択する場合に使用します。パレット ツリーの内容を展開するには、[Palette] ペインでパレット フォルダのアイコンの左側にあるプラス記号(+)をクリックします。


カスタマイザ ウィンドウを開いているときに、ステップを [Design] ペインにドラッグしようとしても、[Design] ペインはステップを受け入れません。[Design] ペインにステップをドラッグする前に、開いているカスタマイザ ウィンドウをすべて閉じてください。Cisco Unity Express Script Editor ウィンドウの後ろに 1 つまたは複数のカスタマイザ ウィンドウが隠れている場合があります。


[Design] ペイン

スクリプトを作成するには、[Palette] ペインでステップをクリックし、[Design] ペインで後続のステップの最上部にドラッグします。各ステップにより、特定の機能が実行され、基礎となるプログラミングの一部分が作成されます。ほとんどのステップは、[Design] ペインに配置した後でカスタマイズできます。

ステップをスクリプトに追加するには、[Palette] ペインからステップ アイコンをドラッグして、[Design] ペインで後続のステップの上にドロップします。作成するスクリプトのステップを論理的な順序で配置します。

スクリプト内のステップの順序を変更するには、個々のステップ アイコンを既存の場所から変更後の場所へドラッグします。ステップを削除するには、ステップ アイコンを選択して Delete キーを押します。

スクリプトを終了するには、[General] パレットをクリックして End をスクリプトにドラッグします。 End ステップが表示されます。

多くのステップには出力ブランチがあります。このブランチの下にステップを追加して、ステップの End 条件に基づいて必要なスクリプト ロジックを指定できます。

図 3 スクリプト例:[Design] ペイン

 

の展開された Menu ステップに示すように、Menu ステップには次の 5 つの出力ブランチがあります。

DialByExtn

DialByName

Operator

Timeout

Unsuccessful

出力ブランチには、多くの場合、ステップとその他の出力ブランチが含まれます。 の DialByExtn 出力ブランチには、その下に 5 つのステップがあり、そのうちの 1 つ(Get Digit String ステップ)には 3 つの出力ブランチがあります。

ステップの下のスクリプトを展開するには、ステップ アイコンの左側にあるプラス記号(+)をクリックします。ステップの下のスクリプトを非表示にするには、ステップ アイコンの左側にあるマイナス記号(-)をクリックします。

実行時には、各スクリプトはステップを結ぶ縦線で示される階層の順序に従います。 で、たとえばスクリプトが Get Digit String ステップの Timeout 出力ブランチに達すると、スクリプトは Menu ステップのレベルで次のステップ、つまり、この例では Play Prompt ステップに移動します。

[Design] ペインは、スクリプトを作成する場合に使用します。スクリプト ステップを [Palette] ペインから [Design] ペインにドラッグします。

ステップのプロパティ

ほとんどのステップには、スクリプトの必要に応じて変更可能なプロパティがあります。プロパティは、ステップに応じて複数のタブにグループ化されることがあります。ステップのプロパティ ウィンドウを表示するには、図 4 に示す Label ステップの [Properties] ダイアログボックスのように、[Design] ペインでステップを右クリックし、ポップアップ メニューの [Properties] をクリックします。

図 4 [Properties] ポップアップ メニュー:Label ステップ

 

[Variable] ペイン

[Variable] ペインでは、スクリプト変数の追加と修正を行います。[Variable] ペインの変数には、スクリプトがステップの実行時に使用するデータが格納されます。変数は Cisco Unity Express Script Editor ウィンドウの [Variable] ペインで定義した後、スクリプト内のすべてのステップで使用できます。

また、スクリプトに定義した変数を サブフロー で定義した変数にマップすることもできます。サブフローとは、 プライマリ スクリプト という別のスクリプトの一部として機能するステップのセットです。サブフローでは変数を使用して操作した後、その変数に格納されたデータをプライマリ スクリプトに返すことができます。スクリプトは他のスクリプトと変数を共有できません。ただし、プライマリ スクリプトが変数の値をデフォルト スクリプトに自動転送するデフォルト スクリプトの場合は除きます。

変数の値は実行中に変化することがあります。

変数

変数は、ユーザ定義のデータ、またはステップや式が完了した結果のデータを格納します。スクリプト内のステップは、定義済みの変数を使用できます。データにはさまざまな形式があるため、使用する前に変数の型も定義する必要があります。変数は、次の組み込み基本変数の型にグループ化されています(「組み込み基本変数の型」を参照してください)。

Boolean

Character

Float

Integer

String

Date

Time

BigDecimal

BigInteger

Double

Long

変数の定義

データにはさまざまな形式があるため、使用する前に変数も定義する必要があります。次のように操作します。

1. 新しい変数を定義するには、[Variable] ペインの左上隅にある [New Variable] アイコンをクリックします。

[Edit Variable] ウィンドウが表示されます。[Edit Variable] ウィンドウを使用して変数を定義した後、変数が [Variable] ペインに表示されます。

2. 選択した変数を削除するには、[Delete Variable] をクリックします。

3. 変数を選択した変数に変更するには [Modify Variable] をクリックします。

図 5 [Variable] ペインと [Edit Variable] ウィンドウ

 

表 3 に、[Edit Variable] ウィンドウのフィールドを示します。

 

表 3 [Edit Variable] のプロパティ

プロパティ
説明

[Name]

定義する変数の名前。

[Type]

宣言する変数の型。使用可能な変数の型については、「組み込み基本変数の型」を参照してください。

[Java Type]

コンピュータの CLASSPATH 環境変数を使用して検索される完全修飾クラス名。

ドロップダウン メニューで選択した組み込みデータ型に対応する実際の Java 型が表示されます。

[Value]

最初に変数に割り当てるデータ。入力するデータ型は、[Type] フィールドで宣言したデータ型と一致している必要があります。

[Parameter]

変数の [parameter] チェックボックスをオンにすると、Cisco Unity Express Script Editor の使用時に、このパラメータの値が自動受付 Web インターフェイスで設定されます。

組み込み基本変数の型

定義する変数ごとに型を設定する必要があります。変数の型は、変数に含まれる情報の種類を示しており、Cisco Unity Express Script Editor は変数の型に応じてその情報を適切に処理できます。たとえば、スクリプトは、文字列「Tuesday」を含む変数を、数字 25 を含む変数とは別の方法で使用します。

表 4 に、組み込み基本変数の型を示します。

 

表 4 変数の型

変数の型
説明

Boolean

true または false のいずれかになる変数で、Cisco Unity Express Script Editor の [General] パレットの If ステップで主に使用されます。

t、f

true、false

Character

次の英数字で構成されます。

小文字の a ~ z

大文字の A ~ Z

数字の 0 ~ 9

エスケープ シーケンスの "\t"、"\r"、"\0"、"\n"、"\f"、"\\"、"\"

"\uXXXX" により、16 進数 Unicode XXXX を使用する文字の表記が可能

Float

10 進数が含まれる浮動小数点型変数です。

すべての浮動小数点の値は、Double 値として格納されます。この機能により、Java における Float 値の格納方法によって精度が失われることを防ぐことができます。

値を Float として格納できない場合、この値は自動的に BigDecimal 値として格納されます。このとき、多少の精度が失われます。

Integer

-2147483648 ~ 2147483647 のすべての数値が含まれます。

スクリプトは値をまず Integer として解析します。解析に失敗した場合は、スクリプトはこれを Long 変数として解析します。この解析も失敗した場合は、BigInteger 変数として値を解析します。スクリプトが値を Integer として表現できない場合、結果は不明になる可能性があります。

String

Unicode 文字 "\u0000" ~ "\uffff" のセットが含まれます。

"Hello"、"C:\WINNT\win.ini": この形式ではエスケープ文字も Unicode 文字もサポートされません。

u"\"This is a quoted string\""、u"\tHello"、u"\u2222\u0065"、u"C:\\WINNT\\win.ini" など: この形式では Character 型で説明したものと同じエスケープ シーケンスまたは Unicode 文字がサポートされます。

Date

次のような日付情報が含まれます。

D[12/13/03]

D[Dec 13, 2003]

D[January 20, 2003]

D[Tuesday, April 12, 2003]

D[12/13/03]

D[12/13/03 5:50 PM]

D[April 1, 2003 12:00:00 AM PST]

D[] 内に指定したパラメータは、次の 2 つの形式による組み合せに基づいて解析されます。

"<date>"

"<date> <time>"

Cisco Unity ExpresScript Editor では次の 4 つの <date> 指定形式がサポートされています。

SHORT (12/13/03)

MEDIUM (Jan 12, 2003)

LONG (January 12, 2003)

FULL (Tuesday, April 12, 2003)

Time

次の時刻情報が含まれます。

T[3:39 AM]

T[11:59:58 PM EST]

T[] の角カッコの中に指定したパラメータは、形式 "<time>" に基づいて解析されます。

Cisco Unity Express Script Editor では次の 3 つの <time> 指定形式がサポートされています。

SHORT。"3:30 PM" など。

MEDIUM。"3:30:32 PM" など。

LONG および FULL (同一)。"3:30:42 PM PST" など。

BigDecimal

スケールを持つ任意の精度の整数が含まれます。スケールは小数点の右側の桁数です。

3.14159

2E-12

-100

BigInteger

任意の精度の整数を表します。

234556789

0

-23

Double

拡張 Float 変数を表します。

スクリプトが値を Double として保持できない場合は、自動的にこの値を BigDecimal として格納します。

3.14159

2E-12

-100

Long

拡張 Integer 変数です。

スクリプトは最初に値を Long 変数として解析します。解析が失敗した場合は、この値を BigInteger として解析します。スクリプトが値を Long 変数として表現できない場合、結果は不明になる可能性があります。

234556789

0

-23

パラメータを使用した変数のエクスポート

変数をパラメータとして宣言するには、[Edit Variables] ダイアログボックスの [Parameter] をクリックします。パラメータ設定機能によって、パラメータの値を自動受付(AA)Web インターフェイスに設定できます。値は、値を使用するスクリプトの設定時に初期化されるため、Cisco Unity Express Script Editor でスクリプトを編集することなく、値を変更できます。このような変数を エクスポートされた変数 または パラメータ と呼びます。

たとえば、新しい自動受付を AA ウィザードを使用して追加する場合、AA ウィザードの 2 番目のウィンドウ([Script Parameters] ウィンドウ)に、パラメータがデフォルト値または現在の値と共にリストで示されます。このリストの値は変更できます。

Cisco Unity Express がパラメータをサポートする変数の型には、Number、Character、String、Boolean、および Prompt があります。

Contact 変数

Contact 変数には、通話呼を示す連絡先が含まれます。Contact 変数はパラメータとしてサブフローに渡すことができます。

Prompt 変数

Prompt 変数には、発信者に対して再生するプロンプトを作成するためにスクリプトで使用する情報が含まれます。Prompt 変数は、1 つのプロンプトのように単純な場合、または連結された複数のプロンプトのように複雑な場合があります。

User 変数

User 変数には、ユーザ認証に役立つ情報が含まれます。User 変数を値として手動で入力することはできません。User 変数を返すことができるのは、 Media パレットの Name To User ステップだけです。User 変数はパラメータとしてサブフローに渡すことができます。

[Debug] ペイン

[Debug] ペインは、検証ツールやデバッグ ツールで出力されるエラー メッセージが表示されます。これらのツールがエラーなしで実行された場合は、Cisco Unity Express Script Editor に成功を示すメッセージが表示されます。

検証

[Tools] メニューからアクセスされるスクリプトの検証機能で、初期の基本的なスクリプト チェックを行います。 に、誤って名前が付けられた Label ステップの結果生成されたエラー メッセージを示します。Label ステップの MainMenu1 は、正しくは MainMenu という名前を付ける必要があります。エラー メッセージ「Dangling GoTo」は、MainMenu ラベルの到達先がないことを示します。エラー メッセージ「MainMenu not exist」も同様です。エラー メッセージ「Dangling GoTo」が 4 つあるということは、Goto ステップが間違った名前のラベルまたは存在しないラベルをスクリプト内で 4 回参照したことを示しています。エラー メッセージをダブルクリックすると、エラー メッセージが指すスクリプト内の行(この場合は各 Dangling GoTo ステップ)が強調表示されます。

図 6 [Debug] ペイン:検証エラー メッセージ

 

スクリプトのデバッグ

[Debug] メニューから使用可能なデバッグ機能によって、Cisco Unity Express Script Editor を使用してスクリプトをデバッグできます。次の操作を選択できます。

デバッグする

ブレークポイントを使用する

スクリプトをステップごとに実行する

スクリプトが実行されたときの変数値の変更を確認する

デバッグ機能

デバッグ機能には [Debug] メニューまたはツールバーからアクセスできます。 に、ツールバーを示します。 表 5 に、図の各番号の説明を示します。

図 7 デバッグ ツールバー

 

表 5 はデバッグ機能について説明しています。

 

表 5 [Debug] メニュー オプション

番号
オプション
説明

1

[Start/Continue]

現在のスクリプトをデバッグ モードで実行します。

2

[Break]

スクリプトを停止し、実行を再開する前に変数の現在値とステップのプロパティを表示または変更できます。

3

[End]

現在のスクリプトを終了します。

4

[Step Over]

現在実行中のステップをスキップします。

5

[Insert/Remove Breakpoint]

現在実行中のステップにブレークポイントを挿入します。この挿入により、スクリプトはデバッグ モードで実行されると必ずブレークポイントで停止しますが、スクリプトのランタイム バージョンには影響しません。

6

[Enable/Disable Breakpoint]

選択したブレークポイントのオン/オフを切り替えます。

7

[Clear All Breakpoints]

スクリプトからすべてのブレークポイントを削除します。

該当なし

[Reactive Scripts]

デバッグするイベントトリガー スクリプトの名前とタイムアウト設定の入力を要求します。


) システム スクリプトには、Cisco Unity Express Editor で表示されず、デバッグ不可能なステップが含まれます。


デバッグ モード

使用可能なデバッグ モードには、リアクティブ デバッグとノンリアクティブ デバッグの 2 種類のデバッグモードがあります。どちらのモードでも、ステップにブレークポイントを挿入してスクリプトをそのポイントまで実行させ、その後、そのステップからデバッグを開始できます。デバッグ セッションの間、実際のスクリプトは Editor が稼動しているローカル PC ではなく、モジュール上で実行されるため、Editor は継続的に Cisco Unity Express モジュールと通信します。この通信は、ポート 1099 の Java Remote Method Invocation(Java RMI)接続を介して行われます。デバッグを正常に実行するには、Editor PC と Cisco Unity Express モジュールのネットワーク接続が必要です。また、ポート 1099 ACL やその他の手段でブロックすることはできません。


) ポート 1099 以外に、TCP 32xxx の範囲内のポートを使用できます。これらのポート番号は実行時に動的に決定されます。


Editor と Cisco Unity Express モジュールとの通信を可能にするには、 および に示すように、Editor の [Tools] > [Options] メニューを選択して、Cisco Unity Express のホスト名または IP アドレスを設定します。この時点ではネットワーク接続は検証されず、デバッグ セッションの開始時に検証されます。

図 8 [Tools] メニュー

 

図 9 Cisco Unity Express のホスト

 

に [Debug] メニューを示します。

図 10 [Debug] メニュー

 

リアクティブ デバッグ

リアクティブ デバッグ モードでは、Cisco Unity Express システムでスクリプトを実行中にスクリプトをデバッグできます。このデバッグ モードを使用して、外部イベントによってトリガーされるスクリプトをデバッグできます。Cisco Unity Express 上のスクリプトをトリガーできる外部イベントは、着信通話だけです。スクリプトは必ず、Cisco Unity Express スクリプト リポジトリにロードされ、着信通話によってトリガーされます。スクリプトは、デバッグ中にローカル PC 上で変更および保存できますが、変更をデバッグするには再び Cisco Unity Express システムにアップロードする必要があります。

リアクティブ デバッグ セッションを開始するには、Editor の [Debug] > [Reactive Script] メニューを選択して、スクリプトをデバッグします。Editor は、Cisco Unity Express とやり取りし、Cisco Unity Express 上のすべてのカスタム スクリプトのリストを取得します。Editor は、Cisco Unity Express との接続を確立できない場合(ネットワークに問題があるか、またはポート 1099 がブロックされている)、エラー メッセージを表示します。

このリストを正常に取得できた場合は、ダイアログボックスにリストが表示されます。 の [Reactive Script Information for Debugging] ウィンドウに示すように、このダイアログボックスのドロップダウン リストからデバッグするスクリプトの名前を選択できます。

図 11 スクリプトと待ち時間の選択

 

待ち時間は、着信通話が、Cisco Unity Express 上の選択されたスクリプトの実行をトリガーするまで、Script Editor が待機する期間です。[OK] をクリックした後、この指定された間隔以内に、着信通話がスクリプトをトリガーする必要があります。スクリプトがこの間隔以内にトリガーされないと、エラー メッセージが表示されます。

[OK] をクリックすると、Editor は Cisco Unity Express に登録され、選択したスクリプトのイベントを受信できるようになります。通話が着信すると、図 12 および図 13 に示すように、Editor の [Design] ペインにスクリプトが自動的に表示されます。

図 12 リアクティブ デバッグのためのスクリプトの選択

 

図 13 進行中のリアクティブ デバッグ

 

Editor はスクリプトの実行を制御します。スクリプトは、ツールバーの [Play](F5)または [Step](F10)をクリックするまで実行を開始しません。スクリプトの実行が開始され通話に応答するまで、発信者には呼び出しトーンが聞こえます。

[Play] をクリックすると、スクリプトは、ブレークポイントに到達するか、発信者からの何らかの入力が必要になるか、または、スクリプトの最後に到達するまで実行されます。[Step] をクリックするたびに、スクリプトの次のステップが実行され、実行が停止します。

スクリプトの任意のステップをクリックして、ツールバーの [Breakpoint] ボタンをクリックすると、そのステップにブレークポイントを挿入できます。ブレークポイントは、[Debug] > [Insert Breakpoint] メニュー項目を選択して挿入することもできます。 および にブレークポイントの例を示します。

図 14 ブレークポイントの挿入

 

スクリプトの実行が進むにつれ、現在実行中のステップが強調表示されます。[Variable] ペインには常に、スクリプトの実行に伴い、変数の現在のランタイム値が表示されます。

デバッグ セッションの進行中に通話が中断されると、エラー メッセージが表示されます。

Script Editor を使用してデバッグしているスクリプトは、Editor が稼動しているローカル PC のディスクに保存することもできます([File] > [Save] メニュー)。これが、Cisco Unity Express からスクリプトをダウンロードする方法になります。

図 15 ブレークポイントを挿入したスクリプト

 

ノンリアクティブ デバッグ

このデバッグ モードは、実行をトリガーするために外部イベントを必要としないスクリプトの場合にのみ使用します。これらのスクリプトには、トリガーするコンタクトを持つステップは含まれていません。ノンリアクティブ デバッグは、スクリプトのセグメントまたはサブフローをデバッグする際に役立ちます。このデバッグ モードではスクリプトに関連付けられた着信通話がないため、メディア ストリームは確立できません。つまり、PlayPrompt や GetDigitString などのメディア ストリームを使用するステップは、効果的にデバッグできません。

ただし、Media ステップと Call Control ステップを使用するスクリプトとサブフローは、ノンリアクティブ デバッグを使用してデバッグできます。一部の計算を実行するスクリプトをデバッグする場合に役立ちます。スクリプト セグメントは、デバッグ後に、より大きいスクリプトに組み込むことができます。

ノンリアクティブ デバッグ セッションを開始するには、[File] > [Open] メニューを選択してスクリプトを開きます。

スクリプトを開いた後、ツールバーの [Play](F5)または [Step](F10)をクリックしてデバッグ プロセスを開始します。その他のデバッグ オプションと機能は、「リアクティブ デバッグ」でリアクティブ デバッグについて説明したものと同じです。

このモードでも、スクリプトは、Script Editor PC ではなく、Cisco Unity Express システム上で実行されます。ただし、この場合、スクリプトはデバッグ セッションの開始時に RMI 接続を介して Script Editor から Cisco Unity Express に送信されます。そのため、このモードでも、ポート 1099 で Script Editor を Cisco Unity Express に接続する必要があります。Editor が Cisco Unity Express との接続を確立できない場合は、[Play] または [Step] をクリックしたときにエラー メッセージが表示されます。

制限事項

スクリプトのデバッグ時には、次の制限事項を考慮する必要があります。

リアクティブ デバッグ モードとノンリアクティブ デバッグ モードでは、メイン スクリプトからサブフローに入ることはできません。Cisco Unity Express は、デバッグを制御せずにサブフローを実行します。これは、CallSubflow ステップにステップを進めるのと同様です。

場合によっては、構文エラーのあるスクリプトが正常にアップロード(警告付き)されることがあります。ただし、このようなスクリプトは、呼び出しに失敗しトリガーされることがないため、デバッグできません。

一度にデバッグできるスクリプトは 1 つだけです。別のユーザがデバッグ セッションを開始しようとすると、エラー メッセージが表示されます。

プロンプトの使用方法

Cisco Unity Express Script Editor では、次の 2 種類のプロンプトを使用します。

システム プロンプト:シスコのモジュールおよびシスコのサンプル スクリプトによって内部で使用されます。システム プロンプトはシステムによって内部で使用されます。


) 将来のリリースで、すべてのシステム プロンプトを継続して使用できることを保証するものではありません。


ユーザ プロンプト:ユーザが定義するプロンプトです。管理者が Cisco Unity Express GUI 管理者インターフェイスの [Voice Mail] > [Prompts] Web ページを使用するか、Greeting Management System(GMS; グリーティング管理システム)を呼び出すことによって管理されます。スクリプトはユーザ プロンプトとシステム プロンプトの両方を Prompt Repository から取得します。

すべての Media ステップおよび Prompt ステップでは、次の方法で指定されたプロンプトをサポートします。

文字列式:User Prompts ディレクトリにあるユーザ定義プロンプト。

プロンプト式:実行時に動的に作成される。


) タイプが WAVE および G711 u-law 形式の RIFF ヘッダーを付けて、再生および録音されるすべてのプロンプトを定義する必要があります。


プロンプト管理の詳細については、『 Cisco Unity Express 7.0 GUI Administrator Guide 』または『 Cisco Unity Express Voice-Mail and Auto-Attendant CLI Administrator Guide for 3.0 and Later Versions 』を参照してください。

式の使用方法

設計時に正確なプロンプト値がわからないときに、実行時に評価可能な数式を代わりに入力する場合、式が役立ちます 式の結果の型は予期した入力タイプ(設計時に確認した型)と一致する必要があります。

多くのステップのカスタマイザ ウィンドウには Expression Editor(...)ボタン(図 16 の 1)があり、式の入力に使用できます。

入力テキスト フィールドに直接式を入力できます。また、Expression Editor(...)ボタンをクリックして Expression Editor を開くことができます。

テキスト フィールドに式を入力できます。また、[Variable] ドロップダウン メニューを使用すると、スクリプトで事前に定義した変数にすぐアクセスできます。[Variable] ドロップダウン メニューから変数を選択すると、変数名が入力テキスト フィールドに表示されます。

式を入力したら、[OK] をクリックします。Expression Editor が閉じます。

図 16 Expression Editor ボタンと Expression Editor

 

演算子の使用方法

式を作成するには、演算子を使用して変数と他の値(オペランドとしても知られる)を組み合せ、スクリプトが実行されるまでは未知の結果を生成します。1 つの式に 2 つ以上の演算子がある場合は、演算子の優先順位によって演算子を評価する順序が決まります。次に、優先順位の高い順に演算子を一覧します。

1. カッコ(...):任意の式で機能します。カッコ内に含まれる式に優先順位を与えることができます。

2. 乗算(*)、除算(/):任意の数式(Integer、Long、Float、Decimal、BigInteger、BigDecimal)で機能します。

数値オペランドは、テスト前に有効な型へ適切にプロモートされます。

3. 加算(+)、減算(-):任意の数式(Integer、Long、Float、Decimal、BigInteger、BigDecimal)で機能します。

数値オペランドは、テスト前に有効な型へ適切にプロモートされます。

4. より小(<)、より大(>)、以下(<=)、以上(>=)

比較オペランドは String、Character、および Number オペランドだけで機能します。

5. 等しい(==)、等しくない(!=)

<null> 定数のテストは 2 つの等価演算子でサポートされています。

6. および(&&):Boolean 式だけで機能します。

7. または(||):Boolean 式だけで機能します。

8. 連結(+)

少なくともオペランドの 1 つが String であり、別の 1 つがプロンプトではない場合、後者は String.value() メソッドを使用して String に変換されます。その結果、新しい String は両方のオペランドの String 表現の連結となります。通常、String.valueOf() メソッドは連結中のオブジェクトの toString() メソッドを呼び出すか、またはオブジェクトがヌルの場合は文字列「null」を返すだけです。

オペランドが Character の場合、すべてが連結されて 1 つの新しい String になります。

例外処理

Cisco Unity Express Script Editor には、例外を処理するさまざまな方法があります。例外とは、予期しないユーザ入力または予期しないスクリプトの結果が原因で生じるスクリプト内のエラーを指します。

Continue on Prompt Errors ステップ

[Continue on Prompt Errors] オプションを使用すると、スクリプトが無効な入力を受け取ったときに(Invalid Audio Format や File Not Found など)、スクリプトを継続して実行できます。

Cisco Unity Express Script Editor には、Media パレットにあるステップのカスタマイザ ウィンドウに [Continue on Prompt Errors] オプションがあります (「Media ステップ」を参照してください)。たとえば、図 17 は [Get Digit String] カスタマイザ ウィンドウの [Prompt] タブを示しています。

図 17 [Continue on Prompt Errors] オプション:[Get Digit String] カスタマイザ ウィンドウの [Prompt] タブ

 

有効な場合、ステップは再生されるプロンプトのリストにある次のプロンプトを続行します。リストにある最後のステップであれば、発信者の入力を待ちます。

[Continue on Prompt Errors] を有効にした場合は、プロンプト エラーを無視し、このプロンプトの再生が成功したものとして処理を続行するようにスクリプトに指示します。たとえば、一連のプロンプト 1 + 2 + 3 でプロンプト 1 番が失敗した場合、ステップはプロンプト 2 番を続行します。プロンプト 3 番が失敗すると、ステップはプロンプト 3 番が正しく再生されたものとして発信者の入力を待ち、処理を続行します。

[Continue on Prompt Errors] を無効にした場合は、Media ステップは例外を生成します。この例外はスクリプトで処理できます。

使用可能なプロンプトの例外は次のとおりです。

InvalidPromptArgumentException

PromptException

UndefinedPromptException

UndefinedPromptGenerator

UnsupportedPromptExpression

エラー出力ブランチ

エラー出力ブランチは、一般的なエラーが発生したときの操作について指示するスクリプトの一部です。

図 18 に、スクリプトの Call Redirect ステップの下にあるエラー出力ブランチを示します。


) スクリプトでは、予期されるエラー条件についてだけ、エラー出力ブランチを提供します。システム エラーについては提供しません。


図 18 エラー出力ブランチ:Call Redirect ステップ

 

この図の Call Redirect ステップには、無効な内線用と使用不能な内線用の両方のロジックが含まれています。

On Exception Goto ステップ

General パレットの On Exception Goto ステップ(「On Exception Goto」を参照)は、例外が生成されたときにスクリプト内の指定された場所でスクリプトの実行を継続します。

スクリプトで特定の例外に対して On Exception Goto ステップを使用することにより、特定の例外用に新しいハンドラを登録するか、または既存のハンドラを上書きすることができます。

登録処理はスクリプト全体に影響を与えます。割り当てられたハンドラは、その例外が発生する場所(指定ステップの前、中、または後)に関係なく、スクリプトをアクティブにします。ステップの実行後、新しいハンドラが再登録されるか、 On Exception Clear ステップで例外が消去されるまで、このハンドラは登録されています。

サブフローの原因となる例外の場合、スクリプトは最初にサブフローの例外ハンドラを調べます。指定された例外に何も定義されていない場合は、例外によってサブフローが中止され、Cisco Unity Express アプリケーションが親スクリプト内の例外ハンドラを検索します。この処理は、スクリプトが例外ハンドラを見つけるか、スクリプトの最上位に達するまで続行されます。

例外ハンドラが登録されていない場合、スクリプトは中止され、エラー処理は、エラー処理の最終レベル、つまりデフォルト スクリプトに戻ります。

デフォルト スクリプトの使用方法

デフォルト スクリプトは、Cisco Unity Express Script Editor がデフォルトのシステム処理をアクティブなすべての連絡先に適用する前の、ユーザ定義エラー処理の最終レベルです。

Cisco Unity Express Script Editor からこのデフォルト スクリプトが起動されるのは、次の条件の場合です。

メイン スクリプトが中止される。これは、次のいずれかの理由で発生します。

検出されていない例外が発生する。

正しく検証されていないため、Cisco Unity Express アプリケーション ソフトウェアがプライマリ スクリプトを起動できない。

Cisco Unity Express アプリケーション ソフトウェアがアプリケーションで同時に実行できるセッション数の制限に到達したため、着信を中止する必要がある。

どちらの場合も、デフォルト スクリプトが実行される前に Cisco Unity Express Script Editor によってアクティブなすべての連絡先に中止のマークが付けられます。これらの連絡先は、デフォルト スクリプトの実行の結果、転送またはリダイレクトされた場合でも、最後の状態が Aborted となります。


注意 デフォルト スクリプトの目的は、メイン スクリプトの失敗時に通話を適切に終了することであり、プライマリ スクリプトが対象とした元のサービスを提供するフォールバックを用意することではありません。この違いは重要です。このデフォルト スクリプトの実行にシステム リソースを使用すると、システム パフォーマンスが低下する可能性があるためです。プライマリ スクリプトの失敗回数が多い場合は、同じ操作を試みる別のスクリプトを用意するのではなく、このプライマリ スクリプトを修正してください。

プライマリ スクリプトが正常に終了する場合、デフォルト スクリプトは実行されません。プライマリ スクリプトの終了時にまだ連絡先がアクティブになっている場合、処理済みのマークが付いていないアクティブな連絡先はすべて中止され、処理済みのマークが付いたアクティブな連絡先はすべてそのまま終了します。この場合、設計上の問題がないかどうかプライマリ スクリプトを確認してください。


) デフォルト スクリプトはシステム上の問題について連絡先に最終的なフィードバックを示すだけで、サービスの継続やサービスの再開は行いません。


連絡先がまだアクティブであれば、デフォルト スクリプトがある場合はその実行後に、システムによって CallContact スクリプトが適用されます。CallContact スクリプトは通知として「We are currently experiencing system problems, please call back later」というプロンプトを再生し、その後に高速の通話中信号が続きます。

スクリプト割り込み

スクリプト割り込みは、スクリプトの別の部分に戻るために、またはスクリプトの実行を停止するために、スクリプトの現在の処理に外部イベントが割り込むことができる機能です。

スクリプト割り込みは、通常、連絡先の 1 つがリモートで終了したことをスクリプトに通知する必要があるときに使用します。たとえば、発信者が電話を切った場合などです。


) どの場合でも、必要なスクリプト割り込みをトリガーするイベントは、スクリプトが他のステップを実行中にいつでも発生する可能性があります。


スクリプトはデフォルトで、任意のステップが実行される前に自動的に割り込み可能になります。外部イベント(上で説明したようなイベント)がスクリプトに割り込む場合、スクリプトは次のステップの実行を開始する前に、特定のイベントに対する適切な処理に基づいて実行を継続します。

2 つの連続するステップを割り込みの可能性がない状態で実行するには、この 2 つのステップをサブフローに移し、そのサブフローをスクリプトが処理する間は割り込みをすべて無効にする必要があります。

Cisco Unity Express Script Editor では、外部イベントが発生した場合にスクリプトが内部のステップに割り込むことができるかどうかを指定できる [interruptible] オプションが、一部のステップに用意されています。

連絡先がリモートで終了するときに、スクリプトは次のいずれかの操作を実行します。

発信者が電話を切ると、スクリプトは(可能であれば)割り込まれて、ContactInactiveException が生成される。この例外は、 General パレットの OnExceptionGoto ステップで処理されます。

発信者が電話を切り、使用可能な例外処理ロジックがない場合、スクリプトはただちに中止される。

複数の連絡先を管理している場合、 OnExceptionGoto ステップはリモートで終了した連絡先を識別できない。その代わり、既知のすべての連絡先変数でループできるように Label を指定し、 General パレットの Get Contact Info ステップを使用して Active フラグを検索する必要があります。

スクリプトが割り込み可能ではないときに割り込みイベントが発生した場合、スクリプトは再度割り込み可能になったときに自動的に割り込まれます。たとえば、割り込み不可のマークが付いたサブフローを実行しているときは、スクリプトは割り込み可能ではありませんが、そのサブフローが終了して制御が親に戻ると、スクリプトはすぐに割り込みを処理します(そのプライマリ スクリプトが割り込み可能な場合)。

Cisco Unity Express Script Editor のインストール

この項では、Cisco Unity Express Script Editor アプリケーションをインストールする方法について説明します。


) 現在 Cisco Customer Response Solutions(Cisco CRS)Editor アプリケーションをインストールしているハードウェアには Cisco Unity Express Script Editor アプリケーションをインストールしないでください。これらのアプリケーションはレジストリ ファイルを共有するため、同一のハードウェアにインストールすると機能しません。


Cisco Unity Express Script Editor は、Microsoft Windows アプリケーションです。インストール先のコンピュータは、次のオペレーティング システムのいずれかを実行している必要があります。

Windows NT(Workstation または Server)Service Pack 4 以降

Windows 2000(Professional または Server)

Windows XP Professional

Cisco Unity Express Script Editor インストール プログラムを Cisco.com からダウンロードするか、または Cisco Unity Express Application Software CD からインストールします。ファイル名は Cisco Unity Express Editorx.x.x.exe です。x.x.x はインストールしているバージョンを示します。

Cisco Unity Express Script Editor をインストールするには、次の手順を実行します。


ステップ 1 インストール プログラム ファイルをダブルクリックします。

InstallShield Wizard が表示され、インストール用ファイルの解凍が開始されます (この処理に数分かかります)。

ステップ 2 プロンプトに従ってアプリケーションをインストールします。ほとんどのユーザはデフォルトのインストールで十分です。プロンプトが表示されたら、[Yes] をクリックし、次に [Next] ボタンをクリックします。

このプロンプトで、インストール プロセスの前のステップに戻るか、またはインストールを完全に取り消すように選択することもできます。

ステップ 3 アプリケーションが正しくインストールされたことを確認するためにアプリケーションを起動します。タスクバーで [Start]、[All Programs]、[Cisco Unity Express Developer]、[Cisco Unity Express Script Editor] の順にクリックします。

ハード ドライブのデフォルトのインストール パスは、 C:¥Program Files¥wfavvid¥WFCCNEditor.exe です。