Online Services Archives - Aric Levin's Digital Transformation Blog https://aric.isite.dev/category/online-services/ Microsoft Dynamics 365, Power Platform and Azure Thu, 12 May 2022 03:26:05 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.3 JavaScript Web Files in CRM Portals https://aric.isite.dev/dynamics/post/portals-web-files/ Thu, 03 May 2018 04:31:00 +0000 https://aric.isite.dev/index.php/2018/05/03/javascript-web-files-in-crm-portals/ As in any project, either CRM or Web application, the requirement to have JavaScript libraries that can be accessed across multiple files is common. In Dynamics 365 Portals, the use of Web Files is how we have the ability of create files that will be shared across the entire portal, or possibly only sections of the Portal. These common files are stored in the Web Files entity. This issue is that when we try to add a JavaScript web file, we get an error that the attachment is blocked. Web Files use the Notes entity to store the actual files that we add to the Web File entity. 

The post JavaScript Web Files in CRM Portals appeared first on Aric Levin's Digital Transformation Blog.

]]>
As in any project, either CRM or Web application, the requirement to have JavaScript libraries that can be accessed across multiple files is common. In Dynamics 365 Portals, the use of Web Files is how we have the ability of create files that will be shared across the entire portal, or possibly only sections of the Portal. These common files are stored in the Web Files entity. This issue is that when we try to add a JavaScript web file, we get an error that the attachment is blocked. Web Files use the Notes entity to store the actual files that we add to the Web File entity.

The error that we get when we attempt to do this is:

Attachment blocked: The attachment is not a valid file type.

How do we resolve this? The standard Dynamics 365 System Settings is configured to block a large set of extensions for uploading attachments for both email and notes, and this includes of course the .js attachment. The reasoning behind this is that JavaScript extensions could be used to execute unsafe code. Since the JS files that we want to add was created by us, and most likely will not cause any harm, we can modify this System Setting to allow us to upload js files.

If we navigate to Settings -> Administration, and click on System Settings, the System Settings dialog will pop up. On the General tab, under the section Set blocked file extensions for attachments, there is a long list of file extensions that are blocked from being uploaded to notes (annotations).

System Settings - Attachment Extensions

Find the js extension and remove it (include the semicolon that follows it – js;). Remember that it appears after the jar extension. Press OK to Save your changes.

Once you have made the change, you should be able to upload your JavaScript file again to the Web Files entity. If you created the Web File record previously simple update it and add the new attachments. You should keep only a single attachment per web file to simplify things.

After the Web File has been added, you can add the files to your code, by modifying the Tracking Code Content Snippet. Navigate to Content Snippets entity, and Find Tracking Code record. Open the record, and in the Value enter the following code:

<script src="/folder/filename.js"></script>

At this point, the js file should be accessible on the portal, and the functions of the js file can be accessed from within web templates or web pages.

The post JavaScript Web Files in CRM Portals appeared first on Aric Levin's Digital Transformation Blog.

]]>
Dynamics 365 and SharePoint Online Integration – Azure Configuration https://aric.isite.dev/dynamics/post/dynamics-365-sharepoint-online-integration-azure/ Mon, 26 Feb 2018 00:09:00 +0000 https://aric.isite.dev/index.php/2018/02/26/dynamics-365-and-sharepoint-online-integration-azure-configuration/ The next part of this solution is to configure Microsoft Azure. If you do not have an Azure account, you can create a Trial account of Pay as you go account. If you are a partner or have a BizSpark subscription you get a certain amount of credits per month, which should be more than enough for the type of implementation that needs to be done using Azure.

The post Dynamics 365 and SharePoint Online Integration – Azure Configuration appeared first on Aric Levin's Digital Transformation Blog.

]]>
The next part of this solution is to configure Microsoft Azure. If you do not have an Azure account, you can create a Trial account of Pay as you go account. If you are a partner or have a BizSpark subscription you get a certain amount of credits per month, which should be more than enough for the type of implementation that needs to be done using Azure.

The first thing that we need to do is create an Application, so that we can register the Client Id for the new Application. In order to create an application. In your left hand navigation click on Azure Active Directory, and select App Registrations from the list of options. Click on New application registration button shown below.

Azure App Registration

In the Create window, enter a Name for the application, the Application Type (Native), and the Redirect Uri (not really used in this case), and then click on the Create button. Once the application is registered, you will be able to see its properties in the Registered App window. You will need the Application Id to store in the Client Id window. Next, we will need to provide the application permissions to the SharePoint server. Click on the Settings button in the Registered app Pane. This will open the Settings window.

Azure App Registration

From there click on the Required permissions under API ACCESS section. By default you will only have the Windows Azure Active Directory permissions. Click on the Add button to add additional permissions. We will need to add Office 365 SharePoint Online (Microsoft.SharePoint) permissions. Select Office 365 SharePoint Online, and check all the required permissions. At the least, you will need the following permissions:

Azure App Registration Permissions

Now that we have registered the App in Azure, we need to create an App Service with Azure. The type of App that we need to create is an Api app, which allow the connectivity between Azure and SharePoint.

In the Microsoft Azure navigation click on App Services. This will display the AppService navigation as shown in the following image. Click on the Add button.

Add New App

In the Web Apps section shown below, click on the More button in order to see the selection for API App.

Select Api

Click on the API App link, and then click on the Create button.

Select API App

This will display the new API App window. Enter the name of the App, Subscription, Resource Group (either Add New or use an existing one) and the App Service Plan/Location. Click on Create button to finalize the Creation of the App. Once the app is created we will need to add some Application Settings to it as well as set up Cross-Origin Resource Sharing (CORS), which will allow Dynamics 365 code to execute the API functions.

In the Application Settings window, we will enter the following settings (as shown in the image and table below):

App Settings

Application Setting Application Setting Description
MAX_ITEMS_PER_FOLDER Enter the maximum number of files that can be entered in a particular SharePoint folder. This should be no more than 5000
SITE_URL The root url of your SharePoint environment. This will be in the format of: https://SPROOT.sharepoint.com
WEB_FULL_URL The url of the SharePoint document library. This will be in the format of https://SPROOT/sharepoint.com/sites/doccenter
ClientId The client id (or application id) that is generated by Azure for this application. See previous instructions
RedirectUrl You can set this as the Url of your CRM environment
Email An email account with access to SharePoint. This should most likely be set as a service account and not an individual user account
Password The password of the email account specified above. If you encrypt the password, you will have to modify the code that authenticates against SharePoint to decrypt the password

Finally, you will have to set up CORS, so that only CRM has access to this API. The screenshot below shows you the configuration of CORS. All that is required is the Url of the CORS

CORS Setup

In the next article of the series, we will go over the Web Api, and uploading it to Azure.

The post Dynamics 365 and SharePoint Online Integration – Azure Configuration appeared first on Aric Levin's Digital Transformation Blog.

]]>
Dynamics 365 and SharePoint Online Integration – SharePoint https://aric.isite.dev/dynamics/post/dynamics-365-sharepoint-online-integration-sp/ Sun, 25 Feb 2018 21:25:00 +0000 https://aric.isite.dev/index.php/2018/02/25/dynamics-365-and-sharepoint-online-integration-sharepoint/ The easiest part of this solution is to configure SharePoint. There is no custom development involved, but just the creation of the document library, the folders, custom lists and the attributes that we want to use for the solution. We will need to start with the creation of the custom lists as they will be used for the creation of the lookup attributes.

The post Dynamics 365 and SharePoint Online Integration – SharePoint appeared first on Aric Levin's Digital Transformation Blog.

]]>
The easiest part of this solution is to configure SharePoint. There is no custom development involved, but just the creation of the document library, the folders, custom lists and the attributes that we want to use for the solution. We will need to start with the creation of the custom lists as they will be used for the creation of the lookup attributes.

For our particular scenario, we create a Document Library called Document Center with a relative url of doccenter. In the root folder of the document center we created the following attributes (in addition to the default attributes):

MasterId, MasterNumber, MasterName, DocumentType

SharePoint Attributes

We also created 3 folders for ACCOUNTS, CASES and CONTACTS, though for the purpose of this series, we will only demonstrate the ACCOUNTS subgrid.

We also create a list called DocumentTypes which will be used by the DocumentType attribute to specify the type of document this is. No special configuration was done to the Document Type list, as we are using only the Title field.

We used the Master Id, Master Number and Master Name fields so that they can be used across the board for the various entities, however you can add additional fields or change them based on your requirements.

In the next section we will review how to configure the Microsoft Azure web site in order to have Azure connect to SharePoint.

The post Dynamics 365 and SharePoint Online Integration – SharePoint appeared first on Aric Levin's Digital Transformation Blog.

]]>
Dynamics 365 and SharePoint Online Integration – Overview https://aric.isite.dev/dynamics/post/dynamics-365-sharepoint-online-integration-overview/ Sun, 25 Feb 2018 21:05:00 +0000 https://aric.isite.dev/index.php/2018/02/25/dynamics-365-and-sharepoint-online-integration-overview/ Over the past few years we have encountered multiple scenarios where the Out of the Box SharePoint Integration component, did not fulfill the requirements of our clients using Dynamics 365 and SharePoint. Some of these had to do with capturing additional attributes in SharePoint, and sharing similar data across different entities in SharePoint.

The post Dynamics 365 and SharePoint Online Integration – Overview appeared first on Aric Levin's Digital Transformation Blog.

]]>
Over the past few years we have encountered multiple scenarios where the Out of the Box SharePoint Integration component, did not fulfill the requirements of our clients using Dynamics 365 and SharePoint. Some of these had to do with capturing additional attributes in SharePoint, and sharing similar data across different entities in SharePoint.

We ended up developing a solution that will solve some of this problems by using Azure API and the SharePoint Client Tools (can also be done with SharePoint API of course), and developing a custom web resource that will call the Azure API functions provide the ability to upload files to SharePoint as well as download files from SharePoint.

The image below shows the end result of the SharePoint Grid inside of a CRM entity.

SharePoint Grid

I will provide a separate post for each of the following portions of the application is the next week (or so), as well as post a copy of the different portions of the Source Code on github.

This series will include the following articles:

The post Dynamics 365 and SharePoint Online Integration – Overview appeared first on Aric Levin's Digital Transformation Blog.

]]>
Logic Apps and Azure On-Premise Data Gateway – Part II (Configuration) https://aric.isite.dev/azure/post/logic-apps-on-premise-data-gateway-ii/ Mon, 12 Feb 2018 01:33:00 +0000 https://aric.isite.dev/index.php/2018/02/12/logic-apps-and-azure-on-premise-data-gateway-part-ii-configuration/ In the second part of the installation of configuration of Azure Logic Apps with the On-Premise Data Gateway, we will review the requirements that are need inside of the Azure Portal. This will cover the creation of the Data Gateway resource, the Logic app and the creation of the Trigger and Action inside of the Logic App designer.

The post Logic Apps and Azure On-Premise Data Gateway – Part II (Configuration) appeared first on Aric Levin's Digital Transformation Blog.

]]>
In the second part of the installation of configuration of Azure Logic Apps with the On-Premise Data Gateway, we will review the requirements that are need inside of the Azure Portal. This will cover the creation of the Data Gateway resource, the Logic app and the creation of the Trigger and Action inside of the Logic App designer.

The first thing that has to be done is the Creation of the Azure Gateway resource. In Microsoft Azure, click on the + button in the left navigation area, and under Enterprise Integration select On-premises data gateway (as shown in the image below). This will allow the creation of the gateway that will be used for the connection and logic app.
Create On-Premises data gateway in Azure Portal

To create the new Gateway, we will need to provide the following information:
·         Name: Enter a name for your gateway resource.
·         Subscription: Select the Azure subscription to associate with your gateway resource. The default subscription is based on the Azure account that you used to sign in.
·         Resource group: Create a resource group or select an existing resource group.
·         Location: Select the region you registered your gateway in.
·         Installation Name: If your gateway installation isn’t already selected, select the gateway registered.

The screenshot below shows the Create Connection Gateway screen for the new On-Premise data gateway:
Create Gateway Connection in Azure

Next, we have to create the new Logic App. To create a Logic app, navigate against to New Resource and select Enterprise Integration. From there select Logic App in order to create a new logic app. You will need to provide the name of the Logic App, Subscription, Resource Group and Location:
Create New Logic App

Once you click on the Create button of the Logic App, the Logic App will be created, and we will then need to launch the designer. When the Logic App launches select the Start with Empty Designer option to create a new designer. Since we are using SQL Server as the source for this process, we will need to choose a SQL Server Triger. From the list of available connectors, select SQL Server. If you don’t see it in the list, in the search options enter SQL Server in order to show all the triggers and actions for SQL Server. The screenshot below shows the trigger and actions results that we will see:
SQL Server Triggers and Actions

Select the SQL Server – When an item is created Trigger. We will need to update the trigger to specify the conditions that we are looking for. This will include the name of the SQL Server table and the interval in which we will want to query the table for additions. This means that if we want the Logic App to check SQL Server for any additions every 2 minutes, we will enter 2 in the interval box, and set the frequency to minutes. The frequency can be adjusted to seconds, minutes, days, months, etc… If you want to select a different connection than the connection that is selected, you can click on the Change Connection link to select a different location (as shown below):
Create Trigger for SQL Server

After the Trigger has been established, we need to add a new step in the Logic App Designer. This step can be a condition (if we need to branch out and allow several options), or we can select an action directly. In our case we will select an Action for Dynamics 365. The logic will basically be as follows: When a new record is created in my On-Premises SQL Server database, create a Contact record in Dynamics 365 (Online).

In the search window for adding the new step/action type Dynamics 365 to select Dynamics 365 as the connection for an Action. Under the Actions tab/link select Dynamics 365 – Create a new record.
Create a Dynamics 365 Action

This will open the Create new record window. If we have mulitple instances (organizations) in our Dynamics tenant, we need to select which instance we want to perform the action against, and select the name of the entity (Entity Name). If we want to enter regular text in any of the fields shown in the designer, we can simply type the text in those fields.
If we need to enter data from the SQL Server table (source/trigger), we can use the Dynamic Content link to add the content from the created SQL database record, by click on the cell, and selecting the appropriate fields from the Dynamic Content Pane. We can also enter expressions from the Dynamic Content Pane.
Dynamic Content in Logic Apps

After all the required fields have been added to the designer, save the changes and run the Logic App.

Nothing will happen in Dynamics 365 under a record is created in the SQL Server database, which will synchronize the data during the time interval specified.
In order to test the process, create a record in the SQL Server database that you created. Wait for a couple minutes (based on the interval specified), and navigate to the CRM instance that you specified. You should see the newly created record there.

The post Logic Apps and Azure On-Premise Data Gateway – Part II (Configuration) appeared first on Aric Levin's Digital Transformation Blog.

]]>
New Exchange Sync Community Edition available now for 2018 https://aric.isite.dev/dynamics/post/exchange-sync-community-edition/ Fri, 05 Jan 2018 00:30:00 +0000 https://aric.isite.dev/index.php/2018/01/05/new-exchange-sync-community-edition-available-now-for-2018/ A lot of us used several products throughout the years to synchronize between Contacts in CRM with the Contacts in the user's Outlook folders, whether with the Outlook Addin, Server Side Sync or other third party products. In 2011, we released the first version of Exchange Sync, which allowed synching Marketing Lists and CRM Contact records with Exchange Distribution Groups and Mail Contact records. The product has since then been sold in the US and Europe, and gone through various iteration as CRM and Exchange evolved.

The post New Exchange Sync Community Edition available now for 2018 appeared first on Aric Levin's Digital Transformation Blog.

]]>
A lot of us used several products throughout the years to synchronize between Contacts in CRM with the Contacts in the user’s Outlook folders, whether with the Outlook Addin, Server Side Sync or other third party products. In 2011, we released the first version of Exchange Sync, which allowed synching Marketing Lists and CRM Contact records with Exchange Distribution Groups and Mail Contact records. The product has since then been sold in the US and Europe, and gone through various iteration as CRM and Exchange evolved.

Exchange Sync provides synchronization across the different versions of CRM (On-Premise, Partner Hosted and Online) as well as the different versions of Exchange (On-Premise, Hybrid/ADSync and Online). The way the application works is that it synchronizes between Marketing Lists (or custom entities), which contains lists of Contacts, and creates Distribution Groups in Exchange and adds the Mail Contacts to those Distribution Groups in Exchange.

CRM to Exchange Synchronization Options

Why do we need this?

The purpose of Exchange Sync is that a lot of organizations do not send their emails from CRM, but send it from Outlook, and they need the ability to send their email to a particular group of Contacts (or Distribution Group). The Marketing List in CRM maintains the list up to date, and the Exchange Sync application synchronizes with the Exchange Address Book, so users can send emails from Outlook containing the latest list of users.

To learn more about the features of the Exchange Sync application, click here.

What is the Community Edition?

Although the release is available in multiple editions, we decided to release an edition of the product to the Dynamics Community Free of Charge. This edition contains many of the features of the Full product with a few limitations, which include some features, deployment options and automation.

Deployment Options: Available for Dynamics 365 Online and Exchange Online Only.

Automation: No Automation is included in the Community Edition. Sync must be run manually be user running the application.

Support: As this is a free release of the product, support will only be provided via email (or web forum)

If you would like to try out the community edition, fill out the request for here:

https://www.briteglobal.com/dynamics/get-exchangesync-ce

The post New Exchange Sync Community Edition available now for 2018 appeared first on Aric Levin's Digital Transformation Blog.

]]>