Upgrade from AX 4 to 2012R3. Table/field mappings errors.

Hi,

I’m in the data upgrade step of the Upgrade process.When I do “Generate table mappings”, I get a lot of “No mapping” errors. Most of them are custom fields I’ve created in AX4 standard tables.

For example, In the address table, I created a field called “StationName” , and this field is having this “no mapping” error. How can I fix this?

  • Do I create directly the field in SQL?

  • When I open AX 2012, I only get the Upgrade checklist, I don’t have the option to open a developer workspace so that I can modify the objects in AOT.

  • I also read about upgrade scripts, but how can I create an upgrade script if I can’t open the developer workspace? Do I really need upgrade script for this case?

Thanks

You have to finish code upgrade before data upgrade. Implement data upgrade scripts as part of your code upgrade.

How can I Open the development environment when I only hace the upgrade checklist??

As I remember, the developer workspace is opened automatically when you detect code upgrade conflicts and you can also close the code upgrade checklist and reopen it later.

Code upgrade is non-optional - it’s likely that not all of your changes done in AX4 are compatible with AX 2012.

By the way, this might help you: Code Upgrade white paper.

Thanks for your reply!

I’m still having a hard time to understand how to do this upgrade.

On one side we have functionality. I don’t want to upgrade the AX4 custom functionality. I just want to have the AX 2012 standard, and then I will reimplement only the functionality that I need.

But before this, I want to have all my AX4 standard tables data in AX 2012.

Now the problem is that I’ve created some custom fields in the AX4 standard tables, and I want this fields to get created in AX2012. Take for example the StationID field I created in AX4 Address table.

What’s the correct way of creating this field in the AX 2012 table so that it gets filled up when the data copy process ocurrs??

OK… I actually was able to open de development environment using the -development option in the client startup

I did the AOD part of the code upgrade checklist, and My tables custom tables have been created.

I guess the Address table has changed, because in AX 2012 there is a table called DEL_Address. My StationID field is created in the DEL_Address table, but however I still have the mapping error.

So I guess what I need to to is define where does my StationID field go in the new Address table structure. How do i do this?

So you want take over only your custom fields (and tables), but not any other modifications (e.g. displaying your custom fields in forms), correct? All right, you surely can do code upgrade in this way, if you want.

Aha, okay.

Addresses have been heavily refactored in AX 2012; you have to decide to which table your field now belongs. Code upgrade white papers will help you (this time it’s Implementing the Address Book Framework for Microsoft Dynamics AX Applications AX2012).

Thanks,and sorry for keeping this thread long. I’ve read through most of the white papers, but I don’t think I need this advanced tasks. This example is quite easy, and if you can point me in the right direction, I think I will be able to solve the rest of the cases.

I have this StationID field in AX4. And in AX2012 the field is also in the DEL_Address table. However,I have the “no mapping” error. The checklist hasn’t mapped the source field to the target field in DEL_Address, although the upgrade guide says that with the DEL prefix this should be automatic. Do I need to modify any standard preprocess script so that at least I can solve this stage? Which one?

Once I have DEL_Address filled up, I guess I will have to modify a postprocess script to add my StationID field to the new Address structure. But this is a very basic field, so I would like to know what’s the postprocessing script for the basic address fields so I can add my field there.

As I understand, you just have to create a transformation (as described in How to write Data Upgrade Scripts) and define the source and the target field. What’s the problem?

I think the main class for upgrading addresses is ReleaseUpdateDB60_GAB.

Did you find a solution ?

I have same issue . Custom field in old address table and I created same field in new logisticspostaladdress.

I don’t know how to link logisticspostaladdress with old del_address to get that field

ReleaseUpdateDB60_GAB has no code for what we need

Fixed.

Created the custom field in AX 2009 table LogisticsPostalAddress.
Same thing in 2012.

Modify in 2009 the methods : updatePartyPostalAddress(), updatePartyPostalAddressDelta()
in ReleaseUpdateTransformDB50_Basic
With

// logisticsPostalAddress.ValidFrom = DateTimeUtil::minValue();
//new code
LogisticsPostalAddress.shipToLocation = Address.shipToLocation;

where shipToLocation is my custom field