Skip to main content

Posts

Code Snippets

To help speed up my development process, I decided to go down the path of creating code snippets for code blocks that I end up copying and pasting a lot.  I have published these to GitHub and will keep adding to them as I find the need to add more.  If you have any that you would like to add, please feel free to send them my way.  Here is a link to the git hub respiratory where I am keeping the code snippets.

https://github.com/JamesStuder/CodeSnippets

If you would like more information on howto create your own code snippets check out Microsoft's Documentation (Link Below).

https://docs.microsoft.com/en-us/visualstudio/ide/code-snippets?view=vs-2019
Recent posts

SQL Script To Generate C# Model

While working on a data migration project that uses C# and Azure Functions.  I found myself in the need to generate a model of the table(s).  While doing a Google search I came across the following blog post that has a script to generate the model properties for me.  Simply replace the table name variable at the top of the script with the table name you want to generate the properties for.  You may also need to include the schema name in the table name if you have multiple tables with the same name, just under different schema's.  I did make one change to it in the select @ result line.  It was adding a blank line in between each property, so I removed the new line.


declare @TableName sysname = 'TABLE_NAME' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + (CASE WHEN ColumnName = 'RowVersion' THEN 'byte[]' ELSE ColumnType END) + NullableSign + ' ' + Column…

SQL Script to Create Enums For Table Columns

While working on a data migration project, using C# and Azure Functions, I found myself needing to create enums to use in my code for the columns.  Some of the tables where vary large (over 200 columns) and doing this manually would have taken a while to do it.  So, I wrote the below SQL script to create the enums for me.  To use this simply replace the table and schema variables with the schema and table name you want to generate the enums for.


declare @Table sysname = '<INSERT TABLE NAME HERE>'; declare @Schema sysname = 'INSERT SCHEMA NAME HERE'; declare @Result varchar(max) = 'public enum ' + @Table + 'Columns' + ' {' select @Result = CONCAT(@Result, ' ',ColName, ' = ', SUM(ColNum), ',') from ( select COLUMN_NAME as ColName, SUM(ORDINAL_POSITION - 1) as ColNum from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @Table AND TABLE_SCHEMA = @Schema group by CO…

UPDATED: Setup Non-Interactive User with Non-Expiring Password

A while ago, I wrote a blog post on setting up a non-interactive user with a non-expiring password.  Since writing that post, the process has changes and I couldn't find much documentation on the process.  The part of setting up the non-interactive user hasn't changed:

Setup Non-Interactive User:
Create a user in the Office 365 admin center.  Be sure to assign a Dynamics 365 (online) license to the account.Go to Dynamics 365 (online).Go to Settings > Security.Choose Users > Enabled Users, and then click a user’s full name.In the user form, scroll down under Administration to the Client Access License (CAL) Information section and select Non-interactive for Access Mode.  You then need to remove the Dynamics 365 (online) license from the account.Go to the Office 365 admin center.Click Users > Active Users.Choose the non-interactive user account and under Product licenses, click Edit.Turn off the Dynamics 365 (online) license, and then click Save > Close multiple times.…

Prevent NULL inserts during updates

Recently, I had an issue that I needed to overcome.  The problem was that the Dynamics 365 instance I was working on, was integrated with multiple other systems with some long running external processes and possible old data in the UI when a record is open, overriding what the value was set to from the external processes.  What was happening is that on create of a contact, we can have a NULL e-mail.  This is normal behavior.  Our external process would be running and update the NULL e-mail field while the record was open in the UI.  Because the UI hadn't been refreshed and the user made other changes, the e-mail would be blanked out (NULL).  To make sure that the field once populated (yes, this is a business requirement) could not be cleared, I wrote a small pre-operation plugin that does the following:

Check's the plugin context to see if we are trying to update the emailaddress1 or emailaddress2.  If we are trying to update either email address.  Than we check to see if conte…

Multi-Select Option Sets Missing setVisible() for JavaScript (Workaround)

It is common practice in Microsoft Dynamics 365 to use Business Rules to show and hide fields on a form.  But, with that addition of multi-select option sets, you can't do this.  So the next logical step is to use JavaScript.  There is just one small problem, there is no setVisible() function for multi-selection option sets.  Here are the controls we do have access too, as of this post:

So, how can we dynamically show / hide multi select option sets?  The easiest way is to use a section.  Place a new section on you form.  Then you will need to use JavaScript to get the tab and section by name.  Once you have that, you can dynamically show / hide the section to make the multi-selection option set show and hide.  Here is an example of the JavaScript:

function ShowHide(executionContext) { //Create the form context var formContext = executionContext.getFormContext(); var contactStatus = formContext.getAttribute("Field Name").getValue(); var tabObj = fo…

BETA Release Scribe .NET Library

In my spare time I have been building a .NET 4.5.2 library for the Tibco Scribe Online API.  For one developer this has been a daunting task and I am at the point that I need some help.  I have the library created and need people that can write unit tests to test the code.  The project is 100% open source and I am aiming for it to be a community build.  The project is hosted at GitHub.

This is a BETA release, because I have not created all the unit tests to make sure every single method is bug free.  Make sure to check the wiki on how to implement the code and use the project.  Once we are out of Beta I will create the NUGET package.

Thank you in advance to all that help out.