标签: dynamics-ax-2009

如何使用X ++向MS Dynamics 2009 AX的警报消息添加更多信息?

有没有人有一些示例代码或可以指示我可以修改哪个类,以向Dynamics AX(DAX)中的警报消息添加更多信息.我想例如在更改供应商名称时添加供应商编号和用户ID.

编辑:有人告诉我,在设置警报时必须在描述面板中输入HTML代码.如果这是真的,任何人都有更多的信息,如果你可以分享这些信息将是很好的.

提前致谢.

ax x++ axapta dynamics-ax-2009

3
推荐指数
1
解决办法
3217
查看次数

Axapta:验证从显示方法返回值的访问权限

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)

我假设它要我在返回结果之前检查配置或安全密钥.有关从哪里开始的任何建议/示例?

谢谢

methods x++ axapta dynamics-ax-2009

3
推荐指数
1
解决办法
5618
查看次数

setTmpData()动态添加表单DataSource

我使用标准模式向表单添加了一个数据源:

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?

x++ axapta dynamics-ax-2009 dynamics-ax-2012

3
推荐指数
1
解决办法
3989
查看次数

导出带或不带ID的AOT对象(XPO)?

我有这种情况,我们有一个生产Dynamics 2009 AX(RTM)环境,其AOT我们用来为RU8做代码更新项目.

所以现在,我有一个生产环境(RTM)和一个相同但修补到RU8的环境.

问题是,因为,页面定义在RTM环境中发生了变化,我想将它们导出到RU8环境.

我可以导出整个树的XPO(Web-> Web Files-> Page definitions)并将其导入RU8 env.但是我是否带有ID导出?如果两个环境中都存在对象,这会改变吗?

谢谢!

axapta dynamics-ax-2009 aot dynamics-ax-xpo

3
推荐指数
1
解决办法
1954
查看次数

如何从所有BOM中删除特定文章?

我的任务是从AX 2009中删除所有物料清单(BOM)中的特定物品.

据我所知,该BOMTable表包含标题,BOM表中包含行.他们通过连接BOMId.

BOM表保存一个字段ItemId这是InventTable.ItemId.

假设是正确的,从BOM表中删除所有行是否足够BOM.ItemId == InventTable.ItemId?还有什么需要考虑的吗?

任何帮助表示赞赏

x++ axapta dynamics-ax-2009

3
推荐指数
1
解决办法
288
查看次数

我为什么要在if块中使用正逻辑?

我不明白为什么在if块中使用正逻辑是最佳实践

http://msdn.microsoft.com/en-US/library/aa629483.aspx

首选:

if (true) 
{ 
   ... 
} 
else 
{ 
   ... 
} 
Run Code Online (Sandbox Code Playgroud)

为什么在if块中具有正逻辑是最佳实践?

microsoft-dynamics x++ axapta dynamics-ax-2009

2
推荐指数
1
解决办法
410
查看次数

无法通过UI正确设置Dynamics AX强制枚举字段

任何人都可以向我解释以下行为吗?

当AX表中的字段类型设置为枚举时,您可以选择任何枚举值作为字段的值.

但是,如果您将字段设为Mandatory,则无法再通过用户界面选择列表中的第一个Enum值.

显然,这可以通过不使该字段强制性来解决.我正在寻找这种奇怪行为的解释.

axapta dynamics-ax-2009

2
推荐指数
1
解决办法
3135
查看次数

代码是在客户端运行还是作为批处理作业运行?

有什么方法可以确定代码是在客户端还是在批处理作业中执行?我想过使用curUserId并检查用户是否是我们用于批处理作业的用户,但如果用户发生更改,这种方法就会失败。

当它运行到客户端时,我试图用是/否对话框修改update表的方法VendTable,但是当代码作为批处理运行时,我不希望发生这种情况。

有任何想法吗 ?

x++ axapta dynamics-ax-2009

2
推荐指数
1
解决办法
5698
查看次数

Dynamics AX x ++无法关闭第一个表单

我在使用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.结果相同.

问题是如何解决它.我的意思是如何使表单以任何顺序正确关闭.谢谢.

x++ axapta dynamics-ax-2009 dynamics-ax-2012

2
推荐指数
1
解决办法
1326
查看次数

Dynamics AX - 在AX 2009中以编程方式将表添加到DatabaseLog

我正在寻找一种方法来为某些表启用日志记录更改.
我已经尝试并测试过以编程方式将表添加到数据库日志中,但到目前为止取得了各种成功 - 有时它有时它不起作用(大多数情况下它没有) - 似乎只是将行插入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)

microsoft-dynamics x++ axapta dynamics-ax-2009

2
推荐指数
1
解决办法
223
查看次数