Category Archives: Dynamics 365
Override Form DataSource method using Extensions in D3fO
In this blog article, we will see how we can override Form Data source method using Extensions in Dynamics 365 Operations. Now as recommended by Microsoft we must avoid Overlayering and instead use Extension. For extension, we have to use pre or post event handlers methods. In this blog we will create event handler of OnActivated() method of SalesLine DataSource of form SalesTable. Create a new Class: class CFSActivateButton { } Copy and paste OnActivated() event handler of SalesTable DataSource in Class: /// <summary> /// To activate or deactivate Create Service Order button based on CFSProjId field of SalesLine /// </summary> /// <param name=”sender”></param> /// <param name=”e”></param> [FormDataSourceEventHandler(formDataSourceStr(SalesTable, SalesLine), FormDataSourceEventType::Activated)] public static void SalesLine_OnActivated(FormDataSource sender, FormDataSourceEventArgs e) { FormDataSource fds = sender.formRun().dataSource(“SalesLine”); SalesLine salesline = fds.cursor(); FormRun fr = sender.formRun(); FormControl fc = fr.design(0).controlName(“CreateServiceOrder”); if(salesLine.ProjID) { fc.enabled(true); } else { fc.enabled(false); } }
Share Story :
XRM Toolbox – Important tools for Admins and Developers
What is XRM toolbox? XrmToolBox is a Windows application that connects to Microsoft Dynamics CRM, providing tools to ease customization and configuration tasks. It is shipped with more than 30 plugins to make administration, customization or configuration tasks easier and less time consuming. XRMToolBox is free of cost, but you can donate to support development. In this blog, I will list down the top 5 tools from XRM toolbox for both developers and CRM Administrators. How to Use it? Documentation is available through the wiki of XrmToolBox Github’s repository. You will find information about prerequisites, a list of known existing plugins, help on how to connect to your Microsoft Dynamics CRM deployment, and much much more.. Top Tools of XRM toolbox for Developers. 1. WebResources Manager Author- MscrmTools Description – Manage your webresources easily. This tool has saved me hours of time for creating, updating and managing the web resources for Dynamics CRM. This is a must have for all the Developers 2. SiteMap Editor Author – MscrmTools Description – Manage the SiteMap with no XML edition. Editing Sitemap XML is scary for any developer as any mistake in XML can make the Entire CRM unusable. This tool helps to edit your sitemap components. You can easily create areas and subareas, update the order and copy/ paste components from one area to another. You can also update all the sub area details like icon, titles for multiple languages etc. 3. Ribbon Workbench 2016 Author – Scott Durow Description – Edit the Dynamics CRM Ribbon or Command Bar from inside the XrmToolbox. By installing the Ribbon Workbench you’ll quickly be performing customisations that were previously only possible by time consuming and error-prone manual editing of RibbonDiff Xml. Learn More – https://www.develop1.net/public/rwb/ribbonworkbench.aspx 4. FetchXML Builder Author – Jonas Rapp Description – The tool will assist in three major areas: Constructing FetchXML in ways that Advanced Find cannot – aggregates – outer joins – “has no”-queries – attributes from multi-level linked entities Querying CRM for information not (easily) found in the CRM UI – system / internal entities – attributes hidden in CRM UI – join on other fields than relationships Developer assistance – Generate C# QueryExpression code from fetch xml – Generate OData query string from fetch xml – Easy to use UI to compose queries for reports in CRM The tool reads metadata from CRM to assist with selecting entities, attributes, relations and to perform validation of condition values. To make it more appealing, there is also the possibility to have it show “Friendly names”, which will replace the technical names of entities and attributes with their display names in the users’ currently selected language, much like Advanced Find does. 5. Metadata Document Generator Author – MscrmTools Description – A tool to generate excel and word document with entities and attributes information. You’ll no longer have to write “by hand” these awful tables full of metadata information. Top Tools of XRM toolbox for Developers: 1. Your User Security – Magnified Author – NORRIQ Belgium Description – Provides a detailed overview of a specified System User’s security. Very helpful to identify the exact permission a user has on entity based on all the roles assigned to him 2. Form related tools Author – MscrmTools Description – Set of tools for XrmToolBox regarding form management4 3. Solution Components Mover Author – MscrmTools Description – Transfer solution components across solutions. Again a big time saver for moving components from one solution to another. 4. User Settings and Utility Author – MscrmTools Description – Manage and update All user’s personal settings in Bulk 5. Attribute Usage Inspector Author – MscrmTools Description – Inspects the usage of attributes per entity. Admins can review which attributes are not used across all entities and which are used most.
Share Story :
Using JavaScript and where to write it in D365 CRM Portals
In this blog, we shall see how can a user can write a JavaScript Code and where exactly should the user place the code in order to customize the D365 CRM Portal for version 8.0+. Pre-Requisites: D365 CRM Portals D365 CRM Environment Scenario: The user is often confused as to where exactly should he write the Java Script Code to make the following customizations to the CRM Portals Web Page. We will write a simple JavaScript function to disable the fields in this case the user will disable the email and phone number input fields on the on the Contact Us Web Page of D365 CRM Portals as shown below. Fig 1: Image showing disabled email and phone number fields using custom JavaScript Process: Step 1: The user will have to go the CRM Main Menu to Portals> Web Pages and select the respective web page to which the user wants to implement the required changes as shown below. Fig2: Selecting the Web Page Step 2: On opening the Web Page the user will get a section called the Localized content. The user should select the option as shown below. Fig 3: Select the Localized Content Step 3: On selecting the option in the localized Content as shown in the previous step, the user will have to scroll down and expand the Advance tab where the user get two input sections which are ‘Custom JavaScript’ and ‘Custom CSS’ as shown below. The user has to put the custom JavaScript into the ‘Custom JavaScript’ input section. Fig 4: Writing the JavaScript into the ‘Custom JavaScript’ input section of the localized content Step 4: The user can also add the custom JavaScript Code to the front side editor of the Portal using the administrative tool as shown below. Fig 5: Writing the JavaScript Code on the Front End using administrative tool. Conclusion: Thus in this way we can implement a simple custom JavaScript Code to customize the D365 CRM Portal.
Share Story :
How to call a Web Service from Plugin in Dynamics CRM
In today’s world of more informed and aware customers, the most effective way of meeting the ever-increasing demands of the customers is to go for Microsoft Dynamics CRM Sales Process. The process not only gives you a crystal clear understanding of the customer needs but also gives you insights to engage more effectively with them to meet up their expectations. CloudFront has recently built up a Sales Methodology App for Dynamics 365 Sales for our Partner, Technical Sales Development (TSD). The App bolsters a perceived Sales Methodology which can assist you with expanding income and win-rate by appropriately qualifying and overseeing bargains, creating serious and partner techniques, making a monetarily stable offer, and arranging activities to settle the negotiation. Introduction: In this blog, we will have a look on how a web service can be call from Plugin in Dynamics CRM. Steps to be followed: 1) Create an entity “Product Configuration” which consists of 2 fields Key – Name of the Web Service Value – Web Service URL The basic purpose of this entity is to store the Web Service URL so that we don’t hard code the values in the code. Web Service URL- Where WorkOrder -> Controller Name and CreateWorkOrder -> Function Name 2) Call the below function to call the Web Service. Retrieve Product Configuration function basically retrieves the record from CRM. private void CallWebService(IPluginExecutionContext context, ITracingService tracer, IOrganizationService service) { string licenseResposeJSON = string.Empty; ////// Retrieve Product Configuration details: URL tracer.Trace(“Retrieve Product Configuration details: URL”); string value = string.Empty; value = this.RetrieveProductConfiguration(service); tracer.Trace(“Downloading the target URI from Product Configuration: ” + value); if (value != string.Empty) { try { using (WebClientEx client = new WebClientEx()) { tracer.Trace(“Call Web Service”); client.Timeout = 60000; client.Headers.Add(HttpRequestHeader.ContentType, “application/json”); licenseResposeJSON = client.UploadString(value.ToString(), “1”); } tracer.Trace(licenseResposeJSON); context.OutputParameters[“WebServieCall”] = licenseResposeJSON; tracer.Trace(“Output Parameter is set: ” + licenseResposeJSON); } catch (WebException exception) { string str = string.Empty; if (exception.Response != null) { using (StreamReader reader = new StreamReader(exception.Response.GetResponseStream())) { str = reader.ReadToEnd(); } exception.Response.Close(); } if (exception.Status == WebExceptionStatus.Timeout) { throw new InvalidPluginExecutionException( “The timeout elapsed while attempting to issue the request.”, exception); } throw new InvalidPluginExecutionException(string.Format(CultureInfo.InvariantCulture, “A Web exception occurred while attempting to issue the request. {0}: {1}”, exception.Message, str), exception); } } } public class WebClientEx : WebClient { public int Timeout { get; set; } protected override WebRequest GetWebRequest(Uri address) { var request = base.GetWebRequest(address); request.Timeout = Timeout; return request; } } 3) Web Service which calls Create WorkOrder function is given below: [HttpPost] public async Task CreateWorkOrder([FromBody]string value) { CRM_DataOperations operations = new CRM_DataOperations(); OperationResult result = await Task.Run(() => operations.CreateWorkOrder_Daily()); return Request.CreateResponse(HttpStatusCode.Created, “Message: ” + Enum.GetName(result.GetType(), result)); } Hope you find this helpful! Thank you.
Share Story :
Upcoming Features in Spring 2017 for Dynamics 365 For Sales
Overview Spring 2017 update to Dynamics 365 is coming up in July 2017. And there are exciting new additions and improvements coming to Dynamics 365 For Sales. Here are the highlights on what’s up next – LinkedIn Sales Navigator: Improve performance of their sales processes from LinkedIn Company and Sales profiles Display Navigator person and company information on Lead, Account, Contact and Opportunity pages. Automatic daily updates between the two systems. Write select Sales Navigator activities (InMails, messages, notes and call logs) to D365 For Sales. D365 Connector for LinkedIn Lead Gen Forms (only if you use Lead Gen Forms for LinkedIn): Bring LinkedIn Leads to D365 Online using this connector. Automatically captures and syncs leads to further nurture them. Support for multiple LinkedIn member accounts. Configure how Leads will be captured. Analyze Lead performance. Prospect to Cash Integration: Connect D365 For Sales and D365 For Operations using Common Data Service. Maintain Accounts in Sales and sync to Operations as Customers. Sync Contacts Sync Products from D365 for Operations and sync them to Sales. Create Quotes in D365 for Sales and sync them to Operations. Generate Sales Orders in Sales for existing Productions and sync them to Operations. Generate Invoice in Operations and sync them to Sales. Relationship Analytics: Relationship health Most Contacted Relationship KPIs Dynamics 365 Administrator Role in Office 365: Assign D365 Admin role at a tenant level. Can manage instances and admin functions, access D365 application if they are licensed. Bulk Data Loader: New cloud based service for bulk import/export to cloud staging tables and perform light data-quality functions. Then push back to Dynamics 365. Will be accessed from a link in Admin Center and will redirect of LCS. Cortana Integration: Surface relevant Activities, Accounts and Opportunities to Salespeople. Customer backup and restore (online only): Customer backup and restore on Azure servers securely. Database Level Encryption with Customer Managed Keys: Ability for customers to generate their own keys and upload it to Azure Key Vault. Also revoke access on demand in a self-service manner. Portal Features Ability to Include attachments on knowledge articles so that they can be displayed on the Portal. Improved Admin Wizard on Portal to add an entity to the Portal. When data is updated in the entity, it will be automatically available to Portal users who have access to these data. Source Code for Portals will be available on the Microsoft Download Center under MIT license for developers to download. This will let Portals be deployed for D365 Online as well as on-premise environments. Support Azure Ad-B2C for Portal authentication using a single sign-on configuration Configure portal authentication for SSO. Manage Portal security in Azure. Support Timezone independent date formats in Portal forms. This means that
Share Story :
Info Code Setup in Dynamics 365 Retail
Introduction: Info code is used to capture additional information and Point of Sales. It Prompt Point of sales User to enter information at time various action on Point of Sales. This various can be like, Sales transaction, Return, payment method, customer. In this blog we demonstrate info code setup on Sales return Product. Scenario: Customer want to return some product, company want to know why customer is returning the Product and want to capture reason in Point of sales. Follow the below steps to configure info code setup return transaction. Step 1: Open then Dynamics 365, go to the retail and commerce Go to Channel Setup and click on info code. Step 2: Click on New Button. In Info code Number mention “Sales_Ret” , In description write “Sales Return Info code”. Prompt text will display on Point of Sales. In Put type Select Option Text. It Mean Point of Sales User will enter the reason in text format. In General Tab Select Yes in Input required Step 3 : Go to POS Profile and select Functionality Profile Select functionality Profile of store which you want to change. Step 4: Click on Edit button and go to Info Code Tab. In Info code tab Click on Return Transaction and Select “Sales_Ret”.Click on Save button. Step 5 : go to Channel Database and run the Job for that store. After that login in MPOS Or CPOS and Post return sales Entry. POS will POP-UP with Return Info code. From above steps with you can assign info code entry to POS Transaction.
Share Story :
Ribbon Customization
Introduction: While customizing or adding a button to ribbon there are chances that you want to add same behaviour as of an existing button. But it is not known how to check what logic has been applied to that button. Description: If you want a custom button to have same behavior as that of system button, then how to achieve this. This can be achieved by using the workbench Ribbon customization tool. Let’s see how to do that. Open Ribbon Workbench and select the solution which you want to customize. Here I want my custom button to have same behaviors as of the Qualify lead Right click on the Qualify button and select customize command. As soon as click on the customize button you will able to see all the customization that are applied on that button as show below. Now you can add all the display and enable rule to your command as shown below. Similarly, you can add display rule as show below. Now you have same customization as that of the lead button.
Share Story :
Customizations of CRM Portal Entity Forms using Entity Form Metadata
In this blog, we shall see how can a user make simple modifications to the CRM Portal Entity Form using ‘Entity Form Metadata’. Pre-Requisites: D365 CRM Portals D365 CRM Environment Why Use Entity Form Metadata? Entity Form Metadata has a modification logic to arguments or has the ability to override the functionality of form fields which isn’t possible using the CRM’s native editing capabilities. Entity Form Metadata allows the user to configure specific pieces on the form like a sub-grid, the notes section or an entire Section or Tab on the form which cannot be modified at the top level configuration. Scenario: In the following scenario the user will see how to make simple customizations like converting a “Lookup” entity field to a “Dropdown” field on the Create Case Entity Form on CRM Portals using Entity Form Metadata. In the following image below we see that the ‘Product’ field on the Create Case Entity Form which is a look up field which we will be converting to a dropdown field using ‘Entity Form Metadata’. Fig 1. Image of the Create Case Form before making changes using Entity Form Metadata Process: In order to make the above changes to the attributes that are present on the Entity Form in CRM Portals the user will have to create a Entity Form Metadata which will convert the lookup attribute to a dropdown list. Step 1: The user will have to go on the CRM Main Menu to Portals> Entity Forms> Customer Service-Create Case Form as shown below. Fig 2. Selecting the Create Case Entity Form Step 2: On the Entity Form the user will have to scroll down to the form till Entity Metadata property doesn’t appear. The user will have to create a new Entity Form Metadata by clicking on the ‘+’ option to the right as shown below. Fig 3. To create a new Entity Form Metadata Step 3: In the New Entity Form Metadata use will have to select ‘Type’ as ‘Attribute’ and select the Entity from the drop down list in ‘Attribute Logical Name’ to which the following change is to be made in this case we will select the ‘Product’ field. Under ‘Control Style’ select the Control Style as ‘Render Lookup as Dropdown’. Fig 4. Entering Specific Details into the Entity Form Metadata Dialogue Box. Step 4: Click on ‘Save and Close’ once the details is entered. Now open the Portal Form Page to which the changes are made. The user will find that the ‘Lookup’ Product field is converted to a ‘Dropdown’ field. Conclusion: Thus, in this way user can make simple customizations to the Entity Form Page in CRM Portals using ‘Entity Form Metadata’ which isn’t possible to be achieved at top level configuration methods.
Share Story :
OneNote Integration with Dynamics 365
Introduction: Want to make a dedicated OneNote notebook per Dynamics 365 record? Dynamics 365 Integration is what you need. This integration provides you the ability to take notes in the notebook in context of Dynamics 365 record for selected entities. OneNote records can be directly accessed on the Activity wall of the record whether on web application or on the mobile apps. Pre-Requisites: Server based SharePoint integration needs to be enabled between D365 and SharePoint Online. OneNote integration is only supported for SharePoint Online. Document Management is enabled for the Entity and the same is setup in Document Management under Settings in Dynamics 365. Setting Up: Before we begin, look that OneNote Integration won’t appear yet in Document Management under Settings since we don’t have Server-based SharePoint Integration enabled yet. Once you’ve enabled Server-based SharePoint Integration, you’ll see OneNote Integration Note: By default, OneNote integration will be enabled for Account, Contact, Lead and Product. So, I’ll enable OneNote integration for one of my custom entities. Following are the steps to enable the same: I have an entity called Order Fulfilment. On this entity, I have the usual Activity Feed as below First, the entity needs to be Document Management enabled to be able to be listed for OneNote Integration as shown in the image below on entity level. I’ll navigate to Settings > Document Management > OneNote Integration. Because Document Management has been enabled on Order Fulfilment entity, I can see Order Fulfilment (I’ve ticked the same and clicked on Finish)3. And DONE! Accessing OneNote for a record Once I’ve configured this, I’ll open the Order Fulfilment record I was looking at. Once I click on it, I’ll see a Notebook has been created. And clicking on the Untitled Notebook will take me to OneNote Online for that record Hope this was quick and easy!
Share Story :
Open URL in Web browser from D3fO using X++
In this blog article, we will see how we can open a URL in web browser from D3fO using X++ code. It is achieved using Browser class which extends System Class xBrowser having only method navigate(). It has three parameters from which only first is mandatory: downloadURL (string) – URL you want to browse. openInNewTab (Boolean) – It is used to specify url should be open in same tab or new tab showExitWarning (Boolean) – Prompt a dialog to exit the current page. Create a new Class: class CFSBrowseURL { } Call URL: public static void main(Args _args) { Browser browser = new Browser(); browser.navigate(‘www.cloudfronts.com’, true, false); } So, this will open URL within a new tab in browser using X++. Let me know your reviews and queries. I will soon come up with more articles, as I further explore D365 Operations.
