Performing DB Operations only after Form Validation

Avatar

Avatar

Sri_Bhargav_94

Avatar

Sri_Bhargav_94

Sri_Bhargav_94

26-02-2021

Hello Folks,

I am trying to perform a DB operation i.e., Insert on click of Save and it should be persisted to DB only after successful validation of form fields. I understand that we can invoke Validate Form, but it actually validates entire form (all sections within a form) and we don't want it to be happen like that. Instead we are trying to do this for each section at a time.

I tried the following in Rule Editor of Save Button:

var errors = [];
panelName.validate(errors);
if(errors.length > 0){
show errorMessage; // Display only error message and no DB operation should be performed
} else {
hide errorMessage; 
fdmInsert service; // Perform DB Operation only here
}

However it seems to be not working as I expected, only validations are checked correctly, whereas DB operation is not functioning. But If I try DB operation alone without any validation check, then it is functioning fine. I don't want it to happen like that.

Another alternative I tried is writing separate rules for Validation and DB Operation, but since both rules are getting executed in tandem instead of following order, this doesn't help here.

Please provide your suggestions on how best this can be done. As usual your quick help is appreciated!!

Regards,

Sri Bhargav

AEM Forms AEM Forms Designer FormsService

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

Mayank_Gandhi

Employee

Avatar

Mayank_Gandhi

Employee

Mayank_Gandhi
Employee

02-03-2021

@Sri_Bhargav_94 please verify if the validation is working correctly first. I doubt that fdm would have any issue once place in the correct block. 

Answers (2)

Answers (2)

Avatar

Avatar

Sri_Bhargav_94

Avatar

Sri_Bhargav_94

Sri_Bhargav_94

02-03-2021

@Mayank_Gandhi 

Thanks for the response. Confirming that there is nothing wrong with FDM service, because the same FDM service when I perform without any validation check is working fine and I can able to see Data reflecting in DB.

But when done with Validation check, I found that code seems like getting terminated at below line:

guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, null, null, this);

Anything am I missing or something I am doing wrong?

Avatar

Avatar

Sri_Bhargav_94

Avatar

Sri_Bhargav_94

Sri_Bhargav_94

01-03-2021

Folks any inputs please? First of all is it possible (or) is that a bug in AEM

@Mayank_Gandhi , @smacdonald2008 , @GirishBedekar 

Regards,

Sri Bhargav