@@ -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