有人可以帮助我理解Batch疯狂吗?
我正在尝试调试具有大约50个批处理作业的Axapta 3.0实现。大多数批处理类都没有实现 description()
方法,因此当您查看批处理列表表单时(基本>>查询>>批处理列表) )描述字段为空白。您可以看到批处理组和开始时间等,但您无法确定实际调用的是哪个类。
Batch 表包含一个名为 ClassNum 的隐藏字段,用于标识类的 ID 属性。谁能告诉我如何从ID中找到相应的类?一旦我确定了罪犯,我就可以添加说明。
我尝试在AOT上使用标准查找功能,但它没有接收它们。
欢迎任何建议!
非常感谢, 麦克
答案 0 :(得分:7)
我刚刚发现全局类 ClassId2Name 做同样的事情,所以你可以简单地拥有:
display str Classname()
{
return ClassId2Name(this.ClassNum);
}
答案 1 :(得分:2)
至少有两种方法可以使用DictClass
类:
display ClassName className()
{
DictClass dictClass = new DictClass(this.ClassNum);
;
if(dictClass!=null)
return dictClass.name();
return '';
}
或使用UtilIdElements
表:
display ClassName className()
{
UtilIdElements utilIdElements;
;
select utilIdElements where utilIdElements.id==this.ClassNum && utilIdElements.recordType==UtilElementType::Class;
if(utilIdElements)
return utilIdElements.name;
return '';
}
答案 2 :(得分:0)
如果 ClassNum 不可用,则替代获取 ClassName。
display str Classname()
{
return classId2Name(ClassIdGet(this));
}