Dynamics AX Blog - Posts from 2014 - Page 5

These posts are machine-translated.
Currently, only posts from »2014« are displayed

AX 2012: How to create a person in Global address book throgh code

Using the following job you will be able to create a person in the global address book of Dynamics AX 2012.

Please be aware, that a minimum of fields will be used and the so-called Record type has the value of "Person".

 

static void createPerson(Args _args)
{
    AxDirPerson axDirPerson;
    AxDirPersonName axDirPersonName;
    FirstName firstName = "Firstname";
    LastName lastName = "LastName";

    axDirPerson = AxDirPerson::construct();
    axDirPerson.validateInput(true);
    axDirPerson.continueOnError(true);  // Validate fields without stopping error

    axDirPerson.parmName(strFmt("%1 %2", firstName, lastName));

    axDirPerson.save();

    axDirPersonName = new AxDirPersonName();
    axDirPersonName.validateInput(true);
    axDirPersonName.continueOnError(true);  // Validate fields without stopping error

    axDirPersonName.parmFirstName(firstName);
    axDirPersonName.parmLastName(lastName);
    axDirPersonName.parmPerson(axDirPerson.dirPerson().RecId);

    axDirPersonName.parmValidFrom(DateTimeUtil::minValue());
    axDirPersonName.parmValidTo(DateTimeUtil::maxValue());

    axDirPersonName.save();
}

 
 

AX 2012: How to create a record in Global address book throgh code

Using the following job you will be able to create a organization in the global address book of Dynamics AX 2012.

Please be aware, that a minimum of fields will be used and the so-called Record type has the value of "Any".

 

Please note, that this type of record is only conditionally suitable for companies. This record type for exmaple controls the displayed fields in the vendor from. Furthermore, please be aware that - as far as i know - this Record type cannot be changed in Dynamics AX.

static void createDirPartyTable(Args _args)
{
    AxDirPartyTable axDirPartyTable;

    axDirPartyTable = AxDirPartyTable::construct();
    axDirPartyTable.validateInput(true);
    axDirPartyTable.continueOnError(true);  // Validate fields without stopping error

    axDirPartyTable.parmName(           'Name of Organization');
    axDirPartyTable.parmNameAlias(      'Namealias');
    axDirPartyTable.parmLanguageId(     'de-at');
    axDirPartyTable.parmPartyNumber(    '200000');

    axDirPartyTable.save();
}

 
 

AX 2012: How to create a company in Global address book throgh code

Using the following job you will be able to create a organization in the global address book of Dynamics AX 2012.

Please be aware, that a minimum of fields will be used and the so-called Record type has the value of "Organization".

 

static void createOrganization(Args _args)
{
    AxDirOrganization axDirOrganization;

    axDirOrganization = AxDirOrganization::construct();
    axDirOrganization.validateInput(true);
    axDirOrganization.continueOnError(true);  // Validate fields without stopping error

    axDirOrganization.parmName(           'Name of Organization');
    axDirOrganization.parmNameAlias(      'Namealias');
    axDirOrganization.parmLanguageId(     'de-at');
    axDirOrganization.parmPartyNumber(    '100000');

    axDirOrganization.save();
}

 
 

Example of how to use RecordInsertList

A short code example how to can create records in a table very performant way using RecordInsertList. Who does not know RecordInsertList, can learn more about here.

static void HowToUseRecordInsertList(Args _args)
{
    DMOPerfTest DMOPerfTest;
    RecordInsertList RecordInsertList;
    Counter c;
    FromTime fromTime = timeNow();
    
    RecordInsertList = new RecordInsertList(tableNum(DMOPerfTest));
    
    for (c=1;c<=10000;c++)
    {
        DMOPerfTest.clear();    
        DMOPerfTest.AccountNum = int2str(c);
        
        if(DMOPerfTest.validateWrite())
        {
            RecordInsertList.add(DMOPerfTest);
        }
    }
    
    RecordInsertList.insertDatabase();
    
    info(strFmt("Total time consumed: %1", timeConsumed(fromTime, timeNow())));
}

 
 

AX 2012: Show RecId of type LedgerDimension as Display value

In the following code-example a record is selected from table LedgerJournalTrans, than the value of the field LedgerDimension respectively the field OffsetLedgerDimension is converted in the display value, which is display in a so called Segemented entry control.

static void GetLedgerDimensionDisplayValue(Args _args)
{
    DimensionStorage dimensionStorage;
    DimensionDisplayValue DimensionDisplayValue;
    ledgerJournalTrans ledgerJournalTrans = LedgerJournalTrans::findRecId(5637169330, false);
    
    // LedgerDimension
    dimensionStorage = DimensionStorage::findById(ledgerJournalTrans.LedgerDimension);
    DimensionDisplayValue = dimensionStorage.getComboDisplayValue();
    
    info(DimensionDisplayValue);   
     // OffsetLedgerDimension
    dimensionStorage = DimensionStorage::findById(ledgerJournalTrans.OffsetLedgerDimension);
    DimensionDisplayValue = dimensionStorage.getComboDisplayValue();
    
    info(DimensionDisplayValue);
}

Output for example:
5170-10-00AB03---1500-
 


 
 

AX 2012: Determine whether a form is a list page

With the following piece of code you can determine whether a form is a list page.

static void isFormListPage(Args _args)
{
    TreeNode treeNode;
    str formTemplateProperty;
    #Properties;

    treeNode = TreeNode::findNode(@"\\Forms\\CustTableListPage");

    formTemplateProperty = global::findProperty(treeNode.AOTgetProperties(), #PropertyFormTemplate);

    if(formTemplateProperty == #PropertyValueListPage)
    {
        warning("Form is ListPage");
    }
}

If anyone knows a better/more elegant solution, so I would be happy, if he or she contributes via the comment function.


 
 

How to measure the execution time of a function?

Using the function timeConsumed you can check the execution time of a function:

static void stopWatch(Args _args)
{
    FromTime fromTime = timeNow();
    Counter c;

    // Simulating time consuming function     
    for (c=1;c<=100;c++)
    {
        sleep(1000);
    }
   
    info(strFmt("Total time consumed: %1", timeConsumed(fromTime, timeNow())));
}

Result in the Infolog:
Total time consumed: 1 Minute 41 Sekunden


 
 
Pages « 1 2 3 4 5 6 7 » 

 

 
 
 
Posts of the actual month
Juli 2014
MoTuWeThFrSaSu
 123456
78910111213
14151617181920
21222324252627
28293031 
 
© 2006-2025 Heinz Schweda | Imprint | Contact | German version | Mobile version
In order to provide you with better service, this site uses cookies. By continuing to browse the site, you are agreeing to our use of cookies.