APIScript 入門

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]"item1attr1 アトリビュートとして評価されるからです。

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 となります。