Fixed- Flow not getting triggered (Callback Registration)– Power Automate / Dataverse


Recently in one of our test environments, the out the box flow – “Deserialization of Inspection Definition” wasn’t getting triggered even when it was in the On state.

This was because the “CallbackRegistrationExpanderFilter” operation was failing with the below error.

Unexpected failure during ValidateUserAccessCached. Ex: System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: The specified user(Id) is disabled. Consider enabling this user. Additional Details: User IsDisabled=True, IsLicensed=True. ImpersonatingSystemUserId. (Fault Detail is equal to Exception details:

ErrorCode: 0x80040225

Message: The specified user(Id = xxxx-xxxx-xxxx-xxx-xxxxxx) is disabled. Consider enabling this user. Additional Details: User IsDisabled=True, IsLicensed=True. ImpersonatingSystemUserId=xxxx-xxxx-xxxx-xxx-xxxxxx)

TimeStamp: 2024-05-20T21:50:42.6724270Z

More on Callback Registration Expander Job – https://rajeevpentyala.com/2021/01/30/callback-registration-expander-system-jobs-waiting-for-resources/

This was because the flow’s corresponding Callback Registration record’s Owner was a user whose account was now disabled in CRM.

So the option to fix was to Turn off and Turn On the flow, which will delete the old callback registration record and will create a new one with the user who is turning off / on the flow. Updating the owner of the flow will not work here, as it won’t update the existing callback registration record.

Also we had another observation, if a callback registration is owned by a user who is a proper / enabled user in CRM, simply turning off and on the flow using a different user account will not delete the existing callback registration record and create a new one with that particular user as the owner. In this case we will have to explicitly delete the existing callback registration record.

Hope it helps..

Advertisements

Dates and values are displayed in your time zone. Because the project could take place in a different time zone, the project schedule may appear incorrect message in the Project entity/table – Dynamics 365


We might get the below message/notification on opening the Project form –

Dates and values are displayed in your time zone. Because the project could take place in a different time zone, the project schedule may appear incorrect.

This message will appear if the Project’s timezone differs from the logged-in user’s timezone.

The project’s timezone is defined in the Calendar

For the user, it is defined in the user settings – Personalization Settings

A screenshot of a computer

Description automatically generated

Let us set it to be the same time zone as the project.

We will not get the notification now for that specific project.

If we check in detail, we can see below out-of-the-box method validateUserAndProjectTimezone getting fired on the onLoad of Project form, which fetches and compares the Timezone associated with the Project and Logged In User and shows the notification.

A screenshot of a computer program

Description automatically generated

Get more details about Work Hour / Calendar Template

Also, check – https://ntrajkovski.com/2021/03/08/projects-related-to-calendar-templates-project-for-the-web/

https://joshimandarblog.wordpress.com/2015/02/04/timezone-field-format-in-crm/

Hope it helps..

Advertisements

Fixed – The latitude or longitude for the User record associated with this resource is invalid – Dynamics 365 Field Service /Dataverse


While trying to set the Start Location / End location to the Resource Address for Bookable Resource, we might get the below error

Exception Message: The latitude or longitude for the User record associated with this resource is invalid. Please provide a valid latitude and longitude and then set the start and end location for this resource again.

Here as the error message specifies we need to specify the latitude and longitude value for the corresponding resource type record associated with the Bookable Resource.

In the case of Contact, we can use the Geo Code option, and specify the address to populate the Latitude and Longitude details.

A screenshot of a computer screen

Description automatically generated

In the case of a User record we do not see the Geo Code option so there we can manually specify the values for it.

Now we will be able to update the Start / End Location as Resource Address in our Bookable Resource record, without getting any error.

A screenshot of a computer

Description automatically generated

Get more details on Geocoding

Hope it helps..

Advertisements

Use Geolocation Settings for Location Tracking and Auditing – Dynamics 365 Field Service


We can track the different locations Field Service technicians have traveled or where they are at a given time inside Dynamics 365 Field Service. Field Service Technicians can enable location sharing from the app, and based on the Geolocation Settings configured, we can see the technician’s location in the schedule board and also list location history through the Geolocation Tracking record.

Navigate to Settings >> Geolocation >> Geolocation Settings.

By default, the Geolocation Settings will have Enable Location Tracking as No and Refresh Interval as 60 seconds.

Below we have updated the Geolocation Settings, updated the Refresh Interval to 120, and specified Tracking times for Monday to Friday, 24 hours. 

Refresh Interval specifies how frequently the system will check the user’s location, not the frequency for the creation of “Geolocation Tracking” records.

Geolocation Tracking records are created on Sign In, when a user moves more than 200 meters, and when the user comes to a still position after moving.

A screenshot of a computer

Description automatically generated

In the Field Service App, the technician has the location enabled in the settings.

A screenshot of a phone

Description automatically generated

Back in the Schedule Board, we can see the current location of the Field Service technician. (If we are specifying the Start / End location as the Resource Address for the Bookable resource, we will have to specify the latitude and longitude for the associated resource record)

Below we can see the corresponding Geolocation Tracking records created.

Get more details on Location Auditing.

Hope it helps..

Advertisements

Geofencing unit ‘Mile’ with id: ” cannot be removed – Dynamics 365 Field Service


While trying to delete the Unit records related to the “Distance Units of Measure for Resource and Asset Location Management” unit group, we will get the below error

Geofencing unit ‘Mile’ with id: ‘<GUID>’ cannot be removed

Below is the out of the box plugin that restricts the deletion of the unit

The code for the plugin –

UOM GUIDs –

And the GUIDs within the environment –

To know more about Geofencing.

Hope it helps..

Advertisements

Fixed – Web resource method does not exist: OnLoad error in Work Order, Work Order Service task, and other forms in Dynamics 365 Field Service


Recently we started getting the below error on the form load of the Work Order Service Task record, that also only in specific environments, and there was no changes made there.

Error Details: Event Name: onload Function Name: OnLoad Web Resource Name: msdyn_/WorkOrderServiceTask/WorkOrderServiceTask.js Solution Name: msdyn_FieldService_patch_update Publisher Name: microsoftdynamics

A screenshot of a computer error

Description automatically generated

From the error message also it was clear it was the error in the out-of-the-box javascript.

On raising the Microsoft Support Ticket, we were immediately informed that it was because of a change in the function definitions in the .js files along with its associated handlers which was done to prevent object definition collisions in the web resources.

This applied to forms of the below tables

  • Work Order (msdyn_workorder)
  • Work Order Service Task (msdyn_workorderservicetask)
  • Work Order Product (msdyn_workorderproduct)
  • Work Order Service (msdyn_workorderservice)
  • Knowledge Article (knowledgearticle)

And below are the changes required to be done.

  • Work Order (msdyn_workorder)
    • Library value: msdyn_/WorkOrder/WorkOrderExperience.Library.js
      EITHER:
      • Incorrect function: onLoadLightForm
      • Correct function: WorkOrderExperience.Library.onLoadLightForm
        OR
      • Incorrect function: onLoad
      • Correct function: WorkOrderExperience.Library.onLoad

 

  • Work Order Service Task (msdyn_workorderservicetask)
    • Incorrect
      • Library value: msdyn_/WorkOrderServiceTask/WorkOrderServiceTask.js
      • Function value: OnLoad
    • Correct
      • Library value: msdyn_/WorkOrderServiceTask/WorkOrderServiceTaskGrid.js
      • Function value: WorkOrderServiceTaskGrid.OnLoad

  Work Order Product (msdyn_workorderproduct)

  • Library: msdyn_/WorkOrderProduct/WorkOrderProductGrid.js
    • Incorrect function: OnLoad
    • Correct function: WorkOrderProductGrid.OnLoad

  Work Order Service (msdyn_workorderservice)

  • Library: msdyn_/WorkOrderService/WorkOrderServiceGrid.js
    • Incorrect function: OnLoad
    • Correct function: WorkOrderServiceGrid.OnLoad 
  • Library: msdyn_/KnowledgeArticle/KnowledgeArticleWorkOrderRelationship.js
    • Incorrect function: OnSave
    • Correct function: KnowledgeArticleWorkOrderRelationship.OnSave

 We applied the change to the other forms also, which fixed the error for us.

Hope it helps..

Advertisements