テクニカルリファレンスガイド

このセクションでは、Studioのスクリプティングについての詳しいテクニカルリファレンス情報を提供します。この情報は一般的に、アクションおよびカスタムコードスニペットのスクリプティングに適用されます。場合によっては、どちらか一方のスクリプティング方法にのみ適用される情報もあります。

このページの情報は、Studioを使ってスクリプトを記述する際に知っておくべき基本的なスクリプトの概念をまとめたものです。さらに詳しい情報は、このセクションの他のページに記載されています。

スクリプトとスニペットの構造

Studioスクリプトは、1つのファイルにすべて記述することもできますが、メインスクリプトと1つ以上のサブスクリプトを別々のファイルに記述することもできます。すべてのスクリプトに以下の要件が適用されます。

  • Beginアクションで開始すること。サブスクリプトはBeginアクションで開始すること。
  • Endなどの終了アクションで終了すること。サブスクリプトはReturnで終了すること(これはスクリプトのフローをメインスクリプトに戻すアクションです)。
  • メディアタイプが定義されていること。

スクリプト内では、スクリプトで提供する動作に必要なフローに従った構造を使用します。スクリプト内のアクションのフローは、自分にとって最適な方法で整理し、配置することができます。例えば、右から左へ、あるいは左から右へ流れるように配置できます。同様に、上から下へ流れるようにすることもできます。

スクリプトの構造については以下の点に注意してください。

  • スクリプトにブランチを作成するには分岐条件を使用します。これにより、スクリプトの任意の時点で起こりうる多くの結果、バリエーション、または状況をカバーすることができます。エラー処理、IVR閉じた 音声コマンド、キー入力、またはその両方を使用して発信者が情報を取得したり、着信音声通話をルーティングしたり、またはその両方を行うことができる自動電話メニュー。メニューのオプション、またはIFアクションに基づくtrue/falseのパスを処理するためにブランチを使用できます。
  • アクションによっては、複数の分岐条件を使用できます。常にすべてのブランチを接続する必要はありません。ただし、Defaultブランチは必ず接続することが重要です。これは、他のどの条件も適用されない場合にスクリプトが従うブランチです。予期せぬ事態が発生したときに、コンタクトがスクリプトのその時点でスタックするのを防ぐことができます。
  • イベントアクションは、イベントのトリガーとなるアクションに接続されていません。これらは、同じスクリプトファイル内の新しいセクションを開始します。新しいセクションは、スクリプトファイルの任意の場所に配置できます。スクリプト内に複数のイベントアクションがある場合、後で探しやすいように整理しておくとよいでしょう。

スニペットでは、ステートメントの論理的順序の制限以外には、構造に関する要件はありません。スニペットは1つのASSIGNステートメントで構成されることもありますが、ネストされた一連のステートメントやブロックで構成される複雑なスクリプトロジックを保持することもあります。カスタム関数を作成するにはスニペットを使用する必要があります。

スニペットは、カスタムコードを保持する以外にも用途があります。スニペットを使えば、変数の代入を数か所にまとめることができます。変数を追加するたびにASSIGNアクションを使う代わりに、複数の宣言ステートメントを1つのSnippetアクションにまとめることができます。

スクリプトを読みやすくするには、いくつか方法があります。これは、後で他のスクリプターがスクリプトの作業を行う場合に役立ちます。次が可能です:

  • 各アクションのCaptionプロパティを変更します。このプロパティの内容は、スクリプトのキャンバスワークスペースに表示されます。それぞれのアクションが何をするかを知るのに役立つ単語や短いフレーズを加えることができます。例えば、アクションが使用するスキル、再生する音楽ファイル、スニペットコードが行う処理などを示すことができます。
  • AnnotationアクションとNoteアクションを使用して、スクリプトに追加の説明を記述します。Snippetアクションではコメントを追加することができます。
  • Studioのスクリプティングに関するその他のベストプラクティスに従います。

構文

他のプログラミング言語と同様、Snippetにはも従わなければならない構文ルールがあります。リファレンスセクションの各ヘルプページに構文に関するセクションがあり、言語のその要素のルールが示されています。以下に関する構文ルールを確認できます。

構文ルールは構文サマリーで説明されています。サマリーでは、オプションの要素と必須の要素を区別するために、一定の慣例を用いています。慣例の詳細については、ステートメントヘルプページを参照してください。

データ型

データ型は、データの表現方法と、そのデータで実行できる操作の種類を記述します。多くのプログラミング言語は、さまざまな種類の数値と英数字表現を区別する多くのデータ型をサポートしています。Studioは、このような区別を行いません。Studioでは、値が以下のいずれかの型を持ちます。

  • 文字列:変数の値には、英数字とピリオド、カンマ、アンダースコアなどの特殊文字が含まれます。文字列値は、二重引用符で囲む必要があります。
  • 数値:変数の値は数値です。数値には二重引用符は必要ありません。
  • 日付/時刻:変数の値は日付、時刻、またはその両方です。Studioで日付/時刻の値を日付/時刻関数で使用する場合、値を引用符で囲み、その外側にシャープ記号を付ける必要があります。例:var = #"11-23-2023"。
  • ブーリアン値:変数の値はtrue1false0のいずれかです。ブーリアン値は引用符で囲まないでください。

一部のプログラミング言語とは異なり、変数を宣言する際にデータ型を宣言する必要はありません。Studioでは、変数が暗黙的に型指定されます。したがって、スクリプトがコンパイルされるときに、型が自動的に決定されます。

データ型はスクリプティングに不可欠な要素です。Studioスクリプトにおけるデータ型の詳細については、データ構造、および変数についてのヘルプページを参照してください。関数の作業をする場合、スクリプトで使用するデータの型について知っておく必要があります。また、使用している関数が何を期待しているのかや、そこで使用する型によって出力がどのように異なるかも知っておく必要があります。

データ構造:変数、配列、オブジェクト

データ構造によって、スクリプトで使用するデータを格納できます。必要なときにデータ構造からデータを取り出したり、他のデータに置き換えたりすることが可能です。他のプログラミング言語では、データ構造には多くの種類があり、非常に複雑になることがあります。Studioにはデータ構造が3種類しかありません。

これらデータ構造は、すべて宣言ステートメントで宣言することで作成できます。

表現

表現とは、スクリプトの中にある、値を比較したり、値を返したりするものすべてを指します。以下はすべて表現の例です。

  • x = 3(5+10)

  • y = 123 North Street
  • x != 5

には、文字列、数値、ブーリアン閉じた 真と偽の2つの値を持つデータ型。などさまざまな種類があります。表現はStudioスクリプトでよく使われます。その用途には次のようなものがあります。

  • Studioアクションまたはスニペットのプロパティを設定する。
  • のブランチを作成し、意思決定をシミュレートするスクリプトのロジックを定義する。
  • アクションのプロパティやスニペットにリテラル値を提供する。
  • 数学的または代数的な計算を行う。

オペレータ

演算子とは数学記号のことで、数値に対してどのような数学的、代数的演算を行うかを指定します。Studioは、すべての標準的な数学演算子といくつかの代数演算子をサポートしています。また、ブーリアン閉じた 真と偽の2つの値を持つデータ型。演算子もサポートしており、ブーリアン式で使用されます。これはtrueかfalseのどちらかに評価される表現です。一部のステートメントではブール値を使用して、スクリプトで意思決定のメカニズムを作成できます。

ステートメント

ステートメントは、スクリプトが実行時に取るアクションを定義します。これには、変数の作成、新しい値の割り当て、計算の実行、与えられた条件に基づく論理的な選択などが含まれます。ステートメントの中には、変数に値を代入するなどのタスクを実行するだけのものもあります。また、スクリプトの流れに影響を与えるステートメントもあります。ステートメントは論理的な順序で実行されますが、その順序はスクリプトを実行するたびに変更されることがあります。

一般に、アクションを使ってスクリプトを作成する場合、ステートメントについて配慮する必要はありません。スニペット内では、次のタイプのステートメントを使用できます。

  • 宣言宣言を使用して、新しい変数、オブジェクト、関数を宣言したり作成したりします。
  • 意思決定意思決定ステートメントを使用して、指定した条件に基づいて実行するタスクをスニペットコードに選択させることができます。これらを使って、スクリプトで起こることの直線的な流れを制御できます。
  • ループループステートメントを使用して、指定した終了条件が満たされるまで、スニペットに1つまたは一連のタスクを繰り返し実行させることができます。
  • その他:これらのステートメントを使用して、関数を終了したり、デバッグ中に結果をSnippet editorウィンドウに表示したり、スニペットにウェブサービスプロキシDLLを含めたりできます。

一部のステートメントには、それと同じことをするStudioアクションが存在します。例えば、ASSIGNアクションとIFアクションは、スニペットで使用できるASSIGNIFステートメントと同じことを行います。ステートメントの多くは、スニペットで使う以外に方法がありません。

予約語

Studioには、スクリプトの変数やその他のエンティティの名前として使用できない予約語がいくつかあります。予約語には、以下の名前が含まれます。

予約語をスクリプトのエンティティ名として使用すると、エラーになります。エラーを解決するには、エンティティの名前を変更する必要があります。

コメント

コメントによって、スクリプトやスニペット内のコードを文書化することができます。自分自身や後任のスクリプターのためにメモを残したり、スクリプト内のコードの目的を説明するために使うことができます。

Studioスクリプトでは、NoteアクションまたはAnnotationアクションを使用してコメントを追加できます。どちらのアクションも、スクリプトキャンバスにコメントを追加できます。Annotationアクションは、コメントをキャンバス上にグレーの四角形で直接表示します。Noteアクションのコメントを読むには、アクションをダブルクリックする必要があります。

スニペットでは、2つのフォワードスラッシュ(//)を入れてコメントを追加することができます。コメントは別の行に書くことも、ステートメントの末尾に書くこともできます。

また、スニペットでコメントを使用すると、実行時にスクリプトに含めたくないコード行を隠すことができます。これは、トラブルシューティングの際に役立ちます。

関数

関数は、再利用が可能なコードを作成する方法です。独自の関数を作成しておき、そこに含まれるコードを使いたいときに、スクリプトの別の場所で関数を呼び出すことができます。Studioには、組み込み関数もいくつか用意されています。これらはスクリプト内で宣言しなくても使用できます。

文字列の処理

スニペットでは、組み込みの関数を使って文字列でさまざまなことができます。

  • 連結する
  • サブ文字列に分割する
  • 検索する
  • 内容の一部を入れ替える
  • 比較
  • 大文字と小文字を切り替える

場合によっては、日付、時刻、数字を含む文字列のフォーマットを指定する必要があります。定義されているフォーマット指定子を使用して、スクリプトに使わせるフォーマットを定義することができます。また、一部の組み込み関数は、さまざまなフォーマットに文字列を変換することができます。

文字によっては、エスケープシーケンスを使用しないと文字列に含めることができません。文字列は一重引用符か二重引用符で囲む必要があるため、文字列の中にリテラルな一重引用符や二重引用符を含めると、スクリプトはこれを文字列の先頭または末尾として解釈します。エスケープシーケンスは、その文字がデフォルトの記号ではなく、リテラルとして使われていることをスクリプトに伝えます。これ以外にもエスケープシーケンスが必要となる文字として、タブ、バックスペース、中括弧があります。