5

请问有人可以帮我理解批处理的疯狂吗?

我正在尝试调试具有大约 50 个批处理作业的 Axapta 3.0 实现。大多数批处理类不实现该description()方法,因此当您查看批处理列表表单(基本>>查询>>批处理列表)时,描述字段为空白。您可以看到Batch GroupStart Time等,但您无法判断实际调用的是哪个类。

Batch表包含一个名为ClassNum的隐藏字段,用于标识类的ID属性。谁能告诉我如何从ID中找到相应的班级?一旦我确定了罪魁祸首,我就可以添加描述。

我尝试在 AOT 上使用标准的Find功能,但它没有找到它们。

任何建议都将受到欢迎!

非常感谢,迈克

4

3 回答 3

7

Jay 的回答提供了两个综合解决方案。

我刚刚发现全局类ClassId2Name做同样的事情,所以你可以简单地拥有:

display str Classname()
{
   return ClassId2Name(this.ClassNum);    
}
于 2008-10-07T06:09:10.920 回答
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 '';
}
于 2008-10-07T16:44:01.607 回答
0

如果 ClassNum 不可用,则获取 ClassName 的替代方法。

display str Classname()
{
   return classId2Name(ClassIdGet(this));  
}
于 2021-03-09T09:32:36.047 回答