Monday, September 22, 2014

Query Ex 2 In Ax 2012

static void CustTableQueryEx(Args _args)
{
    CustTable               custTable;
    Query                   query;
    QueryBuildDataSource    qbds;
    QueryRun                queryRun;
    ;
   
    query = new Query();
    qbds =  query.addDataSource(tableNum(custTable));
    queryRun =  new QueryRun(query);
    while(queryRun.next())
    {
       custTable =  queryRun.get(tableNum(custTable));
        info(strFmt("%1 , %2 ",custTable.name(),custTable.AccountNum));
    }
   
}

Query Example In Ax 2012

static void CookBookEx25(Args _args)
{
    Query                           query;
    QueryRun                        queryRun;
    QueryBuildDataSource            qbds1;
    QueryBuildDataSource            qbds2;
    QueryBuildRange                 qbr1;
    QueryBuildRange                 qbr2;
    ProjTable                       projTable;
    ;
   
    query = new Query();
    qbds1 = query.addDataSource(tableNum(projTable));
    qbds1.addSortField(fieldNum(projTable,Name),SortOrder::Ascending);
    qbr1 = qbds1.addRange(fieldNum(projTable,Type));
    qbr1.value(queryValue(projType::FixedPrice));
   
    qbr2 = qbds1.addRange(fieldNum(projTable,ProjId));
    qbr2.value(queryValue('2') + '*');
    qbds2 = qbds1.addDataSource(tableNum(ProjEmplTrans));
    qbds2.relations(true);
    qbds2.joinMode(JoinMode::ExistsJoin);
    queryRun = new QueryRun(query);
    while (queryRun.next())
    {
            projTable = queryRun.get(tableNum(ProjTable));
            info(strFmt(            "%1, %2, %3",
            projTable.ProjId,
            projTable.Name,
            projTable.Type));
    }
}

Copying A Record In Ax 2012

static void CookBookEX22(Args _args)
{
    MainAccount             mainAccount1;
    MainAccount             mainAccount2;
    ;
   
    mainAccount1 = MainAccount::findByMainAccountId('211100');
    ttsBegin;
    mainAccount2.data(mainAccount1);
    mainAccount2.MainAccountId = '211102';
    if(!mainAccount2.validateWrite())
    {
        throw Exception::Error;
    }
    mainAccount2.insert();
    ttsCommit;
   
}

How to create normal table to temp table in Ax 2012

static void CookBookEX21(Args _args)
{
    CustTable custTable;
    ;
    custTable.setTmp(); // Here I'm setting the normal table as a Temp Table;
     custTable.AccountNum  = "23";
    custTable.Blocked = CustVendorBlocked::All;
    custTable.Party     =   12;
    custTable.doInsert();
    custTable.clear();
   
    custTable.AccountNum = "177";
    custTable.Blocked = CustVendorBlocked::Invoice;
    custTable.Party     =   1112;
    custTable.doInsert();
   
   
   
 
    while select custTable
    {
        info(strFmt("%1",custTable.AccountNum));
    }

}

Document Handling In Ax 2012

static void CookBookEx20(Args _args)
{
    DocuRef     docuRef;
    VendTable   vendTable;
    ;
    vendTable = vendTable::find('3001');
    docuRef.RefCompanyId    =   vendTable.dataAreaId;
    docuRef.RefTableId      =   vendTable.TableId;
    docuRef.RefRecId        =   vendTable.RecId;
    docuRef.TypeId          =   'Note';
    docuRef.Name            =   'Imported';
    docuRef.Notes           =   "This Vendor was Imported";
    docuRef.insert();
}

Merge Two Records In Ax 2012

static void CookBookEX18(Args _args)
{
    ReasonTable reasonTableDelete;
    ReasonTable reasonTable;
    ;
   
    ttsBegin;
        select firstOnly forUpdate reasonTableDelete
            where reasonTableDelete.Reason == 'Counter';
        select firstOnly forUpdate reasonTable
            where reasonTable.Reason == 'Auction';
   
        reasonTableDelete.merge(reasonTable);
    reasonTable.doUpdate();
    reasonTableDelete.doDelete();
    ttsCommit;
}

Wednesday, September 17, 2014

X++ code to open a form or menuitem AXAPTA

how to open a form by using x++ code:

static void OpenDisplayMenuItem()
{
Args args = new Args();
;
args.record(VendTable::find("XYZ"));
new MenuFunction(MenuItemDisplayStr(VendTable),MenuItemType::Display).run(Args);
}

------
static void OpenForm()
{ FormRun formRun;
Args args = new Args();
;
args.name(formstr(VendTable));
args.record(CustTable::find("XYZ"));

formRun = ClassFactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.wait();
}

update_recordset , insert_recordset, Delete records and select record of SQL in Dynamic AX 2012


//Select query in Dynamic AX 2012
 MyTable myTableBuffer;
;
Select myTableBuffer
where field1 == 0;
//use while select for multiple select

// Update query in Dynamic AX 2012

MyTable myTableBuffer;
;
update_recordset myTableBuffer
setting
    field1 = 1,
    field2 = fieldX + fieldY
where field1 == 0;

//Delete query in Dynamic AX 2012
 
static void DeleteMultiRow1aJob(Args _args)
{
    MyWidgetTable tabWidget;
    ;
    delete_from tabWidget
        where tabWidget .quantity <= 100;
}
 

// Insert query in Dynamic AX 2012
insert_recordset myTable (Field1, Field2)
    Field1= “QWERTyuioP”
Field2 = “ASDFghjkl” ;