概要

AEM forms ではフォームをドラフトとして保存できます。ドラフト機能により、作業中のフォームを維持できるようになります。任意のデバイスから後でフォームを完成させて、送信できます

デフォルトでは、AEM forms はフォームのドラフトと送信に関連付けられたユーザーデータを発行インスタンスの /content/forms/fp ノードに保存します。さらに、AEM forms ポータルコンポーネントではデータサービスを使用でき、これを使用するとドラフトと送信のユーザーデータの保存の実装をカスタマイズできます。例えば、ユーザーデータをデータストアに保存できます。

ドラフトデータサービス

ドラフトのユーザーデータの保存場所をカスタマイズするには、DraftDataService インターフェイスのすべてのメソッドを実装する必要があります。次のサンプルコードでメソッドと引数を説明します。

public interface DraftDataService {
	
    /**
     * To save/modify user data for this userDataID, it will be null in case of creation 
     * @param userDataID, unique identifier associated with this user data
     * @param formName, name of the form whose draft is being saved
     * @param formData, user data associated with this draft
     * @return userdataID, corresponding to which user data has been stored and which can be used later to retrieve this user data
     * @throws FormsPortalException
     */
	public String saveData (String userDataID, String formName, String formData) throws FormsPortalException;
	
	/**
	 * Returns the user data stored against the ID passed as the argument
	 * @param draftDataID unique data id for data associated with a draft
	 * @return user data associated with this data ID
	 * @throws FormsPortalException
	 */
	
	public byte[] getData (String draftDataID) throws FormsPortalException;
	
	/**
	 * To delete data associated with this draft
	 * @param draftDataID unique data id for data associated with a draft
	 * @return status of delete operation on data associated with this draft 
	 * @throws FormsPortalException
	 */
	
	public boolean deleteData (String draftDataID) throws FormsPortalException;
	
	/**
	 * Saves the attachment for current form instance 
	 * @param draftID associated with this draft
	 * @param attachmentsBytes would expect byte array of the attachment to be saved
	 * @return unique id for the attachment just saved (so that it could be retrieved later)
	 * @throws FormsPortalException
	 */
	public String saveAttachment (String draftID, byte[] attachmentBytes) throws FormsPortalException;
	
	/**
	 * To delete an attachment
	 * @param attachmentID, unique id for this attachment
	 * @return status of delete operation performed on attachment corresponding to this attachment ID
	 * @throws FormsPortalException
	 */
	public boolean deleteAttachment (String attachmentID) throws FormsPortalException;
	
	/**
	 * To get attachment bytes
	 * @param attachmentID, unique id for this attachment
	 * @return data corresponding to this attachmentID
	 * @throws FormsPortalException
	 */
	public byte[] getAttachment (String attachmentID) throws FormsPortalException;
}

送信データサービス

送信用のユーザーデータの保存場所をカスタマイズするには、SubmitDataService インターフェイスのすべてのメソッドを実装する必要があります。次のサンプルコードでメソッドと引数を説明します。

public interface SubmitDataService {
	
	/**
	 * Submits the user data passed in argument map
	 * @param userDataID, unique identifier associated with this user data
	 * @param formName, name of the form whose draft is being submitted
	 * @param formData, user data associated with this submission
	 * @return userdataID, corresponding to which the user data has been stored and which can be used later to retrieve this data
	 * @throws FormsPortalException
	 */
	public String saveData (String userDataID, String formName, String formData) throws FormsPortalException;
	
	/**
	 * Gets the user data stored against the ID passed as argument
	 * @param userDataID, unique id associated with this user data for this submission
	 * @return user data associated with this submission
	 * @throws FormsPortalException
	 */
	public byte[] getData(String userDataID) throws FormsPortalException;
	
	/**
	 * Deletes user data stored against the userDataID
	 * @param userDataID, unique id associated with this user data for this submission
	 * @return status of the delete operation on this submission
	 * @throws FormsPortalException
	 */
	
	public boolean deleteData(String userDataID) throws FormsPortalException;
	
	
	/**
	 * Submits the attachment bytes passed as argument
	 * @param submitID, unique id associated with the submission metadata
	 * @param attachmentsBytes would expect byte array of the attachment for this submission
	 * @return id for the attachment just saved (so that it could be retrieved later) 
	 * @throws FormsPortalException
	 */
	public String saveAttachment(String submitID, byte[] attachmentBytes) throws FormsPortalException;

	/**
	 * To delete an attachment
	 * @param attachmentID, unique id for this attachment
	 * @return status of delete operation performed on attachment corresponding to this attachment ID
	 * @throws FormsPortalException
	 */
	public boolean deleteAttachment (String attachmentID) throws FormsPortalException;
	
	/**
	 * To get attachment bytes
	 * @param attachmentID, unique id for this attachment
	 * @return data corresponding to this attachmentID
	 * @throws FormsPortalException
	 */
	public byte[] getAttachment (String attachmentID) throws FormsPortalException;
}

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

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