是否可以将表添加到AX 2012中的Database Logging
选择列表中?如果是,是否可以选择每个表格出现在哪个类别?Dynamics AX 2012 - 将表添加到数据库记录选择列表
系统管理>数据库>数据库日志设置>新
当我选择Show all tables
,一些表仍然没有出现。这些表格也不出现在Not specified
类别中。
我们需要记录额外的AX构建的参数表以及开发者构建的表。开发人员表是在开发工作区中构建的,因此我们可以访问所有表格属性。
是否可以将表添加到AX 2012中的Database Logging
选择列表中?如果是,是否可以选择每个表格出现在哪个类别?Dynamics AX 2012 - 将表添加到数据库记录选择列表
系统管理>数据库>数据库日志设置>新
当我选择Show all tables
,一些表仍然没有出现。这些表格也不出现在Not specified
类别中。
我们需要记录额外的AX构建的参数表以及开发者构建的表。开发人员表是在开发工作区中构建的,因此我们可以访问所有表格属性。
可以在形式SysDatabaseLogWizard
添加新的按钮形式与自定义代码
void clicked()
{
TableId promptTableId;
Dialog d;
DialogField df;
void createLine(DatabaseLogType logType)
{
DatabaseLog.logTable = promptTableId;
DatabaseLog.LogType = logType;
DatabaseLog.insert();
}
d = new Dialog("Enter table name");
df = d.addField(extendedTypeStr(TableName));
d.parmIsModal(true);
if (d.run())
{
promptTableId = tableName2id(df.value());
if (!promptTableId)
{
throw error(strFmt("Table %1 does not exists", df.value()));
}
ttsBegin;
createLine(DatabaseLogType::Insert);
createLine(DatabaseLogType::Update);
createLine(DatabaseLogType::Delete);
ttsCommit;
SysFlushDatabaseLogSetup::main();
info(strFmt("For table %1 (%2) records are created: %3, %4, %5."
, tableId2name(promptTableId)
, tableId2pname(promptTableId)
, DatabaseLogType::Insert
, DatabaseLogType::Update
, DatabaseLogType::Delete
));
}
super();
}
方法buildTableTree
似乎开始寻找答案的好地方你问题:
是否可以将表添加到AX 2012中的数据库日志选择列表 ?
是的,这是可能的。
如果是,是否可以选择每个表出现在哪个类别?
是的,你必须修改表的配置键来改变类别。请注意,根配置密钥用作类别,因此请首先检查表的配置密钥是否具有父密钥(例如,表CommissionCustomerGroup
的配置密钥为Commission
,配置密钥LogisticsBasic
为父密钥,因此该表出现在类别Trade )。
请注意,更改配置密钥可能会产生额外的后果,我不建议仅仅更改数据库日志记录选择的类别。
关于你的观察,有些表中未列出,也有必须满足这样一个表被列出了几个条件:
dictTable.enabled()
,我猜,这意味着配置密钥启用)SysDataBaseLog
也不SysUserLog
DictTable
实例可以为表ID创建如果缺少表满足这些条件,我建议的调试方法buildTableTree
形成SysDatabaseLogWizard
来找出为什么表格没有添加到树形控件中。
感谢您的信息,细节非常方便完成我的任务。 –
谢谢,这工作。 –