Category Archives: NAV2018

The type 5056 was not defined for the function

This happens if you have a table object, saved with a post-GDPR CU (Like NAV2018 CU6), imported that object into a pre-GDPR NAV and then try to export it to TXT from that version. Post-GDPR objects include the DataClassification properties

Make sense? Post-GDPR objects are not compatible with Pre-GDPR NAV CUs.

The solution, do not mix your development environment. Currently, that means that CU2 is the preferred CU for NAV2018 development.

(The quick fix, is the remove the fields, and RETYPE them (Cut’n’Paste will not work).

I’ve seen a couple of explanations about this, but they seemed incomplete, so I did this quick write-up.

This is part of a very old C/Side bug, (or feature might some people from Microsoft argue) where unknown properties are carried along behind the scenes when importing FOB files.

Make your C/Side Code better with Extensions

Sorry for the click-bait title. But I have just tried out the new developer preview on one of our (Currently) C/Side ExtensionV1 based products. This article is not really about that, but about one of the positive side effects of going through the process.

First disclaimer: This product already compiles to an ExtensionV1 and is CfMD certified, so of cause it is perfect 🙂

But the new compiler and the TXT2AL transformation tool will find things that can be improved, let me show you some of the results I got:

Properties not used on actions


RunPageMode is only valid if you have a RunObject also:


Since I use OnAction() RunPageMode does not do anything.


DecimalPlaces on non-decimal fields


BlankZero on non-number fields.

C/Side accepts wrong Indention

You can place ActionGroups outside ActionContainers.

Assignment of FlowFields

Table.FlowField :=Value;

C/Side accepts this, and ignores it; the new compiler gives an error.

Wrong keys on Actions

In multiple places, you can specify sortings, and C/Side happily accepts “Field###” – Extensions don’t.

Conclusion

There are many more things that this process can catch, but these examples were some I encountered.

You can improve the code quality of your existing solution by running it through the TXT2AL and the new compiler. And when you’re ready to jump to ExtensionV2, the jump will be easier and smaller.

 

 

 

Dynamics NAV with the Microsoft Flow SQL OnPremise Gateway

Soo… Microsoft pulled the Dynamics NAV Connector for Flow, that was not a win-win scenario for anybody, not a least customers who was using it or planing to use it. There are ways we can use the old connector, but certainly not optimal ways.

So I started looking at the SQL Server connector, it has a bonus feature, it works with the Flow On-Premise Gateway. The Gateway is a “proxy” of a sort that allows you to connect to Flow without exposing an OData endpoint to the internet.

Reminder screen

 

First you must download and install the Gateway. Following the instructions here.

Configure a new gateway

The gateway name is important if you never install more than one. And the recovery key is important for reinstall without having to redo all your flows.

 

When you’re done, you should have a gateway running like this:

Then we’re all done On-Premise, go to flow.microsoft.com and let’s create a new Flow. Select “My Flows” and click:

Search for triggers and find the SQL Server – WHen an item is created or modified

First, create the Connector:

The important part is the very first check box: Connect via on-premise data gateway, when checked a new option appears:

Select your gateway (Mine was called FF9 when I installed my gateway) and fill out the rest of the field as if you’re on-premise (witch you are, through the gateway).

Then you must select a table, this can be a bit tricky, because not all your tables will show up and there are tables for each company,

You can just use the Custom value option:

Type Company Name$Table Name, like this:

And click + New Step

We’ll just add a simple action for now:

Save and test, that’s it 🙂

There are a few things to consider when using the SQL connector:

  1. Best for triggers, if you want to write data, use the normal Dynamics NAV/BC connector (that does not have triggers)
  2. No access to flow fields, so no easy way of showing Balance on customers or other flowfields.
  3. Field names with spaces, if you need to do OData filtering ($filter) on field names with spaces in it, you have to replace spaces with _x0020_, so “Name 2” becomes “Name_x0020_2”