Skip to main content

Using Stream Deck with SCRIBE

Because I am doing a lot of work with SCRIBE Online, I find myself trying to come up with solutions to speed up my work.  One solution I came up with is using my Stream Deck to automate some of the commands I type within SCRIBE Online.  Before we go to far let me bring you up to speed on what the Stream Deck is.

The Stream Deck is manufactured by elgato.  It is a small 15 key keyboard that can be customized.  What I like about it is how the keys are clean looking and can be easily changed by the application.  This hardware is marketed towards video editors and game streams (both of which I don't do).   I got it because of the number of keys it has, the ease at which you can update it, and because I didn't want to use macro's on another external keyboard with paper labels stuck on the keys.

I will say that I am not only using the Stream Deck for just SCRIBE, but other applications like Visual Studio, Microsoft Windows shortcut keys, and to launch other applications.  The reason I am pointing it out here is because to use it with SCRIBE I did have to do a little programming as it can't launch bat files like I was hoping.  This meant I reached into my C# tool kit and had to write a few small programs to accomplish what I wanted.

Since SCRIBE Online run's in the browser, I wanted to automate the process of typing out commands like, "IF(ISNULLOREMPTY(entity.attribuate), "TRUE", "FALSE")".  In the past I would have notepad open with that string pasted in it, then I would have to move my mouse over to that, copy it, paste it in the browser and then update it with the proper syntax.  That is easy enough but time consuming when doing this repeatedly.  So now with my Stream Deck I am able to simple press a button and it put that string value on my system clipboard, then I simply press another button and it pastes it where my cursor is.  This means I don't have to type it out and I don't have to leave SCRIBE Online to go over to notepad to copy it.  This saves me a few seconds that can add up over time when working on large integration or migration projects.

Here are the following commands I have built so far into my Stream Deck:

  • IF(ISNULLOREMPTY(),,)
  • IF(AND(),,)
  • IF(OR(),,)
  • CONCATENATE()
  • FORMAT("yyyy-MM-dd",)

Also all of those where just pasted to this thread using the Stream Deck in about 2 seconds.  This is what my SCRIBE folder on the Stream Deck looks like right now:


I will be changing the icons to make them stand out from each other a little more, but wanted to get it up and running really quickly.   The middle row are using small applications that I wrote and published to GitHub for anyone else that might have a Stream Deck and want to do this.  Here is the link to my GitHub project.

Here are some other links you might find interesting:
Amazon to purchase Stream Deck
Open Source .NET Library (Unofficial)
Stream Deck Website

I would be interested to hear if anyone else is using this device and if they have any ideas on how else we could use it for SCRIBE Online.

Comments

  1. Interesting usecase but for test snippets, i would always recommend AutoHotKey :)

    ReplyDelete

Post a Comment

Popular posts from this blog

Validating User Input In CRM Portals With JavaScript

When we are setting up CRM Portals to allow customers to update their information, open cases, fill out an applications, etc. We want to make sure that we are validating their input before it is committed to CRM.  This way we ensure that our data is clean and meaningful to us and the customer. CRM Portals already has a lot validation checks built into it. But, on occasion we need to add our own.  To do this we will use JavaScript to run the validation and also to output a message to the user to tell them there is an issue they need to fix. Before we can do any JavaScript, we need to check and see if we are using JavaScript on an Entity Form or Web Page.  This is because the JavaScript, while similar, will be different.  First, we will go over the JavaScript for Entity Forms.  Then, we will go over the JavaScript for Web Pages.  Finally, we will look at the notification JavaScript. Entity Form: if (window.jQuery) { (function ($) { if ...

Reusable Method To Get Record By Id

I have a handful of reusable code that I use when creating plugins or external process (i.e. Azure Functions) for working with DataVerse. The first one I am providing is Getting a Record By Id: 1: private static Entity GetFullRecord(string entityName, string primaryKey, Guid recordId, IOrganizationService service) 2: { 3: using (OrganizationServiceContext context = new OrganizationServiceContext(service)) 4: { 5: return (from e in context.CreateQuery(entityName) 6: where (Guid)e[primaryKey] == recordId 7: select e).Single(); 8: } 9: } entityName = The logical name of the entity primaryKey = The primary key field for the entity. If using late binding you can create this dynamically by doing: $"{target.LogicalName}id" recordId = Guid of the record to get service = Service to interact with DataVerse

Understanding Managed and Unmanaged Solutions in Dynamics 365

Dynamics 365, Microsoft's robust suite of business applications, boasts a myriad of features that can be customized to cater to the specific needs of any business. A vital concept to grasp when working with Dynamics 365 is the difference between managed and unmanaged solutions. This blog post aims to clarify these two types of solutions, providing a comprehensive analysis of the advantages and disadvantages of each. Unmanaged Solutions Unmanaged solutions act as a dynamic development environment, enabling direct alterations and additions to system components. They are often employed during the development and testing phase of a customization project but are equally effective when implemented in production instances, particularly for internal organizational operations. Pros of Unmanaged Solutions: Flexibility : Unmanaged solutions provide a high degree of adaptability, permitting developers to modify system components, introduce new elements, or discard those that are no longer nece...