データ変更アクション言語は、Tracking Analyst のデータ変更サービス アクションで使用する関数を定義するために使用します。関数は、データ変更アクションが実行されたときにデータ メッセージを変更する機能を持っています。データ変更アクション言語を使用して定義した関数では、データ メッセージのフィールドの値を入力として指定します。サポートされているデータ タイプを持つすべてのフィールドを関数で使用できます。関数の処理結果を出力するために、データ メッセージにある 1 つ以上のフィールドの値が関数によって置き換えられます。計算を実行するために、データ変更アクション言語には基本的な算術コマンドといくつかの高等数学関数が用意されています。
データ変更アクション言語の構造
以下の各セクションでは、データ変更アクション言語を効果的に使用するために必要な内容を詳しく説明します。
サポートされているデータ タイプ
データ変更アクション言語で使用できる基本的なデータ タイプは次のとおりです。
- 整数 (例: 14)
- 実数 (例: 3.1452)
- 文字列 (例: Anderson)
- 日付 (例: 12/12/2009)
関数で定義する変数はすべて、ここで挙げたデータ タイプのいずれかです。
変数
関数の実行を開始すると、データ メッセージにあるすべてのフィールドは、フィールドと同じ名前の変数として使用できるようになります。その他の変数は、初めて参照するときに作成されます。たとえば、次のステートメントでは新しい変数が作成されます。
NewLatitude = OldLatitude
変数 NewLatitude が存在せず、これまでに使用されたこともない場合は、変数 OldLatitude と同じデータ タイプで変数 NewLatitude が作成されます。データ メッセージにあるいずれかの変数の値を変更しても、メッセージ自体の値は変更されません。この方法については「置換ステートメント」をご参照ください。
変数名では大文字と小文字が区別されるので、関数に使用するフィールド名の大文字と小文字の使い分けを慎重に確認する必要があります。定義する変数名の大文字と小文字の使用方法にも整合性があることを確認してください。
基本的な代入文
代入文では、変数の値に別の変数の値または式の値を設定します。変数とソースを等号 (=) で分離して記述します。データ変更アクション言語の式は、他のプログラミング言語の式と同様で、数学演算子 (+、-、*、/) で接続した変数で構成できます。括弧を使用して、演算子の計算順序を指定できます。次に、有効な代入文の例を示します。
- NewLatitude = OldLatitude (新しい変数を作成し、その変数に既存の変数と同じ値を割り当てます。)
- TempString = "This is a string" (変数に値を明示的に割り当てます。)
- A = B * 5.56 (別の変数を使用した数学演算の結果を変数に割り当てます。)
- Result = (4 * A) + 6 * (C + D) (いくつかの変数を使用したより複雑な数学演算の結果を変数に割り当てます。)
数学関数
一般的な数学演算および形状操作演算の実行に使用できる特別な関数があります。使用可能な関数は次のとおりです。
- Arcsin (逆サイン)
- Arccos (逆コサイン)
- Arctan (逆タンジェント)
- Sin (サイン)
- Cos (コサイン)
- Tan (タンジェント)
置換ステートメント
置換ステートメントは、データ メッセージのフィールドの変更に使用します。次に、置換ステートメントの使用例を 2 つ示します。
- Replace MSG_LAT with NewLatitude
- Replace WIND_SPD_MPH with WindSpeedKPH * 1.609
コメント
コメントを使用すると、関数の結果に影響を与えずに、関数に説明文を追加できます。データ変更アクション言語でコメントの指定に使用できる文字は次のとおりです。
- //
- !
- REM
- '
関数の例
次に、関数の使用を開始するにあたって参考となる関数の例を示します。
この関数では、データ メッセージにある緯度と経度の値を 10 進数の度から 10 進数の秒に変換しています。
// Copy Data Message Fields
OldLatitude = MSG_LAT
OldLongitude = MSG_LON
// Perform Conversion
NewLatitude = OldLatitude * 60.0
NewLongitude = OldLongitude * 60.0
// Change Data Message
Replace MSG_LAT with NewLatitude
Replace MSG_LON with NewLongitude
// End