Dynamics 365 Archives - Page 83 of 88 - - Page 83

Category Archives: Dynamics 365

How to Read/Write data from Azure service bus Topics/MSMQ

We had a requirement where one of our client wanted to perform the below operation. Data will read from the Azure service bus and will be written to windows MSMQ. Similarly, Data will read from windows MSMQ and will be written to Azure service bus. Introduction Client had a third party solution which used to send the data from portal to Dynamics AX, they did not have direct way to send the data to AX, so they did some custom development and used a worker role to send the data to AX. Similarly, they were sending back data to the custom portal. So, they wanted to use the scribe Insight to integrate the two system instead of the worker Role deployed by tem. Description As we know that the data is present in Azure Service Bus Topic from the third Party Application. We can implement the logic and send the data to the Scribe in Queue. Azure Service Bus (Topic) -> Microsoft MSMQ If you want to send the data form Azure service bus Topic, please follow the steps. Read the data from the Azure service bus and write to the Microsoft MSMQ (Scribe Insight Queue) You need to have connection string of the service bus. Topic Name. Subscription Name. MSMQ name. You can use the below code to read the data from Azure service bus Topic private void ReadTopic() { string connectionString = “Endpoint=sb://sample.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=d7wsaddYK1unQjy1WiIdX/4t8M+vtFZPKDluMSzelFpGdadsad=”; SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(connectionString, “topic”, “subscription”); // Configure the callback options. OnMessageOptions options = new OnMessageOptions(); options.AutoComplete = false; options.AutoRenewTimeout = TimeSpan.FromMinutes(1); Client.OnMessage((message) => { try { // Process message from subscription. eventLog.WriteEntry(“Processing data”); var bodyJsona = new StreamReader(message.GetBody<Stream>(), Encoding.UTF8).ReadToEnd(); bodyJson = @bodyJsona; var document = JsonConvert.DeserializeXmlNode(bodyJson, Constants.ROOT); eventLog.WriteEntry(Constants.MESSAGEID + message.MessageId); MessageQueue rmTxnQ = new MessageQueue(FormatName:Direct=OS:” + MachineName + “\\private$\\scribein ); rmTxnQ.DefaultPropertiesToSend.Recoverable = true; rmTxnQ.Send(document, MessageQueueTransactionType.Automatic); message.Complete(); } catch (Exception) { // Indicates a problem, unlock message in subscription. message.Abandon(); } }, options); } The Above function will keep listening and if there is any data coming to specified topic/subscription it will read the data and write to the specified queue. Once that data is in MSMQ you can read and pass the data to AX system since the connector is available in Scribe Insight. Microsoft MSMQ -> Azure Service Bus (Topic) Read the data from the Microsoft MSMQ (AzureOut Queue) and write to the Azure service bus. You need to have connection string of the service bus. You can use the below code to read the data from MSMQ. Since there is no listener, so if there is any data coming to the MSMQ (AzureOut) it will not process immediately if any record processed to the queue. You can use the below function to read data form the MSMQ You need to have connection string of the service bus. Topic Name Subscription Name MSMQ name private void ReceiveMessageFromQueue( ) { MessageQueue messageQueue = null; Message[] messages = null; XmlDocument doc = null; ////XDocument input = null; string dataFormatedJson = string.Empty; string messageTopicName = string.Empty; string connectionString = “Endpoint=sb://sample.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=d7wsaddYK1unQjy1WiIdX/4t8M+vtFZPKDluMSzelFpGdadsad=”; string topicName = “topic”; try { messageQueue = new MessageQueue(“FormatName:Direct=OS:” + MachineName + “\\private$\\azureout”, false); messages = messageQueue.GetAllMessages(); foreach (Message msmqMessage in messages) { Message message = messageQueue.Receive(); messageTopicName = message.Label; message.Formatter = new XmlMessageFormatter(new string[] { “System.String” }); byte[] b = new byte[message.BodyStream.Length]; message.BodyStream.Read(b, 0, (int)message.BodyStream.Length); System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); var returnVal = enc.GetString(b); doc = new XmlDocument(); doc.LoadXml(returnVal); ////input = XDocument.Parse(returnVal); dataFormatedJson = JsonConvert.SerializeXmlNode(doc); TopicClient client = null; try { client = TopicClient.CreateFromConnectionString(connectionString, topicName); client.Send(new BrokeredMessage(formattedData)); client.Close(); } catch (Exception ex) { this.eventLog.WriteEntry(“Message: ” + ex.Message + “Trace: ” + ex.StackTrace + “Data: ” + formattedData); } } } catch (MessageQueueException ex) { this.eventLog.WriteEntry(“Message: ” + ex.Message + “Trace: ” + ex.StackTrace + “Data: ” + dataFormatedJson); } catch (Exception ex) { this.eventLog.WriteEntry(“Message: ” + ex.Message + “Trace: ” + ex.StackTrace + “Data: ” + dataFormatedJson); } finally { messageQueue.Close(); } } Using above two function you can read and write the data from Azure service bus Topic to MSMSQ and similarly you write the data back to the Azure Service Bus Topic from MSMQ. Hope this help you to understand how to send and receive the data from Azure Service Bus Topic and vice versa.  

Share Story :

Integrating Data to Multiple Dynamics AX7 Legal Entities using TIBCO Cloud Integration

Posted On September 7, 2016 by Admin Posted in

Introduction: A single Microsoft Dynamics AX7 database can contain multiple individual company accounts. Each company account in an application uses the same application logic, but has its own set of data for tables. Data that is stored in one company account cannot be accessed from other companies. So, for Integrating data into these multiple individual company accounts, some procedures need to be followed. In this article, we will integrate Customers from Microsoft Dynamics CRM Online to multiple legal entities (companies) in Dynamics AX7, using the TIBCO Cloud Integration as an integration tool. Prerequisite: Microsoft Dynamics CRM Online. Dynamics AX7. TIBCO Cloud Integration Subscription. Purpose of the Setup: Our goal is to integrate Data from Microsoft Dynamics CRM Online to Multiple Companies which are setup in Dynamics AX7 through Batched Process. (It can be done in Real time as well). Steps: Configure a connection for your Microsoft Dynamics CRM Online by providing the required information. Configure a connection for your Dynamics AX7 by providing the required information. In the Company Name field of the connector: You can specify any legal entity name which is present in Dynamics AX7. Or You can specify your company name. We will consider two scenarios: Steps for creating records in multiple companies in Dynamics AX7:Scenario 1: We will create a Customer in CRM Online and integrate it to “DAT” Company of Dynamics AX7. Create a new Solution and specify the Solution name and the Agent. Note: Here, we are using a Cloud Agent. Now create an Advance Map for integrating Customers from CRM Online to Dynamics AX7. Source: Microsoft Dynamics CRM Online Target: Dynamics AX7 While mapping the fields, in dataAreaId field of Dynamics AX specify the legal entity name of AX7 for which the customers should be integrated. Note: In Dynamics AX7 table, the legal entity name for each record is stored in dataAreaId field. Test the Map by creating a Customer in CRM Online and then run the above Solution in TIBCO Cloud Integration. Now go into Dynamics AX7(DAT Company), you can see the customer has been integrated from CRM. Conclusion: If a dataAreaId field is specified, then records will be created in AX7 for that company (irrelevant to the company name specified in the TIBCO Cloud Integration AX Connector) If a dataAreaId field of AX is not specified, then the records will be created in AX for the company specified in the TIBCO Cloud Integration AX Connector. If company name in TIBCO Cloud Integration AX Connector is not present in Dynamics AX7, no records will be created and Scribe will give the following error: Steps for fetching records from multiple companies in Dynamics AX7:Scenario: We will create two Customers in Dynamics AX7 for two different companies (DAT and USMF) and integrate it to CRM Online. Create a new Advance Maps and specify Source and Target Connection. Source: Dynamics AX7. Target: Microsoft Dynamics CRM Online. In the Query block, mention filter criteria as: dataAreaId = “dat “ or dataAreaId =” usmf” Create Customers in Dynamics AX7; one customer in “DAT” company and another in “USMF”. Run the above Map from Scribe. Now go into CRM, you can see the customer has been integrated from Dynamics AX7. Conclusion: If a dataAreaId is not specified, records are fetched from AX7 of the company which is specified in the TIBCO Cloud Integration AX Connector. If a dataAreaId is specified, records are fetched from AX7 of the company which is specified in dataAreaId field. (irrelevant to the company name specified in the TIBCO Cloud Integration AX Connector or User Company Name)  

Share Story :

Download SharePoint file programmatically without sharing it – Dynamics CRM and ADX portal or custom portal

Posted On August 18, 2016 by Admin Posted in

This blog intends to able to download a SharePoint file without sharing it using Dynamics CRM and (optionally on-prem ADX portal since we can use below approach in custom portal as well). Many times we come across scenarios where we want to share SharePoint documents with end users on web portals without give them sharing access from SharePoint. Prerequisite CRM online SharePoint online Web portal code access (ADX on-prem or custom portal). Step 1: Enable SharePoint integration with CRM. Step 2: Custom code to access SharePoint document. Add the following code on the page where you want to show list of SharePoint documents to the end user. CS file code: DataTable dt = new DataTable(); var password = new SecureString(); foreach (var c in “yourpassword”.ToCharArray()) password.AppendChar(c); ClientContext cxt = new ClientContext(“https://yourdomain.sharepoint.com/Site1”); cxt.Credentials = new SharePointOnlineCredentials(“Username”, password); List list = cxt.Web.Lists.GetByTitle(“Document Sharing”); cxt.Load(list); cxt.Load(list.RootFolder); cxt.Load(list.RootFolder.Folders); cxt.Load(list.RootFolder.Files); cxt.ExecuteQuery(); FolderCollection fcol = list.RootFolder.Folders; List<string> lstFile = new List<string>(); DataRow dr; foreach (Folder f in fcol) { if (f.Name == relativeURL) //relative url of the file. { cxt.Load(f.Files); cxt.ExecuteQuery(); FileCollection fileCol = f.Files; foreach (File file in fileCol) { dr = dt.NewRow(); lstFile.Add(file.Name); dr[“fileName”] = file.Name.ToString(); dr[“createdOn”] = file.TimeCreated.ToShortDateString(); dr[“fileURL”] = @”javascript:downLoadFile(‘” + file.ServerRelativeUrl.ToString() + “‘)”; //Append Javascript function to the row. dt.Rows.Add(dr); } } } GridView2.DataSource = dt; //GridView2 being a grid added on your .aspx page. GridView2.DataBind(); GridView2.DataSource = dt; //GridView2 being a grid added on your .aspx page. GridView2.DataBind(); GridView2 in .aspx page: //Javascript function <script type=”text/javascript”> function downLoadFile(link) { window.open(“DownloadFile?url=” + link, “_blank”); } </script> //GridView Code <asp:GridView ID=”GridView2″ runat=”server” Visible=”true” AutoGenerateColumns=”False” BorderWidth=”1px” BackColor=”White” GridLines=”Vertical” CellPadding=”4″ BorderStyle=”None” BorderColor=”#DEDFDE” ForeColor=”Black”> <FooterStyle BackColor=”#CCCC99″> <PagerStyle ForeColor=”Black” HorizontalAlign=”Right” BackColor=”#F7F7DE”> <HeaderStyle ForeColor=”White” Font-Bold=”True” BackColor=”#6B696B”> <AlternatingRowStyle BackColor=”White”></asp:BoundField> <asp:TemplateField HeaderText=”File Name” HeaderStyle-Width=”10%” ItemStyle-Width=”10%” FooterStyle-Width=”10%”> <ItemTemplate> <%# Eval(“fileName”) %> </ItemTemplate> </asp:TemplateField> <asp:BoundField HeaderText=”Created On” DataField=”createdOn” HeaderStyle-Width=”5%” ItemStyle-Width=”5%” FooterStyle-Width=”5%”></asp:BoundField> </Columns> <SelectedRowStyle ForeColor=”White” Font-Bold=”True” BackColor=”#CE5D5A”></SelectedRowStyle> <RowStyle BackColor=”#F7F7DE”></RowStyle> </asp:GridView>   Download File: Add a new blank .aspx page to the portal named ‘DownloadFile.aspx’. This page will act as bridge for portal to connect to SharePoint and authenticate for being able to download the file. This file will contain code to authenticate the SharePoint connection for the portal to be able to download the file. DownloadFile.aspx.cs protected void Page_Load(object sender, EventArgs e) { string partialURL = “”; partialURL = Convert.ToString(Request.QueryString[“url”]); downloadFile(partialURL); } private void downloadFile(string relativeURL) { ClientContext cxt = new ClientContext(“https://yourdomain.sharepoint.com/Site1”); var password = new SecureString(); foreach (var c in “password”.ToCharArray()) password.AppendChar(c); cxt.Credentials = new SharePointOnlineCredentials(“username”, password); int pos = relativeURL.LastIndexOf(“/”) + 1; var fileRef = relativeURL; var fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(cxt, fileRef); var fileName = relativeURL.Substring(pos, relativeURL.Length – pos); using (var fileStream = new System.IO.MemoryStream()) { int extpos = fileName.LastIndexOf(“.”) + 1; fileInfo.Stream.CopyTo(fileStream); StreamToFileAttachment(fileStream, fileName); } } void StreamToFileAttachment(Stream str, string fileName) { byte[] byteBuffer = new byte[str.Length]; str.Position = 0; Response.AddHeader(“Content-Disposition”, “attachment; filename=\”” + fileName + “\””); Response.AddHeader(“Content-Length”, str.Length.ToString()); Response.ContentType = “application/octet-stream”; int len = 0; while ((len = str.Read(byteBuffer, 0, byteBuffer.Length)) > 0) { { Response.BinaryWrite(byteBuffer); } Response.Flush(); } } Conclusion Using above code we can download SharePoint Document without actually sharing document with the end user.

Share Story :

CRM Portal and SharePoint Integration

Posted On August 17, 2016 by Posted in

Pre-requisites: CRM 2016 online Portal SharePoint Online CRM Online 2016 [With System Administrator or System Customizer role] In this blog, we will demonstrate how to user SharePoint Document Library for Document Management Using CRM 2016 Online Portal, where you can upload the document directly to SharePoint. Steps for CRM Portal Share Point Integration Step 1: Enable the document management on the entity. You can refer to “Enable SharePoint Integration and OneDrive for Business in CRM”. Step 2: Open an Entity Web form where you want to display SharePoint document library on the portal. Click on the Insert-tab, click on Sub-Grid. specify a name to sub-grid. In “Data Source” section select “Only related Records” from Records dropdown. Select “Document Location (Regarding)” in Entity dropdown. Select “Active Document Location” from Default View section [shown in Below Image]. Click on Set. Click on save then publish the customization. Step 3: Create Entity form. Once the entity web form is published, you need to assign a proper Entity Permission so that SharePoint document library will render properly in CRM portal. In CRM, navigate to Portal -> Entity Forms and click on New to add new Entity Form to CRM Portal. Specify the name of your new entity form, Select the entity where you want to have the document management feature in portal. Then select the Entity web form where we have added document sub grid. If you want to just render only a tab on the portal, then select the name of an tab. if you want to create new record then select the mode as “Insert” but if you set mode to insert then you will not able to see Document Grid. If you want to edit it then you can set mode to “Edit”. When mode is set to edit then Record Source Type is mandatory to select. You can select Query string from drop down and in related query string parameter select “ID” as shown below. If you want portal user to just view the document, then you can set the Mode to “Read Only”. Make sure you have checked Enable Entity permission. Save this record. Step 4: Entity permission Navigate to portal -> Entity Permission. Click on new to add new Entity Permission to enable SharePoint document library in the portal. Create an Entity Permission record specifying the Document Location entity with Parent scope. Select the Regarding relationship for the Parent Scope Relationship and point the Parent Entity Permission lookup to the previous entity permission record. Give the privileges as per the requirement. Step 5: Create Entity List. In CRM, navigate to Portals>Entity Lists and Create a new record Name the record From the Entity Name dropdown choose Entity, where we want to enable SharePoint document management Enable Entity Permissions Scroll to the bottom of the Entity List and add an Edit Action to the Grid Configuration pane as shown below. Leave the Target Type as Entity Form and choose Lead – Edit from the Entity Form dropdown (Which is created in earlier steps) Save the records. Step 6: Now, login to CRM Portal with admin credential. Add new child page by selecting the Entity List which we have created earlier step. Leave web Form and Entity form as blank. And select page templet as per your site configuration. Step 7:  once you add the entity List to your page you will be able to see the Grid view. click on View details on the record, it will pop up the Entity form which we have created, where you can see the option to upload the file. We can also see the grid containing documents which are uploaded earlier for that record.  

Share Story :

Feedback and Rating in CRM 2016 Update 1

Posted On August 16, 2016 by Posted in

Microsoft Dynamics Update 1, provides a new option to track the feedback and ratings for the records that are present in CRM i.e. allows customers to write feedback and track response or provide rating for a particular record. Select the Entity for which you want to track Feedback for e.g. Accounts. So a new option “Feedback” appears on General Tab under the heading of Communication and Collaboration on Entity Level. Once this option is checked it creates a 1: N Relationship between Account and Feedback Entity. So we open Account Record we can see Feedback option So now we can create a feedback for this record. The first section of the form tracks the basic details like the Title, Comments, Regarding and Source. Regarding tracks information for which the feedback is created. Source by default has two option: Internal and Portal. We can also add options as per our requirement. While the second section on the form tracks the rating for the record with three fields: Rating Minimum Rating Maximum Rating Based on the values provided on the above three fields the normalized value is calculated. By default, the business rule is written on Normalized Rating field present on header of the page. Normalized Rating field can also hold the negative rating value. This happens when the Rating value is less than the Minimum Rating Value. So the business rule can be changed according to the user requirement to avoid the negative normalized values. Also in case of multiple feedbacks a simple rollup field can be used to keep the count for number of feedbacks for that particular record. So this is how we can track the Feedback and Rating in CRM.  

Share Story :

How to register Plugin Dynamically?

Problem Definition How to register the steps of the plugin Dynamically (programmatically). Introduction Generally, after the plugin development, users register the plugin and steps using plugin registration tool provided by the CRM SDK. But, in certain cases it is possible that the user may need to register the step in the plugin dynamically. For example: Whenever a new entity is added it should have an auto number step registered automatically for that entity. Description Here I have created a sample plugin with no logic. I will register this plugin programmatically using console app. To register the plugin programmatically. We need the following steps to be executed. Connect to CRM Create a record of type “pluginassembly” Create a record of type “plugintype” Create a record of type “sdkmessageprocessingstep” Connect to CRM Since we are registering the plugin using console application we need to connect the CRM instance before processing the steps. Organization service is required to create a record in CRM. Please make sure you add the below references to the code. using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Tooling.Connector; using System; using System.IO; using System.Reflection; You can refer the below code the connect with CRM public void ConnectCRM() { string connectionString = “Url=https://XXXX.crm.dynamics.com; Username=XXXX.onmicrosoft.com; Password=**********; authtype=Office365″; // Connect to the CRM web service using a connection string. CrmServiceClient conn = new CrmServiceClient(connectionString); // Cast the proxy client to the IOrganizationService interface. _orgService = (IOrganizationService)conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy; // Obtain information about the logged on user from the web service. Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId; } Create a record of type “pluginassembly” Once the connection is successful, we need to register the Plugin Assembly. Here, we need to provide the physical path of the .dll that we need to register. While creating a record we need to provide the required field value which are listed below. You can find list of attributes required, by looking into the excel sheet provided by Microsoft. You can find this excel sheet in the SDK with the name “EntityMetadata” Attributes required: Code: public Guid RegisterAssembly() { string filePath = @”D:\Plugin_Dynamically\Sample.Plugin.Dynamically\Sample.Plugin.Dynamically\bin\Debug\Sample.Plugin.Dynamically.dll”; Guid assemblyId = Guid.Empty; try { var assembly = Assembly.LoadFile(filePath); string[] props = assembly.GetName().FullName.Split(“,=”.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); Entity assemb = new Entity(“pluginassembly”); assemb[“name”] = props[0]; assemb[“culture”] = props[4]; assemb[“version”] = props[2]; assemb[“publickeytoken”] = props[6]; assemb[“sourcetype”] = new OptionSetValue(0); // 0= database; assemb[“isolationmode”] = new OptionSetValue(2); // 1= none, 2=sandbox assemb[“content”] = Convert.ToBase64String(File.ReadAllBytes(filePath)); assemblyId = _orgService.Create(assemb); } catch (Exception) { throw; } return assemblyId; } Once the Assembly is registered you will able to see the below steps in plugin Creating the plugintype record A plugintype record must be created for each plugin inside the assembly. This can be done dynamically using reflection. We need to specify the below required field You can refer the below code for the registration of Plugin Type. The assemblyId is the Guid created on the earlier step. public Guid CreatePluginType(Guid assemblyId) { Guid pluginTypeId = Guid.Empty; Entity pluginType = new Entity(“plugintype”); pluginType[“pluginassemblyid”] = new EntityReference(“pluginassembly”, assemblyId); pluginType[“typename”] = “Sample.Plugin.Dynamically.Dynamic”; pluginType[“friendlyname”] = “Sample Plugin Dynamically”; pluginType[“name”] = “Register Plugin”; pluginType[“description”] = ” Sample Plugin Dynamically”; pluginTypeId = _orgService.Create(pluginType); return pluginTypeId; } This is how it will look like Creating the sdkmessageprocessingstep record At the end we need to create the step to process the request. For example, if you want to register the plugin for the create of the account entity. You need to have two id retrieved from CRM separately. Sdkmessageid: you will get this in from the sdkmessage entity you need to provide name as shown below. Sdkmessagefilterid: You will find this id using Query shown in the below screen shot You can refer the below code to perform the operation public void SdkMessageStep(Guid pluginTypeId) { Guid messageId = new Guid(“9EBDBB1B-EA3E-DB11-86A7-000A3A5473E8”); Guid messageFitlerId = new Guid(“C2C5BB1B-EA3E-DB11-86A7-000A3A5473E8”); Entity step = new Entity(“sdkmessageprocessingstep”); step[“name”] = “Sdk Message”; step[“configuration”] = “Create account record”; step[“invocationsource”] = new OptionSetValue(0); step[“sdkmessageid”] = new EntityReference(“sdkmessage”, messageId); step[“supporteddeployment”] = new OptionSetValue(0); step[“plugintypeid”] = new EntityReference(“plugintype”, pluginTypeId); step[“mode”] = new OptionSetValue(0); step[“rank”] = 1; step[“stage”] = new OptionSetValue(20); step[“sdkmessagefilterid”] = new EntityReference(“sdkmessagefilter”, messageFitlerId); Guid stepId = _orgService.Create(step); } Once the above step is executed successfully you will see the plugin as shown below Conclusion Even though we have plugin registration tool available to register the plugin using plugin registration tool we can also register the plugin programmatically in certain scenario.  

Share Story :

Contractor access in PM Solution

Posted On July 11, 2016 by Admin Posted in

Summary This feature enables administrator to provide access to contractor using Project Management solution.  User (contractor) should be able to see only assigned projects, tasks, billing codes and easily be able to enter time against project. User will not able to see any value in money fields present on project/task/billing code. If User want to see any money related field, then administrator have ability to customize this requirement according to business need. Only system administrator and manager will able to view all fields value present on project, project task and billing code. Pre- Requisites 1. User with system administrator role in CRM 2. Project Management solution should be installed. If you don’t have solution, please contact support@cloudfronts.com or navigate to for more information. Steps 1. Create user in Office 365 and assigned CRM licenced. (e.g. CRM Essential) 2. Assigned PSM Core role and PSM Project Team Member to user. 3. We will go through two different scenarios in Project Management solution When Contractor logged into the CRM When Manager/Administrator logged into the CRM Scenario 1:  When Contractor logged into the CRM In current scenario user mihir kadam(contractor) is logged in to the CRM. Mihir kadam will able to see only limited entities and web resources based on security permission. We can customize this as per requirement.   Click on Project Entity to see what all details are visible to the user. Mihir kadam is able to view only one project because he has added as team member to only one project by project manager (Kuldeep Gupta). In project entity view, following fields are empty because user does not have enough permission to view this fields. 1. Actual revenue 2. Total budget   If Mihir kadam want to do time entry for any project, then he has to navigate to Timesheet from project management navigation menu.   Scenario 2: When Manager/Administrator logged into the CRM In current scenario user Kuldeep Gupta(Manager) is logged in to the CRM. Kuldeep Gupta will able to see all entities and web resources based on security permission.   Click on Project Entity to see what all details are visible to the user. Kuldeep Gupta is able to view only all projects but modification is allowed only for owned project. Open record to view more details about project. If you notice Kuldeep Gupta is able to read all information including Total budget and actual revenue. Conclusion By using Contractor access in Project management solution any outside consultant can do time entry for ongoing project without knowing company’s actual revenue/ budget/ rate.

Share Story :

Company News Timeline for Phones and Tablets in CRM 2016 Update 1

Posted On June 23, 2016 by Posted in

Introduction This feature enables users to get the latest news about the customers on Phone or Tablets. Users can now view the news related to Account, Lead, Contact, or Opportunity in CRM. You can now view news related to an Account, Lead, Contact or Opportunity in the CRM app on your mobile device. The Company news timeline solution for mobile enables sales and service users to view the latest and most important news in the mobile client from Bing news. The news articles are organized by time (Today, This Week, Last Week) and contain the headline, date/time, and source of the news article.  Important events are detected and categorized (including Management Changes, Earnings Releases, New Offerings, Cost Cutting, Growth, Legal Issues, Acquisitions and Partnerships).   Pre- Requisites User with Global Administration Login can install the solution in the system.   Steps Under Admin Centre Click on CRM. Under Manage all CRM instances, select the instance in which we want to install the solution. Below Screenshot shows the list of solutions that are either installed or uninstalled. Select the Company News Timeline solution, and then click Install. Proceed through Terms of service to accept the terms. Once the installation is completed, Users can view the news related to Account, Contact, Lead and Opportunity in CRM Mobile App. Once you enable the Company News Timeline solution, Customer Data from the address, name, and industry fields of your account records will be directed to Bing. Hence, the Customer Data sent to Bing to fetch the related data. So for example if we have Google as account, so on scrolling to the right hand side in the Mobile App we can see the section with heading as “Active News”. And Under that section user can view all the news related to that particular account. These news articles further are organized as Today, Yesterday or a week before article.  

Share Story :

Enable SharePoint Integration and OneDrive for Business in CRM

Posted On May 23, 2016 by Posted in

The blog article tells user how to integrate SharePoint and OneDrive for Business CRM to store the CRM related documents. Let’s see the steps to enable SharePoint and OneDrive for Business. Pre–requisites User needs to be Office 365 Global Administration to enable Server Based SharePoint. User needs to have Microsoft Office 365 Plan E3. Steps to Enable SharePoint Integration Step 1: Under Default Admin Page, Select SharePoint. Under SharePoint, note down the Public Website URL. Step 2: Under Settings, select Document Management Option. Step 3: Select Enable Server Based SharePoint Integration Once step 3 is done, user needs to provide the URL that was noted in Step 1. Enter the URL and select OK. System will validate the URL provided in previous step and once the status is Valid, click Next. Below Message will be displayed saying that Server Based SharePoint Integration is completed and under Document Management Settings, setup the folders for respective entities.   Step 4: Now Under Document Management Settings, select the list of entities for which document management should be enabled. Step 5: Click Next Now the user can see the status of all entities enabled for document management.   Steps to Enable OneDrive for Business Note: Without Enabling Server Based- SharePoint Integration, OneDrive for Business cannot be enabled. Step 1: Under Settings, select Document Management Option. Step 2: Under Document Management, select Enable OneDrive for Business Option. Step 3: Click on Enable OneDrive for Business Option. Once OneDrive for Business is enabled, user needs to configure folder settings. i.e. user will have to setup where personal documents can be stored. Step 4: So under OneDrive for Business Folder settings, select the folder and click OK. Now say if a user wants to add documents to Account Record. User will open that account record, and then select Documents. Step 5: Under Documents Associated Grid, Upload Document. Step 6: Choose the file to Upload and in CRM folder, select OneDrive. Since the user is uploading files for the first time, he will get a confirmation box where he can change the folder location or continue using the same location as provided under Step 4. Conclusion Thus by using above simple steps, SharePoint of Integration and OneDrive for Business can be enabled in CRM to store all the CRM related Documents.

Share Story :

Salesforce → CRM real-time Integration

Introduction This article is 2nd part of the blog published earlier on CRM and Salesforce integration. In earlier blog, we have seen how we can do real-time integration from Dynamics CRM to Salesforce. In this blog we will see how to do real-time integration from Salesforce to Dynamics CRM. Requirements Let’s assume a real world example. Contoso company tracks their Accounts and Contact details in Salesforce and customer care in Dynamics CRM. So they want allow creation of Accounts and Contacts in Salesforce and those should get created in Dynamics CRM in real-time. Also, they want to handle any Account/Contact update to be reflected in Dynamics CRM. Implementation Approach Below are the steps we will follow to do this integration for an Account entity. To trigger integration from Salesforce, we will implement a workflow rule in Salesforce on an Account object. We will configure this workflow to get triggered on Account creation or update. Add an Outbound Message as an action in above workflow rule to pass the data to integration service which will actually do the integration. The integration service will be hosted on either azure environment or externally accessible web server (e.g. IIS). Once we configure outbound message, we will use the WSDL generated by outbound message and create a web service which will perform below operations: Consume the outbound message Connect to Dynamics CRM Create/update record in Dynamics CRM as per outbound message. Log integration details. In this way, we can achieve real-time integration from Salesforce to CRM without modifying any Salesforce object or without having need to understand Salesforce query language. Implementation Steps Login to Salesforce environment. Create Workflow Rule as per below screenshot (More about workflow rules). Name: Give any rule name which is easy to understand purpose of the workflow rule. Object: Select Account object as we are doing integration for Account create/update. Select Evaluation Criteria as ‘Evaluate the rule when a record is created, and every time it’s edited. In Rule Criteria section, Select Run this rule if the following as ‘formula evaluates to true’. In formula, put 1 = 1 and click on Save. We are putting this condition to allow all records and not filter any. Add an outbound message as an action as per below screenshot in the workflow rule. Name: Give any name which is easy to understand purpose of the message. Object: Select Account. Endpoint URL: <hosted web service URL with asmx extension at the end> Select Send Session ID checkbox. Select All Columns. Once created, you need to create a web service project. Use below link to do the same. https://developer.salesforce.com/page/Creating_an_Outbound_Messaging_Notification_Service_with_CSharp_and_.Net_Framework_2.0 Once you are ready with above ASMX web service, write C# code to connect to CRM and consume the Outbound message as shown in above blog.   Functional Flow chart  

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange