Dynamics
Monday, October 16, 2023
Thursday, September 3, 2015
How to assign read only access to user in AX 2012
Recently in our project there is a requirement - need to assign the read only access to one of the AX User.
So searching in the AX community for this if any one has implemented similar functionality,finally found the article.
Below is the link.
https://community.dynamics.com/ax/b/kayaconsulting/archive/2013/08/03/ax2012-how-to-create-a-read-only-security-role-walkthrough
Followed the step by step mentioned in the above article and achieved the read only access for the AX user.
Here wanted to add one more point, i.e. in the above article it filters all the *Inquire, *Review for the 'SysModelElement' and SecurityDuty for the 'SysModelElementType'.
In customization, if created new forms/classes/reports and added those new forms/classes/reports in new 'Duties', so in this case these also needs to be included in the 'Role' which created by using the steps mentioned from the above articles. So those objects also will have the 'View' permissions for the AX user.
So searching in the AX community for this if any one has implemented similar functionality,finally found the article.
Below is the link.
https://community.dynamics.com/ax/b/kayaconsulting/archive/2013/08/03/ax2012-how-to-create-a-read-only-security-role-walkthrough
Followed the step by step mentioned in the above article and achieved the read only access for the AX user.
Here wanted to add one more point, i.e. in the above article it filters all the *Inquire, *Review for the 'SysModelElement' and SecurityDuty for the 'SysModelElementType'.
In customization, if created new forms/classes/reports and added those new forms/classes/reports in new 'Duties', so in this case these also needs to be included in the 'Role' which created by using the steps mentioned from the above articles. So those objects also will have the 'View' permissions for the AX user.
Tuesday, August 11, 2015
DAX to the Future: Filtering Data using Dynamic Ranges
DAX to the Future: Filtering Data using Dynamic Ranges: DAX contains some powerful features for filtering data on forms and reports that are easily accessible to end-users, however it’s more power...
Sunday, March 22, 2015
Outbound file generation using File system adapater in AX 2012
Hi All,
Here is example to generate the outbound Xml file using X++ code. This is not the new thing but just posting the info
1. Generating the outbound xml file for selected record or single record - using document service(file system adapter).
2. Generating the outbound xml file for all records( i.e. specified criteria on the query) - using document service(file system adapter).
Example: Generating the outbound xml file for selected record or single record.
Below is the code to generate the outbound xml file for the selected record.
static void GenerateXmlSelectedRecord(Args _args)
{
AxdSendContext axdSendContext = AxdSendContext::construct();
AifEntityKey aifEntityKey = AifEntityKey::construct();
AifEntityKeyList aifEntityKeyList = AifEntityKeyList::construct();
Map keyData;
AifConstraintList aifConstraintList = new AifConstraintList();
AifConstraint aifConstraint = new AifConstraint();
CustTable custTable;
int i,j;
CustCustomerService CustCustomerService = CustCustomerService::construct();
;
custTable = CustTable::find('Cust001');
keyData = SysDictTable::getKeyData(custTable);
aifEntityKey.parmTableId(custTable.TableId);
aifEntityKey.parmRecId(custTable.RecId);
aifEntityKey.parmKeyDataMap(keyData);
aifEntityKeyList.addEntityKey(aifEntityKey);
axdSendContext.parmXMLDocPurpose(XMLDocPurpose::Original);
axdSendContext.parmSecurity(false);
aifConstraint.parmType(AifConstraintType::NoConstraint) ;
aifConstraintList.addConstraint(aifConstraint) ;
info(strFmt("%1",custTable.AccountNum));
AifSendService::SubmitDefault( classnum(CustCustomerService),
aifEntityKey,
aifConstraintList,
AifSendMode::Async,
axdSendContext.pack());
}
Example: Generating the outbound xml file for all records( i.e. specified criteria on the query).
Below is the code to generate the outbound xml for all the records or specified criteria.
static void GenerateMutiplerecords(Args _args)
{
CustTable custTable;
AxdSendContext axdSendContext = AxdSendContext::construct();
AifEntityKey aifEntityKey = AifEntityKey::construct();
AifConstraintList aifConstraintList = new AifConstraintList();
AifConstraint aifConstraint = new AifConstraint();
AifEndpointList endpointList;
AifActionId actionId;
Query query;
QueryBuildDataSource qbds;
query = new Query(queryStr(AxdCustomer));
AxdSend::removeChildDs(query);
actionId = AifSendService::getDefaultSendAction(classnum(CustCustomerService), AifSendActionType::SendByQuery);
aifConstraint.parmType(AifConstraintType::NoConstraint);
aifConstraintList.addConstraint(aifConstraint) ;
endpointList = AifSendService::getEligibleEndpoints(actionId, aifConstraintList);
AifSendService::SubmitFromQuery(actionId,endpointList,query,AifSendMode::Async);
}
Here is example to generate the outbound Xml file using X++ code. This is not the new thing but just posting the info
1. Generating the outbound xml file for selected record or single record - using document service(file system adapter).
2. Generating the outbound xml file for all records( i.e. specified criteria on the query) - using document service(file system adapter).
Example: Generating the outbound xml file for selected record or single record.
Below is the code to generate the outbound xml file for the selected record.
static void GenerateXmlSelectedRecord(Args _args)
{
AxdSendContext axdSendContext = AxdSendContext::construct();
AifEntityKey aifEntityKey = AifEntityKey::construct();
AifEntityKeyList aifEntityKeyList = AifEntityKeyList::construct();
Map keyData;
AifConstraintList aifConstraintList = new AifConstraintList();
AifConstraint aifConstraint = new AifConstraint();
CustTable custTable;
int i,j;
CustCustomerService CustCustomerService = CustCustomerService::construct();
;
custTable = CustTable::find('Cust001');
keyData = SysDictTable::getKeyData(custTable);
aifEntityKey.parmTableId(custTable.TableId);
aifEntityKey.parmRecId(custTable.RecId);
aifEntityKey.parmKeyDataMap(keyData);
aifEntityKeyList.addEntityKey(aifEntityKey);
axdSendContext.parmXMLDocPurpose(XMLDocPurpose::Original);
axdSendContext.parmSecurity(false);
aifConstraint.parmType(AifConstraintType::NoConstraint) ;
aifConstraintList.addConstraint(aifConstraint) ;
info(strFmt("%1",custTable.AccountNum));
AifSendService::SubmitDefault( classnum(CustCustomerService),
aifEntityKey,
aifConstraintList,
AifSendMode::Async,
axdSendContext.pack());
}
Example: Generating the outbound xml file for all records( i.e. specified criteria on the query).
Below is the code to generate the outbound xml for all the records or specified criteria.
static void GenerateMutiplerecords(Args _args)
{
CustTable custTable;
AxdSendContext axdSendContext = AxdSendContext::construct();
AifEntityKey aifEntityKey = AifEntityKey::construct();
AifConstraintList aifConstraintList = new AifConstraintList();
AifConstraint aifConstraint = new AifConstraint();
AifEndpointList endpointList;
AifActionId actionId;
Query query;
QueryBuildDataSource qbds;
query = new Query(queryStr(AxdCustomer));
AxdSend::removeChildDs(query);
actionId = AifSendService::getDefaultSendAction(classnum(CustCustomerService), AifSendActionType::SendByQuery);
aifConstraint.parmType(AifConstraintType::NoConstraint);
aifConstraintList.addConstraint(aifConstraint) ;
endpointList = AifSendService::getEligibleEndpoints(actionId, aifConstraintList);
AifSendService::SubmitFromQuery(actionId,endpointList,query,AifSendMode::Async);
}
Subscribe to:
Posts (Atom)