Posts Tagged ‘ SysDictTable

How to get table field properties from X++

Hi,

Sometimes while development process you need to get table field properties. One of my customer i need to setup a structure which i have to get all the LedgerJournalTrans table fields names and properties .

In this example i loop all the fields except some system fields and  show names and some properties.


//Dmr Fatih Demirci
static void Dmr_FD_GetTableField(Args _args)
{
    SysDictTable    dictTable = new SysDictTable(tableNum(LedgerJournalTrans));
    SysDictField    dictField;
    TreeNode        treeNode;
    FieldId         fieldId   = dictTable.fieldNext(0);
    ;

    while (fieldId)
    {
        dictField = dictTable.fieldObject(fieldId);

        //Except Sql, System, visible fields
        if (   dictField.isSql()      && !dictField.isSystem()
            && dictField.allowEdit()  && dictField.allowEditOnCreate()
            && dictField.visible()    && !dictField.getCountryRegionCodes( ) )
        {
            treeNode = dictField.treeNode();

            info(strFmt("%1-%2-%3-%4",  dictField.id(),
                                        dictField.name() ,
                                        dictField.label(),
                                        dictField.baseType()  ));
        }

        fieldId = dictTable.fieldNext(fieldId);
    }
}

Info:

Happy Daxing.

Dynamics Ax’ta eksik tablo özelliklerini kontrol etmek

Merhaba

Tablo özelliklerinin performan için ne kadar önemli olduğunu biliyorsunuz. Örneğin PrimaryIndex, ClusterIndex, Label, Securty key ve CacheLookup gibi. Bir tablo oluşturulduğunda bu alanların mutlaka tanımlanması gerekmektedir. Peki daha önce oluşturulmuş tablolarda bu alanların tanımlanıp tanımlanmadığını nasıl kontrol edebilirsin. Tabiki SysDictTable’ı kullanarak.

Örneğimizde sadece  PrimaryIndex, ClusterIndex ve  CacheLookup özelliklerini kontrol edeceğiz ve temp tabloları  atlayacağız.
static void TabloTara(Args _args)
{
    boolean         skipEmptyTables = true;
    boolean         result;
    treeNode        treeNode;
    SysDictTable    sdt;
    str             TableAndCound;
    int             recordCount;
    boolean         skipEmptyrecordCount = false;
    treeNodeIterator treeNodeIterator =TreeNode::findNode(“<a href=”file://\\Data”>\\Data</a> Dictionary\\Tables”).AOTiterator();
    ;
    treeNode = treeNodeIterator.next();
    setPrefix(“Tuning”);
    while (treeNode)
    {

Read more