有没有人有一些示例代码或可以指示我可以修改哪个类,以向Dynamics AX(DAX)中的警报消息添加更多信息.我想例如在更改供应商名称时添加供应商编号和用户ID.
编辑:有人告诉我,在设置警报时必须在描述面板中输入HTML代码.如果这是真的,任何人都有更多的信息,如果你可以分享这些信息将是很好的.
提前致谢.
Dynamics AX 2009最佳实践加载项在显示方法覆盖上引发以下错误.
"TwC: Validate access to return value from the display/edit method."
Run Code Online (Sandbox Code Playgroud)
这是我的显示方法.
display ABC_StyleName lookupModuleName(ABC_StyleSettings _ABC_StyleSettings)
{
;
return ABC_Styles::find(_ABC_StyleSettings.StyleID).StyleName;
}
Run Code Online (Sandbox Code Playgroud)
我假设它要我在返回结果之前检查配置或安全密钥.有关从哪里开始的任何建议/示例?
谢谢
我使用标准模式向表单添加了一个数据源:
Args args;
FormRun formRun;
Form form;
FormBuildDataSource formBuildDataSource;
;
form = new Form(formstr(ICS));
formBuildDataSource = form.addDataSource('dbm_ICStmp');
//formBuildDataSource.table(tablenum(dbm_ICStmp));
args = new Args();
args.object(form);
formRun = classfactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.detach();
Run Code Online (Sandbox Code Playgroud)
dbm_ICStmp是一个临时表.我如何调用setTmpData?
我有这种情况,我们有一个生产Dynamics 2009 AX(RTM)环境,其AOT我们用来为RU8做代码更新项目.
所以现在,我有一个生产环境(RTM)和一个相同但修补到RU8的环境.
问题是,因为,页面定义在RTM环境中发生了变化,我想将它们导出到RU8环境.
我可以导出整个树的XPO(Web-> Web Files-> Page definitions)并将其导入RU8 env.但是我是否带有ID导出?如果两个环境中都存在对象,这会改变吗?
谢谢!
我的任务是从AX 2009中删除所有物料清单(BOM)中的特定物品.
据我所知,该BOMTable表包含标题,BOM表中包含行.他们通过连接BOMId.
该BOM表保存一个字段ItemId这是InventTable.ItemId.
假设是正确的,从BOM表中删除所有行是否足够BOM.ItemId == InventTable.ItemId?还有什么需要考虑的吗?
任何帮助表示赞赏
我不明白为什么在if块中使用正逻辑是最佳实践
http://msdn.microsoft.com/en-US/library/aa629483.aspx
首选:
if (true)
{
...
}
else
{
...
}
Run Code Online (Sandbox Code Playgroud)
为什么在if块中具有正逻辑是最佳实践?
任何人都可以向我解释以下行为吗?
当AX表中的字段类型设置为枚举时,您可以选择任何枚举值作为字段的值.
但是,如果您将字段设为Mandatory,则无法再通过用户界面选择列表中的第一个Enum值.
显然,这可以通过不使该字段强制性来解决.我正在寻找这种奇怪行为的解释.
有什么方法可以确定代码是在客户端还是在批处理作业中执行?我想过使用curUserId并检查用户是否是我们用于批处理作业的用户,但如果用户发生更改,这种方法就会失败。
当它运行到客户端时,我试图用是/否对话框修改update表的方法VendTable,但是当代码作为批处理运行时,我不希望发生这种情况。
有任何想法吗 ?
我在使用FormRun两次打开表单时看到一个奇怪的情况
static void Job780(Args _args)
{
FormRun formRun;
Args args = new Args();
;
args.name(formstr(Form1));
formRun = ClassFactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.wait();
}
如果我运行此代码两次,那么我会看到2个表单,但在关闭第二个表单之前我无法关闭第一个表单.
我在几个实例和不同版本(2009年,2012年)上尝试过它.清除缓存和*.auc fiels.结果相同.
问题是如何解决它.我的意思是如何使表单以任何顺序正确关闭.谢谢.
我正在寻找一种方法来为某些表启用日志记录更改.
我已经尝试并测试过以编程方式将表添加到数据库日志中,但到目前为止取得了各种成功 - 有时它有时它不起作用(大多数情况下它没有) - 似乎只是将行插入DatabaseLog表中并不是很有效.
我尝试过:
使用正确的tableId,fieldId,logType和添加行.
域名已被指定为"管理员",主要公司,空白场和子公司,结果相同.
我创建了处理插入的类,主要的两个函数是:
public static void InsertBase(STR tableName, domainId _domain='Admin')
{
//base logging for insert, delete, uptade on fieldid=0
DatabaseLog DBDict;
TableId _tableId;
DatabaseLogType _logType;
fieldId _fieldId =0;
List logTypes;
int i;
ListEnumerator enumerator;
;
_tableId= tableName2id(tableName);
logTypes = new List(Types::Enum);
logTypes.addEnd(DatabaseLogType::Insert);
logTypes.addEnd(DatabaseLogType::Update);
logTypes.addEnd(DatabaseLogType::Delete);
logTypes.addEnd(DatabaseLogType::EventInsert);
logTypes.addEnd(DatabaseLogType::EventUpdate);
logTypes.addEnd(DatabaseLogType::EventDelete);
enumerator = logTypes.getEnumerator();
while(enumerator.moveNext())
{
_logType = enumerator.current();
select * from dbdict where
dbdict.logTable==_tableId && dbdict.logField==_fieldId
&& dbdict.logType==_logType;
if(!dbDict) //that means it doesnt exist …Run Code Online (Sandbox Code Playgroud)