Using Xrm.Device captureImage to take picture using camera and attach it to notes in Dynamics 365 for Phones and Tablet App


Check the other articles of this series

captureImage method of Xrm.Device allows us to take the picture through the camera and work with that captured image in the code (in this post, we are saving the image in the notes as an attachment).

This method is only available for mobile apps.

Here we have added a custom ribbon button on the Lead entity form.

  • Capture and attach

The capture Image method will allow the user to capture an image using the device camera and attach it to the notes as shown below.

Clicking on “Capture and attach” ribbon button, opens the camera for the user to take the pic as shown below.

Clicking on OK will ask the user to choose the image editor.

Users can edit the image and click on done.

The dialog informs the user that images have been attached.

Users can refresh the timeline to see the attached image in notes.

If we try using the captureImage method inside the Dynamics 365’s web application, we get the below error, because it is only supported for mobile devices.

The method will throw the below error in case of Web Application

“Operation {0} is not supported by platform”

The sample code for captureImage


function CaptureImage(entityId) {

entityId = entityId.replace(/[{}]/g,'');

var imageOptions = {};
imageOptions.allowEdit = true;

Xrm.Device.captureImage(imageOptions).then(
function (data) {

// attach the captured image as attachment to note
var entity = {};
entity.subject = "Sample Subject";
entity.documentbody = data.fileContent;
entity.filename = data.fileName;
entity.mimetype = data.mimeType;
entity.notetext = "Sample Text";

// lead entity sample
entity["objectid_lead@odata.bind"] = "/leads(" + entityId + ")";

Xrm.WebApi.online.createRecord("annotation", entity).then(
function success(result) {
var newEntityId = result.id;

var alertStrings = { confirmButtonLabel: "OK", text: "Image successfully attached to note. Please refersh the timeline" };
var alertOptions = { height: 200, width: 300 };
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);

},
function (error) {

Xrm.Utility.alertDialog("Error occured while attaching image to notes. Please try again");
}
);

},
function (error) {
Xrm.Utility.alertDialog("Error occured while capturing image. Please try again");
}
);
}

Add Crm Parameter to pass the GUID of the record to the method

CaptureImage

Thus, using captureImage makes it easy for the end-user to capture and attach the image to notes through a click of a button.

To update an entity’s image, we can click on the image itself which will open up the dialog to either use the camera, upload image from the gallery, or revert it to the default image (in not default).

Also check out the wonderful tool Notes Metadata Manager , which provides additional capabilities like adding metadata to the attachments, organise attachments using folder structure, drag and drop attachments, upload multiple attachments etc.

Hope it helps..

Your solution is too large. Reduce the number of entities to 5 or less message while publishing through Ribbon Workbench


To begin with, Ribbon Workbench is easily one of the best tools out there for CRM professionals for almost a decade now.

In CRM 4.0, to add a custom button on the form, we simply had to add a tag in ISV.Config file.

https://nishantrana.me/2009/03/20/adding-custom-menu-and-button-to-custom-entity-through-isvconfig/

The first time I tried adding a button in CRM 2011 (while it was in beta), it took nearly 8 hours.

https://nishantrana.me/2010/11/04/adding-my-first-custom-button-in-crm-2011/

With Ribbon Workbench, it has all come down to a matter of minutes. Thanks to Scott Durow

While working with the tool recently, we were getting the following message repeatedly while trying to publish the changes

The first thing we need to make sure is we are only having the required entity and solution components in the solution that we are working with inside the tool as suggested.

https://ribbonworkbench.uservoice.com/knowledgebase/articles/169819-speed-up-publishing-of-solutions

If we are already following that, another thing that we can make sure is, before we start working with the already loaded solution, is to reload the solution before making any changes.

E.g. I had the solution already loaded in the tool, and now I after a couple of hours I am trying to update a few things in it.

Before making any change, click on the Open Solution and load the solution again.

Load the solution, make any desired change, and publish.

This way we were able to avoid the error during publishing (also it will make sure we are working with the latest solution)

Hope it helps..

Fixed – An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail while trying to connect using XrmToolBox


While trying to create a new connection in XrmToolBox, we got the below error

We had used the Connection Wizard as the connection method

After failing a couple of more times, we realised the mistake.

For the user who is trying to log in, MFA is enabled.

So, instead we opted for the SDK Login control connection method.

Clicking Open Sdk Login Control button opens up the standard login control to connect to Dynamics 365.

Provide username, password, and click on login.

Enter the code (received on registered phone number).

Thus, using the SDK Login Control, we were able to connect successfully.

You can also connect by registering the Azure AD App

https://alphabold.com/connecting-to-mfa-enabled-microsoft-dynamics-365-using-xrmtoolbox/

Check the below article for further details and different ways to connect to Dynamics 365 using XrmToolBox

https://www.xrmtoolbox.com/documentation/for-users/connecting-to-an-organization/

Hope it helps..

Advertisements

Notes on Dynamics 365 for Phones and Tablets app – Part 9 (Mobile Offline)


Check the other articles of this series

Continuing our previous post, where we configured the entity for the offline, mobile offline profile, and also enabled the offline option for the app, in this post we’d see the behavior of the apps in the offline mode within the Dynamics 365 for Phones App.

On opening the app, the user for which the mobile offline profile is configured will be presented with the below option to download the data for offline.

Clicking on Download will start the download process.

Navigate to Settings à Offline Status (this status will only be added for the apps enabled for offline)

The Offline Status will show us the status of the download.

Once the download completes, we can see the Contact entity available and also the option of working offline enabled for it.

Enabling Work in offline mode, and navigating the dashboard displays the message as below

The phone app also shows the green connection symbol next to the contact entity.


Navigating to the Account entity (which is not configured for offline) shows the below message.


Navigating to Contact entity (configured for offline) displays the lists as expected.

Now let us open one of the records and update the value of a field in it.

Here we have updated the mobile phone number field.

Let us navigate to the Offline Status option and disable Work in Offline Mode.

We see the “The connection was successfully restored” message.

And also the record updated back in our Dynamics 365 Sales Hub App.

In this post, we saw the basic behavior of the phone app in the offline mode, in the next post, we will explore a few more features of the mobile app with regards to offline mode.

Hope it helps..

Fixed – “You don’t have any apps in this view” error in Dynamics 365 for Phones and Tablets


Check the other articles of this series

For one of the users, who had all the appropriate privileges and security roles to access the Sales Hub app, we were getting the below error.

In iPad à

In Dynamics 365 for Phone for Android à

As part of troubleshooting, we assigned the System Administrator role to the user, tried uninstalling and reinstalling the app, tried in a new device with the same user, but we were getting the same error.

Here we were entering the email account to login to the application.

Later when we tried the “Sign in with a web
address
instead” it worked for us.

It started showing the Sales Hub for the user.

It could be some intermittent issue or something to do with cache, cannot say for sure, would suggest trying out the same, if the user has all the appropriate rights on the entity and the app and is still facing this issue.

Hope it helps..

Notes on Dynamics 365 for Phones and Tablets app – Part 8 (Mobile Offline)


Check the other articles of this series

Continuing our previous post, here we’d cover the configuration steps and details around offline support for Dynamics 365 for Phones app.

To begin with,

The mobile offline is only available and is supported for iOS (>= 13.1904) and Android (> =4.3.19043) devices.

To enable an entity for offline, we need to check the Enable for Mobile offline option for it.

Below are some of the main entities for which we can enable the mobile offline option (along with newer entities added in the product and the custom entities)

Account Activity Pointer Appointment Attachment Case
Competitor Competitor Address Connection Connection Role Contact
Email Lead Opportunity Opportunity Product Phone Call
Position Product Task Team User

How much data is synchronized?

This is governed by
the Organization data download filter.


Select the entity enabled for Mobile offline and click on the link, and specify the filter

Next, we need to specify the Mobile Offline Profiles, navigate to Settings à Mobile Offline

Below are 2 profiles already available.

The sample sales scenario profile :

Let us create a new mobile offline profile, with add only the contact entity in it.

In the new mobile profile item record, we have selected Contact as the entity.

For Data Downloaded Filter we have 4 options as shown below

  • All records
  • Custom data filter
  • Other data filter
  • Download related data only

All records will download all the data without any filtering, for the user specified.

The ENTITY ORG FILTER will open the filter that was defined for the contact entity earlier.

Let us now add the users for the mobile offline profile.

Now let us Publish the profile.

Next, navigate to Settings – Advanced Settings – My Apps and open the model-driven app in the app designer.

In the properties tab, check Enable Offline profile and select the profile created for contact.

Now we are done with our basic setup.

In the next post, we’d see how all these configuration settings affect the end-user in the offline mode through Dynamics 365 for Phones App.

Hope it helps..