Dynamics AX Blog - Page 22
AX 2012: SysOperation-Framework: Initalize parameters of a data contractIf you include the SysOperationInitializable class in a data contract using the implements command, the method initialize() gets available and can be overwritten. This method can be used to initialize variables within the data contract. However, this method is only called as long as no usage data is found or it is not activated. [DataContractAttribute]
class TutorialSysOperationDataContract implements SysOperationInitializable { date dialogDate; }
[DataMemberAttribute]
public TransDate parmDialogDate(TransDate _dialogDate = dialogDate) { dialogDate = _dialogDate; return dialogDate; }
public void initialize()
{ dialogDate = systemDateGet() - 365; }
|
Validate voucher for duplicates in Dynamics AX 2009Following code could be useful, if you have to check for duplicates voucher numbers: ledgerParameters::checkDuplicate(_voucher, _date); |
AX 2012: Selecting the values of a financial dimensionThe following job demonstrates how to display the values of a financial dimension - in the example Department - via X++. static void getValues4Dimension(Args _args) { DimensionValueService dimensionValueService; DimensionContract dimensionContract; List dimensionValueContractList; ListEnumerator listEnumerator ; DimensionValueContract dimensionValueContract; DimensionValue dimensionValue; dimensionValueService = new DimensionValueService(); dimensionContract = new DimensionContract(); dimensionContract.parmDimensionName('Department'); dimensionValueContractList = dimensionValueService.getDimensionValues(dimensionContract); listEnumerator = dimensionValueContractList.getEnumerator(); setPrefix(strFmt("Dimension %1: ", dimensionContract.parmDimensionName())); while(listEnumerator.moveNext()) { dimensionValueContract = listEnumerator.current(); dimensionValue = dimensionValueContract.parmValue(); info(dimensionValue); } } |
Whitepaper for global address bookThe global address book is probably one of the great new features in Dynamics AX 2009. However, every developer and consultant should lead this White Paper once to mind. Because the whitepaper contains, for example, a description how to import customers / vendors or business relations via Excel. |
Tip: Convert job into classDid you know that you can easily convert a job to a class simply by copying the job to classes-node in AOT using drag & drop? |
Move pallet using X++Using the following code, you will be able to move a pallet per code. WMSPalletMove wmsPalletMove = new wmsPalletMove();
wmsPalletMove.parmWMSPalletId('00000022_117'); wmsPalletMove.parmToInventLocationId('300'); wmsPalletMove.parmToLocationId('01'); if(wmsPalletMove.validate()) { wmsPalletMove.run(); }
|
|
|
|
|
|
|
I had already seen the situation that I wanted to know if a record has a particular field to be able to process the containing value. For example, within a method, which processes the calling args().
For example, in class SysDictTable the hasMethod() method is available, but i have not found a hasField() method so far.
Therefore I've created the following logic: