Blog Archives - Page 174 of 179 - - Page 174

Category Archives: Blog

Connect to an external database using X++ code in AX 2012

Posted On November 2, 2015 by Admin Posted in

Below are the steps to be performed, To connect to an external database using ODBC connection, first create a DSN. To create a DSN refer the link https://support.microsoft.com/en-us/kb/300596 Write the below code: Note : The database login credentials are given in the DSN. You can use windows credentials or provide SQL credentials, if required. In the above code, the below lines of code will initialise the connection to the database. sq = new SqlSystem(); loginProperty = new LoginProperty(); loginProperty.setDSN(/*your dsn name here*/); loginProperty.setDatabase(/*your database name here*/); oDBCConnection = new ODBCConnection(loginProperty); The below lines of code will execute the query and store the data in a resulSet. sqlStmnt = strFmt(“select * from ABC”); //write your query here statement1 = odbcConnection.createStatement(); perm1 = new SqlStatementExecutePermission(sqlStmnt); perm1.assert(); myResult1 = statement1.executeQuery(sqlStmt1); We can also execute the stored procedures in the database. Write the below code to do so. odbcConnection = new OdbcConnection(loginProperty); sqlStmt1 = strFmt(“exec [Stored Procedure name]”); perm = new SqlStatementExecutePermission(sqlStmt1); perm.assert(); statement1 = odbcConnection.createStatement(); statement1.executeUpdate(sqlStmt1); CodeAccessPermission::revertAssert(); Suppose you execute more than one stored procedure in the same code, you may get below error. “SQL error description: [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt” To eliminate this error, write below statement after every stored procedure is executed, statement1.close(); If there are multiple external databases on different servers, then you can create separate DSN to connect to each server. This connection information can be stored in a master table containing the DSN name, the database name. The X++ code can then use the connection details from the master table as shown below. loginProperty = new LoginProperty(); loginProperty.setDSN(masterTable.databseName); loginProperty.setDatabase(masterTable.databseName);  

Share Story :

Azure setup using Office 365

In this blog we walk-through how to setup Azure using Office 365. Pre-Requisite Office 365 administrator account. Steps 1. Login to Office 365 portal. Navigate to https://portal.office.com 2. Click on Admin Button 3. Click on Azure AD to setup Azure. This will link your Azure AD to Organization account. Note: Don’t use admin account to setup Azure AD, instate of that you can use client account. Once Azure AD is setup, Account administrator cannot be changed. Fill required details to setup Free Azure Trial Account. Note: Credit card is required for Azure Sign-Up. After sign-up process is completed , navigate to https://manage.windowsazure.com to access Windows Azure.  

Share Story :

Power BI updates

Posted On October 26, 2015 by Admin Posted in

Purpose of this blog is to showcase latest Power BI updates. Prerequisite: Power BI Desktop Tool, Power BI Personal Gateway and Power BI online service account. Purpose of the setup: To learn about latest Power BI updates from October month. Here we will be looking the below mentioned Power BI updates; Read-only Members in Power BI Groups Semi-select support for DAX formulas in Data view   Read-only Members in Power BI Groups: Power BI have introduced a very good feature in Power BI online Service using which the user can create group in Power BI Online account with multiple users and these users can be assigned role as ‘Admin’ or ‘Member’.Let’s have a look. With such Power BI groups the user and his colleagues can come together to collaborate, communicate and connect with their data. The user can create a group either in Power BI or Office 365. Then, the user can invite co-workers into this group workspace where he can collaborate on his organization’s shared dashboards, reports and datasets. Up until now, all members had all the rights. Many of us required read-only membership to the groups so that the users you want to keep up to date but not have edit permissions on our dashboards and reports. So, this update exactly helps us to do the same; let’s have a look on how to do this. Now to begin with, first we’ll create our group by clicking the “+” icon near Group Workspaces. Now let’s add a few users to our group. FYI, Power BI Groups have two roles: Admins and Members. Now here, we will set one user to Admin and the remaining users to Members. We will click on Save to create the group. Now, let’s take a look what difference take place when an Admin and a member login to Power BI Online account and use the created group. As you can see, when person with Admin rights, login, than that user has right to ‘Explore’, ‘Schedule Refresh’, ‘Rename’, ’Delete’ etc. options available. Whereas, when a person with member rights login can only view the reports and Dashboard. Member of the group do not have the Dataset access and thus, cannot perform any edit operation. Thus, now we have option introduced for us to quickly switch a user from Member to Admin and vice-versa which will be very helpful.   Semiselect support for DAX formula in Dataview : Power BI have introduced another very good feature in Power BI Desktop Tool using which the user can create new column using DAX function by directly clicking on the column. Let’s have a look First we have to open the Dataview Screen. Now, before this update user had to manually type the table and the column name to write the DAX function. With this update the user can directly click on the column name and create the DAX function as per the requirement.  

Share Story :

Creation of ACS and SAS in Azure

ACS is an Azure service that provides an easy way to authenticate users to access web applications and services without having to add complex authentication logic to code. While SAS is used to access resources in storage account which includes both primary and secondary keys. Assumptions Azure Account should be added in PowerShell with respective User’s Credentials. Note: For Adding account In Microsoft Azure PowerShell refer to following link: https://www.cloudfronts.com/azure-console-login-logout-using-azure-powershell/ Steps in Microsoft Azure PowerShell for ACS   Step 1: Write ACS Command in PowerShell ACS Key can be created using Azure PowerShell following command, New-AzureSBNamespace GravityDocument -Location “Southeast Asia” -CreateACSNamespace $true -NamespaceType Messaging Command requires Service Bus Namespace Name, Location and Messaging type.     Step 2: ACS Information on Azure Portal This ACS Key information can be seen on Microsoft Azure Account with that corresponding service bus namespace provided in the command above.   Once the Namespace is created the corresponding Connection Information is available at the bottom under Connection Information. Steps in Microsoft Azure for SAS Here for SAS Key we have created Queue inside the namespace.   Step 1: Creation of Queue Now Queue can be created inside this specified Namespace, for that follow the below screenshots       Specify the required details i.e. the Queue name under the specified namespace.   Step 2: Key with Permissions Now since the queue is created SAS key can also be generated with different permissions like Manage, Listen & Send. So under Configure option, under Shared Access Policies specify the name and permission to be given for that particular queue.       Now SAS key for that particular queue can be obtained from Connection Information of Queue with SAS key.   Conclusion Thus, we can Create ACS and SAS requests as per requirements using Microsoft Azure PowerShell and Azure Portal.

Share Story :

Azure Console Login & Logout using Azure PowerShell

User can Add Account on Azure to check or get its Subscription details as well as Remove Account. Let’s see the steps to add account and get subscription details also allows user to select a particular subscription as per requirement. Step 1: Run Microsoft Azure PowerShell as Administration.   Step 2: Add your Microsoft Azure Account To Login to your account write a command Add-AzureAccount. And then popup comes for asking the username. Note: Login through your Live ID   Step 3: Enter Credentials Once the Step 2 is done, it will ask for user’s Credentials. Enter the Username and Password and press Enter.   Once the details are entered, all the subscriptions with their ID and tenants related to that particular user will be listed as shown in the figure below.   Step 4: Get Subscription Details If the user wants to see the entire details for related Subscriptions present in that particular account, type command –GetAzureSubscription. This command lists downs every Subscription with its corresponding details like Subscription Id, Subscription Name, Account, Storage Account etc. as shown in figure below.   Step 5: Select Particular Subscription If user wants to select particular Subscription, type command Select-AzureSubscription (Subscription Name) and then type command Get-AzureSubscription –Current, this command will give the current Subscription details which was selected.   Step 6: Remove Microsoft Azure Account Now if User wants to Logout, then type command –RemoveAzureAccount , once that is done PowerShell asks for ID and confirmation for the same.   Conclusion: Thus User can login and logout successfully with help of Microsoft Azure PowerShell also can set and get its Subscription Details for that particular Account.  

Share Story :

Power BI with Azure SQL Data Warehouse

Prerequisite: Power BI Desktop Tool, Power BI Online Service, SSMS and SSDT Connecting Power BI Desktop Tool with Azure SQL Data Warehouse: With the new Azure SQL Data Warehouse Preview released in June 2015, we can connect to Power BI Online or Desktop tool and create stunning reports/dashboards to visualize and analyze your data. Before connecting with Power BI, we will first move few records in Azure SQL Data Warehouse from SQL Server in Azure VM using SSIS as shown below: Now we can connect to Azure SQL Data Warehouse from SQL Server and query table to view records inserted as shown below: Once data is loaded in Azure SQL Data Warehouse, we can now start creating reports and later publish it to Power BI Online. Find the steps given below to connect to Power BI Desktop tool:   Step 1: Open Desktop tool and click ‘Get Data’ from ribbon. Select ‘Microsoft Azure SQL Data Warehouse’ and click ‘Connect’   Step 2: Enter Server Name, Database and later credentials to connect to your Azure SQL Data Warehouse   Step 3: Once connected, you can select required tables. In our case it is ‘Projects’ and click load   Step 4: Design report and later save & publish it to Power BI Online   Step 5: You can pin visualizations to dashboard and also schedule refresh without the need for Power BI Personal Gateway   Direct Connectivity to Power BI Online from Azure SQL Data Warehouse: We can also directly load tables in Power BI Dataset using option ‘Open in Power BI’ available in Microsoft Azure as shown below:   Once you hit ‘Open in Power BI’, you will be taken to Power BI Online and details like server name and database name will be already provided by default. Later you need to just enter password for database and then you are good to go.   You can create reports from the imported dataset and pin visuals to dashboard similarly as in case of reports published from Power BI Desktop tool. Find the screen capture as shown below:   Since dataset is directly imported in Power BI connecting to Azure SQL Data Warehouse, the dataset is automatically refreshed at regular interval without the need to schedule refresh. Find image shown below:  

Share Story :

Solutions to Frequent JavaScript Errors in CRM 2015 Update 1

Posted On October 12, 2015 by Admin Posted in Tagged in ,

In this Blog we will walk-through how to resolved CRM 2015 update 1 JavaScript Errors. Below is list of common errors. 1. ‘$ is not defined’ or ‘jQuery is not defined’ Description: You will get above error if you have ever used jQuery function in your JavaScript code. In earlier version of the CRM, we can able to access jQuery library directly but with the new form rendering engine it is not possible to access jQuery library. Resolution: Include jQuery library in your Entity Form Libraries. 2. Behaviour changed for Tab (open/close). Description:  Please refer below example Ex. Read state of the Tab (onTabChanged) Below function will return different result based on Legacy/Turbo form Xrm.Page.ui.tabs.get(_tabName).getDisplayState() User Action Legacy Form Turbo Form Tab Close collapsed expanded Tab Open expanded collapsed 3. Cannot read property ‘getAttribute’ of null (Specific to Product Form) Steps to reproduced: Add new product Navigate to products Click on ‘View the data that will be sent to Microsoft’ Description: Error is encountered because CRM internally trying to access any fields which is not present of the form. By doing more researched I found that ‘Valid To’ and ‘Valid From’ field is required on the Form (Turbo Form rendering engine). Resolution: Please follow the below steps Add ‘Valid To’ and ‘Valid From’ in the form Hide both the field and lock this field on the form   4. + button is not working for Opportunity Product SubGrid on Opportunity form Description: Same problem with Quote/Order product SubGrid view. It is basically product bug in 2015 update 1. Resolution:  Add custom HTML web resource for + sign and hide exiting one. Please find below steps to resolved this issue. Hide exiting SubGrid + sign using Ribbon workbench. Add HTML web resource for + sign. You can refer below code. <html> <head> <meta charset="utf-8" /> <title></title> <style> #plusSign { float: right; margin-top: 18px; cursor: pointer;” } </style> <script type="text/javascript" src="ClientGlobalContext.js.aspx"></script> <script> var GridCustomization = GridCustomization || {}; GridCustomization.data = {}; GridCustomization.parameterObject = {}; GridCustomization.openProductForm = function () { Xrm.Utility.openEntityForm(GridCustomization.data.EntityLogicalName, null, GridCustomization.parameterObject); }; GridCustomization.onLoad = function () { GridCustomization.data = {}; GridCustomization.parameterObject = {}; var id = GridCustomization.getQuerystring("id"); var plusSignAttribute = document.getElementById("plusSign"); if (plusSign && !id) { plusSign.disabled = true; return; } id = id.replace("%7b", "").replace("%7d", ""); id = id.replace("{", "").replace("}", ""); var entityNames = GridCustomization.getQuerystring("data"); var entityLogicalName, entitySchemaName, formToBeOpen; if (entityNames) { var tempArray = entityNames.split("%2c"); if (tempArray && tempArray.length === 2) { entityLogicalName = tempArray[0].toLowerCase(); entitySchemaName = tempArray[0]; formToBeOpen = tempArray[1]; } else { Xrm.Utility.alertDialog("Entity Name is not provided.", null); return; } } GridCustomization.data = { EntityLogicalName: formToBeOpen }; ///current record cab be Opportunity/Quote/Order var currentRecord = GridCustomization.retrieveRecord(id, entitySchemaName); if (currentRecord) { var entityLogicalNameId = entityLogicalName + "id"; GridCustomization.parameterObject[entityLogicalName + "id"] = id; GridCustomization.parameterObject["dynad_currencyid"] = currentRecord["TransactionCurrencyId"] ? currentRecord["TransactionCurrencyId"]["Id"] : null; GridCustomization.parameterObject["dynad_currencyidname"] = currentRecord["TransactionCurrencyId"] ? currentRecord["TransactionCurrencyId"]["Name"] : null GridCustomization.parameterObject["transactioncurrencyid"] = currentRecord["TransactionCurrencyId"] ? currentRecord["TransactionCurrencyId"]["Id"] : null; GridCustomization.parameterObject["transactioncurrencyidname"] = currentRecord["TransactionCurrencyId"] ? currentRecord["TransactionCurrencyId"]["Name"] : null; if (currentRecord["OrderNumber"]) { GridCustomization.parameterObject["dynad_ordernumber"] = currentRecord["OrderNumber"]; } } } GridCustomization.getQuerystring = function (key) { var work = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regex = new RegExp("[\\?&]" + work + "=([^&#]*)"); var qs = regex.exec(window.location.href); if (qs == null) return null; return qs[1]; } GridCustomization.retrieveRecord = function (id, entityName) { "use strict"; var req = new XMLHttpRequest(); req.open("GET", encodeURI(Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc/" + entityName + "Set(guid’" + id + "’)"), false); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.send(null); var data = JSON.parse(req.responseText); if (data && data.d) { return data.d; } else { if (data.error) { alert(data.error.message.value); } } return null; } GridCustomization.getLookupId = function (lookupObject) { if (!lookupObject && !lookupObject.Id) { return null; } return lookupObject.Id; } </script> </head> <body onload="GridCustomization.onLoad()"> <img src="/_imgs/ribbon/NewRecord_16.png" alt="New Line Item" onclick="GridCustomization.openProductForm()" id="plusSign"> </body> </html> Pass parameter to HTML Web Recourse Ex. Schema name of opportunity and logical name of opportunity product. Opportunity,opportunityproduct Make sure checkbox for object-type code and unique identifier as parameter is checked. Register below function onSave event of Opportunity Entity Form to reload HTML web resource for first time when Record is created. function reloadHTMLResource() { if (Xrm.Page.ui.getFormType() === 1) { var iInterval = setInterval(function () { if (Xrm.Page.data.entity.getId()) { clearInterval(iInterval); //reload PlusSign var plusSignControl = Xrm.Page.ui.controls.get(“WebResource_SubGridPlusSign”); if (plusSignControl) { plusSignControl.setSrc(Xrm.Page.context.getClientUrl() + “//WebResources/dynad_SubGridPlusSign?data=Opportunity%2copportunityproduct&id=” + Xrm.Page.data.entity.getId()); } } }, 1000); } }; Note: Kindly replace below text with appropriate value dynad_SubGridPlusSign?data=Opportunity%2copportunityproduct : %2c indicate punctuation mark (,) to split two entity name WebResource_SubGridPlusSign : name of HTML web resource added on the form.  

Share Story :

Dynamics CRM 2016 Fall Preview Features

Posted On October 5, 2015 by Admin Posted in

The 2016 fall preview will be a major release for Online and on premise customers which will emphasis on providing end-to-end Customer Engagement solutions from Microsoft Dynamics. This blog article will put light on capabilities of the Dynamics 2016 release. Marketing SMS Marketing SMS Marketing is focused on both – Inbound and Outbound SMS marketing in selected markets. Inbound SMS campaigns can be configured with SMS keywords to receive opt-ins from target marketing lists. Maintain opted-in and opted-users in different lists Outbound SMS campaigns to be used to actually send out marketing SMS messages to opted-in marketing lists. Tracking performance of campaigns.   Email Marketing Email editor to be enhanced with the ability to see generated HTML. Improved editing experience.   Sales CRM For Outlook App Key sales capabilities are delivered within Outlook. Users can create data in the Outlook application itself like Contacts, Opportunities etc. based on the Email in their Inbox. The CRM For Outlook App. will expand support to include Firefox, Safari for Mac & Outlook for Mac.   Excel Integration Leveraging the capabilities of Excel Online from right within Microsoft Dynamics CRM. Data can be saved back to CRM while maintaining work context.   Information Discovery Trending documents from Office Delve will now be available within CRM.   OneDrive For Business OneDrive for Business has been added to give consolidated view of documents across SharePoint, OneDrive For Business and Office 365 groups within the context of a CRM record.   Document Generation Documents can be built out of CRM data. Data can be extracted by a single click by using pre-generated Word and Excel templates. Authors should be able to manage the predefined templates and use wizard-like flow to design custom templates in Word or Excel. Documents generated from CRM will open as a downloaded document. Exception here is, for CRM Online, Excel documents will open in Excel Online.   Cortana Integration Sales activities, accounts and Opportunities now embedded into Cortana. This will be a preview feature in Dynamics CRM Online 2016 customers.   Customer Service Companies these days look to engagement and experiences that proves to be a differentiating factor for competition.   Voice of the customer A new designer to design questionnaires and send the same to customer to get feedback. Customers can take survey on a computer, tablet or a phone. Once a customer completes a survey, Dynamics CRM triggers follow-up actions. Survey records are stored in customer records in CRM so that salespeople can use the same during a service case.   Interactive Service Hub The new online user experience (UX) design provides intuitive end user experience for customer service roles.   Multi-Stream Dashboard These are dashboards targeted at Tier One agents. Users can view and act on their data from My Activities, My Cases etc. Interactive charts are available to give a visuals of key metrics related to work.   Single Stream Dashboard These dashboards are meant for Tier Two agents. This will consist of a single data stream on the left hand side of the view to show an aggregated view of the workload. Additionally, tiles on the right hand side of the dashboard are available to show data in numbers.   Modern and Intuitive Design Data will be found with reduced clicks and navigation. The guided business process flow is further enhance to show process stage information as a fly out. The timeline provides rich time and record based filtering capabilities. Quick Actions on search results.   External Party Access A foundation that allows external parties such as Employees, Customers and Partners to access CRM data with proper permissions.   Knowledge Management Enables organization to create a single source of knowledge. The new editor provides team to keep knowledge articles approved and updated.   Unified Service Desk Provides service organizations the unique ability to deliver a single agent desktop with access to back-end systems. This release improves the install experience by providing upgrades though Windows Updates.   Service Intelligence A PowerBI dashboard provides Customer Service Managers (CSMs) with an aggregate view of customer service performance.   Social Social Listening & Social Analytics You will now also be able to search board/forums and RSS feeds. In addition to existing sentiment and localization languages, Social Listening will be adding 14 more languages.   Intelligent Social Role-based views to help sales people find leads Potential to automatically detect potential leads vs cases.   Group Collaborations & Custom Roles Introduction of processes and workflows centered around groups.   Social CRM Create CRM actions like cases and opportunities from social posts. These records can be created either from Post View or Social Center.   Social Center Ability to publish tweets and Facebook posts from within the Social Center. Author lookup provides details about the post publisher.   Mobile Mobile Offline Support Microsoft Dynamics CRM Online will get full offline experience with mobile. Ability to create, change and delete records while being offline. This will be automatically synchronized once the device goes back online.   Document Management Ability to view documents in the context of CRM records within the mobile apps.   App-to-app Deep Linking Let’s other mobile apps to directly navigate to CRM records using the link.   Modern Mobile Friendly Experience Addition of variety of modern UI controls. Business Analysts have the ability to bind a data field to a new control. For instance, slider and calendar controls among set of 15 controls.   Task Based Experiences Allows users to focus on the Tasks than Data from multiple entities brought together in a single user experience. This will be a preview feature in phones and tablets.   Mobile Client form preview ‘Configure Once, Deploy everywhere’ paradigm makes it easy for business analysts to visualize configuration changes.   Web Resources and IFRAME In the previous release, support for IFRAME and Web Resources was introduced in CRM for tablets and phones as preview feature. This release will provide support for Windows tablets (Windows 10) as well.   Mobile Management Customers will be able to … Continue reading Dynamics CRM 2016 Fall Preview Features

Share Story :

Setup Chat for Parature

Posted On September 30, 2015 by Posted in

Purpose of this blog is to set up Chat Channel for Microsoft Parature. Prerequisite: Parature Enterprise license. Purpose of the set up: Setting up Chat channel for Microsoft Parature will help clients have direct live interaction with Customer Service Representatives (CSR’s) addressing their issues. Steps to set up Chat channel for Parature: Ensure Chat Supervisor Role is being assigned to the CSR. If not assigned, enable the Chat Role and assign Role level as ‘Chat Supervisor’. Go to Setup -> CSR Management -> (CSR) -> Chat Role: Assign the Role and click Save. Enable Pre-Chat questions: Go to Setup -> Chat. Click on Edit. Under Pre-Chat Questions section, enable the Pre-Chat Questions. Under Email Transcript section, enter the ‘From Address’. Click on Update. Create Pre-Chat Questions: Got to Setup -> Chat -> Pre-Chat Questions. Click ‘New Field’. Enter ‘Field Name’ and ‘Field Type’. Field Types available are: Checkbox field. Multiple Check Box field. Dropdown field. Multiple dropdown field. Radio Field. TextArea field. Text field. Email field. US Phone Field. URL field. US Date field. Integer field. International Phone field. See the below figure for reference: Suppose we want to get Additional Note from the end user before the chat begins, we will use text field for getting the note from the user: As you can see in the above image, after selecting the Field Type as Text Field, we get to select the Field Size. Also additionally we can select whether the field should be Required, Shown in Search, Shown in List and Internal by choosing options available on the right side. Click Save. Set up Post Chat Survey: Go to Setup -> Feedback -> Chat Feedback. Enable the feedback. Click on Create new Question. Enter details as shown in below figure: Click Save. By Default the Feedback question will be in Draft state. In order to Activate it, click on activate button as shown in below figure: Go to Setup -> Feedback -> General Settings. Select ‘Show on Chats’. Select your question as Primary Chat Question. Click on Save. Setup Routing Rules for Chat: Go to Setup -> Chat -> Routing Rules -> New Chat Rules Click on ‘New Rule’. Setup your Routing Criteria. For example, we want to setup routing rule based on Account creation date i.e. If Account was created before 1st Jan 2015, Assign it to CSR named ‘Vivek Shah’, we can do it using Routing Rules as below: Click Save. Manage Chat Deployment settings: Go to Setup -> Chat -> Deployments. For Reactive Chat deployment settings, click on ‘Chat Buttons/Links’. For Proactive Chat deployment settings, click on ‘Proactive Chat’. To setup Reactive Chat deployment Click on ‘Chat Buttons/Links’. Enter Deployment name. Select Deployment setting image by clicking in Edit button under ‘Deployment Settings’. Click on ‘Save Images’. Click on ‘Generate Deployment Code’. Check ‘Include Pre-Chat Questions’. Click on Save. To setup Proactive Chat deployment click on ‘Proactive Chat’: Enter name for deployment. Setup Idle time before Proactive Chat Pop-up to 1 minute. Click ‘Generate Deployment Code’. Check ‘Include Pre-Chat Questions’. Click on Save.  

Share Story :

Developing Integration Solutions using Microsoft Azure BizTalk Services

Part 2 – Integrating Microsoft Dynamics CRM Online to Microsoft Azure Service Bus Queue. You can check part 1 here. Scope: To demonstrate the integration through Message-flow from Microsoft Dynamics CRM Online and Azure Service Bus Queue. Pre-requisite: Source: Microsoft Dynamics CRM Online Target: Microsoft Azure Service Bus Queue SDK for Dynamics CRM Online (plugin Registration Tool) Service Bus Explorer to view the message contents received from CRM in Azure SB Queue. Visual Studio to create Custom WCF Service to push the messages from CRM to SB Queue (alternate method) Background: In earlier Blog we had seen steps to Create Microsoft Azure BizTalk Services as well as Developing and Deploying BizTalk bridges on Azure. In this Blog we will see the steps to create Service End Point (Azure Aware Plugin) that will push messages in JSON (default) format whenever a new Account Name is created in CRM to Azure Service Bus. We can View the contents of this message in Azure SB Queue, using Service Bus Explorer Tool (URL for the tool https://code.msdn.microsoft.com/windowsazure/service-bus-explorer-f2abca5a). Alternately we can also create a custom WCF Web Service that will push the messages whenever a new record is created CRM (Entity- Accounts) STEP 01: Creating Azure Aware Plugin in CRM Download the Microsoft Dynamics CRM Software Development Kit (SDK) for CRM Online and on-premises CRM 2015 from URL http://www.microsoft.com/en-us/download/details.aspx?id=44567 After Download, Extract the same and go to Path \MicrosoftDynamicsCRM2015SDK\SDK\Tools\PluginRegistration, and launch the PluginRegistration.exe Select Create New Connection and enter the details for your CRM like Deployment Type as per your CRM, Online Region, User Name and Password and click on Login. You can create CRM Trail account if needed. In the Next Window of Service End Point Registration, provide details for the endpoint Please note in above screen the path is taken from Service Endpoint URL in Azure. For example URL is Then my path is TwoWayService/Demo. The Contract can be selected from dropdown Oneway, TwoWay, Queue, REST, TOPIC and PersistentQueue. After entering the details you need to click on Save & Configure ACS (Access Control Service) We will need below Information in this screen. Management Key Certificate File Issuer Name   Management Key: This key is obtained from Azure Portal. Login to Azure Portal and Create a ServiceBus and a Queue. Here the Service Bus is btscfsnamespace and btscfsqueue is a Queue in it. The Management Key is the Default Key found in the Connection Information for the Service Bus in the Azure Portal. After this you need to Register the Steps in Plugin Registration tool for the Service End point you recently created.   Certificate File: This certificate file is obtained from CRM under Customizations, under Developer Resources. Issuer Name : This is found as in above screen in CRM under Windows Azure Service Bus Issuer Certificate (crm.dynamics.com)   Select Save & Verify Authentication in the Service Endpoint Registration window and close the window after verification test is completed successfully. Step 02: Registering the Step in Plugin Registration Tool In the Message, mention the type of action like Create or Update or Delete etc. Then specify the Entity in CRM. In this case Entity is Account. Execution Mode will be Asynchronous.   Now that the Plugin registration and Step registration is completed. We can login to CRM and create new Account Name in account entity.   When a new Account Name is created, the Message is pushed by the plugin that we created earlier to Azure Service Bus Queue. You can view the Message using the service bus explorer tool. The message remains in the Queue as per the Time-To-Live settings in the Azure portal. After that if there is no further processing, the message gets moved to dead-letter queue. So we have pushed the messages from Account entity in CRM to Azure Service Bus Queue. Azure Service Bus Queue has many features as below FIFO Ordering guaranteed Transaction Support Automatic Dead Lettering Increasing Queue TTL (Max Unlimited) Poison Message Support Message Auto Forwarding WCF Integration Support Message Sessions supported Duplicate Detection functionality. Maximum Queue Size 1 GB to 80 GB Maximum Message Size 256 KB Maximum message by default is TTL 7 days Maximum No of Queues 10,000 (per service namespace, can be increased) Unlimited number of concurrent clients for REST based Maximum throughput upto 2000 Messages/seconds Average Latency 20-25 ms. Azure Service Bus Architecture combined with BizTalk Bridge solution deployed in Azure can provide integration solutions with scalable and monitoring capabilities at affordable cost. In the above steps, there was not coding involved due to SDK plugin registration tool. We can write the custom WCF service that will push the messages from CRM whenever a new Account is created, to Azure Service Bus Queue and then from there these messages can be picked up by BizTalk Service Bridge that listens for the incoming messages in the Queue and then process these messages to external end point or web service that can write the same in to other application or another CRM. We can track the status of these message processing in BizTalk service Tracking option. Creating the WCF service to Push the messages from CRM to Azure Service Bus Queue. Alternately we can write a custom code that will integrate the pre-defined entities and fields from CRM to other applications. Here we need Schema from Source and Target. To achieve this we need to host the WCF code and register the Assembly using the same plugin registration we used earlier. Describing the code for the same is beyond the scope of this blog. Please note the messages that we send to SB Queue through WCF service are by default in XML UTF -8 encoding, and this aspects needs to be handled while creating the processing steps in the Solutions that listens to this messages. In the next article we will have more insight in to the Messages flow in the Queues and the Processing inside the Azure BizTalk Bridges.  

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange