Saturday, 3 May 2014

SSRS Report does not display any records in Report Viewer Ax2012

Issue:
A customize report which also contain sub reports that report is unable to view in report viewer  but when we saved it in PDFs or printer preview it's printable and records are printed on it.

Solution:
 in my case report contain image in header and it's have some issue in logo i removed it and report view successfully. I also check the following link.

http://blogs.msdn.com/b/axsupport/archive/2013/03/13/ax2012r2-report-does-not-display-any-records-in-report-viewer.aspx


Security Role assign in Ax2012

Last few days i am facing following issue
I have assigned multiple roles to a user Like " Human Resource Assistant" and "Human Resource Manager". when i was assigned these roles to a user then on worker or Employee form i am unable see the records of  personal contract i.e Phone and address.
But when i assign system admin role then it's shown . I have  had also drag all tables related to this personal contract information in side the above roles but no effect .

Solution:
Go to the following path and open window assigned your required roles 
Organization administration -->setup---> Global address book parameter 

Friday, 7 March 2014

How rename the record in Ax2012?

we are using right click on record and use record information for renaming record.
Following job use to rename the record .

static void CustomerAccountRename(Args _args)
{
     CustTable custTable;
    select firstOnly custTable
          where custTable.AccountNum == '1101';
          if (custTable.RecId)
         {
                 custTable.AccountNum = '1101_';
                 custTable.renamePrimaryKey();
          }
}

Wednesday, 19 February 2014

Top 10 issues discovered from Dynamics AX Code Review

Check the following link related to Dynamics Ax2012   X++ coding point of view

http://blogs.msdn.com/b/axinthefield/archive/2014/02/18/top-10-issues-discovered-in-the-dynamics-ax-code-review.aspx

Friday, 7 February 2014

X++ Debugging Tips and Tricks

I found a useful link for debugging x++.Here i am going to share this link

http://blogs.msdn.com/b/mfp/archive/2013/09/23/x-debugging-tips-and-tricks-part-1.aspx

How Create Customize Look up for Financial Dimension in Ax2012

Following lookup help for dimension filtration according to enum value over here
DimType  is customized filed which contain  Department, CostCenter, Project, Account  and BusinessUnit.
Select any one option then use following code of lookup for filter                                                                

public void lookup()
{

    Query query = new Query();
    QueryBuildDataSource                queryBuildDataSource;
    QueryBuildRange                         qbrForAccount;
    SysTableLookup                           sysTableLookup;
    DimType                                        dimType;
    DimensionAttribute                        dimensionAttribute;
    DimensionAttributeDirCategory       dimAttributeDirCategory;
    ;

    dimType = str2enum(dimType,FilterGroup_Type.valueStr());

    switch(dimType)
    {
        case  DimType::Department:

            sysTableLookup = SysTableLookup::newParameters(tableNum(OMOperatingUnit),this,true);
            sysTableLookup.parmUseLookupValue(false);
            sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, OMOperatingUnitNumber));
            sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, Name));
            queryBuildDataSource = query.addDataSource(tableNum(OMOperatingUnit));
            queryBuildDataSource.addSortField(fieldnum(OMOperatingUnit,OMOperatingUnitNumber));
            queryBuildDataSource.addRange(fieldNum(OMOperatingUnit,      OMOperatingUnitType)).value(int2str(any2int(OMOperatingUnitType::OMDepartment)));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;

        case  DimType::BusinessUnit:

            sysTableLookup = SysTableLookup::newParameters(tableNum(OMOperatingUnit),this,true);
            sysTableLookup.parmUseLookupValue(false);
            sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, OMOperatingUnitNumber));
            sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, Name));
            queryBuildDataSource = query.addDataSource(tableNum(OMOperatingUnit));
            queryBuildDataSource.addSortField(fieldnum(OMOperatingUnit,OMOperatingUnitNumber));
            queryBuildDataSource.addRange(fieldNum(OMOperatingUnit, OMOperatingUnitType)).value(int2str(any2int(OMOperatingUnitType::OMBusinessUnit)));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;

        case  DimType::CostCenter:


            sysTableLookup = SysTableLookup::newParameters(tableNum(OMOperatingUnit),this,true);
            sysTableLookup.parmUseLookupValue(false);
            sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, OMOperatingUnitNumber));
            sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, Name));
            queryBuildDataSource = query.addDataSource(tableNum(OMOperatingUnit));
            queryBuildDataSource.addSortField(fieldnum(OMOperatingUnit,OMOperatingUnitNumber));
            queryBuildDataSource.addRange(fieldNum(OMOperatingUnit, OMOperatingUnitType)).value(int2str(any2int(OMOperatingUnitType::OMCostCenter)));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;
        case  DimType::Project:

            dimensionAttribute = DimensionAttribute::findByName("Project");
            if (dimensionAttribute.Type == DimensionAttributeType::CustomList)
            {
            select firstonly DirCategory from dimAttributeDirCategory where dimAttributeDirCategory.DimensionAttribute == dimensionAttribute.RecId;
            sysTableLookup = SysTableLookup::newParameters(tableNum(DimensionFinancialTag), this,true);
            sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Value));
            sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Description));
            query = new Query();
            query.addDataSource(tableNum(DimensionFinancialTag)).addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory)).value(queryValue(dimAttributeDirCategory.DirCategory));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            }
            break;


        case DimType::Account:

            sysTableLookup = SysTableLookup::newParameters(tableNum(MainAccount),this,true);
            sysTableLookup.parmUseLookupValue(false);
            sysTableLookup.addLookupfield(fieldNum(MainAccount, MainAccountId));
            sysTableLookup.addLookupMethod(tableMethodStr(MainAccount, localizedName));
            sysTableLookup.addLookupfield(fieldNum(MainAccount, Type));
            queryBuildDataSource = query.addDataSource(tableNum(MainAccount));
            qbrForAccount = queryBuildDataSource.addRange(fieldNum(MainAccount,LedgerChartOfAccounts));
            qbrForAccount.value(queryValue(Ledger::current()));
            queryBuildDataSource.addSortField(fieldnum(MainAccount,MainAccountId));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;

     
}

Friday, 17 January 2014

Development Tips on Application Integration Framework

I have read one article before start development of  AIF. Check the following links

http://axblog4u.wordpress.com/2010/11/23/development-tips-on-application-integration-framework/

http://blogs.msdn.com/b/aif/archive/2012/05/07/how-to-serialize-int-real-properties-with-0-0-00-values-via-aif-outbound-integration.aspx

http://www.dynamics101.com/2013/11/creating-custom-inbound-aif-service-microsoft-dynamics-ax-2012/