Button events: Difference between event_submit and CRUD::SAVE?

This is all that I found in the documentation:

  • CRUD::SAVE: Saves the current data of the Activity
  • event_submit / event_save: Commit the current Activity

Could you explain this in less technical terms?
What is the observable behavior from a user’s perspective?
What are use cases for the one and the other?
Is there a difference between event_submit and event_save?

As far as I know, if you use the CRUD::SAVE event, the data is only saved, but the form (activity) stays open/active.
If you use event_submit, the data is saved and the form (activity) is closed/cancelled.

Hi @stephen-warm-graph

like @anon61393032 already summarize:
CRUD::SAVE - processing save tasks for data not closing the activity
event_submit / event_save - processing save tasks for data then close activity

Maybe the internal description makes it more clear:

// @com.mgmtp.a12.client\client-core\src\core\view\internal\events.ts

namespace InternalEventNames {
	export const formSubmitSaveEvent = "event_save";
	export const formSubmitEvent = "event_submit";
	export const formSaveEvent = "CRUD::SAVE";

    // ...

Comming back to your last question:

Is there a difference between event_submit and event_save?

The comment for export of FORM_SUBMIT_SAVE says no difference.

// @com.mgmtp.a12.client\client-core\src\core\view\internal\views.tsx
export namespace EventNames {
    /**
     * Usually used for the event that triggers submission and termination of an activity
     */
    export const FORM_SUBMIT = InternalEventNames.formSubmitEvent;
    /**
     * Usually used for the same purpose of and interchangeable to FORM_SUBMIT above
     */
    export const FORM_SUBMIT_SAVE = InternalEventNames.formSubmitSaveEvent;
    /**
     * Usually used for the event that triggers submission of activity data without terminating the activity
     */
    export const FORM_SAVE = InternalEventNames.formSaveEvent;

    // ...

:information_source: Also please keep in mind that these standard actions are only handled in formEngineCRUDMiddleware as part of the A12 Clients CRUD extension.