概要

AEM forms ではアダプティブフォームをドラフトとして保存できます。ドラフト機能により、ユーザーは作業中のフォームを維持することができます。これにより、ユーザーはデバイスを問わずいつでもフォームに記入および送信できます。

デフォルトでは、AEM forms はドラフトと送信に関連付けられたユーザーデータを /content/forms/fp ノードの発行インスタンスに保存します。

ただし、AEM forms ポータルコンポーネントは、ドラフトおよび送信用のユーザーデータの保存の実装をカスタマイズするデータサービスを提供します。例えば、組織に現在実装されているデータストアにデータを保存することができます。

ユーザーデータのストレージをカスタマイズするには、ドラフトデータおよび送信データサービスを参照してください。

ドラフトデータサービス

ユーザーのドラフトデータのストレージをカスタマイズするには、DraftAFDataService インターフェイスのすべてのメソッドに対して実装を指定する必要があります。

メソッドとその引数の説明を、次のインターフェイスのコードサンプルに示します。

public interface DraftAFDataService {
	
	/**
	 * Deletes the user data stored against the ID passed as the argument
	 * 
	 * @param draftDataID
	 * @return status for the just occurred delete draft UserData operation 
	 * @throws FormsPortalException
	 */
	public Boolean deleteAFDraftUserData (String draftDataID) throws FormsPortalException;
	
	/**
	 * Saves user data provided in the argument map
	 * 
	 * @param draftUserDataMap contains Form Data (key - "guideState"), Adaptive Form Name (Key - "guideName"), and Draft DataID (Key - "userDataID") in case of update
	 * @return userData ID would be returned which needs to be saved in metadata node 
	 * @throws FormsPortalException
	 */
	public String saveAFUserData (Map<String, Object> draftUserDataMap) throws FormsPortalException;
	
	/**
	 * Gets the user data stored against the ID passed as the argument
	 * 
	 * @param Draft DataID
	 * @return guideState (which would then be populated in adaptive form to reload the draft) which is stored against draftDataID
	 * @throws FormsPortalException
	 */
	public byte[] getAFDraftUserData(String draftDataID) throws FormsPortalException;
	
	/**
	 * Saves the attachments for current adaptive form instance 
	 * 
	 * @param attachmentsBytes would expect byte array of the attachment to be saved
	 * @return id for the attachment just saved (so that it could be retrieved later)
	 * @throws FormsPortalException
	 */
	public String saveAttachments(byte[] attachmentBytes) throws FormsPortalException;
}

送信データサービス

ユーザーの送信データのストレージをカスタマイズするには、SubmittedAFDataService インターフェイスのすべてのメソッドに対して実装を指定する必要があります。

メソッドとその引数の説明を、次のインターフェイスのコードサンプルに示します。

public interface SubmittedAFDataService {
	
	/**
	 * Submits the user data passed in argument map
	 * 
	 * @param submittedAFUserdataMap contains Form Data (key - "guideState"), Adaptive Form Name (Key - "guideName"), and Draft DataID (Key - "userDataID")
	 * @return userData ID is returned that needs to be saved in the metadata node
	 * @throws FormsPortalException
	 */
	public String submitAFUserData (Map<String, Object> submittedAFUserdataMap) throws FormsPortalException;
	
	/**
	 * Gets the user data stored against the ID passed as argument
	 * 
	 * @param submitDataID
	 * @return guideState which would be used to open DOR
	 * @throws FormsPortalException
	 */
	public byte[] getSubmittedAFUSerData(String submitDataID) throws FormsPortalException;
	
	/**
	 * Deletes user data stored against the ID passed as argument
	 * 
	 * @param Submit DataID
	 * @return status of the delete operation on Submitted User data
	 * @throws FormsPortalException
	 */
	
	public Boolean deleteSubmittedAFUserData(String submitDataID) throws FormsPortalException;
	
	/**
	 * Submits the attachment bytes passed as argument
	 * 
	 * @param attachmentsBytes would expect byte array of the attachment to be saved
	 * @return id for the attachment just saved (so that it could be retrieved later) 
	 * @throws FormsPortalException
	 */
	public String submitAttachments(Object attachmentBytes) throws FormsPortalException;

}

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー