Axapta 确定字段是否为系统字段

Axapta 确定字段是否为系统字段,axapta,dynamics-ax-2009,x++,Axapta,Dynamics Ax 2009,X++,我想知道是否有一种聪明/快捷的方法来确定表中的字段是否由系统生成。我只有TableNum和FieldNum作为变量(没有硬编码,只有动态值),我希望能够编写类似这样的代码(伪代码): 而不是: //... str fieldName; //... ; //... fieldName = dictTable.fieldName(fieldId); if(fieldName == "modifiedDateTime" || fieldName == "DEL_ModifiedTime"

我想知道是否有一种聪明/快捷的方法来确定表中的字段是否由系统生成。我只有TableNum和FieldNum作为变量(没有硬编码,只有动态值),我希望能够编写类似这样的代码(伪代码):

而不是:

//...
str fieldName;
//...
;
//...

fieldName = dictTable.fieldName(fieldId);

if(fieldName == "modifiedDateTime"
    || fieldName == "DEL_ModifiedTime"
    || fieldName == "modifiedBy"
    || //etc...)
{

//...
这就是我要写的,如果没有办法做我想要的。希望有人能帮忙,不幸的是,我在文档中没有找到任何关于这方面的信息


干杯

使用
isSysId
全局方法

例如,它用于
全局::buf2buf

static void buf2Buf(Common _from, Common  _to)
{
    DictTable   dictTable = new DictTable(_from.TableId);
    fieldId     fieldId   = dictTable.fieldNext(0);
    while (fieldId && ! isSysId(fieldId))
    {
        _to.(fieldId)   = _from.(fieldId);
        fieldId         = dictTable.fieldNext(fieldId);
    }
}
static void buf2Buf(Common _from, Common  _to)
{
    DictTable   dictTable = new DictTable(_from.TableId);
    fieldId     fieldId   = dictTable.fieldNext(0);
    while (fieldId && ! isSysId(fieldId))
    {
        _to.(fieldId)   = _from.(fieldId);
        fieldId         = dictTable.fieldNext(fieldId);
    }
}