Best Practices for Table Methods
Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012
Following are the types of table methods:
Application-defined methods – created by a developer specifically for a particular table.
System-defined methods – automatically available on every table. These methods are from the xRecord system class.
Application-Defined Methods
Use the properties available on tables and table fields rather than creating code for the same purpose. If you do need to create a method on a table, it must be directly related to that table.
By default, these methods run on both the client and the server. You can state this explicitly in the method declaration (client server), but don't specify a single tier (client or server). It is a best practice to create these methods on tables. A best practices error does not occur if the method is not called.
System-Defined Methods
System-defined method |
Rules |
---|---|
clear |
Called by the kernel—you do not need to call this method from the application. |
delete |
Secure any related transactions. If you have DeleteActions on one table set to Cascade delete on another table, avoid writing code on the delete method on the second table (for performance reasons). If you don't add code here, the database management system can quickly do cascading deletes by using direct SQL deletes (DELETE_FROM). If you do add code here, the system creates a while select statement, and then executes the delete method on all child tables. If you are deleting from the buffer, use skipDelete. |
doInsert, doUpdate, doDelete |
Avoid using these methods. These methods should only be used under strict control because they bypass the following:
|
helpField |
When manipulating an array, use the standard methods on the Global application class as follows:
For more information about the field ID of an array, see Extended Field IDs. |
initValue |
The call to super() assigns the default values that you have set by using the record template. Use the method to assign initial/default values to a new record. |
insert |
Secure any related transactions with tts. If insert is overridden, array inserts reverts to record-by-record insert. |
isFormDataSource |
Called by the kernel—you do not need to call this method from the application. |
merge |
Called by the kernel—you do not need to call this method from the application. |
modifiedField |
Called by the kernel—you do not need to call this method from the application. |
postLoad |
Avoid placing any code here. Instead, use display methods. The postLoad method is called every time a record is fetched from the database. Avoid creating any code on this method that will have an impact on performance. For example, avoid adding code that involves calls between the client and server, or any code that results in a database operation. |
reRead |
Called by the kernel—you don't need to call this method from the application. |
toolTipField |
When manipulating an array, use the standard methods on the Global application class as follows:
For more information about the field ID of an array, see Extended Field IDs. |
toolTipRecord |
Enables you to append additional information to the standard tooltip text. For example, use the toolTipRecord method to include a message to display a "customer out of credit" message. |
update |
Secure any related transactions with tts. If update is overridden, array inserts cannot be used, and automatically reverts to record-by-record insert. |
validateDelete |
Do not delete the super() call if you override this method. The method should return a Boolean—don't throw an exception here. |
validateField |
You should respect the task performed by the super() call. The method should return a Boolean—don't throw an exception here. When manipulating an array, use the standard methods on the Global application class as follows:
For more information about the field ID of an array, see Extended Field IDs. |
validateWrite |
Respect the task performed by the super() call. The method should return a Boolean. Don't throw an exception here. |
xml |
Called by the kernel—you don't need to call this method from the application. |
See also
Announcements: New book: "Inside Microsoft Dynamics AX 2012 R3" now available. Get your copy at the MS Press Store.