GuideBridge API を使用したフォームデータへのアクセスと送信
最終更新日: 2025年3月27日
- 適用対象:
- Experience Manager 6.5
- トピック:
- アダプティブフォーム
作成対象:
- 経験者
- 開発者
GuideBridge API を利用して、フォームデータにアクセスし、保存と取得のために REST エンドポイントにフォームデータを送信する方法について説明します。この機能を使用すると、ユーザーはフォーム完了をシームレスに保存および再開できます。
ルールエディターでボタンをクリックして JavaScript 関数をトリガーすることで、フォームデータが保存されます。
以下の JavaScript 関数は、フォームデータを指定されたエンドポイントに送信する方法を示しています。
/**
* Submits data and attachments
* @name submitFormDataAndAttachments Submit form data and attachments to REST endpoint
* @param {string} endpoint in String format
* @return {string}
*/
function submitFormDataAndAttachments(endpoint) {
guideBridge.getFormDataObject({
success: function(resultObj) {
const afFormData = resultObj.data.data;
const formData = new FormData();
formData.append("dataXml", afFormData);
resultObj.data.attachments.forEach(attachment => {
console.log(attachment.name);
formData.append(attachment.name, attachment.data);
});
fetch(endpoint, {
method: 'POST',
body: formData
})
.then(response => {
if (response.ok) {
console.log("Successfully saved");
const fld = guideBridge.resolveNode("$form.confirmation");
return "Form data was saved successfully";
} else {
throw new Error('Failed to save form data');
}
})
.catch(error => {
console.error('Error:', error);
});
}
});
}
サーバーサイドコード
次のサーバーサイド Java コードで、フォームデータ処理を行います。AEM のこの Java サーブレットは、上記の JavaScript 関数の XHR 呼び出しを通じて呼び出されます。
package com.azuredemo.core.servlets;
import com.adobe.aemfd.docmanager.Document;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.request.RequestParameter;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.servlets.annotations.SlingServletResourceTypes;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.Servlet;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
@Component(
service = {
Servlet.class
}
)
@SlingServletResourceTypes(
resourceTypes = "azure/handleFormSubmission",
methods = "POST",
extensions = "json"
)
public class StoreFormSubmission extends SlingAllMethodsServlet implements Serializable {
private static final long serialVersionUID = 1L;
private final transient Logger log = LoggerFactory.getLogger(this.getClass());
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
List<RequestParameter> listOfRequestParameters = request.getRequestParameterList();
log.debug("The size of the list is " + listOfRequestParameters.size());
for (int i = 0; i < listOfRequestParameters.size(); i++) {
RequestParameter requestParameter = listOfRequestParameters.get(i);
log.debug("Is this request parameter a form field?" + requestParameter.isFormField());
if (!requestParameter.isFormField()) {
Document attachmentDOC = new Document(requestParameter.getInputStream());
attachmentDOC.copyToFile(new File(requestParameter.getName()));
} else {
log.debug("Not a form field " + requestParameter.getName());
log.debug(requestParameter.getString());
}
}
response.setStatus(HttpServletResponse.SC_OK);
}
}
Experience Manager
- 概要
- 従うべきベストプラクティス
- AEM オーサーとの OKTA 認証の設定
- 最初のアダプティブフォームの作成
- フォーム送信の処理
- 便利な統合
- OSGi バンドルの作成
- アダプティブフォーム
- Windows への AEM Forms のインストール
- Linux への 32 ビットパッケージのインストール
- アダプティブフォームでの事前入力サービス
- クエリパラメーターを使用してアダプティブフォームに入力する
- AEM Forms の QR コード
- アダプティブフォームでのカスタム送信
- アダプティブフォームの Captcha
- ルールエディターでのカスタム関数
- Web ページへのアダプティブフォームの埋め込み
- 文字列の配列を作成
- AEM Forms の項目読み込みパス
- OSGi ワークフローで XML の Set Value を使用する
- OSGi ワークフローで JSON での Set Value を使用する
- AEM Forms ワークフローでメールコンポーネントを送信
- API を使用した DocumentOfRecord を生成
- インライン画像の表示
- DAM 画像をインラインで表示する
- GeoLocation API の使用
- トランザクションレポートの使用
- AEM Forms でユーザープロファイルデータを統合
- Microsoft Dynamics とAEM Forms
- ルールエディターの機能強化
- ルールエディターへのアクセスの制限
- テーマエディターの機能強化
- フォームエディターの機能強化
- アダプティブフォームの自動テスト
- アダプティブフォームの自動テスト
- LDAP と AEM Forms の統合
- AEM Forms でのサービスユーザーの使用
- アダプティブフォーム送信時の DoR のタグ付けと保存
- フォームデータモデルサービス呼び出し結果のテーブルへの入力
- ワークフローコメントの取り込み
- 送信されたフォームデータの DB への格納
- DB へのフォーム添付ファイルの挿入
- データソース設定の変更
- フォームデータモデルのプロパティの上書き
- AEM 6.4 ワークフローのフォームデータモデルサービス
- フォームデータモデルサービス手順でのエラーメッセージの処理
- AEM 6.5.1 ワークフローのフォームデータモデルサービス
- データソースを使用しないフォームデータモデル
- 計算されたフォームデータモデルの要素
- AEM Forms での JDBC データソースの設定
- JDBC ベースのフォームデータモデル
- フォームデータモデル内の 2 つのエンティティ間に関連付けを作成する
- ルールエディターでのフォームデータモデルの呼び出しサービスの使用
- フォームデータモデルを使用した AEM DAM へのバイナリデータの投稿
- 再利用可能なワークフローモデルの作成
- AEM Workflow カスタムプロセス手順
- HTML5 Forms の事前入力
- Salesforce を使用したフォームデータモデル
- 選択コンポーネントへの項目の動的な追加
- ChatBot を使用した PDF フォームへの入力
- コア - コンポーネントベースのフォーム
- DAM フォルダーコンテンツの選択とアセンブリ
- フォームデータモデルを使用したアダプティブフォームの事前入力
- UI のヒントとテクニック
- インボックスのカスタマイズ
- メールフォームの添付ファイル
- データと添付ファイルのフォームへの事前入力
- アダプティブフォームの保存と取得
- PDF ファイルからデータを読み込み
- 送信したデータの CSV 形式での書き出し
- HTML5 Forms
- AEM Forms と Acrobat Sign
- 複数フォームへの署名
- カスタムワークフローの手順
- カスタムワークフローコンポーネント
- AEM ワークフローの変数
- フォームデータの確認
- MySQL DB でのフォームデータの格納と取得
- PDF フォーム送信での AEM ワークフローのトリガー
- モバイルフォーム送信での AEM ワークフローのトリガー
- フォーム送信のクエリ
- フォームポータルでのカスタムアセットタイプのリスト
- AEM Forms と Marketo
- AEM Forms と Adobe Campaign Standard
- ウェルカムキット
- ヘッドレスフォーム API
- Forms と Acrobat Sign を使用した React アプリ
- ドキュメントサービス
- PDF forms のタイプ
- アダプティブフォームに PDF を埋め込む
- PDF のカルーセルコンポーネント内
- AEM Forms での Assembler サービスの使用
- Assembler サービスでの XDP のステッチ
- AEM Forms の監視フォルダーの使用
- AEM Forms でのバーコードサービスの使用
- AEM Formsでの PDFG サービスの使用
- 権限パスワードでの PDF の暗号化
- AEM Forms での Output と Forms Service の使用
- 出力サービスでの xdp フラグメントの使用
- フラグメントを使用して PDF を生成する ECMA スクリプト
- 1 つのデータファイルからの複数の PDF の生成
- モバイルフォーム送信時に PDF を生成
- フォーム送信に基づいてコアコンポーネントの PDF を生成
- モバイルフォームからインタラクティブ PDF を生成
- アダプティブフォームからインタラクティブ DoR を生成
- Reader 拡張機能資格情報の設定
- XDP レンディションの PDF への使用権限の適用
- アップロードされた PDF への使用権限の適用
- ドキュメントの認証
- フォーム添付ファイルのアセンブリ
- 便利なユーティリティサービス
- Forms Designer
- AEM Forms Workbench
- 印刷チャネル用のインタラクティブ通信
- ドラフトレターの保存と取得
- インタラクティブ通信
- Web チャネルのインタラクティブ通信
- トラブルシューティング
- ドキュメントサービス:DDX 関連の問題のトラブルシューティング手順
- ドキュメントサービス:PDFA 変換の問題のトラブルシューティング手順
- ドキュメントサービス:Forms と出力サービスのフォント関連の問題をデバッグする方法
- ドキュメントサービス:Forms と出力サービスでフォントを埋め込む方法
- ドキュメントサービス:Forms と出力サービスをデバッグするためのパフォーマンスログを有効にする方法
- ドキュメントサービス:大きなファイルを変換する際に、トランザクションタイムアウトを長くする方法
- ドキュメントサービス:FormsIVS および OutputIVS を使用して読み込みテストを実行する方法
- ドキュメントサービス:FormsIVS および OutputIVS でカスタム XDP およびデータファイルを更新する方法
- ドキュメントサービス:詳細 ORB トレースを有効にする手順
- ドキュメントサービス:XMLFormService の bmc プールサイズを調整する手順(パート 1)
- ドキュメントサービス:XMLFormService の bmc プールサイズを調整する手順(パート 2)
- ドキュメントサービス:JMX コンソールでパラメーターを調整する手順
- 大きな xml データファイルとテンプレートのマージを有効にする
- PDFG:PDFG でのトランザクションタイムアウトの変更方法
- PDFG:PDFG での CORBA タイムアウトの更新方法
- PDFG:PDFG でのタイムアウトの更新方法
- PDFG:Windows Server 2016 で PDFG ユーザーを追加する手順
- PDFG:32 ビットライブラリとその依存関係を確認してインストールする手順
- PDFG:Windows Server 2016 でフォルダー権限を確認する手順
- PDFG:UNIX で Strace を有効にする手順
- PDFG:必要な 32 ビット Microsoft Visual C++ 再配布可能パッケージをインストールする手順
- PDFG:System Readiness Tool の出力を実行および解釈する手順
- PDFG:Acrobat 固有の問題のトラブルシューティング手順
- PDFG:Windows での HtmltoPDF の問題のトラブルシューティング手順
- PDFG:UNIX(PhantomJS)での HtmltoPDF 固有の問題のトラブルシューティング手順
- PDFG:UNIX(WebKit 変換)での HtmltoPDF 固有の問題のトラブルシューティング手順
- PDFG:UNIX でのマルチユーザー PDFG 変換のトラブルシューティング手順
- PDFG:Windows でのマルチユーザー PDFG 変換のトラブルシューティング手順
- PDFG:UNIX での OpenOffice 固有の問題のトラブルシューティング手順
- PDFG:Windows での OpenOffice 固有の問題のトラブルシューティング手順
- ドキュメントセキュリティ:Acrobat でドキュメントセキュリティモジュールを使用して作成したポリシーを適用する方法
- User Management:AEM Forms JEE でユーザーまたはグループを追加する方法
- User Management:UM セッションタイムアウトを増やす方法
- Workbench:https を使用した Workbench への接続
- Workbench:ヘルプメニューからの Workbench ログの収集
- Workbench:Workbench のデバッグ出力を有効にする方法
- Workbench:Workbench のメモリパラメーターの調整方法
- Workbench:Workbench パフォーマンスパラメーターの調整方法
- Designer:C++ 再頒布可能パッケージに対する Designer の依存関係
- Designer:HTML プレビューを有効にする方法
- Designer:PDF プレビューを有効にする方法
- Designer:Designer パッチのインストール方法
- JEE Foundation:エントロピーの値を変更する方法
- JEE Foundation:AEM Forms JEE の任意のサービスのトランザクションタイムアウトを変更する方法
- JEE Foundation:ジョブマネージャーテーブルからプロセスレコードをパージする方法
- JEE Foundation:コマンドラインからプロセスのパージを実行する方法
- JEE Foundation:手動で Bootstrap を実行する手順
- JEE Foundation:モバイルフォームのデバッグログを取り込む手順
- JEE Foundation:ForcedDisconnectException を軽減する手順
- 一般:JBoss Admin Console 用の管理ユーザーの追加方法
- 一般:HAR ログの取得方法
- 一般:UNIX サーバーで JVM のヒープダンプを取得する方法
- 一般:Windows サーバーで JVM のヒープダンプを取得する方法
- 一般:ネットワークログの取得方法
- 一般:UNIX サーバーで JVM のスレッドダンプを取得する方法
- 一般:Windows サーバーで JVM のスレッドダンプを取得する方法
- 一般:自己署名証明書を生成する方法
- 一般:Web サービスを HTML5 フォームから呼び出す方法
- 一般:AEM Forms OSGi の任意のクラスのデバッグログを有効にする手順
- 一般:JBOSS アプリケーションサーバーの任意のクラスのデバッグログを有効にする手順
- 一般:Websphere アプリケーションサーバーの任意のクラスのデバッグログを有効にする手順
- 一般:AEM Forms OSGi で SSL を有効にする手順
- 一般:lc_turnkey.xml で使用するキーストアパスワードを暗号化する手順
- 一般:Steps-to-reset-default-password-for-users-in-AEM-Forms-JEE
- 一般:Steps-to-reset-default-password-for-users-in-AEM-Forms-OSGI
- 一般:クラスターで GemFire ロケーターを設定し、関連する設定を実行する手順