AEM Forms の送信アクションの設定
AEM Forms と Edge Delivery Services を使用して、フォーム送信処理を設定し、データをスプレッドシート、メール、バックエンドシステムにルーティングします。
クイック決定ガイド
送信方法を選択します。
前提条件
送信アクションを設定する前に、次を確認します。
- AEM Forms as a Cloud Service インスタンス
- Edge Delivery Services プロジェクトが設定されている
- ドキュメントオーサリングまたはユニバーサルエディターを使用してフォームが作成済みである
- ターゲットの宛先(スプレッドシート、メールシステム、AEM)に必要な権限がある
Forms 送信サービスは、シンプルなデータキャプチャシナリオに最適な、アドビがホストするエンドポイントです。
サポートされる宛先
- スプレッドシート:Google Sheets、Microsoft Excel(OneDrive/SharePoint)
- メール:フォームデータを指定されたメールアドレスに送信します
設定手順
-
宛先アクセスを設定
- スプレッドシートの場合:ターゲットスプレッドシートで
forms@adobe.com
に編集権限を付与します - メールの場合:受信者のメールアドレスにアクセスできることを確認します
- スプレッドシートの場合:ターゲットスプレッドシートで
-
フォーム送信を設定
- フォームをオーサリング環境で開きます
- 送信アクションを「Forms 送信サービス」に設定します
- ターゲットスプレッドシートの URL またはメールアドレスを指定します
- フォームを保存して公開します
-
送信をテスト
- フォームを通じてテストデータを送信します
- ターゲットの宛先にデータが表示されることを確認します
- 送信に失敗した場合はエラーログを確認します
重要な注意事項
- サービスアカウント
forms@adobe.com
には、ターゲットスプレッドシートへの編集アクセス権が必要です - フォームを送信するとすぐにメール通知が送信されます
- データ検証はサービスレベルで行われます
複雑な処理のために、フォームデータを AEM as a Cloud Service パブリッシュインスタンスに直接送信します。
AEM パブリッシュを使用するタイミング
- 送信後に必要なカスタム AEM ワークフロー
- フォームデータモデル(FDM)とデータベースの統合
- サードパーティサービスとの統合(Marketo、Power Automate、Workfront Fusion)
- Azure Blob Storage または SharePoint ドキュメントライブラリ
- 複雑なサーバーサイド検証または処理ロジック
使用可能な送信アクション
- REST エンドポイントに送信
- AEM メールサービス経由でメール送信
- フォームデータモデルを使用して送信
- AEM ワークフローを起動
- SharePoint に送信
- OneDrive に送信
- Azure Blob Storage に送信
- Microsoft Power Automate への送信
- Adobe Workfront Fusion への送信
- Adobe Marketo Engage への送信
設定要件
1. Edge Delivery で AEM インスタンス URL を更新
constant.js
ファイル内の submitBaseUrl
の下の form
ブロックにある AEM Cloud Service インスタンス URL を更新します。環境に応じて URL を設定できます。
Cloud Service インスタンスの場合
code language-js |
---|
|
ローカル開発の場合
code language-js |
---|
|
2. OSGi リファラーフィルター
リファラーフィルターを設定して、特定の Edge Delivery サイトのドメインを許可します。
-
OSGi 設定ファイル
org.apache.sling.security.impl.ReferrerFilter.cfg.json
を作成または更新します。 -
特定のサイトドメインを使用して、次の設定を追加します。
code language-json { "allow.empty": false, "allow.hosts": [ "main--abc--adobe.aem.live", "main--abc1--adobe.aem.live" ], "allow.hosts.regexp": [ "https://.*\\.aem\\.live:443", "https://.*\\.aem\\.page:443", "https://.*\\.hlx\\.page:443", "https://.*\\.hlx\\.live:443" ], "filter.methods": [ "POST", "PUT", "DELETE", "COPY", "MOVE" ], "exclude.agents.regexp": [ "" ] }
-
Cloud Manager を通じて設定をデプロイします
OSGi リファラーフィルターの設定について詳しくは、リファラーフィルターガイドを参照してください。
3. CORS(クロスオリジンリソース共有)の問題
AEM で CORS を設定して、特定の Edge Delivery サイトドメインからのリクエストを許可します。
開発者ローカルホスト
code language-apache |
---|
|
Edge Delivery Sites - 各サイトドメインを個別に追加
code language-apache |
---|
|
レガシー Franklin ドメイン(まだ使用中の場合)
code language-apache |
---|
|
note note |
---|
NOTE |
main--abc--adobe.aem.live と main--abc1--adobe.aem.live を実際のサイトドメインに置き換えます。同じリポジトリからホストされる各サイトには、個別の CORS 設定エントリが必要です。 |
CORS 設定について詳しくは、CORS 設定ガイドを参照してください。
ローカル開発環境で CORS を有効にするには、クロスオリジンリソース共有(CORS)についての記事を参照してください。
4. フォームの設定
- ユニバーサルエディターでフォームを作成します
- AEM Forms アクションをターゲットにする送信アクションを設定します
- 送信エンドポイントパスを指定します
- Edge Delivery サイトにフォームを公開します
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
---|---|
問題 | 解決策 |
フォームの送信に失敗する | コンソールのエラーを確認し、エンドポイント URL を検証し、権限を確認します |
埋め込みフォームが表示されない | フォームソースに CORS ヘッダーを設定し、フォーム URL を検証します |
AEM の 403/401 エラー | Sling リファラーフィルターを更新し、認証設定を確認します |
データがスプレッドシートに到達しない | forms@adobe.com に編集アクセス権があることを検証し、スプレッドシートの URL を確認します |
CORS エラー | フォームソースに適切な Access-Control-Allow-Origin ヘッダーを追加します |
設定例
- Google Docs/Sheets でフォーム構造を作成します
- Forms 送信サービスのエンドポイントを設定します
forms@adobe.com
にターゲットスプレッドシートへの編集権限を付与します- ドキュメントを Edge Delivery サイトに公開します
- フォーム送信とデータフローをテストします
- ユニバーサルエディターでフォームを構築します
- 送信アクションを「AEM ワークフローを起動」に設定します
- AEM パブリッシュで Dispatcher とリファラーフィルターを設定します
- CDN ルーティングルールを設定します
- フォームを公開し、ワークフロー実行をテストします
ベストプラクティス
- シンプルなデータキャプチャシナリオには Forms 送信サービスを使用 します
- 複雑な処理や統合が必要な場合は、AEM パブリッシュを選択 します
- 実稼動環境へのデプロイメント前に、ステージング環境で 徹底的にテスト します
- AEM ログとコンソールエラーを使用して 送信を監視 します
- 送信に失敗した場合は、適切なエラー処理を実装 します
- クライアントレベルとサーバーレベルの両方で データを検証 します
- すべてのフォーム送信とデータ転送に HTTPS を使用 します