Posts

XPO import error

When importing a XPO, if following error occurs "table, enum, edt, object already exists. import aborted". Solution 1 Restart AOS Sync data dictionary Try importing again Solution 2 Goto tools/Caches--refresh all. Try importing again. It should work

X++ Confirm, Invoice and cancel purchase order

static void POConfirm(Args _args) {     PurchTable      pTable;     PurchFormLetter purchFormLetter;     AxPurchTable    axPurchTable;         select pTable where pTable.PurchId == "POnumber";         //Posting PO Confirmation     //You cannot do invoice without doing PO confirm     //purchTable = axPurchTable.purchTable();     purchFormLetter = PurchFormLetter::construct(DocumentStatus::PurchaseOrder);     purchFormLetter.update(pTable, strFmt("%1", pTable.PurchId));     //Posting PO Invoice    // purchFormLetter = PurchFormLetter::construct(DocumentStatus::Invoice);     //purchFormLetter.update(pTable, strFmt("%1", pTable.PurchId));  } Cancel a PO static void cancelPO(Args _args) {     PurchTable      pTable;     PurchCancel     pCancel;     xArgs           _xar;     _xar = new xArgs();     select forUpdate pTable where pTable.PurchId == "PO number";     {         if(pTable.PurchStatus == PurchStatus::Backord

GAB HR Worker access security

Global address book has all the workers, contacts, suppliers, customers info and also if a contact is been created and if HR wants to hire that contact(person). We can change that contact as worker from GAB itself. GAB has most of worker data as public, any one with GAB access can change the worker info like name and it is updated in HR module. if a worker address book is created and assigned to all the workers. A team is created, who has only access to that address book(like HR team). If we enable the security policy in org admin GAB parameters A user not in the HR team cannot see the workers in other modules like Procurement and project. As this will lock down workers not only in GAB nut also in other modules. Solution is to lock the edit property for the contacts in the GAB if he is a worker.

X++ Look ups - Existing form as a field lookup in another form

Option 1: A new field is added and that should show an already created form as its lookup. Create a new form with datasources and design. In design properties give window type = content page, style - lookup In the main form to get existing form as lookup, create a new form control and override lookup method as below. 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 main form init method, add below cod

X++ Job to update worker contact information by excel upload

Upload a excel file to update the already existing Worker contact information HR/Common/Workers/List Edit/Profile->Contact Information. Note: In the Excel file all the columns should be formatted as Text and the fields should be given according to below header format. PersonnelNumber, contactdescription, contacttype,contact,contactext,primarycontact,privatecontact 123,abc, email address, abcxyz@blogger.com, ,yes,no static void EmployeeContactInfo(Args _args) {     SysExcelApplication application;     SysExcelWorkbooks workbooks;     SysExcelWorkbook workbook;     SysExcelWorksheets worksheets;     SysExcelWorksheet worksheet;     SysExcelCells cells;     COMVariantType type;     System.DateTime ShlefDate;     FilenameOpen filename,filenameopen;     dialogField dialogFilename;     Dialog dialog;     LogisticsLocation logisticsLocation   ;     LogisticsElectronicAddress logisticsElectronicAddress;     DirPartyLocation dirPartyLocation;     HcmWorker hcmWorke

AX 2012 X++ form splitter

class declaration of form public class FormRun extends ObjectRun {    SysFormSplitter_Y formSplitter_Y;//splitter moves in y- axis and it is vertical splitter container    SysFormSplitter_X formSplitter_X; //splitter moves in x- axis and it is horizontal splitter container } InIt method of form public void init() {     super();     formSplitter_Y = new SysFormSplitter_Y(Splittergroupname,top or bottom group name,this/element); formSplitter_X = new SysFormSplitter_X(Splitter,top,element);//splitter moves in x-axis when u take two tabs side by side } In design column property given as 2 to split the form to two section Override below methods in the splitter group control for moving splitter mouse up(override method) public int mouseUp(int _x, int _y, int _button, boolean _Ctrl, boolean _Shift) {     int ret;     ret = super(_x, _y, _button, _Ctrl, _Shift);     return ret; } mousedown public int mouseDown(int _x, int _y, int _butt