APIScript 入門
Version 23.4.8843
Version 23.4.8843
APIScript 入門
APIScript
APIScript はXML ベースの言語で、カスタム処理ロジックの記述に使用できます。このスクリプトはCData Sync に含まれており、Sync を他のビジネスプロセスと統合できる外部プロセスを簡単に呼び出すことができます。Sync には、E メール送信、バッチファイルの実行、データベースの作業などの完全なコードスニペットが含まれています。これらのスニペットを、管理コンソールからお客様のイベントに挿入することができます。
APIScript は、データアクセスおよびプロセッシングのあらゆる側面の管理を可能にするハイレベルなプログラミング言語です。スクリプトを書く際には、キーワード、アトリビュート、アイテム、オペレーション、およびフィードを使います。
- アトリビュート - name-value ペアのname 部分(例えば、
attribute="address"
、value="123 Pleasant Lane"
)。 -
アイテム - Attribute-value ペアの関連するグループで、インプットとアウトプットを説明します。以下に例を示します。
attr="name" value="Bob" attr="address" value="123 Pleasant Lane" attr="phone" value="123-4567"
- オペレーション - アイテムをインプットとして受け、フィードをアウトプットとして生成するメソッドの一般名。
- フィード - アイテムのリスト(例えば、アドレスと電話番号を含む顧客のリストなど)。
- キーワード - APIScript 構文(例えば、
api:set
)。
APIScript は多様なキーワードを持ち、次のようなタスクを実行できます:
-
イベントのインプットとアウトプットを説明する
-
実行フローを管理するためにIF/ELSE 構文やCASE 構文などのハイレベルなプログラミング構成を使う
-
オペレーションを呼び出し、カスタムオペレーションを定義する
-
アイテム、オペレーションのインプット、フィード、オペレーションの結果を作成し、変更する
-
オペレーション呼び出しの結果得られるフィードを、アイテムの反復により処理する。
APIScript のアイテム
APIScript では、アイテムはオペレーションにインプットを提供するために使用されます。次の例に示すように、api:set
キーワードを使用してアイテムを作成し、名前を付け、属性値を与えます。
<api:set item="input" attr="mask" value="*.txt" />
この行は、input
という名前のアイテムの、mask
アトリビュートに*.txt
という値をセットします。この場合、input
アイテムはAPIScript の変数の働きをします。
ただし、input
という名前のアイテムは宣言されていません。その代わりに、初回にアトリビュートをセットしようとすると、そのアイテムが生成されます。上の例では、インプットアイテムが存在していない場合、そのアイテムが生成され、アイテムにmask アトリビュートがセットされます。
アトリビュート値の選択
アトリビュートを参照するには、構文_item.attribute_ (例えば、input.mask
)を使用します。あるアトリビュート値をクエリするには、括弧([])でアトリビュート名を囲います。括弧は、文字列リテラルとしてではなく、文字列を評価したいということを示します。
例えば、次のコードスニペットを見てください:
<api:set item="item1" attr="attr1" value="value1"/>
<api:set item="item1" attr="attr2" value="item1.attr1"/>
<api:set item="item1" attr="attr3" value="[item1.attr1]"/>
結果は次のとおりです:
item1.attr1
は、value1
のリテラル文字列の値を割り振られます。item1.attr2
は、item1.attr1
のリテラル文字列の値を割り振られます。item1.attr3
は、value1
の値を割り振られます。これは、文字列"[item1.attr1]"
がitem1
のattr1
アトリビュートとして評価されるからです。
Note:文字列リテラルにおいて、バックスラッシュ(\)を使って、括弧からエスケープすることができます。
デフォルトアイテム
APIScript では、アイテムの内部スタックに暗黙的な無名のアイテム(デフォルトアイテム)があります。次の2つのケースでは、デフォルトアイテムは共通してスクリプトをより短く、簡単に書くために使われています。
-
Calling operations:デフォルトアイテムは、他に指定されたアイテムがない場合に、イベントによって呼び出されたオペレーションにデフォルトで渡されるアイテムです。その結果、
api:set
を使って、デフォルトの名付けられていないアイテムのアトリビュートを書いて、そのアトリビュートがイベント内の次のオペレーションのインプットとして渡されることを意味します。このメソッドは、オペレーションに必要なパラメータを提供する一つの方法です。 -
Processing the current item in the output of an operation or event:オペレーションの結果の変数名を指定しない場合、デフォルトアイテム(オペレーションを起動する
api:call
ブロック内部)は、オペレーションで生成された現在のアイテムを参照します。
APIScript のキーワードのアイテムアトリビュートを単に省略することでデフォルトアイテムを操作する:
<api:set attr="path" value="." />
イベントインプット(_input)
イベントへのインプットは_input
アイテムから参照されます。_input
アイテムには、イベントのinfo
ブロックで定義された変数が含まれます。イベント内のデフォルトアイテムから値を読む場合、_input
から値を読んでいます。同様に、デフォルトアイテムに書き込みたいアトリビュートは、イベントのインプットとともにオペレーションのパラメータとして渡されます。
Note:api:call
ブロックの内部では、_input
アイテムはデフォルトアイテムではありません。アクセスが必要な場合は、名前で参照する必要があります。
オペレーションアウトプット(_out[n])
api:call
によって生成されたフィード内の現在のアイテムには、デフォルトのアイテムまたは名前付きの特別なアイテム_outX
を通じてアクセスします。X は、api:call
キーワードのネストのレベルを指定します。例えば、単一のapi:call
キーワードの内部の場合、アイテム名は_out1
です。api:call
キーワードの3つのネストレベルの内部の場合、名前は_out3
となります。