Posts

Showing posts from May, 2015

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

Hold all batch jobs

  To hold all batch jobs. Create a new Job  Add below code to job and execute. All the batch jobs with status waiting will be changed to hold.     BatchJob job;         ttsBegin;     while select forUpdate job where job.Status == BatchStatus::Waiting     {         job.Status = BatchStatus::Hold;         job.update();             }     ttsCommit;

Form as field look up in another form

A new field is added and that should show a already created form as its lookup. Create a new form with datasources and design. In design properties give window type-content page, style- lookup public void lookup() {    SysTableLookup          sysTableLookup ;     Query                   query           = new Query();     QueryBuildDataSource    queryBuildDataSource;     QueryBuildRange         queryBuildRange;     DimensionValue  value;     Args args;     FormRun formRun;     ;     args = new Args();     args.name("HcmWorkerEligibleLookup");     args.record(PurchReqTable);     args.parmEnum(NoYes::Yes); //     args.caller(this); //     formRun = classFactory.formRunClass(args);     formRun.init();     formRun.run();     formRun.detach();     this.performFormLookup(formRun); } In the created form init method give public void init() {     super(); this.selectmode(formname_field from datasource to be shown in the lookup eg: this.selectMode

Forms to store last filter values

Use SysEPCustomFilter class to save the last filter values on forms or listpages Use projprojectslistpageInteraction class to see more about the functionality