Posts

X++ load operating units for financial dimensions CSV import

static void LoadDepartmentCost(Args _args) {     #File     OMOperatingUnit ou,ou2;     OMOperatingUnitType t;     RecId omOpRecId;     NumberSeq num;     IO  iO;     FilenameOpen        filename;// = "c:\\share\\test.csv";//To assign file name     Container           record;     str type;     int counter = 5, alreadyExists = 0;     Dialog          dialog;     DialogField     dialogfileName;     //dialog to load the excel file of contact information         dialog = new Dialog("Upload File");         dialogFilename = dialog.addField(extendedTypeStr(FilenameOpen));         dialog.filenameLookupFilter(["All files",#AllFiles]);         //dialog.filenameLookupTitle("Employee Data");         dialog.caption("Upload");     if(dialog.run())     {        filename = dialogFilename.value();     }     iO = new CommaTextIo(filename, #IO_Read);     if (! iO || iO.status() != IO_Status::Ok)     {         throw error(

Run AX client with out load balance AOS

Open command promt as admin Navigate to client bin folder cd C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\bin AX32.exe -loadbalance=0 -aos2=servername:2712 to login to the intended AOS add loadbalance, value, 0 parameter to .axc client configuration

X++ job to get user assigned security roles

static void Job6(Args _args) {     SecurityInfoTable axpUserSecurityTmp;     SecurityUserRole securityUserRole;     SecurityRole securityRole;     SecurityTask securityTask;     UserInfo     userInfo;     SecurityRoleAllTasksView securityRoleAllTasksView;     OMUserRoleOrganization roleOrganization;     OMInternalOrganization internalOrganization;     while select securityUserRole        outer join securityRole                 where securityRole.RecId == securityUserRole.SecurityRole        join userInfo             where userInfo.id == securityUserRole.User             && userInfo.enable == NoYes::Yes        outer join securityRoleAllTasksView                 where securityRoleAllTasksView.SecurityRole == securityUserRole.SecurityRole                     outer join securityTask                     where securityTask.RecId == securityRoleAllTasksView.SecurityTask                         outer join roleOrganization              

X++ Send Email

SysEmailTable::sendMail(sysEmailId,SysEmailTable::find(sysEmailId).DefaultLanguage , outEMailAddr,     null,     filename,     '',     true,     curuserid(),     true);

X++ Get Admin access

static void AdminOn(Args _args) {     SecurityUtil::sysAdminMode(true);     info("AdminOn"); } static void AdminOff(Args _args) {     SecurityUtil::flushAll();     SecurityUtil::sysAdminMode(false);     info("AdminOff"); }

Get dimension values for a particular financial dimension

Financial Dimension can be custom(new ones) or existing(customer,Item,Department) DimensionAttribute table has all the Financial dimensions,this is the main table to drilldown to get the dimension values of each dimenion. Dimension values for above dimensions sit in different tables or views like OMoperatingunitview, OMDepartmentView, DimattributeOMcostcenter etc. dimensionattributevalue table has mapping for above two(dimension and dimensionvalue) To get dimension values for a particular dimension, below code can be used. Dimension attribute table holds the tableId which has the dimensionvalue. while select BackingEntityTableId, BackingEntityValueFieldId, Type from dimensionAttribute where dimensionAttribute.type == j     {         dictTable = new dictTable(dimensionAttribute.BackingEntityTableId);         common = dictTable.makeRecord();         id = dimensionAttribute.BackingEntityValueFieldId;         while select * from common join EntityInstance, DimensionAttr

X++ Pass SSRS query ranges

This method works fine on the job and also once the batch job or on the server public void getSSRSReport(Filename  filename,FilePath        filepath ) {     Query reportRunQuery;     str querykey;    // filename = "Report.pdf";     //filename = filepath + filename;     this.parmReportName(ssrsReportStr(Report,Autodesign));     querykey =    this.getFirstQueryContractKey();     this.parmReportContract().parmQueryContracts().remove(querykey);     reportRunQuery = new Query(queryStr(query name));     SrsReportHelper::addParameterValueRangeToQuery(reportRunQuery, tableNum(UserInfo),fieldNum(UserInfo, id),"abc.da");     this.parmReportContract().parmQueryContracts().insert(querykey, reportRunQuery);     this.parmReportContract().parmPrintSettings().printMediumType(SRSPrintMediumType::File);     this.parmReportContract().parmPrintSettings().overwriteFile(true);     this.parmReportContract().parmPrintSettings().fileFormat(SRSReportFileFormat::PDF);     this.parmReportCont