如何使用定义的EDT查找所有表?

时间:2016-06-24 08:20:18

标签: axapta dynamics-ax-2012 x++ edt

如何创建一个查找包含特定扩展数据类型的所有表的作业?

我找到了这个JOB,但它给了我一个错误:https://fredshen.wordpress.com/2006/02/05/find-out-tables-containing-specific-edt/

2 个答案:

答案 0 :(得分:4)

使用http://codepen.io/mkl/pen/XKpRaP

它也将显示代码使用。

答案 1 :(得分:2)

试试这个:

static void findEdtinTable(Args _args)
{
    treeNode childNode;
    treeNode fields;
    treenodeIterator it, itFld;

    str properties;
    str table;
    str field;
    str extendedDataType;
    str searchType = "PurchInternalInvoiceId";     // EDT
    int x;
    treeNode t  = TreeNode::findNode('\\Data Dictionary\\Tables');

    it = t.AOTiterator();
    childNode= it.next();
    while (childNode)
    {
      Table = childNode.treeNodeName();
      itFld = t.AOTfindChild(childNode.treeNodeName()).AOTfindChild("Fields").AOTiterator();

      fields = itFld.next();
      while (fields)
      {
        field = fields.treeNodeName();
        properties = fields.AOTgetProperties();
        extendedDataType = findProperty(properties, "ExtendedDataType");

        if (extendedDataType == searchType)
        {
          info(strfmt("%1 / %2 – ExtendedDataType: %3", table, field, extendedDataType));
        }
        fields = itFld.next();
      }
      childNode= it.next();
    }
}