Category Archives: Power BI
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 :
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 :
Add or Edit Power BI Tiles in CRM Dashboard
Prerequisite: Latest CRM Update1 version environment account (purchase account not in trial account), Power BI account Purpose of the setup: Embed Power BI tile in CRM dashboard. Procedure: Here we have a CRM Update1 purchase account where I will be demonstrating the new feature in CRM where we can embed Power BI tiles in CRM dashboard. Before we actually start embedding Power BI Tile into CRM dashboard we first need to do some setting for enabling Power BI tile option in toolbox. Note: Only available in Purchase account with CRM Update1 Feature. Once we are done with these basic setting we can start creating Dashboard in CRM. For that click on the hamburger menu -> goto Sales Area -> click on Dashboard Entity. Then click on ‘New’ option in the ribbon at the top. On clicking on ‘New’ option it will ask the type of layout you need. Select the type of Layout you need among the options provided. Give appropriate name to the dashboard. Now after the enabling of Power BI tile in CRM dashboard we can see a new option to import Power BI tile in our dashboard. Click on the POWER BI TILE option in the ribbon. A new window will appear which will contain the list all dashboards and related tiles. Select the Power BI Dashboard you want and then select the Tile from that dashboard. The selected tile will be displayed below in the same window. Once you get the appropriate tile you need click on OK. You can see the Power BI Tile in the CRM dashboard. Note: We need to have Power BI account linked with this CRM account to get the dashboard and tiles details. Similarly, go on repeating the steps to get other tiles in the CRM dashboard. When done with designing the dashboard click on SAVE. Your Dashboard will be saved. Now, if you want to view the Dashboard again then follow the same steps Hamburger menu -> Sales Area -> Dashboard Entity. Click on the dashboard list and in MY Dashboard type we will get the dashboard created by us. The created dashboard will be displayed.
Share Story :
Login Based Security in Power BI
Prerequisite: Power BI Desktop Tool, Power BI Online Service Purpose of the setup: Purpose of this blog is to demonstrate USERNAME () function with Row Level Security (RLS) using Power BI to get the dynamic security when users login. Procedure: To demonstrate this, we have created a Power BI Desktop file and published it to Power BI Online service account. Now the basic steps for creating role based security is explained in our previous blog on RLS in Power BI. You can refer the steps in the link given below: https://www.cloudfronts.com/row-level-security-using-power-bi/ In the above mentioned link we used DAX function as [Sales Manager] = “Ashish” i.e. we have hard coded the DAX Function to filter data only for specific records. The drawback is that we need to hard code for every user in the organization no matter how many users are present. So, now we can make use of USERNAME() function which will automatically filter the data depending on the username used to login to Power BI service account. You can read more about this update in the Power BI blog given in the link below. https://powerbi.microsoft.com/en-us/blog/using-username-in-dax-with-row-level-security/ Here, USERNAME() is used to get the current logged in user and filter the data accordingly so as to enable him to view his own data. Below is the screenshot of dataset used. Fig 1: Dataset used for Performing RLS In the Example, Ankita is the CEO (i.e. the one who has Admin rights) so she can see all the data in the dashboard. Whereas Ashish and Prakash are the two Sales Manager who when logs in can view only their data i.e. data for them and the Sales Person in their team. Fig 2: CEO/Admin Dashboard Now if the CEO wants to restrict the Sales Manager and Sales Person to view only at their level i.e. the Sales Manager can view data under his team and a Sales Person can view only his data as an owner. For achieving this the CEO can share the dashboard to the person and then can assign the role. The steps are similar to the steps demonstrated in the previous Blog the only thing to change is the DAX function. The DAX function used is [Sales Manager] =USERNAME () Fig 3: Creating Role Now we are done with RLS in Power BI with USERNAME () function. So when person named Ashish logs in with his Power BI account with username as ajagdale@cloudfronts.com, he will only be able to view his own data. Here, data in same RLS_USERNAME_SECURITY dashboard shared with Ashish displays only data for ajagdale@cloudfronts.com as the Sales Manager. Fig 4: Sales Manager (Ashish’s) Dashboard Note: The column on which we are applying the USERNAME () function has to be the Login id (or username) which is used to log in to Power BI account so that the function can filter depending on username. It may happen that the result is not visible immediately. So for that we can refresh the Power BI dashboard once. Similarly, we can add another person to the same role created and he will also be able to view his own data. For example, another Sales Manager named (say) Prakash logs in to Power BI with his email as pkavar@cloudfronts.com then he will also be able to view pkavar@cloudfronts.com as Sales Manager. Fig 5: Sales Manager (Prakash’s) Dashboard In this way as many users we will add in the role we can create Row level security for them.
Share Story :
Migration of Invoices from Microsoft Dynamics CRM to Microsoft Dynamics NAV
Consider a scenario where we want the Invoice generated in Microsoft Dynamics CRM to be saved in an ERP. In this article, we will migrate the invoice that is generated in CRM to Dynamics NAV using TIBCO Cloud Integration as Integration Tool. Prerequisite: CRM Online environment Dynamics NAV TIBCO Cloud Integration subscription TIBCO Cloud Integration On-Premise Agent on the server where Dynamics NAV is installed Step 1: Login to TIBCO Cloud Integration Login to TIBCO Cloud Integration (https://online.scribesoft.com/) in the server where Dynamics NAV is installed Go to Agents and create Agent from NEW option Install On-Premise Agent and copy the Agent key as well After installation, you can provide the name for the agent Step 2: Creation of Source and Target connection. Creating a new connection for CRM environment: Select ‘Microsoft Dynamics CRM’ as the Type. Provide the connection details and select ‘Cloud Agent’ for CRM Online environment as shown in screenshot below. Fig. Connection for Dynamics CRM Creating a connection for Dynamics NAV: Select Microsoft Dynamics NAV as the Type. Provide the connection details and select the On-Premise Agent which is installed on the server where Dynamics NAV is installed. Refer below screenshot for the same. Fig. Connection for Dynamics NAV Step 3: Creating solutions for maps Create a new solution. Select the On-Premise Agent. Create Advanced Map.Note: There will be two Advanced Maps in the solution. One for ‘Account’ entity migration from CRM to NAV and one for ‘Invoice’ entity migration from CRM to NAV. In the Map for Account migration: Select source connection as the CRM connection In the Query block select ‘Account’ entity Select the target connection as the Dynamics NAV connection In the Create block of the target connection select ‘NAVCustomer’ entity In ‘Create’ block map the required fields. Also we need to use the ‘Update’ block to update the ‘No’ field generated for a Customer in NAV to the ‘accountnumber’ field in CRM. We use the ‘accountid’ field as the matching criteria in the update block. Fig. TIBCO Cloud Integration Map for Account migration In the Map for Invoice Migration: Select source connection as the CRM connection Select ‘Invoice’ entity in the query block Add invoicedetail as ‘Related entity’ in the Query block Select the target connection as Dynamics NAV connection The flow for creating the Invoice and its related invoice product is as follows: Fig. TIBCO Cloud Integration Map for Invoice migration Step 1: Lookup on account entity in the source and fetch its accountnumber field (which will contain the No that we have updated in the Account migration map). Step 2: Lookup on ‘NAVCustomer’ entity by using the accountnumber fetched in Step 1 as matching criteria and fetch its Name. Step 3: Use ‘Create’ block to create the Invoice entity in NAV. Select ‘NAVInvoice’ entity in the create block. Map the fields required. Fig. Mapping for Create block in NAVInvoice Step 4: Use ‘For each child’ block for fetching the products present on that particular invoice. Step 5: Use create block in the ‘for each child’ block and select ‘NAVInvoiceSalesLines’ entity. Fig. Mapping for Create block in NAVInvoiceSalesLines Step 5:Execution of maps for account and invoice entities. Account is updated in CRM. Fig. Before execution of CRM account Fig. After execution the AccountNumber is populated with the No that is generated in NAV Customer is created in NAV. Fig. Customer in Dynamics NAV Create an invoice with this customer in CRM and Run the Map. Fig. Invoice in Dynamics NAV An invoice is created with that customer in NAV.
Share Story :
Row Level Security using Power BI
Prerequisite: Power BI Desktop Tool, Power BI Online Service Purpose of the setup: Purpose of this blog is to demonstrate Row Level Security (RLS) using Power BI Procedure: To demonstrate this, we have created a Power BI Desktop file and published it to Power BI Online account. Before starting, let us assume a scenario where there is a Sales Organization. A Sales organization uses CRM data. They need to provide Sales data by Role to different person as per their job profile or control. CEO of a Sales organization can view data for all the opportunities. Sales Manager can view only his related sales data i.e. opportunities created by the Sales Person under his team. Sales Person can view only his sales opportunities. Fig 1: Scenario This can be achieved using RLS in Power BI. Steps Here we have created a Dashboard with sample data for a Sales Organization that deals with Opportunity data from CRM. Fig 2: CEO Dashboard This is the Opportunity dashboard that shows the complete CRM Opportunity data of the organization. Now if the CEO wants to restrict the Sales Manager and Sales Person to view only at their level i.e. the Sales Manager can view data under his team and a Sales Person can view only his data as an owner. For achieving this the CEO can share the dashboard to the person and then can assign the role. Step 1: Select the dataset from which the row level security has to be applied. There is a new option called SECURITY, which we find once we click on the ellipses (…) next to the dataset. Fig 2: Security Option Step 2: Now click on Create New Role then add the email address of the person (which he uses as login id for his Power BI account) and then click on Add. Fig 3: Adding Members to RLS Step 3: After adding the members click on Rules to provide the filtering of data based on DAX filters. In Rules we have to select the table(s) on which we have to apply filter and then write the DAX Function in the DAX Input box. Finally click on SAVE. Fig 4: Rules Option Step 4: Now we are done with RLS in Power BI, to view the result we can go to the person’s Power BI account and find the result. Note: It may happen that the result is not visible immediately. So for that we can refresh the Power BI dashboard once. In this case the dashboard has been already shared with the Sales Manager who according to the scenario is the Sales person in our case. Fig 5: Sales Manager Level Dashboard Similarly, CEO can apply RLS for a sales person to restrict to his data on dashboard. Fig 6: Sales Person Level Dashboard This is how RLS is achieved using Power BI. Since, this is in Preview there are few limitations too. Limitation: You can define RLS only on the datasets created using Power BI Desktop client If you make a change to your PBIX file, and republish to the service, you will need to re-create RLS Defining RLS in a group workspace is not supported You cannot add security groups or distribution lists to the member list Q&A and Cortana is not supported with RLS
Share Story :
Enhancements to Power BI Direct Query Mode
Prerequisite: Power BI Desktop tool, SQL Server Database Purpose of the setup: Purpose of this blog is to demonstrate connecting SQL as a data source to Power BI Desktop Tool using Direct Query Mode. Procedure: To get this done we have created a Power BI Desktop Tool file with source data of SQL file connected using Direct Query mode. (a) (b) Fig 1: Power BI Desktop Tool file using Direct Query Mode As we know, previously there were many restriction in using Direct Query Mode like we could not view the relationship, cannot create calculated columns and measures etc. But now, there are many updates in Direct Query mode few of which will be demonstrated below. Ability to create calculated columns in Direct Query. Ability to create measures in Direct Query. Ability to change the datatype when connected to Direct Query. Ability to assume Referential Integrity on relationships in Direct Query Ability to create calculated columns in Direct Query Now we can create calculated column in Direct Query using DAX function. Right click on the table area and select calculated column then write the required DAX query to get the column. Below is an example where we have created a calculated column in Direct Query. Fig 2: Create New Column option in Direct Query Mode Fig 3: Created calculated column in Direct Query Mode Ability to create measures in Direct Query Now we can create measures in Direct Query using DAX function. Right click on the table area and select measures then write the required DAX query to get the column. Below is an example where we have created a measure in Direct Query. Fig 4: Create new Measure option in Direct Query Mode Fig 5: Created Measured in Direct Query Mode Ability to change the datatype when connected to Direct Query Now we can also change the datatype in Direct Query. Fig 6: Change Datatype option in Direct Query Mode Ability to assume Referential Integrity on relationships in Direct Query A new setting has been added to the Edit Relationship dialog: a checkbox to “Assume Referential Integrity”. This setting is applied to imported and created data model relationships. To access the setting select the Home tab -> Manage Relationships, select a relationship, and click Edit. Here we have added few tables to our Direct Query file to create some relationship between the tables and selected one relationship to get the Referential Integrity option. Fig 7: Assume Referential Integrity in Direct Query Mode This is an advanced setting, and is only enabled when connecting to the data in Direct Query mode. It will enable more efficient queries to be generated when it is known that: The From column of the relationship is never Null/blank For every value of the From column, there is a corresponding value in the To column By setting the property in these cases, it allows more efficient queries to be sent to the backend database using INNER JOINs instead of OUTER JOINs. This will result in faster loading of dashboards for the end user.
Share Story :
Embedding Power BI Reports in CRM Online Dashboard
Prerequisite: Power BI Desktop Tool, Power BI Online, CRM Online and HTML Purpose of the Setup: Purpose of this setup is to embed interactive Power BI reports in CRM Online Dashboard so that it can be viewed by end users directly within CRM Online instead of login into Power BI account. Find the steps given below for publishing Power BI reports to CRM Online. Step 1: Create a new Web Resource in CRM Online as shown below Step 2: Give this Web Resource a name and select the HTML file which contains the necessary iframe code to access Power BI reports. Save and publish Web Resource created. You can find more about steps for creating an HTML webpage for accessing Power BI reports here. Step 3: Once you create Web Resource, you can find the same in the list of Web Resources as shown in the image below Step 4: Now navigate to Dashboard. Create a new Dashboard and give this Dashboard a name. Select Web Resource to be inserted in Dashboard as shown below Step 5: After that select the Web Resource created and uncheck restrict cross frame scripting option and hit OK Step 6: Once you save and publish Dashboard, you can see Power BI reports as shown below directly from your CRM Online
Share Story :
Publishing Power BI Reports to Web
Prerequisite: Power BI Online report and a sample HTML webpage Purpose of the Setup: Purpose of this setup is to embed interactive Power BI visualizations in your blog or website and share the stunning visuals through your emails or social media communications and reach millions of users on any device, any place, for an engaging experience. Find the steps given below for publishing Power BI reports into your webpage or blog. Step 1: Create a dummy webpage with some content, as shown below so that we can go to iframe page. Step 2: Now, let’s move on to the Power BI Online Service account part. Firstly, open your Power BI Online Account and select the report to be published. Once you select the report, you click on File menu there you will find a new option as Publish to Web. Select the option to proceed further. Step 3: Now, it will show option to Create embed code, click on that and then it will display a warning with Publish option. Click on Publish. Step 4: Then you will get a Success message! The message window will show 2 options i.e. Link you can send in email and Html you can paste into your blog or website. Thus, Power BI has automatically created the link and embed code which can be used to get the dashboard in our webpage. We get different pixel size option also. You can use the link to share with others or you can paste the html code generated here into your blog or website. Step 5: Now, we can paste the embed code into the webpage html code. We have given sample code below: <! DOCTYPE html> <html> <head> </head> <body> <iframe width=”800″ height=”600″ src=”https://app.powerbi.com/view?r=eyJrIjoiZjAzYTNjYzQtNjI1ZC00NTA2LWEyYjQtZjM3YWQ2OGNlYzBiIiwidCI6IjI2YzRiMmU0LWVjMDctNGM3Yi05MmU1LTk3ZjUyODY1ZTk4YiIsImMiOjEwfQ%3D%3D” frameborder=”0″></iframe> </body> </html> Step 6: Now, with this code, when we click on the Power BI Demo button “Demo Registration” on the webpage created initially we will get the report directly on the our webpage. This is the final output that we get. Thus, we have published Power BI report to our webpage. Now, we can view the code and link again through setting icon and clicking on Manage embed codes. We can also delete the report published. To view the code: Setting -> Manage embed codes -> Right click on ellipses against the report -> Get Code </>Get Code will again display the link and embed code. And Delete option will confirm the deleting action and the delete the embed code for the particular report.
