web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :

AX 2012 – How to move DMF Setup across Enviroments

Denis Macchinetti Profile Picture Denis Macchinetti 16,444
Hi Guys

Often is necessary to move the DMF Setup, without include the DMF Staging tables, from one environment to another.

How to do it?

Out of the box there isn’t any standard feature that allow you to achieve this goal.
The steps are:

1-      Retrieve a list of the DMF Setup Tables
2-      Move to another environment without broken the relation by Recid

About the first step I have created a job in order to list the DMF Setup tables.
The trick is been exclude the tables that present the EXECUTIONID field, so the staging table!

static void DMFSetupTables(Args _args)
{
    utilIdElements  utilIdElements;
    DictTable       dictTable;
    SqlDictionary   SqlDictionary;
    Map             mapTable;

    mapTable = new Map(Types::Integer, Types::Integer);

    while select utilIdElements
    where utilIdElements.recordType == UtilElementType::Table
       && utilIdElements.name like "DMF*"
    {
        dictTable = new DictTable(utilIdElements.id);
        if ( dictTable.isView()
        ||   dictTable.isTempDb()
        ||   dictTable.isTmp()
        ||   dictTable.isMap()
        ||   mapTable.exists(utilIdElements.id)
           )
            continue;
       
        Select recid from SqlDictionary where SqlDictionary.tabId == utilIdElements.id && SqlDictionary.name == "EXECUTIONID";
        If ( SqlDictionary )
            continue;

        mapTable.insert(utilIdElements.id, utilIdElements.id);
        info ( queryValue(utilIdElements.id) + "-" + utilIdElements.name );
    }
}

About the second step, I used the Test Data Transfer Tool in order to export and import the DMF Setup tables.

Therefore, I created a txt file like below with the Tables list coming from the above Job and move in the ‘[Lists]’ Folder of the TDTT Package and run the Tool.

.*(?<!^DMFCodePageValue)(?<!^DMFComparison)(?<!^DMFComparisonEntityList)(?<!^DMFComparisonLegalEntityList)(?<!^DMFComparisonReport)(?<!^DMFComparisonResults)(?<!^DMFComparisonResultsDetails)(?<!^DMFConstraintTreeLines)(?<!^DMFDataSource)(?<!^DMFDataSourceProperties)(?<!^DMFDataTypeMapping)(?<!^DMFDefinationGroupAccess)(?<!^DMFDefinitionGroup)(?<!^DMFDefinitionGroupDataArea)(?<!^DMFDefinitionGroupEntity)(?<!^DMFDefinitionGroupEntityXMLFields)(?<!^DMFEntity)(?<!^DMFEntityBaseXML)(?<!^DMFEntityDbEntityVersion)(?<!^DMFEntityDbGroup)(?<!^DMFEntityDbGroupEntity)(?<!^DMFExcelSheetLookup)(?<!^DMFExtDBSyncGroupExecution)(?<!^DMFParameters)(?<!^DMFPublishedEntity)(?<!^DMFQueryCriteria)(?<!^DMFSourceXMLToEntityMap)(?<!^DMFStagingConversionTable)(?<!^DMFStagingErrorCode)(?<!^DMFStagingTargetLink)(?<!^DMFtargetCompanyName)(?<!^DMFTargetEntityHierarchy)(?<!^DMFTargetEntityHierarchyRelation)(?<!^DMFTargetSourceName)(?<!^DMFTargetXML)(?<!^DMFTargetXMLToEntityMap)

That’s it!

Happy Christmas!

This was originally posted here.

Comments

*This post is locked for comments