This is code hint for Passing parameters from Managed code to axapta X++ in dataset of Enterprise portal
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
}
}