cancel
Showing results for 
Search instead for 
Did you mean: 

Difference between NW Java Dictionary and Database Dictionary

Former Member
0 Kudos

Hi,

We have deployed a J2EE application (version 1) and database on NW J2EE 7.0/Oracle using an EAR and Dictionary Project.

The application was then modified (version 2) with some changes to the database made directly in Oracle.

When we migrated Oracle to MAXDB we discovered that the Version 2 database changes made directly in Oracle were ignored by the migration to MAXDB - hence we have certain tables and fields missing in the migrated database. It seems the migration routines use the Java dictionary to determine the schema and the Oracle Database to derive the data. If a field or table in the Database is not in the Java schema, it gets ignored by the migration.

My question is - how do we modify the Java Dictionary to be in synch with our directly modified database?

Thanks

Adrian

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Adrian,

When you use Java Dictionary to define your tables, you should implement any changes of the table definitions in the Java Dictionary, and then redeploy the Dictionary DC (project) on the database. This procedure has certain limitations, however.

More information: http://help.sap.com/saphelp_nw70/helpdata/en/fe/53fb40f17af66fe10000000a1550b0/frameset.htm

For the particular situation you are in currently, I am not sure if there is a solution for a SAP NetWeaver 7.0 system... At least, I cannot suggest any at the moment...

Regards,

Yordan

Answers (1)

Answers (1)

Benny
Product and Topic Expert
Product and Topic Expert
0 Kudos

First: kill the person who did changes directly in the database.

The whole OpenSQL environment was developed to make the system DB independent. Obviously this means you should not touch the DB directly. This is the same circumstances as with SAP applications (most of the time written in ABAP), where you lose support in case you should mainpulate DB talbes directly.

However, there is one way to get around this:

-copy the dictionary to the new system (aka deploy)

-copy the data into the now existing tables

-change the dictionary that it reflects the changes you made directly

-copy the data into the new fields and tables

This , of course, only works if

- you did not do any changes that cannot be done with the Java dictionary

- your copied data needs to be altered in a specific way depending on the content already in the DB.

in the first case, there is no way for you but to run your database in Vendor mode (which means going around openSQL, by losing it's features)

Hope that helps.

In case you're too shy to follow my first advice, tell the person at least that people like him get cross-nailed in Walldorf, Germany right before Building 1.

Regards,

Benny

legal disclaimer: to prevent me from any legal action I declare that this post partly includes satirical verbalization, and that following my advice shall not result in holding me liable of the results of such action.

(I should have become a lawyer...)

Former Member
0 Kudos

Hi Benny & Yordan,

Many thanks for responding and apologies for taking such a while to get back.

We were able to resolve the issue by redeploying the Dictionary Project. The additional fields (that had been directly added) are now at least recognised in Java. It's not a mistake that will be made again.:)

Regards

Adrian