Category Archives: Blog
Themes in D365
Introduction: With themes in D365, organizations have the ability to uniquely brand the D365 System with supported way to apply organization’s logo and colour choices to the application. Themes: Themes in D365 can be incorporated in several simple steps, Step 1: Under Settings, select Customizations and then Themes. Step 2: By default, D365 default theme is present in the system. Now If we want to create theme for our organization, select New Theme. D365 default theme can be used as a reference to understand how themes work in D365. Step 3: Once New theme is selected the page layout is as follows: Let’s see how individual field works and what it means. Theme Name: Here user can specify the Theme Name. After a name is specified and record is saved then default values are set. Logo: Sets selected Logo replacing default Dynamics 365 logo. Click “New” in search option of Logo field. Logo Image recommended size is 400px in width and 50px in height also supported image file formats are .gif, .jpg and .png Enter details as required ,upload logo image and publish web resource. Click button in Ribbon “Publish Theme” and below are changes as highlighted. Logo Tooltip: Set Tooltip on Logo as highlighted below: Navigation Bar Color: Set Navigation Bar Color replacing default black Color. Navigation Bar Shelf Color: This field sets Navigation Bar Shelf Color of Navigation Bar Header Color: This setting sets Font Color of Header of Sub Area. Global Link Color: This field sets Color of link record. Selected Link Effect: This field sets Color of Selected Records. Process Control Color: This field changes Business Process Flow Header Color. Default Entity Color: This field sets default Entity Color for all Entities except Custom Entities. Default Custom Entity Color: This field sets default Color for all Custom Entities. Control Shade & Control Border: Above field settings set control border and shade. Step 4: Once theme is completed and we need to publish it by click Ribbon button “Publish Theme”. Note: Publish theme gets applied to all D365 users. Conclusion : Hoping this blog explains how to design theme for client.
Share Story :
Dynamics Column reports in Navision 2017
Introduction: Many of client required report with dynamics Column in Navision. We all know dynamics data is displaying top to bottom. But what happen if customer want data left to right. And As data increase Column also increase in the report. In this blog, I will show you Item inventory report, where Item will display in row and location will display in Column. But when you add any new location in Navision and Post any Item Journal, sales, purchase entry for that location, that new location will added in report Column. Steps 1: Open Navision Development Environment. Go to Object Designer. And Create New Reports. For Demo I created New Report “ Item By Location New “ report ID 50029. Steps 2: GO to Design mode of that report. Take Item table in Data Item and Item Ledger Entry table in 2nd data Item. Relation set DataItemLink “Item No.=FIELD(No.)” in Item Ledger entry Property. Select the Column from the table. For the demo, I have taken only 4 fields, you can as fields as you’re your requirements. Steps 3: Go to view and and select Layout option. Here I am using SSRS Report Builder. Click on Insert , then click on Table button and select Table Wizard Option. And select 1st option as per screen shots. Step 4: In Column groups click and drag Location code , for Row Group Item No. and in Value Sum of Quantity. Click on next and finish. Steps 5: Now add Item description fields on right side of Item. Step 6: Save the report and run. Click on preview. Steps 7 : Create new location and post Positive adjustment entry for that New location and again preview the report. New location is added in that report and its inventory Update. Conclusion :- With this method you can create dynamics column reports, which can be print left to right column.
Share Story :
To restrict an action button to a particular user in NAV 2017
Introduction: This article focuses on how to restrict other users and allow only a particular user to user a specified action button in a Page in NAV 2017. The requirement was such that the page Purchase quote is to be signed off by the CEO and then Purchase order is created. Here, an action button is created called Sign off, where on click of the button, the boolean field called Sign off which is an un-editable field is enabled. Only the CEO should have the access to Sign off the Purchase Quote. The other users should be restricted from signing off the Purchase Quote Pre-requisites: Microsoft Dynamics NAV 2017 Steps: 1. In the NAV Development Environment, create a Boolean field. e.g CEO in the User Setup table. 2. Add this field to the User setup page and enable this field for the CEO user. 3. Create a button Sign off in the purchase quote. Create a new codeunit and subscribe it to the action button Sign off. 4. Create a global variable User Setup in the codeunit and refer the below code. 5. In the Windows client/Web Client, browse to Purchase Quote from the search bar. 6. Edit any Purchase Quote and click on Sign off. Here if the User is not the CEO, in the above image the user is OETIADMIN ,a message is displayed ‘Only the CEO can Sign off this purchase document’ 7. If the User is the authorize user to sign off in this case the CEO then the message is displayed as Purchase Quote is signed off.
Share Story :
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 :
Comparing Integration Platforms: Microsoft Flow vs Zapier
In this article, we are going to compare features of Microsoft Flow and Zapier. Real Time Integration: Microsoft Flow: Flow gets automatically triggered based on create/update/delete record defined in the workflow. Note: Triggers for Create, Delete and Update are available Zapier: Zap gets automatically triggered based on create record defined in the workflow. Note: Trigger for Create is available Scheduled Integration: Microsoft Flow: Flow can be scheduled by day, hour, minute, seconds. Recurrence action is used for the same. Zapier: Zap cannot be scheduled. It can only be triggered on Creation of new record. Triggers: Microsoft Flow: Triggers can be specified for any entity. Zapier: Triggers can be specified for limited entities. For example: For Dynamics CRM, the trigger can defined only for Contact, Opportunity, Lead and Account. Lookup Action: Microsoft Flow: Records can be looked up using GUID / Unique Identifier of the record. We can look up to any entity. Zapier: Lookup record i.e. Search in Zap is different for different Connections. Only few Entities is provisioned for Search Criteria for Search can be based on all fields or one field based on Connectors (Explained below with example) Search value can dynamic i.e. values can be retrieved through previous steps. For Example: Search for Salesforce can be based on any field For Dynamics CRM, condition for Search for Contact is based only on email address. Conditional Workflow: Microsoft Flow: Various flow control can be setup in Flow like if-else, switch-case, do-until, etc. Zapier: Logical conditions setup is currently not available in Zap. Filters: Microsoft Flow: Source records cannot be filtered. Zapier: Filter feature not available. Data Formatting: Microsoft Flow: Data fetched from Source cannot be formatted before sending to target. Flow supports simple one-to-one mappings. Zapier: Data fetched from Source cannot be formatted before sending to target. Zapier supports simple one-to-one mappings. Execution History: Microsoft Flow: Errors can be monitored in Activity section in Flow. Errors cannot be handled inside a Flow. Zapier: Errors can be monitored in Task History section in Zapier. Errors cannot be handled inside a Zap Debug: Microsoft Flow: Debug feature is not available for a Flow. Though, after execution you can get output of each step Zapier: Debug feature is not available for a Zap. Though, after execution you can get input and output of each step. Conclusion: Summary for the Integration Tools: Microsoft Flow vs Zapier. Features Microsoft Flow Zapier Real-Time Integration Yes Yes Scheduled Integration Yes No Execution History Yes Yes Error Handling No No Debug No Get output of each step after execution No Get output of each step after execution Triggers Create/Update/Delete Only for Create Lookup Action Immature Mature than Microsoft Flow Filters No No Conditional Workflow Yes No Data Formatting No No
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 :
Power BI New Update: Relative Date Slicer
In this blog article, I will explain about the new updates of Power BI related to Relative Date Slicer. In this introduce a new feature in date as Relative Date Slicer. In this update they previewing a relative date slicer, which lets you filter based on the last 1 or more years, months, weeks, or days. This makes date slicers much more powerful, as you can always filter your report to the latest data. We can choose the Relative option from the list of available date slicer types. Once you select relative from the list, you will be able to specify the date to filter by. We have following seven options to display data: Days Weeks Weeks (Calendar) Months Months (Calendar) Years Years (Calendar) If you pick an option marked with (Calendar), the filter will be based on calendar periods. For example, if you filter to 2 years, data from the last 2 years from today’s date will show. If you filter 2 years (Calendar), data from the last 2 completed calendar years will show. We show the dates used for filtering under the slicer, so you always know what data you are looking at. You can also switch to filter to this period or the next period. By default, the date range includes current date i.e. today’s date, but we can override this in the formatting pane for the visual: This is useful if your data hasn’t refreshed today and you don’t want to include data from incomplete days. Turn on this feature through File > Options and settings > Options > Preview Features > Relative date slicer.