Hi Everyone, Today i am going to share useful information around the users activity and when was the user last logged in and inactive users. How to find out the User Audit logs from the Dynamics 365? With Advanced Find View we can see who the users are enabled and which license type the user is assigned on the Dynamics 365. But how can we find the detailed login information and activity of the user? 1) You can see the Audit Log Summary on the Dynamics 365. But getting the detailed activity from Audit log file is time consuming and needs some custom development to export the log file and filter by the users on the excel sheet. 2) XRMTOOLBOX: There is a too inside the XRMTOOLBOX which we all know is dedicated to the community by MVP Jonas Rapp. Xrmtoolbox have number of free tools, one of them is the User Audit Viewer by Deepak Battini. With this tool we can get the all the users activities like inactive users and active users, when was the last time the user logged in from the "User Audit Viewer" tool.. As you all know how to connect to your Dynamics 365 Customer Engagement Application and start verifying the user activity. I hope this helps. For Microsoft Dynamics 365 Consultancy/Training/Support/Licensing/Web Hosting/Websites Contact us: https://www.gmrit-solutions.com Email: info@gmrit-solutions.com
↧
Blog Post: Microsoft Dynamics 365 User Inactivity and last logged in
↧
Forum Post: RE: How to disable error messages
Hi, there are no issues, which are causing any errors and I am also not talking about any JS errors. You can reproduce these kind of errors, e.g. if you send out a link and somebody who doesn't have rights (ownership/team/sharing) tries to open it, ... you can always have such cases and that is what they are claiming about ... br T
↧
↧
Forum Post: RE: How to disable error messages
Hi Thomas, Is it Script error notification from system or because of dependet some javascript code?
↧
Forum Post: RE: Amending Setup to AOAG
Anyone have any ideas?
↧
Forum Post: RE: How to disable error messages
Hi Thomas, please, can you add a screenshot from error?
↧
↧
Forum Post: Add Notes Regarding to the Case in Reports
Hi All, The requirement is I have to make a report which is related to the Case entity. There should be a condition like "Search Notes which type of True or False(Radio Button)". If search Notes is False then only show the case records according to the filter otherwise display notes also. Is it possible to make this type of report using Report Wizard? Please Suggest for the same.
↧
Forum Post: RE: Move to the last stage Dynamics crm BPF
Hi Jamil, Please refer to my post:
↧
Forum Post: RE: How do I change line spacing in marketing emails?
Hi Kathy, Please refer to this blog:
↧
Forum Post: RE: Dynamics CRM 8.1 Translation doesn't work
Hi, i had the same problem and this worked for me: - Removing the translation value which does not appear in crm (with Easy Translations (XrmToolbox)) - Remove the field from the CRM form - Publish form / All - Add translation value again (with Easy Translations (XrmToolbox)) - Add field to CRM form - Publish / All
↧
↧
Forum Post: calling SSRS to generate PDF is falling at the PDF generation method
Hi All, The code to generate PDF from SSRS is allover the internet and it seems to work for most, but mine does not seem to work and fails at the method that encodes the output from the reporting sessions parameter this is retrieved. Please look at the below code function encodePdf(responseSession) { //Create request object that will be called to convert the response in PDF base 64 string var retrieveEntityReq = new XMLHttpRequest(); //Create query string that will be passed to Report Server to generate PDF version of report response. var pth = Xrm.Page.context.getClientUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + responseSession[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + responseSession[1] + "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF"; retrieveEntityReq.open("GET", pth, true); retrieveEntityReq.setRequestHeader("Accept", "*/*"); retrieveEntityReq.responseType = "arraybuffer"; retrieveEntityReq.onreadystatechange = function () { if (retrieveEntityReq.readyState == 4 && retrieveEntityReq.status == 200) { var binary = ""; var bytes = new Uint8Array(this.response); for (var i = 0; i ↵ ↵&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID= HTML> ↵ ↵ ↵ ↵ ↵<scr&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF" __proto__: XMLHttpRequest even when i copy the url and paste it onthe address Bar, it fails. somewhen with better knowledge please help. Arun Vinoth I wll appreciate your input. Cheers
↧
Forum Post: RE: Add Notes Regarding to the Case in Reports
Hi Shakti, If you have on-premise environment, you can create SSRS reports but with report wizard, this type of report development is not possible.
↧
Forum Post: RE: Need to add button in ribbon
Hi, I tried that one but it's not working. Can you share me the screenshot of this process along with the java script details. Thanks for understanding
↧
Forum Post: Action Step in a Business Process Flow on MSD365 UCI
Hi all, I have added an Action step in a business process flow. I am working with UCI on the latest April update of MSD365 (online). I see there is a flaw currently in the system. If you use an Action step in the BPF on a particular stage, the Next Stage button there stops working. Did any of get this problem too?
↧
↧
Forum Post: RE: Outlook Client, Adding attachments to Mail Merge not working
Hi Trevor, did you find a solution for this? We are experiencing the same issue.
↧
Forum Post: RE: Add Notes Regarding to the Case in Reports
Thanks for response Kalpavruksh, So, there is no way to complete this type of report in CRM Online?
↧
Forum Post: RE: Need to add button in ribbon
So you have a button, for that button to be visible it needs a command. go to the command for your button (if you don't have one then create one). Then where I've put a 1, click add action and make sure you select JavaScript action. You're going to want a JavaScript function that you can reference from the ribbon workbench ( 2 = web resource where the JavaScript lives, 3 = function you want to use) function example() { debugger; //update var clientURL = Xrm.Page.context.getClientUrl(); var recordId = Xrm.Page.data.entity.getId(); var req = new XMLHttpRequest(); req.open("PATCH", encodeURI(clientURL + "/api/data/v8.1/incidents(DC9E62A8-90DF-E311-9565-A45D36FC5FE8)", true)); //replace this guid with recordId req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.onreadystatechange = function () { if (this.readyState == 4 /* complete */) { req.onreadystatechange = null; if (this.status == 204) { alert("success"); } else { var error = JSON.parse(this.response).error; alert(error.message); } } }; req.send(JSON.stringify( { statecode: 0, statuscode: 1 })); }
↧
Blog Post: Dynamics 365 Team Member Unable to make connections between entities
Hi Everyone, Today i am going to share my experience with the Team Member User in Dynamics 365. Scenario: Team Member unable to make connections between contacts and accounts primary contact. How to resolve this issue: Lets gets started.. Microsoft Dynamics 365 Team Member License will have restricted access according to the Dynamics 365 Licensing Guide. Here is the links for reference: https://mbs.microsoft.com/Files/public/365/Dynamics365LicensingGuide.pdf In order to resolve this problem.. System Administrator need to look at the security role of the team member. The Relationship role needs to have organisation level access to the team member.. Make sure the Team Member can have Read and Assign access to the Account entity also the same level of access to the contact entity. Finally the Team Member can create "Connection" between the records on Dynamics 365.. I hope this helps. For Microsoft Dynamics 365 Consultancy/Training/Support/Licensing/Web Hosting/Websites Contact us: https://www.gmrit-solutions.com Email: info@gmrit-solutions.com
↧
↧
Blog Post: Difference between Common Data Service and Common Data Model
Hi Everyone, As we all know, there is huge changes on the Microsoft Dynamics 365 Platform.. Earlier Microsoft Dynamics 365/ CRM used to have stand alone application for the Customer Relationship Management. Things have been changing at a rapid phase releasing new things and platform enhancement across the Dynamics 365 Power Platform. Now it there buzz words across the Microsoft and Community.. Power Apps: Power BI, Power Apps, Microsoft Flow, Common Data Service, Common Data Model, Model Driven Apps, Canvas Apps.. More on the Model Driven Apps and Canvas Apps in future blog posts. Dynamics 365 Customer Engagement: CE is Apps like Sales, Customer Service, Field Service, Project Service Automation, Marketing, AI for Sales, Customer Insights, Talent Dynamics 365 Business Central, Finance and Operations.. What is the Common Platform for all these Applications? Here comes the Common Data Service: CDS: Common Data Service is lets users to store and manage the data that is used by the business applications. According to Microsoft Documentation: "Data within Common Data Service is stored within a set of entities. An entity is a set of records used to store data, similar to how a table stores data within a database. Common Data Service includes a base set of standard entities that cover typical scenarios, but you can also create custom entities specific to your organization and populate them with data using Power Query. App makers can then use PowerApps to build rich applications using this data." For further information about the Common Data Service refer to Microsoft Documentation. Lets move on to the Common Data Model: The Common Data Model simplifies the process by sharing data language for business and analytics applications to use. According to Microsoft Documentation: The Common Data Model metadata system enables consistency of data and its meaning across applications and business processes (such as PowerApps, Power BI, Dynamics 365, and Azure), which store data in conformance with the Common Data Model. See Image from Microsoft: Common Data Model is frequently used by the App Developers, Data Integrator's. For more information about the Common Data Model refer to the below link. https://docs.microsoft.com/en-us/common-data-model/ I hope this helps. For Microsoft Dynamics 365 Consultancy/Training/Support/Licensing/Web Hosting/Websites Contact us: https://www.gmrit-solutions.com Email: info@gmrit-solutions.com
↧
Forum Post: Can we enable default dashboard for new Unified Interface in Dynamics 365 Online
Hi All, I have enabled Unified Interface for Dynamics 365 Online version of our system. However on logging in, it directly redirects to a page with multiple apps(screenshot 1). Earlier before upgrading to the Unified interface it used to redirect to default dashboard page configured for the logged in user. How to display that can anyone help here.
↧
Blog Post: How to assign security role to a Form programmatically in Dynamics 365 CRM
Introduction In Dynamics 365 we can update security role of Form through customization. You have to just follow the given steps: Go to Setting → Customization → Customize the System → Components → Entities → Forms Open Form and click on “ Enable Security Roles ” in Home tab to Assign Security Role to selected Form. However, in few cases you can also assign security role to a Form programmatically. In this blog, we will discuss about how to assign security role to a Form programmatically. The steps to assign security role programmatically are as follows:- Retrieve Forms from CRM //object of form Collection EntityCollection forms = new EntityCollection(); //Query Expression Object QueryExpression queryExp = null; queryExp = new QueryExpression { EntityName = “systemform”, ColumnSet = new ColumnSet(“formid”, “type”, “formxml”, “name”) }; FilterExpression conditions = new FilterExpression(LogicalOperator.And); conditions.Conditions.Add(new ConditionExpression(“name”, ConditionOperator.Equal, “Account”)); queryExp.Criteria.AddFilter(conditions); //Retrieve form collection forms = _service.RetrieveMultiple(queryExp); Create formXML (XDocument) and DisplayCondition(XElement) objects //parse formXML into XDocument XDocument formXML = XDocument.Parse(forms.Entities[0].Attributes[“formxml”].ToString()); Note : In this code we have only used one Form, but you can also perform same operation for multiple Forms using for loop or for each statement. //Get displayCondtion element from form XML if Exist XElement displayCondition = formXML.Descendants(“DisplayConditions”).FirstOrDefault(); //Create new displayCondition Object XElement displayConditionAttribute; Retrieve role details from CRM //Create role collections string[] roleNames = { “Activity Feeds”, “Sales Manager” }; Note : You can pass collection of Roles dramatically through Input Parameter in Plugin (using SecureConfig and UnsecureConfig)/ Assembly (Input parameters) string condition = string.Empty; //Create role condition if (roleNames!= null) { foreach (string role in roleNames) { condition = condition + $” ”; } } string fetchXML = string.Empty; fetchXML = “ ” + “ ” + “ ” + “ ” + condition + “ ” + “ ” + “ ”; var query = new FetchExpression(fetchXML); EntityCollection roles = new EntityCollection(); //Collection of Role roles = _service.RetrieveMultiple(query); Check weather display condition exists or not. If not then create new display condition and update it otherwise, just update the existing display condition. //Check DispalyConditon Exist or not if (displayCondition != null) { displayConditionAttribute = formXML.Descendants(“DisplayConditions”).FirstOrDefault(); } else { //create display condition displayConditionAttribute = new XElement(“DisplayConditions”); //to set a form as follbackform displayConditionAttribute.Add(new XAttribute(“FallbackForm”, true)); //set form order displayConditionAttribute.Add(new XAttribute(“Order”, “1”)); XElement form = formXML.Descendants(“form”).FirstOrDefault(); //add display condition on form element form.LastNode.AddAfterSelf(displayConditionAttribute); //get display condition on form displayConditionAttribute = formXML.Descendants(“DisplayConditions”).FirstOrDefault(); } //specify that the form is visible to everyone XElement Everyone = new XElement(“Everyone”); //add Everyone element into displaycondition displayConditionAttribute.Add(Everyone); Note: If you want to display Form to everyone then use the above code. If not then use the below code. //specify that the security role to view a form if (roles != null && roles.Entities.Count > 0) { foreach (Entity role in roles.Entities) { string roleId = “{” + role.GetAttributeValue (“roleid”).ToString() + “}”; XElement Role = new XElement(“Role”); Role.Add(new XAttribute(“Id”, roleId)); //add Role element into displaycondition displayConditionAttribute.Add(Role); } } //Update form XML forms.Entities[0][“formxml”] = formXML.ToString(SaveOptions.DisableFormatting); //Update Form _service.Update(forms.Entities[0]); Publish customization programmatically after updating Form. You can use the above code in plugin/assembly and any other application. Conclusion We can assign one or more security role for more than one CRM Form programmatically.
↧