

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 自動化パラメータ
<a name="parameters-automation"></a>

オートメーションパラメータは App Studio の強力な機能であり、UI、他のオートメーション、データアクションなどのさまざまなソースから動的値を渡すことで、柔軟で再利用可能なオートメーションを作成するために使用できます。自動化の実行時に実際の値に置き換えられるプレースホルダーとして機能し、毎回異なる入力で同じ自動化を使用できます。

オートメーション内では、パラメータには一意の名前があり、パラメータ変数の後にパラメータの名前、たとえば を使用してパラメータの値を参照できます`{{params.customerId}}`。

この記事では、自動化パラメータの基本概念、使用法、ベストプラクティスなど、自動化パラメータについて詳しく説明します。

## 自動化パラメータの利点
<a name="parameters-automation-benefits"></a>

自動化パラメータには、次のリストを含むいくつかの利点があります。

1. **再利用性**: パラメータを使用することで、異なる入力値でカスタマイズできる再利用可能なオートメーションを作成できるため、同じオートメーションロジックを異なる入力で再利用できます。

1. **柔軟性**: 値をオートメーションにハードコーディングする代わりに、パラメータを定義し、必要に応じて異なる値を指定できるため、オートメーションをより動的に適応させることができます。

1. **懸念の分離**: パラメータは、使用される特定の値から自動化ロジックを分離し、コードの整理と保守性を促進します。

1. **検証**: 各パラメータには、実行時に検証される文字列、数値、ブール値などのデータ型があります。これにより、誤ったデータ型のリクエストは、カスタム検証コードなしで拒否されます。

1. **オプションパラメータと必須パラメータ**: オートメーションパラメータをオプションまたは必須として指定できます。オートメーションを実行するときは必要なパラメータを指定する必要がありますが、オプションのパラメータにはデフォルト値を含めることも、省略することもできます。この柔軟性により、提供されたパラメータに基づいてさまざまなシナリオを処理できる、より汎用性の高いオートメーションを作成できます。

## シナリオとユースケース
<a name="parameters-automation-scenarios"></a>

### シナリオ: 製品の詳細を取得する
<a name="parameters-automation-scenario-product-details"></a>



製品 ID に基づいてデータベースから製品の詳細を取得するオートメーションがあるとします。このオートメーションには、 というパラメータを含めることができます`productId`。

`productId` パラメータは、オートメーションの実行時に実際の製品 ID 値を入力できるプレースホルダーとして機能します。特定の製品 ID をオートメーションにハードコーディングする代わりに、 `productId`パラメータを定義し、オートメーションを実行するたびに異なる製品 ID 値を渡すことができます。

コンポーネントのデータソースからこの自動化を呼び出し、二重中括弧構文 を使用して、選択した製品の ID を `productId`パラメータとして渡すことができます`{{ui.productsTable.selectedRow.id}}`。これにより、ユーザーがテーブル (`ui.productsTable`) から製品を選択すると、オートメーションは選択した行の ID を `productId`パラメータとして渡すことで、選択した製品の詳細を取得します。

または、製品のリストをループし、製品の ID を `productId`パラメータとして渡すことで各製品の詳細を取得する別のオートメーションからこのオートメーションを呼び出すこともできます。このシナリオでは、`productId`パラメータ値はループの各反復で`{{product.id}}`式から動的に提供されます。

`productId` パラメータと二重中括弧構文を使用することで、この自動化をより柔軟に再利用できます。製品ごとに個別のオートメーションを作成する代わりに、UI コンポーネントやその他のオートメーションなど、さまざまなソースからパラメータ値として適切な製品 ID を指定するだけで、任意の製品の詳細を取得できる単一のオートメーションを作成できます。

### シナリオ: フォールバック値を使用したオプションのパラメータの処理
<a name="parameters-automation-scenario-optional-parameters"></a>

必須の「所有者」列を持つ「タスク」エンティティがあるが、このフィールドをオートメーションでオプションにし、所有者が選択されていない場合はフォールバック値を指定するシナリオを考えてみましょう。

1. `Task` エンティティの `Owner`フィールドにマッピング`Owner`する という名前のパラメータを使用してオートメーションを作成します。

1. エンティティには `Owner`フィールドが必要なため、 `Owner`パラメータは必要な設定と同期します。

1. オートメーションで `Owner`パラメータをオプションにするには、このパラメータ`required`の設定をオフに切り替えます。

1. 自動化ロジックでは、 のような式を使用できます`{{params.Owner || currentUser.userId}}`。この式は、 `Owner`パラメータが指定されているかどうかを確認します。指定しない場合、現在のユーザーの所有者としての ID にフォールバックされます。

1. これにより、ユーザーがフォームまたはコンポーネントで所有者を選択しない場合、オートメーションは現在のユーザーをタスクの所有者として自動的に割り当てます。

`Owner` パラメータ`required`の設定を切り替え、フォールバック式を使用することで、エンティティフィールドの要件から切り離し、オートメーションではオプションにし、パラメータが指定されていない場合はデフォルト値を指定できます。

## オートメーションパラメータタイプの定義
<a name="parameters-automation-create"></a>

パラメータタイプを使用してデータ型を指定し、要件を設定することで、オートメーションの入力を制御できます。これにより、予想される入力でオートメーションを確実に実行できます。

### エンティティからの型の同期
<a name="parameters-automation-synchronize-entity"></a>

エンティティフィールド定義からパラメータタイプと要件を動的に同期することで、エンティティデータを操作するオートメーションの構築が効率化され、パラメータに常に最新のエンティティフィールドタイプと要件が反映されます。

次の手順では、エンティティからパラメータタイプを同期するための一般的なステップについて詳しく説明します。

1. 型付きフィールド (ブール値、数値など) を持つエンティティを作成し、必要に応じてフィールドをマークします。

1. 新しいオートメーションを作成します。

1. オートメーションにパラメータを追加し、 **タイプ**を選択するときは、同期するエンティティフィールドを選択します。データ型と必要な設定は、マッピングされたエンティティフィールドから自動的に同期されます。

1. 必要に応じて、パラメータごとにオン/オフを切り替えることで、「必須」設定を上書きできます。つまり、必要なステータスはエンティティフィールドと同期されませんが、それ以外の場合は同期されたままになります。

### 型を手動で定義する
<a name="parameters-automation-custom-types"></a>

エンティティから同期せずにパラメータタイプを手動で定義することもできます。

カスタムパラメータタイプを定義することで、エンティティフィールドマッピングに依存することなく、特定の入力タイプを受け入れ、必要に応じてオプションまたは必須のパラメータを処理するオートメーションを作成できます。

1. 型付きフィールド (ブール値、数値など) を持つエンティティを作成し、必要に応じてフィールドをマークします。

1. 新しいオートメーションを作成します。

1. オートメーションにパラメータを追加し、**タイプ**を選択するときに目的のタイプを選択します。

## 自動化パラメータに渡される動的値の設定
<a name="parameters-automation-pass-values"></a>

オートメーションのパラメータを定義したら、オートメーションを呼び出すときにパラメータに値を渡すことができます。パラメータ値は、次の 2 つの方法で渡すことができます。

1. **コンポーネントトリガー**: ボタンクリックなどのコンポーネントトリガーからオートメーションを呼び出す場合は、JavaScript 式を使用してコンポーネントコンテキストから値を渡すことができます。たとえば、 という名前のテキスト入力フィールドがある場合`emailInput`、 という式を使用して、その値を E メールパラメータに渡すことができます`ui.emailInput.value`。

1. **その他のオートメーション**: 別のオートメーションからオートメーションを呼び出す場合は、JavaScript 式を使用してオートメーションコンテキストから値を渡すことができます。たとえば、別のパラメータの値を渡すか、前のアクションステップの結果を渡すことができます。

## 型の安全性
<a name="parameters-automation-type-safety"></a>

文字列、数値、ブール値など、特定のデータ型のパラメータを定義することで、オートメーションに渡される値が想定どおりのタイプであることを確認できます。

**注記**  
App Studio では、date (s) は ISO 文字列の日付であり、それらも検証されます。

このタイプの安全は、オートメーションロジックでエラーや予期しない動作につながる可能性のあるタイプの不一致を防ぐのに役立ちます。たとえば、パラメータを として定義すると`Number`、そのパラメータに渡される値は数値になり、オートメーション内で追加の型チェックや変換を実行する必要はありません。

## 検証
<a name="parameters-automation-validation"></a>

パラメータに検証ルールを追加して、オートメーションに渡される値が特定の基準を満たすようにすることができます。

App Studio にはパラメータの組み込み検証設定はありませんが、特定の制約に違反した場合にエラーをスローする JavaScript アクションをオートメーションに追加することで、カスタム検証を実装できます。

エンティティフィールドでは、最小値/最大値などの検証ルールのサブセットがサポートされています。ただし、レコードCreate/Update/Deleteアクションを実行する場合、これらは自動化レベルでは検証されず、データレイヤーでのみ検証されます。

## 自動化パラメータのベストプラクティス
<a name="parameters-automation-best-practices"></a>

自動化パラメータが適切に設計され、保守可能で、使いやすいようにするには、次のベストプラクティスに従ってください。

1. **わかりやすいパラメータ名を使用する**: パラメータの目的またはコンテキストを明確に記述するパラメータ名を選択します。

1. **パラメータの説明を指定する**: パラメータを定義するときは、**説明**フィールドを活用して、その目的、制約、期待について説明します。これらの説明は、 パラメータを参照するときの JSDoc コメントと、オートメーションを呼び出すときにユーザーがパラメータの値を指定する必要があるユーザーインターフェイスに表示されます。

1. **適切なデータ型を使用する**: 文字列、数値、ブール値、オブジェクトなど、予想される入力値に基づいて各パラメータのデータ型を慎重に検討します。

1. **パラメータ値を検証する**: 自動化内で適切な検証チェックを実装して、パラメータ値が特定の要件を満たしていることを確認してから、さらなるアクションに進みます。

1. **フォールバック値またはデフォルト値を使用する**: App Studio は現在パラメータのデフォルト値の設定をサポートしていませんが、オートメーションロジックでパラメータを使用するときにフォールバック値またはデフォルト値を実装できます。たとえば、 `param1`パラメータが指定されていない場合、または false 値がある場合は、 のような式を使用してデフォルト値`{{ params.param1 || "default value" }}`を指定できます。

1. **パラメータの一貫性を維持する**: 同様のパラメータを必要とするオートメーションが複数ある場合は、それらのオートメーション全体でパラメータ名とデータ型の一貫性を維持してください。

1. **ドキュメントパラメータの使用**: 各パラメータの説明、その目的、想定値、関連する例やエッジケースなど、オートメーションに関する明確なドキュメントを維持します。

1. **頻繁に確認およびリファクタ**リングする: オートメーションとそのパラメータを定期的に確認し、必要に応じてパラメータをリファクタリングまたは統合して、明確性、保守性、再利用性を向上させます。

1. **パラメータの数を制限する**: パラメータには柔軟性がありますが、パラメータが多すぎるとオートメーションが複雑になり、使用が困難になる可能性があります。パラメータの数を必要なもののみに制限することで、柔軟性とシンプルさのバランスを取ることを目指します。

1. **パラメータのグループ化を検討する**: 複数の関連パラメータを定義している場合は、それらを 1 つの{{オブジェクト}}パラメータにグループ化することを検討してください。

1. **個別の懸念事項**: 1 つのパラメータを複数の目的に使用したり、無関係な値を 1 つのパラメータに結合したりすることは避けてください。各パラメータは、個別の懸念事項またはデータを表す必要があります。

1. **パラメータエイリアスを使用する**: 長い名前または複雑な名前のパラメータがある場合は、読みやすさと保守性を高めるために、自動化ロジック内でエイリアスまたは短縮バージョンを使用することを検討してください。

これらのベストプラクティスに従うことで、自動化パラメータの設計、保守性、使いやすさを確保し、最終的に自動化の全体的な品質と効率を向上させることができます。