Skip to main content

Posts

How to get Next RecId through X++

Below piece of code can be used to retrieve next record Id from the table. static void getNextRecId(Args _args) {     //Table that stores record ids details for tables     SystemSequences systemSequences;     //Class that handles Record id generation     SystemSequence systemSequence = new SystemSequence();     ;     info( strFmt ( "%1" , tableNum (SalesTable)));           systemSequence.suspendRecIds( tableNum (SalesTable));     info( strFmt ( "Next record id: %1" , systemSequence.reserveValues( 1 , tableNum (SalesTable))));     systemSequence.removeRecIdSuspension( tableNum (SalesTable)); }

Lifecycle issue search directly from AX 2012 R3

AX 2012 R3 comes with new feature of searching any issue, if there is any, against each AOT object. Let's take example of SalesTable table and try to lookup issues reported for this object in LCS. It will redirect you LCS site, and requires Partner or Customer source Id to log in. It lists the total number of issues against SalesTable table along with all hotfixes information.

PostLoad() method in AX tables

Today I found an interesting thing with regards to AX tables and this post is all about this new experience which is the PostLoad() method in AX tables. When we create a new table in AOT, Morphx automatically creates a series of methods for it. We cannot see those methods but those can be overriden on each table as per requirements. PostLoad() is one of these system methods. List of all system methods can be seen from here  https://msdn.microsoft.com/en-us/library/aa625830.aspx Lets create a new table, I named it PostLoadTable with two fields Name and Value. I added 5 records in the table manually (open table and added). Tables in Microsoft Dynamics AX have a number of system-defined methods, such as insert, validateField,validateWrite. For a list of these methods, see the xRecord system class. The xRecord class can be seen as the base class for the Common table. The Common table can be seen as the base t...

How to check table size from SQL server

We often require to check size of the table to moniter database performance, specially working with files and storing it in database. AX does store files in database which can be setup under Document types in Document Management module. We can use following sql command to get table size; sp_spaceused docuValue

Retrieve worker email address through X++

Below code snipet is one of the way to retrieve employee/worker's primary email address. private LogisticsElectronicAddressLocator getInstructorEmail(HcmWorkerRecId  _workerRecId) {     LogisticsElectronicAddress  logisticsElectronicAddress;     HcmWorker                   hcmWorker;     DirPerson                   dirPerson;     DirPartyTable               dirPartyTable;     select hcmWorker         where hcmWorker.RecId == _workerRecId     join dirPerson         where dirPerson.RecId == hcmWorker.Person     join dirPartyTable         where dirPartyTable.RecId == dirPerson.RecId     join logisticsElectronicAddress         where dirPartyTable.PrimaryContactEmail == logisticsElectr...

AX 2012 upgrade - Connect to source database failure

During database upgrade checklist I was failed to connect with source database. I followed the suggested steps from upgrade guide as pasted below but these weren't enough in my case for successful connection. Configure matching user permissions Windows integrated security is used to connect to the source database from the target system. If the administrative user who is performing the upgrade on the target system does not have access to the source system database, the source system will reject the database connection. Open Microsoft SQL Server Management Studio on the source system and perform the following steps: 1.      Grant Microsoft Dynamics AX database access to a domain user with administrative privileges on the target Microsoft Dynamics AX 2012 system. 2.      Add the user to the   db_owner   and   public   roles. SOLUTION:  Make sure you have assigned sysadmin role to the AOS ...

Unit Conversion Check AX2009 Vs AX2012

AX 2009 if(!UnitConvert::canConvert(this.inventTableModuleInvent().UnitId, this.SAB_ProdPickingUOM, this.ItemId)) AX 2012 unitConvFound = UnitOfMeasureConverter::canBeConverted(UnitOfMeasure::findBySymbol(this.inventTableModuleInvent().UnitId).RecId,                                                              UnitOfMeasure::findBySymbol(this.SAB_SalesPickingUOM).RecId,                                                                    this.Product);