Skip to main content

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 ".*" button will reveal the replace field along with a bunch of different choices to filter results.
Here is what each section does:

  • Find - Input the string that you wish to search for.
  • .* - Toggles the ability to use the "Options" area.
  • Replace - Input the string you wish to use in place of the string in the find field.
  • Replace Button - Execute the replace on the chosen record results.
  • Select All - Chooses all results for bulk replace
  • Search Section - Filter where you want to look for the string.  Use the Exp/Map/Filters to find the string within your attribute fields.
  • Options Section - Used if you are not 100% sure of the string and need to find strings similar to it.
  • Casing Section - Specify if the letter casing should be considered in the find or not.
In the little map I created to test out this new function I used the account entity in Microsoft Dynamics CRM.  I wanted to find all attribute level connections that contained the word "account" but I didn't want it to return my query.  Here is the find with results:
Using replace to simulate changing the connection to a new account source block (i.e. lookup but wanting to maintain the same level mapping.) - Single record:
What I did in the above image was input my replace text in the replace input field and then selected the record in blue.  I then clicked on the replace button.  What you can see is that it only replaced the "account" string on that one record but not the others.  Next, we will look at the bulk replace:
In the above image you can see that all "account" strings have been replaced.  This was done by holding the "CTRL" key and selecting multiple records.  But wait, there is the "Select All" next to the replace button.  Well, because I had already changed the highlight record above before the other 4, I didn't want to update it again.  In this scenario had I used the "Select All" it would have changed it to "accountLookupLookup", which is not what I wanted.

I hope you found this helpful.  Please read SCRIBE's full Release Notes on the Fall 2017 update.

Comments

  1. Nice post, many more productivity features like this coming in 2018. I really enjoy your blog #Scribe-Vibe.

    ReplyDelete

Post a Comment

Popular posts from this blog

Dynamics Set IFrame URL - D365 v8 vs. D365 v9

While doing client work, I came across a problem with setting an IFrame URL dynamically.  The underlying issue was that the sandbox instance is on v8 of Dynamics 365 and production is on v9 of Dynamics 365.  The reason for this was because this client was setup around the time that Microsoft rolled out v9.  Anyways, JavaScript that I wrote to dynamically set the URL of the IFrame wasn't working in the v9 instance.  This was because of changes that Microsoft made to how IFrames are loaded on the form and also changes to JavaScript. Here is my v8 setup: JavaScript runs OnLoad of contact form.  This works because of how IFrames are loaded in v8.  You can also run it on either a tab change (hide / show) or OnReadyStateComplete event of the IFrame.  Depending on your setup you will need to choose which is best for you.  For me in this case it was the OnLoad event. Here is the JavaScript: function OnLoad() { //Get memberid var value = Xrm.Page.data.entity.attri

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 chang

HttpWebRequest For Scribe Online Api

Scribe has made it extremely easy to work with their API.  Currently, in my limited free time, I am working on a reusable C# library to send and receive data from Scribe's API.  Once it is completed for Version 1, I will list it to GitHub, so anyone can consume it and provide feedback on improvements.  There will be a fully built out wiki with how to consume the library with references to the Scribe API documentation.  Also there will be both TDD (Test Driven Development) and BDD (Behavior Driven Development) projects.  This way you can see examples of how to consume the library as well as what I tested before release.  If you are not familiar with BDD, I recommend you check out my blog post in my Dynamics 365 blog , that gives a high level overview of it. Anyways, back to what this post is about.  While working on the library, I came across one small issue around TLS 1.2 and making sure that the web request uses it.  Luckily, this is really easy to set in C#, when using .NET 4.