Skip to main content

Posts

Showing posts from October, 2017

October 2017 SCRIBE Online Feature Spotlight - Find and Replace

On October 26th, 2017 SCRIBE pushed out the fall update to SCRIBE Online.  One of the first changes I took notice of was the "Find & Replace" feature.  For those who are not aware, in the past when importing a map backup (JSON or XML) into a different environment to use it as a template you would need to rename connections.  This required going into the JSON or XML file to do it in bulk.  For someone not versed in either, this could be an intimidating task. Well, SCRIBE has made this task even easier and in my opinion even safer.

First, if you don't see the "Find & Replace' in your mapping, please clear your cache of your browser and then close it.  Reopen your browser and you should see it now.  If you are still don't see it or see error messages, check out this troubleshooting article SCRIBE posted that can help.

When clicking on the Find and replace you will see the following:
Clicking on the down arrow between the search input and the ".*&q…

Updated To Version 1.7 - Azure Blob Storage For Storing Microsoft Dynamics 365 Attachments

In another post I talked about using Azure Blob Storage to store CRM attachments in Azure rather then in CRM.  Today I installed the app in a clients CRM system and found that Microsoft Labs updated the App to version 1.7.  This change had a lot of updates from UI to how to setup notes attachment movement.  Also they now allow for moving of existing attachments.  Here is the updated steps:

1) Go To AppSource
2) Install the Attachment Management App by clicking the "Get It Now" button under the image.
3) While its installing go to Azure and setup your blob storage account.
4) For each CRM instance you will need to setup 2 containers in your blob storage.  One is for email attachments and the other is for notes attachments.  So if you have a production instance and sandbox instance you will need to have 4 containers (DevEmails, DevNotes, ProdEmails, ProdNotes).  If you want to separate note attachments by entity, then create one container per entity.  The DevNotes or ProdNote…

Azure Blob Storage For Storing Microsoft Dynamics 365 Attachments

In my Living In SCRIBE Online Blog I talked about work I did to migrate CRM 4.0 on-premise to Dynamics 365 using SCRIBE Online.  In that blog I mentioned how there are about 80 GB worth of attachments that had to be moved into the cloud.  Well this could quickly get expensive if we stored them directly in CRM.  Also, this client wasn't using SharePoint.  So what option do we have to store this data so end users can access the data?  Why not use Azure Blob Storage?

Microsoft has an app in AppSource to move attachments from CRM to Azure blob storage.  Not only does it all for this, but it also has a web resource in it so you can allow for bulk uploads.  Here is how to set it up:

1) Go To AppSource
2) Install the Attachment Management App by clicking the "Get It Now" button under the image.
3) While its installing go to Azure and setup your blob storage account.
4) For each CRM instance you will need to setup 2 containers in your blob storage.  One is for email attachments …

SCRIBE Connector Development - Handling Array List

Are you working on creating a connector with SCRIBE's CDK?  In your connector do you have an array of strings or list of  strings that you need to pass?  SCRIBE makes this easy to do within the CDK and SCRIBE Online.

I came across this scenario on a connector I was creating that passes a JSON message to an API.  In the JSON message it had a list of strings for entity ID's. Here is an easy way to accomplish this:

1) Create you Property Definition as past or your Object Definition.
1: new PropertyDefinition 2: { 3: Description = "Use TOLIST() to pass in a list of entity id's.", 4: FullName = "Entity IDs", 5: IsPrimaryKey = false, 6: MaxOccurs = 1, 7: MinOccurs = 0, 8: Name = "PublishTo", 9: Nullable = true, 10: NumericPrecision = 0, 11: NumericScale = 0, 12: PresentationType = "string", 13: PropertyType = typeof(string).Name, 14: Use…

Using SCRIBE Online To Migrate From CRM 4.0 to Dynamics 365

Recently I had a client that needed to be migrated from CRM 4.0 on-premise to Dynamics 365 online.  First, I want to say that we opted to not do the upgrade to CRM 2011 on-premise to CRM 2013 on-premise to CRM 2015 on-premise to Dynamics 365 on-premise because the client wanted to start fresh with CRM customization's.  So personally, it would have been a waste of time to do that upgrade process.

The following issues where identified with the data migration:
1) CRM 4.0 is no supported by SCRIBE Online.
2) The server OS that CRM 4.0 and SQL Server ran on was not supported.
3) The version of SQL Server was no supported.

How am I going to migrate this data? Hmm.....

The solutions:
1) The RDP Terminal Server I am using has a supported server OS.
2) I am able to connect to SQL Server CRM 4.0 Database with ODBC.
3) Install SCRIBE On-Premise Agent on the Terminal Server and use the ODBC connector to retrieve the data.

By using the ODBC connector I could access the data in SCRIBE Online in a…

Creating Pre and Post Build Events For Connector Creation

While building a custom connector using the CDK I found it time consuming to have to manually stop the SCRIBE Agent service, copy the connector .dll to the connector folder in the agent folder and restart the service. To over come this I added some pre and post build functions to my project in Visual Studio. Here is how you setup your development environment to automate all this:

1) Right click on your project and go to properties.
2) On left side go to Build Events.
3) In "Pre-build event command line" input this:
1: net stop "Scribe Online Agent" 2: Exit /b 0 4) In "Post-build event command line" input this:
1: copy /Y "$(TargetDir)$(ProjectName).dll" "C:\Program Files (x86)\Scribe Software\AGENTNAME\Connectors\CONNECTORNAME\$(ProjectName).dll" 2: net start "Scribe Online Agent"
Replace AGENTNAME with the name of your agent and CONNECTORNAME with the name of the folder where you place the DLL file.
What this …

Using Session Memory with CRM Portals

Recently while doing some client work, we noticed that CRM Portals does a post back when adding information within a sub-grid on an entity form.  Why is this an issue?  Because, if you have input fields on the form, these values are not written into  CRM till the save button at the bottom of the form is clicked.  So if a user inputs anything into the sub-grid after they fill in the fields, the post back action will remove what the user input.  This can make for a bad user experience.  To over come this, we can use session memory to temporarily store the values till the browsing session is ended.

To use session storage the first thing we will need to do is register onChange handlers to update the values the session memory when the user changes a value.  Here are some examples of onChange handlers written in JQuery:
1: $(document).on('change', '#CHECKBOX ID', function () { SetSessionValue("#CHECKBOX ID") }); 2: $(document).on('change keyup paste', &#…

CRM Portals OnChange Event For DateTime

Occasionally when working with CRM Portals you may run into the need to get the OnChange event for a date time field.  Because of the way that CRM Portals renders date time fields this is slightly more complicated then working with text boxes, check boxes and pick lists.  During my process I ended up reaching out to Microsoft for help on this and below are the steps they provided to help me with this problem:

1) Click on the date time control
2) Press F12
3) In console type $('div.control') and hit enter (this will give you a list of div controls)
4) Locate the div control for the date time field














5) Go to the entity form or web page in CRM and add the following code snippet (replace the 2 with the number your div control is located at):

1: $(document).ready(function () 2: { 3: var dpcontrol = $('div.control')[2]; 4: $(dpcontrol).on("dp.change", function (e) 5: { 6: alert("On change Event Triggered")…