自訂草稿和提交資料服務 customizing-draft-and-submission-data-services
概觀 overview
AEM Forms可讓使用者將最適化表單儲存為草稿。 草稿功能為使用者提供了維護工作進行中表單的選項。 然後,使用者可以隨時從任何裝置完成並提交表單。
依預設,AEM Forms會將與草稿和提交相關聯的使用者資料儲存在/content/forms/fp
節點的Publish執行個體上。
不過,AEM Forms Portal元件提供資料服務,可讓您自訂儲存草稿和提交之使用者資料的實作。 例如,您可以將資料儲存在組織目前實作的資料存放區中。
若要自訂使用者資料的儲存,您必須實作草稿資料和提交資料服務。
先決條件 prerequisites
- 啟用Forms Portal元件
- 建立Forms入口網站頁面
- 為Forms入口網站啟用最適化表單
- 瞭解自訂儲存體的實作詳細資料
草稿資料服務 draft-data-service
若要自訂使用者草稿資料的儲存,您必須為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") if there is 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;
}
提交資料服務 submission-data-service
若要自訂使用者提交資料的儲存,您必須為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;
}
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2