Skip to main content

Passing parameters from Managed code to X++ in dataset


Get external arguments through the args objects

 public void init()  
 {  
 ;  
 super();  
 EPPersonalize::find(curuserid());  
 if (element.args() && element.args().dataset() == tablenum(EmplTable))  
 {  
 callerEmplTable = element.args().record();  
 emplId = callerEmplTable.EmplId;  
 }  
 }  
 protected void Page_Init(object sender, EventArgs e)  
 {  
 this.AxDataSource1.CreatingDataSetRun += new EventHandler(AxDataSource1_CreatingDataSetRun);  
 }  
 Set the param value to the event arugments   
 void AxDataSource1_CreatingDataSetRun(object sender, CreatingDataSetRunEventArgs e)  
 {  
 e.DataSetRunArgs.parm = "4000";  
 }  
 In AOT override or add method in the data set and use element.args().parm() to received the paramter   
 public void executeQuery()  
 {  
 QueryBuildRange custRange;  
 ;  
 custRange = SysQuery::findOrCreateRange(this.query().dataSourceNo(1), fieldnum(CustTable, AccountNum));  
 custRange.value(element.args().parm());  
 super();  
 }  
 You can also pass an Enum. For example  
 void AxDataSource1_CreatingDataSetRun(object sender, CreatingDataSetRunEventArgs e)  
 {  
 e.DataSetRunArgs.parmEnumType = EnumMetadata.EnumNum(this.AxSession, "EPFormAction");  
 e.DataSetRunArgs.parmEnum(2);  
 }  
 public void init()  
 {  
 super();  
 if (element.args().parmEnumType() == enumnum(EPFormAction) && element.args().parmEnum() == EPFormAction::CreateMode)  
 {  
 //do somethign here  
 }  
 }  

Popular posts from this blog

strScan and Find a first occurrence of a string in a string using x++

strScan (Find a first occurrence of a string in a string) info("int strScan(str _text1,str _text2,int _position,int _number)"); info("Searches a text string for the occurrence of another string."); info("_text1 - The text string to search."); info("_text2 - The string to find."); info("_position - The position at which the search should start."); info("_number - The number of characters that should be searched."); info(int2str(strScan("ABCDEFGHIJ","DE",1,10)));

Get record from table on the basis of field id in Microsoft dynamics axapta x++

How to Get record from table on the basis of field id in dynamics axapta x++. just try following code in job to understand better way. emplTable emplTable; FieldId fieldId; ; fieldId = fieldNum(emplTable, Emplid); select emplTable; info(emplTable.(fieldId)); select emplTable where emplTable.(fieldId) == '1101'; info(emplTable.Name);

Code to get customer Primary Address in Ax 2012

Below Code to get customer Primary Address in Ax 2012. CustTable custTable_P; DirPartyTable dirPartyTable_P; DirPartyLocation dirPartyLocation_P; DirPartyLocationRole dirPartyLocationRole_P; LogisticsLocation logisticsLocation_P; LogisticsLocationRole logisticsLocationRole_P; LogisticsPostalAddress logisticsPostalAddress_P; LogisticsPostalAddress primaryAddress_P; while select custTable_P where custTable_P.AccountNum =='ED_01029' join dirPartyTable_P where dirPartyTable_P.RecId == custTable_P.Party join dirPartyLocation_P where dirPartyLocation_P.Party == custTable_P.Party && dirPartyLocation_P.IsPrimary==NoYes::Yes join dirPartyLocationRole_P where dirPartyLocationRole_P.PartyLocation == dirPartyLocation_P.RecId join logisticsLocationRole_P where logisticsLocationRole_P.RecId == dirPartyLocationRole