Working with numbersequences – Keep In Mind

  • February 17, 2010

When you are using a Number Sequence, keep in mind that a Continuous Number Sequence is slower than a non-continuous. The reason is that the system creates a record in the table NumberSequenceList (with the status Active) and cleans it up later during TTSCOMMIT. Performance tip: You can improve the performance of a process that creates many […]

Working with numbersequences – New Module

  • February 16, 2010

In a previous post I explained how to create a new Number Sequence in a existing module (Working with numbersequences – new NumberSequence). In this post I will explain how you can create a new Number Sequence-module. I will create a new module called TEST (lack of inspiration). Step-By-Step:

Placement of code

  • February 16, 2010

When you are programming, you have to think about where placing you’re code. Always try to place you’re code nearest to the source so it can be manipulated easily. For instance code that manipulates tables should be placed in that tables methods. Best Practice: Try to minimize the x++ code in forms for the following […]

Maximum value RecId

  • February 15, 2010

Did you ever wonder what the maximum value of a RecId was? In Ax3.0 it is pritty simple. You know that the RecId was a int value and with the function ‘maxInt()’, you get the value. In Ax4.0 and higher, the RecId is changed from a regular int to in64. There is no such function […]

Moving DB-objects to other layers … without losing data

  • February 14, 2010

Most of us have already been confronted with the problem of tables being inserted in the wrong layer, and when they already contain data it is very difficult to transfer these objects to the correct layer without losing data. I found the following article on Axaptapedia that helps you with this issue:

Line Number

  • February 13, 2010

When you want to create a table were you want to remain the position of the records you create (like the lineNum field on the SalesLine), you just need to define a field on your new table as a ‘CounterField‘. Step-by-step:

Ax2009 different development licenses

  • January 28, 2010
  • 1 Comment

When you want to modify objects in Ax, you have to buy a development license. They are divided in four. Base Package This license gives you access for creating/modifying reports/jobs/queries MorphX This license gives you access tot the Data Dictionary node where tables/Fields/enums/Extended Data Types are maintained. The ability to create forms requires the MorphX […]

XML parser namespace error

  • September 9, 2009
  • 1 Comment

Today I tried to create the following XML-structure in Ax: 1 2 <?xml version="1.0" encoding="UTF-8"?> <personen xmlns:xdb="" xmlns:xsi="" xsi:noNamespaceSchemaLocation="Personeel.xsd"><?xml version="1.0" encoding="UTF-8"?> <personen xmlns:xdb="" xmlns:xsi="" xsi:noNamespaceSchemaLocation="Personeel.xsd"> I wrote the following to do so: 1 2 3 4 xmlDoc = WGKFunctions::createXMLDocumentWithDeclaration(#version, #encoding, #standalone); root = xmlDoc.createElement(this.rootNode()); … root.setAttribute("xsi:noNamespaceSchemaLocation", "Personeel.xsd");xmlDoc = WGKFunctions::createXMLDocumentWithDeclaration(#version, #encoding, #standalone); root = xmlDoc.createElement(this.rootNode()); … […]

Internal Error Number 25 in script occurs

  • August 12, 2009
  • 1 Comment

When you modify the info.reportsendmail() in Ax2009 so it won’t send mails trough SysINetMail, but trough the SysMailer you could get the following error: ‘Internal Error Number 25 in script’. The same error occures when you try to post an invoice to a e-mail message. There is a hotfix for Microsoft Dynamics Ax 2009 SP1 (KB973902) […]

Select a record from a table when you only have the tableId

  • July 16, 2009
  • 1 Comment

The following code can provide you a generic way to update a table when you only have the tableId. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public Common findRecord(TableId _tableId, RecId _recId, Boolean _forUpdate = false) { Common      common; DictTable   dictTable; ; dictTable = new DictTable(_tableId); common […]