Best Practices for (Per Tenant) Extensions | Protect Yourself
Time to get back to Best Practices for Per Tenant Extensions. This time we are going to discuss something that in my opinion should also be implemented by ISV’s in their AppSource solutions. By default, AL Objects are extensible. This means that everyone can take a dependency on your extension and therefor Microsoft does not allow you to refactor any code once it lands on… Continue Reading Marije Brummel’s Article on...
Oh, TempBlob! What did you do?
The alternative title for this blog post would have been something like… TempBlob, why did you waste my time! Or waste thousands of hours accross our community. The topics of my blogs tend to be about what happens in the freelance projects I work on, and last week this was two extensions that have a substantial size (1000+ objects) that had to be BC19 Compatible. BC19 is the first… Continue Reading Marije Brummel’s...
“GENERIC METHOD” | Brilliant or Anti Pattern?
I’ve been in doubt if I should write this post or not. Read it fast as it may disapear if I regret writing it. Ever since I started working with Navision, almost 25 years ago, I’ve had my own little stuborn ideas. These ideas got me where I am today, but just as often they got me in big trouble and caused personal relationships to shatter right before my eyes. I wrote a lot about the… Continue Reading Marije...
Using Azure Log Analytics on older Dynamics NAV versions
Sometimes there are topics that I could swear I wrote about and then someone makes you realise this is not the case. This week that happened with my blog about what Page 9599 means when you see it popping up in Azure Telemetry. Some folks on twitter started asking how it was possible that Super Users were changing data by running tables. I understand the confusion because in newer… Continue Reading Marije Brummel’s Article...
Business Central Page 9599 | What is it?
Time for a quick blog. Last few weeks I’ve been heads down in some performance tuning of Business Central using modern telemetry from KQL. This is much more powerful than the old SQL Profiler since it allows you to see the stack trace in AL where the problems are caused. AppObjectType: Page AppObjectId: 9599 This little guy was in my telemetry several times. Page 9599. And I could… Continue Reading Marije Brummel’s...
Building a strong, modern community | Tips & Tricks
The world is rapidly changing and with that, the way we interact and consume is also different today than it was yesterday. In the last 10 weeks I had the pleasure of working on an interesting assignment for one of my customers to help them improve the interaction with their partners with a strong focus on technical content. At first I was not that eager to start on it. It did not match… Continue Reading Marije Brummel’s...
Extending the same object twice in one Extension
I’ll be honest. I was a bit disapointed after I had published my previous blog. Not about the content but about the number of people commenting and replying on twitter. I talked to a few people in person and they said that it was a bit complex and maybe not everyone completely got what the problem was that I was trying to solve. The problem is simple. You cannot extend the same table,… Continue Reading Marije...
PreProcessorSymbols & Per Tenant Extension Best Practices
Let’s continue where we left off last week when I shared with you two blog posts about my opinion regarding best practices for Per Tenant Extensions. I used you as a guineapig for the project I am currently working on a PrintVis to get some early feedback from the community before I pitched my ideas to the development team there. In short I can say that it went both good and bad and I’ll… Continue Reading Marije...
Organizing your “big PTE” in Micro Services
Plans have changed for tonight. Sorry Rene, we’ll try again on thursday. So at home and time to share the next part of the best practices for Per Tenant Extensions. And just in time, because when I shared part I last night there was confusion right away on Twitter. Especially about confusing shipping all your modifications as one “big” Per Tenant Extensions with making a monolyth. Let’s… Continue Reading...
One Per Tenant Extension to ‘Rule Them All’
Never shy away from a catchy title of your blog right? So enough said about why we need Design Patterns AKA Best Practices for Per Tenant Extensions, let’s dive into my suggestions. Rule #1 – As few as possible If you implement Business Central you should have a close fit to your business requirements. The times when we hacked the base app into anything are gone except for a few rusty… Continue Reading Marije...
Why best practices for Per Tenant Extensions?
About a month or so ago I did (or try to do) a webinar about best practices for Per Tenant Extensions. I was unhappy about the result but I guess the story should be told and I did promise to get back to you and finish it. Well, I did and I am getting ready to start sharing what I think a “perfect” per-tenant extension should look like and as always I am looking for feedback and some… Continue Reading Marije...
Making a Business Central upgrade (so much) easier…
Since the beginning of the year I have a new job/project for a partner in Denmark that you may never have heard of. The reason for saying that is because they are (super) vertical and they don’t ever “sell against” other partners. The only competition is outside of the Business Central comminity. What makes that cool is that I can essentially share anything I learn with you without… Continue Reading Marije...
Easiest way to upgrade from NAV to Business Central – YouTube
Did you know you can upgrade from NAV with C/Side to Business Central without goofing with Extensions in your old system and running complex scripts? In this video I tell you how, using PrintVis as an example source
Would you configure a Porsche…
…if you knew upfront that you would never get one? For obvious reasons I am getting a lot of questions lately about my transition and that is great. I love to talk about it and all the conversations I have help me process the transformation myself too. Some people ask me how long I knew about being a girl and the answer is, all my life. Even in my earliest memories I see myself in my… Continue Reading Marije...
HELP! My entire Business Central SAAS stopped running!
Today was my first day back at the (home) office programming in 2 and a half months. I had already spend a lot of time in the last month or so changing email addresses and other account names to my new name but I only looked at my BC Saas sandboxes today. When I looked at the admin portal it looked like this: All environments where set to Not Ready, all options to restart, delete… Continue Reading Marije Brummel’s Article...
Webinar Announcement : Design Considerations for PTE’s
On July 6th this year I will make my first “public” webinar in about a year or two, since I decided to retire the NAV-Skills webinars. You can register for the webinar here. It will be hosted by Luc van Vugt on the Areopa channel. I had to look it up, but it has been exactly 5 years since I was in Iceland where I helped LS Retail with the first AppSource app for what was then called… Continue Reading Mark...
Why DevOps for Business Central is the responsibility of Microsoft, not the customer!
I’ll start with saying that I’m not writing this blog to pick a fight or another online debate. I’m tired of getting the feeling that I’m talking into a brick wall not being heard and understood. I stopped reading most of the blogs and newsletters from MVP’s and from MSDynamicsWorld.com. I find them desturbingly sales oriented, egocentric and political. Today I was cleaning up my outlook… Continue...
About ISV’s, Being Stubborn and Flexibility
Let’s start with a short story. The year is 2014 and the world was spinning as it did until March this year with mass tourism and in person events. With the release of NAV 2013R2 and later 2015 our community was just starting to embrace the three tier concept and the Role Tailored Client. Nobody had heard of events or extensions. The economy is booming and everyone is busy not worrying… Continue Reading Mark...
Are you ready to move forward “WITH”-out AL?
Sometimes I just have to write my frustration away in order to clear my head. Don’t expect technical tips and tricks in this post, but maybe some inspiration. Today I was absolutely flabbergasted. Both on Twitter and on LinkedIn (I am a social media junky) there were actually threads about Microsoft removing the WITH statement in AL. I was litterally like OMG! Go spend your time on the… Continue Reading Mark...
Setting up Azure SQL Analytics (Preview) – Dynamics NAV
Telemetry is everything, you cannot have enough data when users start asking you why the system is behaving differently than yesterday or performance is changing over time. This is where Azure SQL stands out from On Premises. You can get so much more data and in an easy way to analyse. However, you need to know where to find it because not everyting is setup automatically after you… Continue Reading Mark Brummel’s Article...
Azure Application Insights 101
In my series around Application Insights for Microsoft Dynamics Business Central / NAV this is probably the most booring one. However it is quite important. In order to teach you folks about KQL and the Application Insights API etc. Step 1 – Create Application Insights In your Azure Tenant search for Application Insights and select Add. There is not much to fill in here. The… Continue Reading Mark Brummel’s Article...
Tip #69 | Default Implementation for AL Interfaces
I just love it when I get an error and nothing I search for answers what to do next. Like this one Value ‘ ‘ does not implement interface ‘ForNAV Layout’ and there is no default implentation for the mentioned interface.AL(AL0596) There is no mentioning of default implementations in the Microsoft documentation. And in fact, in this enum value, I do want a default implementation… Continue Reading Mark...
Tip #68 | Using Read-Scale Out in Business Central to improve Performance
Another quick tip for something I’ve used this week to help out a QBS partner with performance issues on Business Central. Since the last release it’s possible to issue read-only commands on a real-time copy of your Business Central database by using the DataAccessIntent property. This allows API Pages, reports and queries to be executed outside of your production database which is ideal… Continue Reading Mark...
Introduction | Business Central Performance Tuning – Application Insights
Microsoft wants to make things simple, and for a good reason. If it’s simple then everyone can understand it and the bigger the group of believers the easier it is to generate volume. So when I started to read on Business Central and Application Insigthts the first thing I looked at was a PowerPoint slide saying this… And to be honest, it is extremely simple to setup Application… Continue Reading Mark Brummel’s...
Tip #67 | Convert Option field to Enum Field
So much to blog about. Insane. Our world has never changed so fast. Never. Today I was working on our ForNAV AppSource App and I decided to clean up some of the warnings that were introduced with BC16. This was about converting Options to Enums and vice versa. Converting an Enum into an Option is easy. Just add ToInteger() and you’re done. But how about the other way around? An… Continue Reading Mark Brummel’s...
Business Central Performance Tuning Series | Application Insights & More
If you ask a random Microsoft partner about their worries with Business Central there is a fair chance “Performance” is in their top three. It probably depends if this partner has a background with NAV. If this is the case it’s a guarantee it’s in the list. As long as I remember I’ve been doing some form of performance tuning. First with the old Native Navision database, later with SQL… Continue...
Breaking up the Base App | Request new Interfaces
Most of you, if you are a more or less loyal reader of my blog, will remember that last year I blogged about breaking up the base app, how to do that and a call to action for volunteers. After that I blogged a bit about visiting the office in Lyngby and starting a project. However, I don’t think I’ve ever officially reported back how that project worked out and how it “ended”. Let me… Continue Reading...
SQL Azure, Dynamics NAV & Data I/O Issues
When I write a blog, and I should write more I know, it’s most of the time to share a tip or to write my opinion on something. This blog is more of a question, or a call to share knowledge of a piece of technology that is not used by many. About 4 months ago my largest customer moved to SQL Azure with their 200GB database after a lot of testing and careful considerations. I’m not… Continue Reading Mark...
Business Central; Developers, Developers, Developers
A new version of Business Central is around the corner. The codename is BC16 or 2020 Wave I. Both are the same thing. I think it is safe to say that Business Central is a great succes. In the competing world of Cloud Business Solutions it is the most flexible product and the customer base is growing rapidly. Business Central has a fantastic user interface and the extensibility model is… Continue Reading Mark Brummel’s...
Tip #66 | UTC Calculation
I have not blogged as much as I want to recently. Not because there is nothing to write about, but because I am so insanely busy. However, today I ran into a question that required first Google and then Statical Prism to solve. UTC Calculation in Dynamics NAV (Or Business Central) This used to be cumbersome and required dirty tricks. Alternatively (and this is how I managed to solve… Continue Reading Mark Brummel’s Article...
Working on Design Patterns for Business Central
Yesterday at Microsoft I had two meetings, or goals. The first as you know was about our initiative to do a proof of concept to break the BaseApp into smaller extensions. The second meeting was about revamping the old Design Patterns we had for Dynamics NAV and bringing them up to speed for Business Central. For those of you who don’t know or to refresh memories; a few years ago there… Continue Reading Mark Brummel’s...
Enum != SchemaChange
I love a nerdy title and I love learning about cool new smart stuff. But before you continue reading I want to say thanks to my colleagues at ForNAV, especially Michael Nielsen. Without him pushing me (again) to step out of my comfort zone this would not have been possible. Yesterday I visited the Microsoft office in Lyngby for the first time in a very, very long time to talk about our… Continue Reading Mark Brummel’s...
How To, Part I | Breaking a Monolyth
I often wonder how I find myself in situations like this. On my day off I find myself behind my desk doing something which is not my responsibility, nor am I getting paid to do it. If you say A, you also have to be willing to say B and C. This is what my parents told me when I was young so when I promissed Bugsy and Jesper to look into making the Business Central Base Application smaller I… Continue Reading Mark Brummel’s...
Breaking up BaseApp | Business Central
Social media is fantastic and it can be used in many different ways. Where most people are mostly consumers others use it to ask questions. Some share knowledge and experience and gain loyal followers. This is pure awesomeness and mostly rewarded with the Microsoft MVP award for those who don’t give up. Drive Change Very few succeed in using social media to drive change. Those who do are… Continue Reading Mark...
Submitting to Business Central Open Source, the code review…
So to continue where we left off yesterday when I did a pull request on the Business Central System App project on GitHub. After my pull request someone at Microsoft did a code review in order to make sure quality standards are respected. Here are the details: I have to admit something. First of all, this is not actually my code. It came from my colleague Michael Nielsen. Secondly… Continue Reading Mark Brummel’s Article...
Business Central System App is Open Source! Contribute, don't be shy…
With the recent Wave II release of Business Central we also got the first wave of Open Source in our beloved NAV/BC product. This means that rather than making customization for one specific customer or ISV you can now have this pushed back into the product and stay there forever. Today I did my first Pull Request and I wanted to share how I did that. What did I need? With reports,… Continue Reading Mark Brummel’s Article...
Tip #65 | AppSourceCop & mandatoryPrefix
Today I was a bit puzzled by getting this error message and how to fix it. error AS0054: The AppSourceCop configuration must specify one of the following properties: ‘mandatorySuffix’, ‘mandatoryPrefix’, or ‘mandatoryAffixes’ Yes, you can google the message but that only brings you to pages that describe the message, not how to fix it. It appears to be easy so I wanted… Continue Reading Mark...
AL Extensions – File Naming and Organizing
This is a blog that I wanted to write for quite a while, but it’s only until last week or so that I think I’ve found what I like to call, a “best practice” or if you will, a “Design Pattern”. What is this all about? With the move from C/AL to Visual Studio Code we also moved to file based instead of stored in database. This means we also have to give these files a name and we… Continue Reading Mark Brummel’s Article on...
Managing DotNET Dependencies on AppSource for Business Central
When you try to convert existing C/Side objects to AL the first attempts are typically done while scoping OnPrem. This gives an overview of the errors to be fixed w.o things like DotNET. In this phase you typically switch between C/Side and Visual Studio Code all the time fixing the errors one-by-one and reconverting. Once the errors are fixed the software can be tested and deployed… Continue Reading Mark Brummel’s Article...
Monolith ≠ NoOfObjects | Breaking up your extension
If you have IP for Microsoft Dynamics NAV in C/Side your are either in the process of moving it to AL and Business Central or you are busy finding a buyer for your company. Both seem to be very valid options these days. When you talk to the engineers who are busy executing this task the number one question on their mind, once they got their stuff decoupled from BassApp, is how to break up… Continue Reading Mark Brummel’s...
NAVTechDays – It’s a peoples event…
It’s the weekend after NAVTechDays and I rested from a busy week. Two days of pre-conference training and two days of talking at (a lot of) people mostly at the ForNAV booth but also at the booth of Meta UI, Continia, SQL Perform, Anveo, Prism and AL Ops. Design Patterns, once again Teaching the Design Patterns for AL the first time was fun, challenging and exhausting. It was fun because… Continue Reading Mark...
WARNING – The Data Upgrade Elephant
Last Thursday I was at the QBShare event in Veghel, Holland. I’ve been attending these events ever since I joined ForNAV a few years back and since the audience is a bit different from my normal events (CEO vs. Developers) it took me a while to get to know people. No matter who you talk to at these events, all that they have on their minds is moving their IP to Business Central and most… Continue Reading Mark Brummel’s...
#BCALHelp
It’s the week of NAVTechDays, the biggest Business Central Community event of the year and I thought it would be good to spend a few moments on the state of our community. Business Central is taking off. According to Microsoft there are more than 4000 paying tenants and the average number of users per tentant is 10+ which is the sweetspot where Navision used to be strong. I can also see… Continue Reading Mark...
Working with dates in AL vs. C/AL
It’s friday afternoon and I’m goofing around a bit with the ForNAV AL Converter. I ran into something I want to share. AL seems to be more strickt in hardcoded dates than C/AL. Example < pre class=”wp-block-preformatted”>Constant value ‘99993112D’ is outside the range for a Date. The syntax for defining Date format is yyyymmddD, where D is a mandatory letter. For example, 20180325D, read as the...
Direct Printing to Label Printer from Business Central – YouTube
Preparing my webinar for Thursday with ForNAV source
Mapping Codeunit 10201 “Transfer Custom Fields” to Events (NA Only)
By Steve Krisjanovs Below is a list of all COD10201 external functions and where I believe their event equivalents live in. There were three functions in the list below that had me stumped so a second set of eyes would be helpful. I do still believe that BC’s out of the box COD10201 should still have been modified by MS to indicate that all of these external functions are dead. The… Continue Reading Mark Brummel’s...
AppSource; Prefix, Suffix & Intellisense
This article was triggered by a discussion on Yammer yesterday that I felt went a bit sideways. Business Central is a first class cloud citizen and it beats born in the cloud solutions easily but fact remains that it’s based on Navision, an ERP solution with a 30-some year legacy. Part of that legacy is a requirement for unique names in the objects, also in the cloud. Microsoft is… Continue Reading Mark Brummel’s Article...
Tip #64 | Show License Information in Business Central
With the retirement of C/Side we have a challenge we did not have before regarding the license. We used to be able to see the license information from C/Side, upload the license and quickly create a new page that displays permissions. With Business Central this is no longer possible and we now need PowerShell to upload a license. On my GitHub you can find a repo you can clone to… Continue Reading Mark Brummel’s Article on...
Tip #63 | Export Warnings & Errors from Visual Studio Code
If I get asked the same question twice I am already tempted to blog about it. This one exceeds this number and is long overdue. It looks like the whole world is now converting from C/AL to AL and running into challenges with that. Right now I am analysing several databases and one thing you need after elliminating low hanging fruit and removing errors that crash the compiler is to find… Continue Reading Mark Brummel’s...
Business Central & Nintendo
WARNING!! Personal opinion here! Inspiration to write down idea’s are everywhere. Next week my youngest son has his birthday and we went out this evening with the train to the big city of Deventer to buy him (us) a Nintendo Switch. I’ve been loyal to Nintendo since the 1980ies and bought many of their consoles. I’m also loyal to Mario and have most of the games. When the Nintendo WII… Continue Reading Mark...