Tuesday, 10 July 2012

Microsoft Dynamics AX 2012 Development Cookbook

Highest layer of the Tree Node

 
#AOT

TreeNode treeNode;

SysTreeNode node;

UtilEntryLevel level;

treeNode = TreeNode::findNode(#ViewsPath +
'\\' + tableStr(DimAttributeHcmPosition));

level = SysTreeNode::getHighestLayer(treeNode);



info(
strFmt('%1',level));

Wednesday, 29 February 2012

Executing SQL Query in AX


UserConnection                  con;
    Statement                       stmt;
    ResultSet                       resultSet;
    SqlStatementExecutePermission   permission;
    str                             sql;
    ;
    sql = 'select * from HcmEmployment';
    permission = new SqlStatementExecutePermission(sql);
    permission.assert();

    con     = new userconnection();
    stmt    = con.createStatement();

    resultSet = stmt.executeQuery(sql);
    CodeAccessPermission::revertAssert();
    while (resultSet.next())
    {
     
           info(resultset.getString(1));

    }

Monday, 16 January 2012

Create a Project using Project Filter through code


static void ProjectFilter(Args _args)
{
    sysprojectfilterrunbase upgradeproject;
    utilelements            theelements;
    ;
    upgradeproject = new sysprojectfilterrunbase();
    upgradeproject.parmProjectNode(systreenode::createProject('test123'));
    upgradeproject.grouping(sysprojectgrouping::AOT);

    while select name, utilLevel, RecordType, ParentId from theelements
    where theelements.utilLevel == UtilEntryLevel::usr
    {
        try
        {
            theelements.reread();
            upgradeproject.doUtilElements(theelements);
        }
        catch (exception::Error)
        {
            throw error('error');
        }
    }
    upgradeproject.write();
    info('finish');
}

Thursday, 29 December 2011

Refresh Parent caller


FormDataSource   fds;

fds = element.args().record().dataSource();
 //fds.executeQuery(); // Use this as per requirement
 fds.refresh();
fds.research();

Wednesday, 30 November 2011

Attach files through code Ax 2012


All,

Following code helps you to attach files.

// AOSRunMode::Client
void attachFile()
{
    Filename            fileName  = @'C:\temp\test.csv';
    DocuRef             tdocuRef;
    DocuRef             updDocuRef;
    DocuType            docuType;      
    HcmWorker           hcmWorker = HcmWorker::findByPersonnelNumber('000466');
    DocuActionArchive   docuActionArchive;  
    ;

    select docutype where docutype.ActionClassId == classNum(DocuActionArchive) &&
       DocuType.TypeId == 'file' ;
   
    tdocuRef.RefRecId       = hcmWorker.RecId;
    tdocuRef.RefTableId     = hcmWorker.TableId;
    tdocuref.RefCompanyId   = 'dat';
    tdocuref.TypeId         = docutype.TypeId;  
    tdocuref.insert();
   
    ttsBegin;  
    select forupdate updDocuRef where updDocuRef.RecId ==  tdocuref.RecId;  
   
    docuActionArchive       = DocuAction::newDocuRef(updDocuRef);  
    docuActionArchive.add(updDocuRef, fileName);
    ttsCommit;  
}