
Hi,
I am getting an ETAG mismatch error randomly.
I am basically creating/updating records using Submit and then based on several criteria updating the status field using Patch.
SubmitForm(NewIncidentForm);
If(
IsBlank(NewIncidentForm.LastSubmit.Action_x0020_Plan_x0020_Status),
Patch(
'Incident Tracker',
NewIncidentForm.LastSubmit,
{
Action_x0020_Plan_x0020_Status: "Incident Logged",
Incident_x0020_Id: NewIncidentForm.LastSubmit.ID
}
)
);
Patch(
'Incident Tracker',
NewIncidentForm.LastSubmit,
{
Action_x0020_Plan_x0020_Status: Switch(
'Action Plan Status_DataCard2'.Default,
"",
"Incident Logged",
"Incident Logged",
If(
ChkInvCompl.Value,
"Investigation Complete",
"Investigation WIP"
),
"Investigation WIP",
If(
ChkInvCompl.Value,
"Investigation Complete",
"Investigation WIP"
),
"Investigation Complete",
If(
ChkResCompl.Value,
"Resolved",
"Response WIP"
),
"Response WIP",
If(
ChkResCompl.Value,
"Resolved",
"Response WIP"
)
)
}
)I tried inserting a refresh between the submit and patch, but it didn't work.
Hi @Anonymous ,
Could you please share more details about the ETAG mismatch error with your formula?
The user @karl has faced same issue with you, please check the response within the following thread:
I think the ETAG mismatch error may be related to the SubmitForm() function and Patch() function in your formula. Please take a try to modify your formula as below:
Refresh('Incident Tracker'); /* <-- Add this formula */
SubmitForm(NewIncidentForm);
Refresh('Incident Tracker'); /* <-- Add this formula */
If(
IsBlank(NewIncidentForm.LastSubmit.Action_x0020_Plan_x0020_Status),
Patch(
'Incident Tracker',
NewIncidentForm.LastSubmit,
{
Action_x0020_Plan_x0020_Status: "Incident Logged",
Incident_x0020_Id: NewIncidentForm.LastSubmit.ID
}
)
);
Refresh('Incident Tracker'); /* <-- Add this formula */
UpdateIf( /* <-- Update record using UpdateIf function instead of Patch function */
'Incident Tracker',
ID = NewIncidentForm.LastSubmit.ID, /* <-- Find the record you want to update , ID represents the unique Primary Key column in your 'Incident Tracker' data source */
{
Action_x0020_Plan_x0020_Status: Switch(
'Action Plan Status_DataCard2'.Default,
"",
"Incident Logged",
"Incident Logged",
If(
ChkInvCompl.Value,
"Investigation Complete",
"Investigation WIP"
),
"Investigation WIP",
If(
ChkInvCompl.Value,
"Investigation Complete",
"Investigation WIP"
),
"Investigation Complete",
If(
ChkResCompl.Value,
"Resolved",
"Response WIP"
),
"Response WIP",
If(
ChkResCompl.Value,
"Resolved",
"Response WIP"
)
)
}
)
Note: I assume that your 'Incident Tracker' data source is a SP list.
Please take a try with above solution, check if the issue is solved.
Best regards,