Skip to main content

Add fields for table/field mapping during an upgrade

In my recent upgrade project that I took over in the middle of the upgrade process I had to use a small trick to fix many table and field mappings errors in the Data upgrade checklist




static void addFields(Args _args)
{
    TreeNode                            treeNode;
    AOTTableFieldList                   fieldList;
    #AOT
   
    ReleaseUpdateBulkCopyField          fields;
    ReleaseUpdateBulkCopyTable          tables;
    DEL_SqlDictionary                   del_sql;
    SqlDictionary                       sql;  

    str                                 newTableName;
    str                                 newFieldName;
    ;

    while select RecId from fields
    join OldTableName, NewTableName from tables
        where fields.Status == ReleaseUpdateBulkCopyFieldStatus::NoMapping
        && fields.OldTableId == tables.oldTableId
    join FieldType, StrSize from del_sql
        where fields.OldTableId == del_sql.TabId
        && fields.OldFieldSqlName == del_sql.SqlName
    {
        newFieldName = '';

        select fieldsData where fieldsData.RecId == fields.RecId;

        if (fieldsData.OldFieldName == 'CREATEDDATE')
            newFieldName = 'DEL_CreatedDate';

        if (fieldsData.OldFieldName == 'MODIFIEDDATE')
            newFieldName = 'DEL_ModifiedDate';

        if (newFieldName != '')
        {
            newTableName = tables.newtablename;

            treeNode = TreeNode::findNode(@'\\Data Dictionary\Tables\' + newTableName);
            fieldList = treeNode.AOTfindChild('fields');
            fieldList.addDate(newFieldName);

            SqlDataDictionary::synchronize();
        }
    }  

    info('Done');
}

Comments

Popular posts from this blog

2012 Enterprise Portal Development Cookbook

Yes it is here, the most interesting book of the year " Microsoft Dynamics AX 2012 Enterprise Portal Development Cookbook " Check it out my friends http://blogs.msdn.com/b/solutions/archive/2012/07/12/microsoft-dynamics-ax-2012-enterprise-portal-development-cookbook.aspx

Dynamics 365 for operations – Table extensions

Background Extensions are a new way to add functionality and custom code to the D365 system without changing the standard code. In fact, Microsoft has announced that edit standard elements like those that we have done in the past will not be possible after 2017. By using extensions, we can achieve the same result by simply extending the standard system => EXTENSIONS. To read more about the difference between overlaying and extensions follow this link https://ax.help.dynamics.com/en/wiki/customization-overlayering-and-extensions/#extensions Extending tables By using table extensions, we can create a new table that adds new fields, field groups, indexes, mappings, relations, methods, subscribe to event handlers and more. When extending tables we need to follow the naming rule as such: <TABLENAME><_Extension> the compiler understands the _Extensions suffix and knows that the table in question is extending a table from the standard system. This gives us access ...

Using the Dynamics Ax Office Add-in

Hi everyone, I have been playing around with some Ax 2012 stuff and I was testing the Office Add-in and I think it is preatty cool. In order to use the Office Add-in it has to be installed with the Ax client and some settings needs to be made in the system as well. Lets dive into how it can be done, this is how I tested this function and it can most certainly be done in different ways. First I created a small query called MyCustTableQuery Next step is to provide information about the query and expose it so we can use the query in our office application, my application of choice was Excel. In Dynamics Ax 2012 go to Organization Administration> Setup> Document Management > Document datasources Here it is possible to select a query or service, in my example I used the query. So here i added a new record of data source type Query and then I selected my newly created MyCustTableQuery . Now the query is ready to use in what ever office application we ha...