

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

# ページとオートメーションのパラメータ
<a name="paramters"></a>

パラメータは、アプリケーション内のさまざまなコンポーネント、ページ、オートメーション間で動的な値を渡すために使用される AWS App Studio の強力な機能です。パラメータを使用すると、柔軟でコンテキスト対応のエクスペリエンスを実現し、アプリケーションの応答性とパーソナライズを強化できます。この記事では、ページパラメータとオートメーションパラメータの 2 種類のパラメータについて説明します。

**Topics**
+ [ページパラメータ](parameters-page.md)
+ [自動化パラメータ](parameters-automation.md)

# ページパラメータ
<a name="parameters-page"></a>

ページパラメータはページ間で情報を送信する方法であり、App Studio アプリ内であるページから別のページに移動してコンテキストを維持したりデータを渡すときによく使用されます。ページパラメータは通常、名前と値で構成されます。

## ページパラメータのユースケース
<a name="parameters-pages-use-cases"></a>

ページパラメータは、App Studio アプリケーション内のさまざまなページとコンポーネント間でデータを渡すために使用されます。これらは、次のユースケースで特に役立ちます。

1. **検索とフィルタリング**: ユーザーがアプリのホームページで検索する場合、検索用語をパラメータとして結果ページに渡して、関連するフィルタリングされた項目のみを表示できます。たとえば、ユーザーが*ノイズキャンセリングヘッドフォン*を検索する場合、*ノイズキャンセリングヘッドフォン*の値を持つ パラメータを製品出品ページに渡すことができます。

1. **項目の詳細の表示**: ユーザーが製品などのリストをクリックすると、その項目の一意の識別子をパラメータとして詳細ページに渡すことができます。これにより、詳細ページに特定の項目に関するすべての情報を表示できます。たとえば、ユーザーがヘッドフォン製品をクリックすると、製品の一意の ID がパラメータとして製品の詳細ページに渡されます。

1. **ページナビゲーションでユーザーコンテキストを渡す**: ユーザーがページ間を移動するとき、パラメータはユーザーの場所、優先製品カテゴリ、ショッピングカートの内容、その他の設定などの重要なコンテキストを渡すことができます。たとえば、ユーザーがアプリでさまざまな製品カテゴリを閲覧すると、その場所と優先カテゴリがパラメータとして保持され、パーソナライズされた一貫したエクスペリエンスが提供されます。

1. **ディープリンク**: ページパラメータを使用して、アプリ内の特定のページへのリンクを共有またはブックマークします。

1. **データアクション**: パラメータ値を受け入れるデータアクションを作成して、渡されたパラメータに基づいてデータソースをフィルタリングおよびクエリできます。たとえば、製品出品ページで、関連する製品を取得するための`category`パラメータを受け入れるデータアクションを作成できます。

## ページパラメータのセキュリティ上の考慮事項
<a name="parameters-pages-security"></a>

ページパラメータはページ間でデータを渡す強力な方法ですが、正しく使用しないと機密情報が公開される可能性があるため、注意して使用する必要があります。留意すべき重要なセキュリティ上の考慮事項は次のとおりです。

1. **URLs**

   1. **リスク**: データアクションパラメータを含む URLsは、多くの場合、サーバーログ、ブラウザ履歴、その他の場所に表示されます。そのため、ユーザー認証情報、個人を特定できる情報 (PII)、またはその他の機密データなどの機密データをページパラメータ値に公開しないようにすることが重要です。

   1. **緩和策**: 機密データに安全にマッピングできる識別子の使用を検討してください。たとえば、ユーザー名または E メールアドレスをパラメータとして渡す代わりに、ユーザー名または E メールを取得するために使用できるランダムな一意の識別子を渡すことができます。

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

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