Analytics でのスクリプト作成の基本事項

ACLScript は Analytics コマンドをプログラミングして自動的に実行できるようにするコマンド言語です。ACLScript の構造および要素はシンプルですが強力です。

メモ

まったく初めてスクリプトを作成する場合は、いきなりこのコンテンツを学習する前に、アカデミーを訪れて基本的なトレーニングを受けてください。スクリプトの作成と Analytics の使用に関するコースについては、www.highbond.com を参照してください。

コマンド

スクリプト内のどの行も ACLScript コマンドを実行するため、コマンド名で始まります。コマンドは、Analytics で操作を実行するための命令です。

コマンド名の後に parameter_name parameter_value の形を持つパラメーターが 1 つ以上続きます。

ヒント

コマンドによって、必須になるパラメーターとオプションになるパラメーターがあります。オプションのパラメーターの指定は必須ではありません。省略すると、コマンドはそのパラメーターなしで実行するか、またはデフォルト値を使用します。

CLASSIFY コマンドを使用した例

次の例は、CLASSIFYコマンドとそれに続くパラメーターを示しています。

  • ON – 分類の基準にする、対象テーブルのフィールドを指定します。
  • SUBTOTAL – 出力における小計の対象にするオプションのフィールドを指定します。
  • TOCLASSIFY コマンドの結果を書き込む出力テーブルを指定します。

各パラメーターの後に 1 つまたは複数のパラメーター値が指定されていることに注目してください。

コマンド構文に関する重要なメモ

  • スクリプトの行の最初の単語はコマンド名である必要がある
  • ほとんどのコマンドにおいて、コマンド名の後に指定するパラメーターの順序は重要ではない
  • 大半のコマンドにおいて、コマンドを実行する前にターゲット テーブルを開くこと、つまりコマンドの前にOPEN テーブル名を実行することが必要です。

コメント

ACLScript では、スクリプト言語のように COMMENT キーワードを使ってコメントを追加できます。コメントを使うことで、作成するコードを理解しやすくできるとともに、スクリプトを参照、使用、理解、または更新しようとしているユーザーと対話することができます。ACLScript では、2 種類のコメントがサポートされています。

  • 単一行のコメント COMMENT の後から行末までのすべてのテキストが無視されます。
  • 複数行のコメントから成るブロック COMMENT から END キーワードまでのすべての行または空白行が無視されます。

詳細と例については、コメントを参照してください。

データ型

ACLScript では、4 つの基本的なデータ型がサポートされています。

  • 論理型 最もシンプルなデータ型。論理型のデータは、真(T)または偽(F)という真理値を表します
  • 数値型 0 ~ 9 の数字のほか、必要な場合に使用される負号や小数点がある
  • 文字型 1 つまたは複数の英数字文字
  • 日付時刻型 サポートされる書式で表される日付、日付時刻、または時刻の値

各データ型は Analytics によって異なる方法で処理され、さまざまなコマンドや関数で使用できます。データ型の詳細については、データ型を参照してください。

式とは、値を持つ、または値を生成するすべてのステートメントのことです。最もシンプルな形の式は 2"test" などのリテラルですが、式は通常計算として使用され、演算子、条件、関数、および指定可能な値を有効に組み合わせることができる範囲で複雑にすることもできます。

((2 + (3 - 2)) * 2) > ROOT(9,0)

式は通常、Analytics 内で、演算フィールドに値を入力するために使用されたり、条件付きロジックの入力として使用されします。式の詳細については、を参照してください。

関数

関数とは、一定数のパラメーターを入力とし、単一の値を返す組み込みルーチンです。関数を使用することで、コマンド内で使用する変数や、フィールド値を操作できます。

メモ

関数はフィールドデータを変更しません。入力としてフィールドデータまたは変数を使用するアルゴリズムまたは計算に基づいて、新しい値を生成して返します。関数が返す値をコマンドの入力として使用します。

関数は、関数名で始まり、そのすぐ後に左かっこ、関数に引数として渡される 0 個以上の値をカンマで区切ったリスト、右かっこと続きます。

BETWEEN(, 最小値, 最大値) 関数は 3 つの引数を取り、値が最小値から最大値までの範囲内であれば True を返し、範囲外であれば False を返します。

  • – テストする式またはフィールド
  • 最小値 – 範囲の最小値
  • 最大値 – 範囲の最大値
BETWEEN(amount, 500, 5000)

関数の詳細については、関数を参照してください。

変数

変数とは、値を一時的に格納する場所です。変数には対応する ID があり、これを使ってコンピューターのメモリに格納されている値を参照、使用できます。

ACLScript は、ASSIGNACLScript コマンドを使って、変数を作成すると同時にそれに値を代入します。

ASSIGN v_age_in_years = 3

簡略化するために、ASSIGN キーワードを省略することもできますが、ASSIGN は暗黙に使用されて実行されます。

v_age_in_years = 3

メモ

ACLScript ではヌル値はサポートされていません。すべての変数には、サポートされているいずれかのデータ型を持つ、対応する値を設定する必要があります。スクリプトのインタープリターは、値の代入に使用されたデータ形式およびデータ修飾子を使ってデータ型を評価します。詳細については、データ型を参照してください。

変数の使用

変数は作成後、フィールド名や変数を参照する任意の場所で参照できます。また、ASSIGN コマンドを使って、それに新しい値を代入することもできます。

EXTRACT RECORD TO 'result.fil' IF age > v_age_in_years
v_age_in_years = 5

また、文字列補間または変数代入を使用して、文字列リテラルを含めるには、% 文字に変数をラッピングできます。代入される変数が Analytics で検出されると、プレースホルダーが対応する値に置換されます。

ASSIGN v_table = "erp_data"
OPEN %v_table%

変数の詳細については、変数を参照してください。

統制構造

制御構造は、指定したパラメーターに基づいて取るべき方向を決定する、スクリプトのコンポーネントです。ACLScript には、条件分岐のロジックおよびループ構造が用意されています。

条件分岐ロジック

ACLScript には、この言語の IFACLScript コマンドや、多数のコマンドのオプション パラメーターとして、条件付きロジックが実装されています。

ヒント

IF コマンドは他のコマンドを実行するかどうかを制御するのに使用するのに対し、IF パラメーターは他のコマンドの実行対象とするテーブル内レコードを決定するのに使用します。

IF コマンド

IF v_counter > 10 CLASSIFY ON customer_no

IF パラメーター

CLASSIFY ON customer_no IF state = 'NY'

ループ

LOOP コマンドは、ACLScript におけるループ制御構造を提供します。このコマンドは、統制テストの式が True と評価される限り、ループ内のステートメントを処理します。

制御構造の詳細についての参照先: 統制構造