アクション・チェーンについて
vbEnter: ページの起動時にトリガーされ、データのフェッチに使用できますojAction: ボタン・コンポーネントをクリックしたときにトリガーされますonValueChange: 変数に格納された値が変更された場合にトリガーされます
イベントのタイプに関係なく、すべてのアクション・チェーンをイベント・リスナーにバインドして実行できるようにする必要があります。 イベント・リスナーが自動的に作成されるが、明示的に作成する必要がある場合もあります。 たとえば、Visual Builderが提案するイベント(たとえば、入力テキスト・コンポーネントに対して推奨されるonValueイベント)を受け入れると、イベント・リスナーが自動的に作成され、コンポーネントの値が変更されるとアクション・チェーンがトリガーされます。
アクション・チェーンの作成には、アクション・チェーン・エディタを使用して、事前定義済(組込み)アクションを、必要なタスクを実行する順序に組み立てる必要があります。 使用できないアクションが必要な場合は、コード・アクションを使用して独自のコード・ブロックを追加するか、再度必要になる可能性がある場合はカスタム・アクションを作成できます。
2つのアクション・チェーンを非同期に実行し、それぞれの結果を使用して結合結果を作成するアクション・チェーンの例を次に示します。 入力パラメータによって、アクション・チェーンはプロパティ・ペインに示すように4つの番号を受け取ります。 「パラレルで実行」アクションを使用すると、1つのasyn()メソッドを使用して、2つの数値の商を返すアクション・チェーンをコールし、別のasyn()メソッドを使用して2つの数の積を返すアクション・チェーンをコールします。 「パラレルで実行」アクションは、最初のasyn()メソッドからの値を含む最初の要素と、2番目のasyn()メソッドからの値を含む2番目の要素を含む配列(この例ではrunParaResult)を返します。 値の合計は、「起動の通知」アクションを使用して表示されます:
図jsac-action-chain-example-run-parallel.jpgの説明
const runParaResult = await Promise.all([
async () => {
const callChainDivNum1ByNum2Result = await Actions.callChain(context, {
chain: 'divNum1ByNum2',
params: {
num1: num1ToDiv_ip,
num2: num2ToDiv_ip,
},
});
return callChainDivNum1ByNum2Result;
},
async () => {
const callChainMultipleNum1ByNum2Result = await Actions.callChain(context, {
chain: 'multipleNum1ByNum2',
params: {
num1: num1ToMul_ip,
num2: num2ToMul_ip,
},
});
return callChainMultipleNum1ByNum2Result;
},
].map(sequence => sequence()));
await Actions.fireNotificationEvent(context, {
message: `Sum of returned values: ${runParaResult[0] + runParaResult[1]}`,
summary: `Sum`,
});アクション・チェーンを作成する際には、各アクション・チェーンに定義された場所に応じてスコープがあることに注意してください: application、フロー、ページまたはフラグメント・レベル。 applicationレベルで定義されたアクション・チェーンは、任意のフローまたはページからコールできますが、ページレベルのアクション・チェーンは、そのページからのみコールできます。ただし、チェーン自体は、ページ、親フローまたはapplicationで定義された変数にアクセスできます。 フロー・レベルのアクション・チェーンについても同様です。 フラグメント・レベルまたはレイアウト・レベルのアクション・チェーンは、そのフラグメントまたはレイアウトからのみコールでき、チェーンはそのフラグメントまたはレイアウトで定義された変数のみを参照できます。
特定のチェーン内のアクションはシリアルに実行されますが、複数のチェーンを起動するようにイベント・リスナーを構成することで、複数のアクション・チェーンを同時に実行できます。