Skip to content

Commit 813f61c

Browse files
Apply suggestion from @Copilot - Adding error handling on async requests
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 4526c7f commit 813f61c

File tree

1 file changed

+58
-42
lines changed

1 file changed

+58
-42
lines changed

apps/it-governance/web-resources/js/openProgressToNewStepModal.js

Lines changed: 58 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,53 +10,69 @@ async function openActivityLogQuickCreate(primaryControl) {
1010
return;
1111
}
1212

13-
const parentId = parentIdRaw.replace(/[{}]/g, "");
14-
const parentName =
15-
formContext.data.entity.getPrimaryAttributeValue?.() || "Admin Review";
16-
17-
const parent = await Xrm.WebApi.retrieveRecord(
18-
parentEntityName,
19-
parentId,
20-
"?$select=_cr69a_systemintake_value",
21-
);
22-
23-
const systemIntakeId = parent?._cr69a_systemintake_value;
24-
const systemIntakeName =
25-
parent?.[
26-
"_cr69a_systemintake_value@OData.Community.Display.V1.FormattedValue"
27-
];
28-
29-
const parameters = {
30-
new_adminreview: parentId,
31-
new_adminreviewname: parentName,
32-
new_adminreviewtype: parentEntityName,
33-
};
34-
35-
if (systemIntakeId) {
36-
parameters.new_systemintake = systemIntakeId;
37-
parameters.new_systemintakename = systemIntakeName || "System Intake";
38-
parameters.new_systemintaketype = "new_systemintake";
39-
}
13+
try {
14+
const parentId = parentIdRaw.replace(/[{}]/g, "");
15+
const parentName =
16+
formContext.data.entity.getPrimaryAttributeValue?.() || "Admin Review";
17+
18+
const parent = await Xrm.WebApi.retrieveRecord(
19+
parentEntityName,
20+
parentId,
21+
"?$select=_cr69a_systemintake_value",
22+
);
23+
24+
const systemIntakeId = parent?._cr69a_systemintake_value;
25+
const systemIntakeName =
26+
parent?.[
27+
"_cr69a_systemintake_value@OData.Community.Display.V1.FormattedValue"
28+
];
29+
30+
const parameters = {
31+
new_adminreview: parentId,
32+
new_adminreviewname: parentName,
33+
new_adminreviewtype: parentEntityName,
34+
};
35+
36+
if (systemIntakeId) {
37+
parameters.new_systemintake = systemIntakeId;
38+
parameters.new_systemintakename = systemIntakeName || "System Intake";
39+
parameters.new_systemintaketype = "new_systemintake";
40+
}
41+
42+
// ✅ Prefill Activity By (current user)
43+
const ctx = Xrm.Utility.getGlobalContext();
44+
const currentUserId = (ctx.userSettings.userId || "").replace(/[{}]/g, "");
45+
const currentUserName = ctx.userSettings.userName || "Current User";
4046

41-
// ✅ Prefill Activity By (current user)
42-
const ctx = Xrm.Utility.getGlobalContext();
43-
const currentUserId = (ctx.userSettings.userId || "").replace(/[{}]/g, "");
44-
const currentUserName = ctx.userSettings.userName || "Current User";
47+
parameters.new_activityby = currentUserId;
48+
parameters.new_activitybyname = currentUserName;
49+
parameters.new_activitybytype = "systemuser";
4550

46-
parameters.new_activityby = currentUserId;
47-
parameters.new_activitybyname = currentUserName;
48-
parameters.new_activitybytype = "systemuser";
51+
parameters.new_activityon = new Date();
4952

50-
parameters.new_activityon = new Date();
53+
const formOptions = {
54+
entityName: "new_activitylogs",
55+
useQuickCreateForm: true,
56+
};
5157

52-
const formOptions = {
53-
entityName: "new_activitylogs",
54-
useQuickCreateForm: true,
55-
};
58+
const result = await Xrm.Navigation.openForm(formOptions, parameters);
5659

57-
const result = await Xrm.Navigation.openForm(formOptions, parameters);
60+
if (result && result.savedEntityReference) {
61+
await formContext.data.refresh(true);
62+
}
63+
} catch (error) {
64+
const message =
65+
"An error occurred while opening the Activity Log quick create form. Please try again or contact your system administrator.";
5866

59-
if (result && result.savedEntityReference) {
60-
await formContext.data.refresh(true);
67+
if (Xrm?.Navigation?.openErrorDialog) {
68+
await Xrm.Navigation.openErrorDialog({
69+
message,
70+
details: (error && (error.message || error.toString())) || undefined,
71+
});
72+
} else if (Xrm?.Navigation?.openAlertDialog) {
73+
await Xrm.Navigation.openAlertDialog({
74+
text: message,
75+
});
76+
}
6177
}
6278
}

0 commit comments

Comments
 (0)