cancel
Showing results for 
Search instead for 
Did you mean: 

Adding new Data Object while migrating from MI 2.5 to NM7.1

Former Member
0 Kudos

Dear All,

We have a custom MI 2.5 application which we need to migrate to 7.1. While migration, we want to add a newly created data object also in migrated application. But when I try to import MBO model, it is not letting me import new data object. The import finishes successfully. But changes in merepmeta.xml are not done. It creates a file with back up of existing merepmeta.xml i.e. merepmeta.xml.bak and create new merepmeta.xml but it is blank. Am I missing something???

When I import MBO only with existing data objects (syncbos), it is allowing me perfectly. It is changing the merepmeta.xml accordingly as well without creating backup.

Thanks in advance,

Saptak Kulkarni.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

this is strange, cause I do this always without issues. So....

Are you running it as downwards compatible app?

Have you maintained the Client settings? Have you entered the TOP / 010 / .... values?

Have ou activated the DO and the Backend adapter? Are they green?

Do you import the model into NWDS by using the import functionality?

Regards,

Oliver

Former Member
0 Kudos

Dear Oliver,

Yes I have done it. To explain you the whole scenario, We were having some SyncBOs of type T01 / T51. After migration, They were standard DOs. Regarding S01, they were getting converted to Two-way. So we manually created them as Standard DO as to get the good performance.

Also, in 2.5, there was no dependency in the SyncBOs. We created a Data Object which has a common field for mapping the dependency. We mapped the dependency, created the relationships, activated all the business objects and back-end adapters.

Now while importing the model in NWDS, we are also importing the newly created Data Object on which other Data Objects are dependent. But when we are including this data object in MBO, there is blank merepMeta.xml. A backup file merepMeta.xml.bak is created automatically in the app-root folder.

Strangely, when we don't try to import the newly create Data Object, all other data objects are getting imported properly and everything works perfectly fantastic. Is it OK if we leave back the new data object on the middle-ware and continue with these data objects as the relationship key properly getting downloaded?

Thanks in advance,

Saptak.

Former Member
0 Kudos

Question: Is this Data Object 'used' in the application at all? I didn't get why you really created the new Data Object in 7.1. I understand that you are creating associations. Are these in the new DO or in the existing ones (which are now associating to the new Data Object).

If you do not import the new DO to NWDS, all instances of it being sent to the Device during sync will be dropped (I'm not sure if you'll get errors on the sync, or if they'll just be logged in the background), and clearly, there will be no persistence.

If you say that not selecting it is importing everything else properly, but things mess up when you import it, it looks to me like there is a bug. If the xml is being rendered blank, it is surely a bug (if there IS a problem with the metadata of the object, or while creating the XML, then you should get an error atleast).

It is also strange that while other Data Objects you created in 7.1 (to replace the Two-Ways) are being imported, this one is not. What is special about this one except for the associations?

Former Member
0 Kudos

Dear Arjun,

To answer your questions, previously all the SyncBOs were downloaded independently taking username as the import parameter in getList. (Default values). Yes we can provide the same with 7.1 but we wanted to have some sorts of associations between all SyncBOs.

So first of all, we changed all the BAPI wrappers of old SyncBOs to download all the data independent of user. Now we created new Data Object to only download user specific data. We associated all other Data Objects on this DO. Created a rule for this data object to only download the sync user instance. We were expecting that whenever a user syncs, a single instance of new user data object will get downloaded and subsequently all other data objects having relationship on user will get downloaded. I hope this is not much confusing.

Now while we import the MBO model, if we don't import new user data object, then also other data object instance get downloaded and fortunately properly filtered. We don't receive any kind of error over here.

The new data object is not used anywhere in the application. The associations are in new data object and not in the older one. New data object is the leading one wherein others follow.

Not a single instance is getting dropped for other Data Objects.

The xml is blank only when we try to import the new Data Object and correctly it gives an error as expected when I try to deploy the application.

Thanks in advance,

Saptak.

Former Member
0 Kudos

Yes. Only the instances of the new DO will be ignored. The others will not be dropped (since they are imported, and therefore, have DB tables in the client for persistence).

Looks like this is not much of a problem for you, as whatever is relevant is being downloaded.

The only problem that remains is the DO not getting imported. If it gives a good feeling to see everything work cleanly, then you might want to pursue this.

Former Member
0 Kudos

Dear Arjun,

Yes it gives a good feeling but I don't want to get trapped in the problems that may arise in the future.

One more question, I have create bapis also written and since I have maintained relations, it added one more key for the relations. Now my question is when I create a new instance, is it necessary to fill that MMW key from front end. For now if I am not filling it, it is working fine and hitting the backend. But will it create any problem in the future?

Thanks in Advance,

Saptak.

Former Member
0 Kudos

When I said, 'working cleanly' I had meant that the new DO also gets imported and its data comes down like it should

Anyway, are you talking about the association synckey (i.e. the GUID) here? i.e. You want to know if the association synckey needs to be filled on the client. You don't need to fill those. The DOE will calculate and fill these itself. In fact, you can check this in the CDS for uploaded instances.

On the other hand, if you are talking about the business field which will be used to decide the associated instances, you need to fill it.

An association works this way:

You define the association based on say a field F1 in the leading Data Object DL being the same as field F2 in following Data Object DF. You fill out F1 in DL and F2 in DF. The DOE calculates the association and fills the association Synckey GUID.

Former Member
0 Kudos

Hi,

this all seems still strange.

Frist of all I do not get wh you create a new DO just for dependency, but okay, you have your reasons for that I would say.

What I would do: instead of convertig the existing DO, I would import these completely from scratch.

So I would create a new SWDC, import the existing BADIS and create the DO from there. Doing that there is no conversion necessary. If you tick the button: USES OLD NETWEAVER 4.0 Model while creating the SWDC, it is still backward compatible.

Doing that you are clean. In the very beginning I would start with the DO that causes issues in your case and check what happens if you import that into your NWDS. By the way: If necessary you can link several WDCS together, but be aware that I was not able to set relationships between mapped SWDCS so that could be an issue.

But on the other side: going that way takes a few hours - off course - but it is the clean way and you should have 100% control over your new Dataset!

Hope that helps!

Regard,s

Oliver