DrewSK.Tech

Databases, Development, and Other Anecdotes

0%

Error: CuryAcct with no AcctHist. http://go.microsoft.com/fwlink/?LinkID=397215

Validation Task Error Message, complete with dead Microsoft URL

When running Management Reporter with Microsoft Dynamics SL 2011 or 2015, you may run into data validation errors from time to time. They can be a quick fix, but unfortunately, the included link in the error message is broken. Microsoft created a new page, but in case that one also disappears – here’s the fix for the specific error “CuryAcct with no AcctHist” in Dynamics SL and Management Reporter.

In PowerBI desktop the “switch theme” drop-down menu suggests that the application of themes will fancy-up your report with a new color scheme. This is true – but themes in PowerBI can do so much more! PowerBI report themes can control overall text settings as well as specifics for individual visualization types.

<p>
  Better still is a preview feature in <a href="https://powerbi.microsoft.com/en-us/blog/power-bi-desktop-december-2019-feature-summary/" target="_blank" rel="noreferrer noopener" aria-label="PowerBI Desktop December 2019 (opens in a new tab)">PowerBI Desktop December 2019</a> for customizing color and text settings within the application, then exporting the theme file. This post explores some of the PowerBI theme customizations that can be accomplished through the new theme customization UI and in the JSON file directly.
</p>

Throughout this month I’ve been working on our embedded PowerBI architecture – improving performance, streamlining administration, and reducing costs. We have a small PowerBI premium capacity that allows us to serve PowerBI reports and dashboards to internal and external users in our apps without individually provisioning licensing. In PowerBI embedded documentation, this is commonly referred to as the “app owns data” architecture. In this post, I will show how Azure Automation can be used to minimize costs associated with a PowerBI premium capacity.

Throughout this month I’ve been working on our embedded PowerBI architecture – improving performance, streamlining administration, and reducing costs. We have a small PowerBI premium capacity that allows us to serve PowerBI reports and dashboards to internal and external users in our apps without individually provisioning licensing. In PowerBI embedded documentation, this is commonly referred to as the “app owns data” architecture. In this post, I will cover the implementation of a service principal for authentication and accessing the PowerBI embedded API.

There are several ways to capture the output from a stored procedure in SQL Server, and if you are working with an existing code set chances are you will not be able to only rely on one of the methods. From least to most flexibility, the 3 methods for passing data back from a stored procedure:

  • the return code is a single integer value that can be set to infer meaning
  • OUTPUT parameters can be used to pass one to many variables into a stored procedure to be updated with new values
  • SELECT statements in a stored procedure to create results sets with one to many columns and one to many rows

The 25 Days of Serverless challenge for Day 16 was an important nod to CI/CD delivery of serverless solutions. The requirements include checking that submitted information adheres to the proper format (continuous integration) and the solution automatically deploys once a pull request is completed (continuous delivery).

This is a time for material gift giving, for many of us. It might also be a time to consider the many gifts we have received through the year, and perhaps use this opportunity to appreciate people or situations that we were blessed with. So my question would be – what are a few things would you consider as gifts, and why? 

  <p>
    <cite> <a href="https://curiousaboutdata.com/2019/12/03/tsql-tuesday-121-gifts-received-for-this-year/">https://curiousaboutdata.com/2019/12/03/tsql-tuesday-121-gifts-received-for-this-year/</a> </cite>
  </p>
</blockquote>

I gave in and will come back for day 6 – I had Lasik surgery yesterday and am a bit with my ability to focus my eyes on text – but took day 7 on full-force today. The day 7 challenge for 25 days of serverless is to create an endpoint that returns a random image for an item that people are looking to get rid of. Given my struggles with using a specific client for the day 5 challenge, I wanted to take another run at implementing a solution with a specific client. In this case, it is a TypeScript Azure Function that implements the Unsplash-JS client.

The challenge for day 5 was to use sentiment analysis to provide feedback on the contents of letters to Santa – and I set about creating an Azure function in TypeScript/NodeJS. There’s a client library for NodeJS and a quickstart document to go along with it – I ran into issues working with the client library and under a short timeline I switched over to working with the REST API for language detection. Fundamentally, this is the strength of REST APIs. Their universal nature leads them to be more reliable and accessible for developers across a broad range of toolsets.

Fortunately, I was able to get the client library for NodeJS working for language detection when I went back to reproduce the error message so we’re able to see a contract of the REST API implementation and the client library.

Build an HTTP API that lets Ezra’s friends add food dishes they want to bring to the potluck, change or remove them if they need to (plans change!), and see a list of what everybody’s committed to bring.

https://25daysofserverless.com/calendar/4

Despite being behind by a day right now, I’d really like to not do what I know (C#) for creating APIs. I found a tutorial for CosmosDB and NodeJS applications… so down the rabbit hole we go. I’m going to follow this Microsoft tutorial – https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-nodejs-application – and share my notes here.

Day 3’s challenge introduces webhooks – where a service/server broadcasts when something has happened by making an HTTP request to a specified URL. You provide the URL to the service and receive automatic updates. In the language of an Azure Logic App, a webhook is the selected trigger for the workflow.

In the case of this example, we are looking for notifications from GitHub about commits/pushes to a repository. The other portion of the scope of Day 3’s challenge is to take any png file(s) and store the file’s URL in a database. Because my database of choice is SQL Server/Azure SQL, I’m going to create a C# Azure Function to handle the incoming webhook and writing to a database.

Week 1 Whether you’re a seasoned “senior developer” or taking your first steps into development, coding challenges are an excellent way to expand your skillset. Azure Developer Advocates are hosting the 25 days of serverless development challenge and I’m quite intrigued! I’m familiar with foundational concepts for Azure Functions in both C# and Typescript but I can use every opportunity I can get to improve that capability because Azure functions and serverless concepts are no small deal for modern developers.

We’ve had a tenancy in Azure for years – so long that our original assumptions and architecture strategies are needing to be overhauled. More importantly, mistakes are becoming glaring limitations. Our original strategy to deploy most primaries to North Central US has evolved into an ExpressRoute connection to East US. We stood up an API Management instance in North Central US and shipped code with a direct link to the instance’s native name (gateway address) before the API management instance could be migrated to East US. Over the Thanksgiving holiday I migrated an Azure API management instance between 2 regions – here’s how I did the migration:

With a few exceptions, improvements to VS Code will improve Azure Data Studio a few months after release through the VS Code base within Azure Data Studio. The October 2019 release of VS Code, v1.40, brought in a handful of changes along with quite a bit of repository housekeeping. The housekeeping included combining duplicate issues and merging in a large number of pull requests. There are 2 changes that I wanted to highlight as notable and worth considering how they will impact Azure Data Studio in the future.