Category Archives: Blog
Connecting to Dynamics 365 Operations through Scribe
TIBCO Cloud Integration AX Connector is compatible with Dynamics 365 Operations. Connecting to D3fO is similar to that of Microsoft Dynamics AX. Prerequisite: Dynamics 365 Operations Development environment. TIBCO Cloud Integration Subscription. Global admin credentials in Azure: Registering ERP application in Azure. Steps: Login to TIBCO Cloud Integration URL: https://app.scribesoft.com/ Create a new connection by selecting the connector type as Microsoft Dynamics AX. Fill in the required details. OData Service URL: This URL must end in /data. Process to get the Client Id and Authentication URL. Steps: Login to Microsoft Azure URL: https://portal.azure.com In the left navigation bar, select Azure Active Directory Select App Registrations Click on Add. Fill in the details. Enter the name of the app. Select Application Type as Native Redirect URI: https://login.microsoftonline.com/domainname.com This redirect URI is the Authentication URL required in TIBCO Cloud Integration AX Connector. On creation, the registered app details will be displayed The Application ID in the Registered app is the Client Id required in TIBCO Cloud Integration AX Connector. Click on Required permission in the settings. Click on Add Select Microsoft Dynamics ERP (Microsoft.ERP) Select all three Delegated Permissions. For more details, check this link. Click on Grant Permission. Global Admin credentials are required for the same.
Share Story :
How to display Status Reason conditionally in Case Management
Introduction This blog resolve a scenario requested by client to display Status Reason conditionally on Case entity. This requirement can be fulfilled by using Transitions functionality on Status Reason field on Case entity in D365 Sales. Steps of Implementation Open Status Reason field on Case entity Click on Edit Status Transitions and check the checkbox for Enable Status Reason Transitions. Select New Status Reasons for Current Status Reasons by clicking ellipses button After selecting values and click OK button. Click OK on Status Reason Transactions page Click OK on warning message Click Save and Close button on Status Reason field Publish All Customizations from Solution and Status Reason are displayed conditionally as seen below. Note: “Edit Transitions in Status Reason” functionality is only available on Case and Custom Entities.
Share Story :
Useful tips and tricks for Scribe Insight
Scribe Insight is widely used for Integration between On-Premise and Online Applications. (Example Microsoft Dynamics CRM online 2016 and AX 2012) Scribe is also used for data migration between CRM systems. (Example CRM 4.0 On-premise to CRM 2016 Online) Below are the list of the useful tips and tricks that can be handy while you are working with Scribe Insight. If you have Scribe DTS file (.dts) from another environment and want to see the fields mapping without the hassle of creating similar source/target connections, then you can use “Open Offline” feature of Scribe Insight. This will open any DTS file and you can view the mapping logic. When we set up “Multi-Company Parameters” for integration between CRM and AX System with multiple legal entities, we need to ensure below settings. (i) Go to Configure Steps -> Data Objects -> Ensure the option “This connection can receive command line switched” is ticked on. (ii) In Scribe Console, ensure the DTS Parameters are correctly set. Verify the XPath is correct as per the source XML\Schema. (iii) Under connection settings for AX web service, Go to DTS Connection Settings, ensure the option “Keep this connection open if it was used in the previous DTS” is NOT ticked. ( This was recommended by Scribe Support personnel while working on issue related to Multi company parameter. I have found that Scribe works even if you have this option as ticked ON). Whenever you make any changes in the XML source file and Schema file and you want to test the same, always close and reopen the DTS file. Scribe shows the cached values even after the XML source file is updated in source path. While working with Microsoft Dynamics CRM connections, Scribe hides some fields like “CreatedOn”. In order to see such hidden fields, Go to Scribe Menu Bar and select the option “View” -> Hidden Data Objects and Fields -> Select the option. Whenever you use jumpstart provided by Scribe Insight, always ensure the schema file by name “SharedTypes.xsd” is present in the path \\Machine-Hostname\Collaborations\Dynamics AX to Dynamics CRM Jumpstart If you are creating your own scribe DTS, its advised to copy this schema file in your working folder. Sometimes you get error related to Incorrect DBLOOKUP formula after you update the same in DTS, even though the formula is correct. Simply close the DTS and re-open the same. I am not sure why Scribe this, but it is what I do and works always for me. Sometimes you notice that even though you add new updated Schema file with new fields and Update the XML source connection, you still don’t see the new fields in Scribe for field Mapping. Check the scribe XML connection for Source XML file and Source Schema file. Scribe by default if you don’t supply the schema path, takes the XML file as the schema file. Then no matter you much time you replace the schema file, it does not get reflected in the DTS. Always provide the SourceKey Fields in the source connection. This is useful during error troubleshooting. If you want to enable “re-try processing of XML messages in Scribe In queue”, in configure steps, under Exit Status , ensure radio button for “Retry” is selected. In Integration process, specify the re-try count. This ensure if the initial processing is failed, scribe will re-try that message the number of times, the re-try count is specified. If you need to create a new Integration process in Scribe Console, always create new integration process under the specific “Collaboration” in which rest of other Integration Processes are present. Scribe support service has been updated from “email support “ to “web Support”. If you need any scribe related support, you need create support ticket / case from url http://success.scribesoft.com/ You will need to supply the below details during ticket creation, Scribe Insight version and serial number details Version of applications that you are integration using Scribe Insight Scribe DTS Detailed description of error issue. Scribe Work Bench Tracelog files.
Share Story :
SSRS reports Issues and tips and tricks to get around them (Part 1)
As a BI resource you may often be asked to design and develop SSRS reports. While these SSRS reports development is straightforward, sometime we get host of issues that irritates and create bad impression of report developer. Below is one such issue that I came across and resolution to get around it. Issue 01: When the report is run and user does “export-as-pdf”, the pdf file consists of blank pages. Cause of the issue: This issue is usually result of default option “Keep Together” that by default is set to “True”. (Indicates whether to keep all sections of the data region together on one page.) Other issue could be related to mismatch in the width of the report. Resolution: (1) In the report designer, open the properties tab of the container that you are using in the report to display the data. Go to General section of the report and check the value for property “Keep Together”. Its value should be “False”. Resolution: (2) If the default value for “Keep Together” is False and you still get the issue, then do as below. Go to Report à Report Properties à Page Setup à Note the Width and Margin Details. (Example Here Width = 8.27 in (Inches) Left Margin = 0.25 in Right Margin = 0.25 in Now Go to actual report body and note the size of the report Body. Calculate the Width occupied by the Report as below: Body Width + Left Margin + Right Margin < Report Width 7.73 in + 0.25 in + 0.25 in < 8.27 in Always ensure that above width and margin sum is less that the report width. This would ensure there are no blank pages during report rendering or when user exports the report as pdf.
Share Story :
Use of EVENT in Dynamics 365 for Operations
In legacy X++, it was possible to prescribe in metadata that certain methods were to be executed prior to and after the execution of a method. The information about what subscribes call was recorded on the publisher, which isn’t useful in the Dynamics AX environment. It’s now possible to provide Pre and Post handlers through code, by providing the SubscribesTo attribute on the subscribers. Here is a blog showing some of basic use of EVENTS handlers of the Form with respective syntax for logics. Form datasource from xFormRun [FormEventHandler(formStr(SomeForm), FormEventType::Initialized)] public static void SomeForm_OnInitialized(xFormRun sender, FormEventArgs e) { FormDataSource MyRandomTable_ds = sender.dataSource(formDataSourceStr(SomeForm, MyRandomTableDS)); … } Get FormRun from form datasource [FormDataSourceEventHandler(formDataSourceStr(MyForm, MyRandomTableDS), FormDataSourceEventType::Written)] public static void MyRandomTableDS_OnWritten(FormDataSource sender, FormDataSourceEventArgs e) { FormRun formRun = sender.formRun() as FormRun; formRun.myCustomMethod(); } Get FormRun from form control [FormControlEventHandler(formControlStr(MyForm, MyButton), FormControlEventType::Clicked)] public static void MyButton_OnClicked(FormControl sender, FormControlEventArgs e) { FormRun formRun = sender.formRun() as FormRun; formRun.myCustomMethod(); } Access form control from xFormRun [FormEventHandler(formStr(SomeForm), FormEventType::Initialized)] public static void SomeForm_OnInitialized(xFormRun sender, FormEventArgs e) { sender.design().controlName(formControlStr(SomeForm, MyControl)).visible(false); } Get current record in form control event [FormControlEventHandler(formControlStr(SomeForm, SomeButton), FormControlEventType::Clicked)] public static void SomeButton_OnClicked(FormControl sender, FormControlEventArgs e) { SomeTable callerRec = sender.formRun().dataSource(1).cursor(); }
Share Story :
Fixed Assets – Books (Microsoft Dynamics 365 Operations versions 1611)
There were value models and depreciation books valuation concept for fixed assets in earlier releases. Value models and depreciation books functionality have been combined into a single platform that is known as a Books. This is new in Microsoft Dynamics 365 Operations version 1611. Value Models and Depreciation Books (earlier versions): Books (Microsoft Dynamics 365 Operations version 1611) Value Models: Value Models are important for fixed assets. Value Models are used to track financial values of fixed assets like accounting acquisition, depreciation, adjustment, net book value, revaluation, disposal sales, disposal scarp etc. In short, useful to get fixed assets financial information. Depreciation Books: Depreciation books are used to post depreciation that does not affect the General ledger. Books (Microsoft Dynamics 365 Operations version 1611): Books are useful to post depreciation that does not affect General ledger or useful to track financial information of fixed assets. Books have a new Post to general ledger option. If enable it behaves as Value Model and if disable this option then it behaves as Depreciation books. Below is setup comparison between Depreciation Books, Value Models and Books. Conclusion Books is simplified combine functionality of Value models and Depreciation books. You can track financial information or use to post depreciation without affect the General ledger by using Books.
Share Story :
PowerApps
What is PowerApps? PowerApps is a Microsoft product which allows developer/non-developer to build an application without writing a single line of code. PowerApps creates custom business apps for web and mobile devices that help you do your job more efficiently and collaborate better with your co-workers. Use PowerApps to solve problems specific to your business and extend the software you’re already using such as apps for custom site inspections, cost estimators, budget tracking, or managing customer opportunities You can use PowerApps in any web browser, including the mobile web. You can also download PowerApps Mobile for iOSor Android to use apps on your phone or tablet. No matter where you’re working, just open PowerApps to find the apps available to you. What data sources can my apps connect to? PowerApps connects to a range of data sources out of the box, and Microsoft adding more all the time. Some examples of data sources and services include: Excel files stored on OneDrive for Business, Dropbox, or Google Drive SharePoint Online lists Salesforce objects Microsoft Dynamics CRM Online records Azure SQL Database tables Office 365 Exchange data Twitter Microsoft Translator Your own custom APIs And many more applications. What’s a work or school account, and why do I need one to use PowerApps? Because PowerApps is built for business apps that you share with your team, we require you to use an email address associated with an organization (your work or school account) to sign up. Shared email providers like Hotmail or Gmail won’t currently work with PowerApps. Who can I share apps with You can share apps with anyone in your organization, that is, anyone who has your same email domain—for instance, anyemployee@contoso.com. Anyone who uses your apps will also need access to any data sources those apps connect to. For example, if you build an app that uses an Excel file on OneDrive, people you share the app with will also need to have access to the Excel file in order to fully use the app Connection: Go to: https://powerapps.microsoft.com/ You need to sign in the powerApps portal using the given link and signin/singup Once you are logged in successfully, you can create a new app from the portal. Click on create new App. You can develop PowerApps either on desktop application or on the browser, you can download it from the Store or you can directly edit in browser. Once you have installed the PoweApps from the Store now you can develop your own application by click on the new button. Select from the existing app which is a predefined template Establish your connection with CRM: If you have already connected with the existing CRM than you don’t required to connect. If your login for the first time you need provide the connection details. Click on the Dynamics CRM Online. To design the PowerApps you need to select a table from the available list, select the table(entity) Once you have done with your app is ready and you are able to see the app with 3 different type of forms. Design app BrowseScreen1:shows a list of all items and some information about them so that users can easily browse for the item they want. DetailScreen1:shows all information about a single item. EditScreen1:provides an Edit form control for adding an item or updating information about an item. Page Search and sort the contact User can search for one or more records, sort the list of records in ascending or descending order, or both. Form Type Display Screen: You can add the records from the right side pane. this only displays the records. Edit screen: Here user can change the value of a record. Update: Controls Formula: Looking value from other data set from the other data set LookUp(Accounts, accountid=ThisItem._parentcustomerid_value).name Table– Required. Table to search. Formula– Required. This formula is evaluated for each record of the table, and the first record that results in true is returned. You can reference columns within the table. ReductionFormula– Optional. This formula is evaluated over the record that was found, reducing the record to a single value. You can reference columns within the table. If this parameter is not supplied, the function returns the full record from the table. Update = DataCardValue9.Text; Search(Contacts, TextSearchBox1.Text, “firstname”, “_defaultpricelevelid_value”, “_ownerid_type”, “_ownerid_value”) Table – Required. Table to search. SearchString – Required. The string to search for. If blank or an empty string, all records are returned. Column(s) – Required. The names of columns within Table to search. Columns to search must contain text. Column names must be strings and enclosed in double quotes. If SearchString is found within the data of any of these columns as a partial match, the full record will be returned. SortByColumns( Contacts, ” firstname “, SortOrder.Descending ) Bind data to Dropdown Table – Required. Table to sort. ColumnName(s) – Required. The column names to sort on, as strings. SortOrder(s) – Optional. SortOrder!Ascending or SortOrder!Descending. SortOrder!Ascendingis the default. If multiple ColumnNames are supplied, all but the last column must include aSortOrder. SortByColumns(Search(Contacts, TextSearchBox1.Text, “firstname”, “_defaultpricelevelid_value”, “_ownerid_type”, “_ownerid_value”), “_defaultpricelevelid_type”, If(SortDescending1, Descending, Ascending)) Reference Link 1. https://powerapps.microsoft.com/en-us/tutorials/getting-started/ 2. https://powerapps.microsoft.com/en-us/tutorials/formula-reference/ 3. https://powerapps.microsoft.com/en-us/tutorials/working-with-cards/
Share Story :
Accessing Azure Blob storage from CRM Online Plugin
In this blog article, we will see how to access Azure Blob storage and create document in CRM by reading a specific blob document in Azure. Steps: Get the following details of the Azure Blob storage Primary access key Blob container name File Name of the document Now we will write a sample plugin code which will read document from the Azure Blob storage and create an Annotation in CRM. Since we cannot use external DLL in CRM online plugins, we are going to use the Web request to access the Azure blob storage. The HTTP web request has a bunch of headers along the above details to successfully access Azure blob storage. For this, I have used a RestHelper and BlobHelper utility code files, which have all the operations of (a) making a web request and (b) performing blob operations. The Helper files and the CRM plugin sample can be found in the below GitHub link: GitHub: CRM Online Integration with Azure Blob Using this we can get the document and create Annotation in CRM using the below code: #region Connect and fetch the data from Blob storage // Replace the below values with actual details from your Azure Blob storage string storageAccount = “blobstorageaccountname”; string filename = “filenamehere”; // testdocument.pdf string containerName = “containernameHere”; //documents string storageKey = “primaryaccesskiyeofazureblobstorageaccount”; BlobHelper blobHelper = new BlobHelper(storageAccount, storageKey); KeyValuePair<byte[], string> data = blobHelper.GetBlobResponse(containerName, filename); byte[] body = data.Key; string contentType = data.Value; #endregion #region Create Annotation in CRM string encodedData = System.Convert.ToBase64String(body); Entity Annotation = new Entity(“annotation”); Annotation.Attributes[“objectid”] = new EntityReference(workOrder.LogicalName, workOrder.Id); Annotation.Attributes[“objecttypecode”] = workOrder.LogicalName; Annotation.Attributes[“subject”] = “Document from AX Integration”; Annotation.Attributes[“documentbody”] = encodedData; Annotation.Attributes[“mimetype”] = contentType; Annotation.Attributes[“notetext”] = “REST API – Sample document from AX.”; Annotation.Attributes[“filename”] = entity.GetAttributeValue<string>(“cf_name”); Guid annotation = service.Create(Annotation); #endregion
Share Story :
Process Unification & New Visual Process Designer in Dynamics 365
Introduction Dynamics 365 introduced many new functionalities for Dynamics CRM Sales App but this blog will cover the enhancements for new Visual Designer and Process Unification in Dynamics 365 Sales App. Below are some key points that will show what are the new enhancements on Business Process Flow, Task Flows and Business Rules. Business Process Flow The all new Designer is embedded in the system to drag and drop the components like Steps, Stages, Conditions and now Workflows too. New Buttons like Snapshot, Cut, Copy and Paste are incorporated. Cut and Paste buttons works only for steps and workflows and not for Conditions and Stages. Whereas Copy button works for both steps, stages and conditions. Snapshot button allows developers to take a picture of the entire process flow in .png format. Snapshot image can be used to explain the flow in design and developer documents. UI is more enhanced and visually appealing in terms of Business Process Flow. Newly added and more importantly developers now can trigger workflows based on stage transition i.e. Stage Exit and Stage Entry. Note: Only On Demand Workflows show up in the list so if developers creates a new workflow, it should be On Demand workflow. Mini Map is added in the left hand side corner of the designer that allows developers to see the flow of process flow diagrammatically. Validate functionality is added on top of the ribbon. This feature checks for validation on every save of the Business Process Flow. Validation is of type that, if the step is not mapped to a field or condition is incomplete or for that matter if developer has added a workflow at the step but not defined the workflow which is supposed to be triggered. Whenever a Business Process Flow is created, a new custom entity is created with Organization Scope for that particular process which can be accessed through api. So Business Process Flow has a separate Security Tab in the Security Role named “Business Process Flow”. So based on the security requirements, one user can be given access to edit in Business Process Flow and other user can be given access to only view the Business Process Flow. A new status is added for the Business Process Flow that defines whether the Process Flow is either in Active State, Abandoned or Finished State. Once the process is abandoned, it can be reactivated again whereas once the process is finished from all the stages, the process can be set to finished. Business Rules Business Rules also have a new Visual Designer that drags the components in designer area. Business Recommendations are the key change incorporated for Business Rules which can also be shown on Business Process Flow. Business Recommendations are one new added type of action that is triggered after a condition. A Text View Window is added in the bottom right hand side of the Designer, that shows the business rule in “If- Then Format” allowing more friendly view of condition for developers. Condition which was earlier only on Entity now can be added on Business Process Flow and related stages. A new Validate Option validates every step, condition in the designer before saving the Business Rules. Task Flows in Mobile Task Flows in CRM were in preview feature from last year whereas now they are released completely only on Online and On Premise Environments. Task flows are a new way of interacting with Microsoft Dynamics CRM, allowing users to focus completely on the work at hand. With this new type of business process flow, you can easily create guided interactions for your CRM users, giving them experiences with just the information they need so they can get their work done quickly and efficiently. Task Flows in Mobile are the type of Business Process Flow where it helps users to navigate seamlessly. Task Flows also have the same Visual Designer that is there for Business Process Flow with Mini Map in left bottom of the designer. Task Flows on Mobile is accessed from the clock icon, on Home Dashboard on Mobile Device. Based on Business Requirements, number of pages and conditions can be added to enhance the process and save the time. Actions in Workflows New Process Actions are incorporated in workflows. Below image shows the list of actions enabled. Thus, these were the Process and Designer enhancements that are added in Dynamics 365.
Share Story :
Comparison between NAV 2017 and Dynamics 365 for Financials
Dynamics 365 for Financials is a newly launched product by Microsoft which is fully based on Cloud. The product is developed keeping Microsoft Dynamics Navision as base. Following is the list of differences which could be identified when compared to Microsoft Dynamics NAV 2017. User Interface D365 for Financials – It is a web based application hosted on Cloud. There is no Client Installation Required. It can be used from Web Browser, Mobile Application and Tablet Application. NAV 2017 – NAV 2017 can be installed either on On-premises server or on Azure. NAV 2017 can be used from Windows client as well as from Web Browser, Mobile Application and Tablet Application. The feel and look of web browser of NAV 2017 as well as of D365 for financials is same. Modules/Departments As compared to NAV 2017, D365 for financials does not provide modules and their respective functionalities with respect to Production, Warehouse, Human Resource & Service. Finance Module As compared to NAV 2017, D365 for financials does not provide functionalities with reference to Finance Module like Intercompany transactions. Sales & Marketing Module Following is the list of features which are missing from D365 for Financials regarding Sales & Marketing Module: Item Charge Shipment Methods Shipping Agents Item Functionality As compared to NAV 2017, D365 for financials does not supports Lot Tracking, Locations & its related functionality. Purchase Module Following is the list of features which are missing from D365 for Financials with reference to Purchase Module: Purchase Quote Item Charge Administration From administration point of view following are the features which are not present in D365 for financials: Links- To attach documents Notes – For adding information and notifying users. Comments – For adding any comment/text for extra information. Development Any customization in D365 for financials would be only through Extensions while NAV supports development through extensions as well as by touching the base code. Conclusion D365 for financials is a very good product for Small and medium size enterprises. The features mentioned above which are missing, Microsoft in their future release will incorporate it into D365 for financials.