Skip to Content
Author's profile photo Former Member

Migration of WD DCs from NW 7.0 to 7.31 & handle common migration issues

Applies to:

Web Dynpro for Java 7.31.

Summary:

This tutorial is aimed at developers already familiar with versions of Web Dynpro Java 7.0 and Web Dynpro Java 7.31. This explains step by step procedure on how to migrate Web Dynpro Java Components from NW 7.0 to NW 7.4. This tutorial also handles common error & exceptions during the migration process. This covers all important settings & solutions required for NWDS work perfectly for the migration process.

Author: Nutan Sangai

Company: Infosys Ltd

Created on:  June 2, 2014


Table of Contents

1. Introduction

2. Prerequisites

3. Import WD DCs to NWDS

4. Resolve Dependencies

5. Migrate Model

6. Migrate WebDynpro DC component

7. Cheat Sheet Activities

8. Build & Deploy

9. Run-time Errors

10.References

1. Introduction

In this tutorial you will learn about end-to-end migration steps for Web Dynpro DCs from NWDS 7.0 to NWDS 7.31. This covers all the settings for NWDS 7.31 for smooth migration, SLD import, creating new project, Resolving dependencies, Component migration, Cheat sheet activities, Issues during migration process.

2. Prerequisites

  • NWDS version used to perform migration steps below:
  • Nwds-extsoa-7.3-EHP1-SP10-PAT0003-win32
  • JDK version required: jdk1.6.0_18
  • New Track for 7.31 migration has been created & upgraded.
  • WD DCs & SCs should be imported to new track.
  • Once NWDS 7.31 & JDK configured, set default JDK version to jdk1.6.0_18

/wp-content/uploads/2014/06/1__466108.jpg

  • In Environment Variables, Set JAVA_HOME path to JDK path.

/wp-content/uploads/2014/06/2__466139.jpg

  • In Workspace, check file jdkPreferences is set to correct JDK version & path.

/wp-content/uploads/2014/06/3_466141.jpg

  • Define the SLD path (Windows->Preferences->Development Infrastructure->SLD)

/wp-content/uploads/2014/06/4__466148.jpg

  • Define the Deployment server (portal) details (Windows->Preferences ->SAP AS JAVA)

/wp-content/uploads/2014/06/5__466149.jpg

  • Define R3 destinations for back-end system used (Windows->Preferences ->Destination configuration->R/3 destination)

/wp-content/uploads/2014/06/6_466150.jpg

  • Maintain JCO connections for metadata & model data (Select WD DC->Project->Properties->Web Dynpro->JCO References)

/wp-content/uploads/2014/06/7_466154.png


3. Import WD DCs to NWDS 7.31

  • Login to new track and import WebDynpro development components into NWDS 7.31

/wp-content/uploads/2014/06/8_466155.png

/wp-content/uploads/2014/06/9_466156.png

/wp-content/uploads/2014/06/10_466157.png

  • Create Project for all required WD DCs out of new Development track.

/wp-content/uploads/2014/06/11_466158.png

  • Migrate project with automatic migration wizard during DC creation.Right click on project->Migrate

/wp-content/uploads/2014/06/12_466159.png

4. Resolve Dependencies

  • Open component properties of WD DC and Go to Dependencies

/wp-content/uploads/2014/06/13_466172.png

  • The list shows all the required DCs also the deprecated DCs. Remove all deprecated dependencies. Add/Replace alternate dependencies by clicking on deprecated dependency and (CTRL+ALT+1)

/wp-content/uploads/2014/06/14_466173.png      /wp-content/uploads/2014/06/15_466174.png

  • Add/remove DC if not added properly or shows grayed out.
  • Check tc/bl/jco/api (ENGFACADE), tc/je/usermanagement/api (ENGFACADE- if the DC used security/api) added & public part of tc/wd/api has built time dependency

/wp-content/uploads/2014/06/16_466187.png

  • Check the error and warning messages.Check if any errors or warnings are repairable by Quick Fix option(Right click on error->Quick Fix->Apply quick fix)
  • Repair project with Project structure & class path
  • Reload project and rebuild. Development component -> Build
  • Check component properties->Dirty DC build status->OK

/wp-content/uploads/2014/06/17_466188.png

5.  Migrate models

  • Check R/3 destination has been maintained correctly.
  • Right Click on Model->Migrate to ARFC2 Model. After some time the migration completed window opens as below

/wp-content/uploads/2014/06/18_466189.png /wp-content/uploads/2014/06/19_466190.png

  • Repair->Reload
  • Development Component->Build


Error handling under Migrating models:

Error 1: Unhandled exception type ARFC2ModelExecuteException

/wp-content/uploads/2014/06/20_466191.png

Fix: In ARFC1, a model object would throw a WDDynamicRFCExecuteException. This exception is no longer used. Instead, the ARFC2ModelExecuteException exception is thrown. Remove WDDynamicRFCExecuteException and Replace it with ARFC2ModelExecuteException as below and Save.

/wp-content/uploads/2014/06/21_466192.png/wp-content/uploads/2014/06/22_466193.png


Error 2: The constructor is undefined

/wp-content/uploads/2014/06/23_466194.png

Fix: In ARFC2 model type, we need to redefine ARFC2 model declaration

/wp-content/uploads/2014/06/24_466195.png

Ex: ValidateModel validatemodel = new ValidateModel ();

    Zrfc_Validate_Input input = new Zrfc_Validate_Input (validatemodel);

6.  Migrating components

  • WD component which still needs to be migrated is displayed in Gray.
  • Right click on WD Component->Migrate Component. It will open the Cheat Sheet Wizard.
  • This helps to monitor all the component migration activities accurately & helps to fix the issues during the process.

7.  Cheat Sheet Activities – listing some important activities

  • Start the component migration with Cheat sheet. It migrate the WD Component parts one by one.
  • View & Window migration: If Conflicting Component & Window name. Change the Window name.
  • Component package check: Select/Create new package. Make sure all your components for the same WD application are on same package. This makes tracking easier.
  • Implement Interface Controller: the declaration of all objects within these interface controllers must be replicated into the component controller. This cheat sheet thus helps you to copy all the relevant objects from interface controller into the component controller

Note: All methods & code in interface controller are copied to Component controller.

  • Once the component migration in finished. Interface controller will only has method signatures.
  • Check implementation relation: Use to find out which objects defined in the interface controller are not implemented within the component controller and if there are any conflicts.
  • Implement interface controller : to automatically copy all relevant objects from the local interface controller to the component controller
  • Refer below the error handling during component migration process.

Note: While running cheat sheet. Before you start migration step. Always close and  reopen your WD project and restart the cheat sheet.

/wp-content/uploads/2014/06/25_466199.png

Error Checks during Cheat sheet activities and Component migration process:

Error 1: The type of the attribute in the interface definition is missing

/wp-content/uploads/2014/06/26_466200.png

Fix: If the context of the interface controller contains nodes with context mappings to the component controller, this will create implementation errors. So delete the mappings from the context nodes in the interface controller to the component controller.

Error 2: Check Method signatures from Interface controller to component controller are same. It is case sensitive and gives run time error if not maintained correctly. Migration wizard does not perform lower case to upper case conversion.

Error 3:  Check all the context has been mapped correctly. When Context has been mapped manually, check the cardinality has been similarly maintained as per the interface controller node for multiple values.


8. Build & Deploy the NWDS DC.

  • Once the WD Component migrated successfully, Review if any existing build errors.
  • Click on Development Component->Build
  • Fix the errors and Deploy the DC


Error Checks while build:


Error 1: Used Component/component interface is missing/wp-content/uploads/2014/06/27_466201.png

Fix: If you have used component from other DC. Please check used components reference are maintained correctly. Public parts have been added correctly. Used component usage has to be redefined in code. This error comes, when one WD component migrated & the dependent WD component yet to be migrated and missing the reference links as per changed package and other definitions

/wp-content/uploads/2014/06/28_466202.png

/wp-content/uploads/2014/06/29_466203.png

Also make changes in Public Part -> Manage Entities, if package or component name has been changed.

/wp-content/uploads/2014/06/30_466204.png

Error 2: The method is undefined for the type’ etc.

Fix: Once the component usage has been updated, make code changes as per new component Naming convention.

Error 3: Duplicate Methods

Fix: Causes when old reference of used DC has not been deleted and new reference already been created. Delete the Old reference.

/wp-content/uploads/2014/06/31_466211.png

Error 4: The project was not built since its build path is incomplete.

/wp-content/uploads/2014/06/32_466212.png

Fix: Add the jar file ‘com.sap.mw.jco.jar’ at location: C:\nwds-extsoa-7.3-EHP1-SP10-PAT0003-win32\eclipse.jdi\0\DCs\sap.com\com.sap.mw.jco\_comp\gen\default\public\default\lib\java


9.  Run-time Errors:

There are some errors & exception which only picked up at runtime once application has been deployed and handled on portal.

Few examples are listed below:


Error1: JCO destination initialization failed/RFC_ERROR_SYSTEM_FAILURE

Fix: Check Userid/password used for the application is valid for that application. Check hostname/server is correct


Error2: Exception in triggering the workflow, Please Contact System Administrator com.sap.tc.cm.arfc2.gci.exception.ARFC2ModelRuntimeException: Creation of generic ARFC2 model metadata failed; see nested exception for details.

Fix: We need to maintain at least 2 RFC destinations in NWA for both METADATA & MODEL DATA. Also, whatever JCO Destination names you choose during the model import process, must only be used while creating it on NWA.


Error3: java.lang.NoSuchMethodError:

Fix: NWDS 7.31 does not handle conversion from lower case to upper case. We can check if methods names are similar in component controller and interface controller.

10. References

http://scn.sap.com/docs/DOC-2594

http://help.sap.com/saphelp_nw73/helpdata/en/a7/152df44212453d97abfd5e32917cf6/frameset.htm

Assigned Tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Durga Rao Vaddadi
      Durga Rao Vaddadi

      Nice Blog and Good Information.

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Thanks Durga!

      Author's profile photo Lakshmikanthaiah S
      Lakshmikanthaiah S

      Hu Nutan, It is really nice blog and thanks for sharing your experience.  We are trying to migration activity, but getting very surprising issues.  Our environment has NWDS 7.3 with SP13 PAT0000. From NWDS 7.0 imported the projects and then copied to a separate folder.  From the separate folder importing into NWDS 7.3 and trying to work on migration steps.  Target is to have migrated Local DC creation.  Are we in right track?  Or your mentioned prerequisites are mandatory? Or can you pin point our wrong thing?  Can you plz help us.

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Lakshmi,

      Thanks.

      I understand you are migrating Local DCs to 7.3 version. Yes you are going right. We still follow the old approach for local DCs like earlier. Preresuites require like JDK 1.6 is necessary for 7.3 to even start. Rest you can add as per your requirements.

      Make sure of few points at a very start:

      1. Create WD DC of same name in 7.3 as of old in 7.0

      2. Copy folder to folder contents from old to new. like bin to nin etc.

      3. Refesh the DC in NWDS and you will be good. You might have experience DC dependency issues which you can fix using adding required DCs. You can keep it as it if only warning and if doent not affect your build.

      4. Build the code and check.

      Regards,

      Nutan Sangai

      Author's profile photo Lakshmikanthaiah S
      Lakshmikanthaiah S

      Hi Nutan,  Thanks a lot for your support.  We are done as per the instruction.  Lakshmikanthaiah

      Author's profile photo Aravindhan K N
      Aravindhan K N

      Hi Nutan,

      Firstly, a great blog. Thank you for that.

      We are currently evaluating on upgrading our 7.0 WDJ DCs to 7.4. Hence do the above mentioned steps hold good for 7.4 as well?

      Or is there a separate guide to go from 7.0 to 7.4?

      Thanks,

      Aravind

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Aravind,

      Thanks!

      Yes the mentioned steps are for good to go from 7.0 to 7.4.

      7.4 should be your EP version and NWDS version should be 7.31 as it is the latest one.

      You need to check your SP level of portal version and accordingly select the NWDS 7.31 version patch level to do the activities.

      Hope its helpful!

      Nutan

      Author's profile photo V B
      V B

      Hi Nutan,

      Thanks and this is really a nice blog.

      We have upgraded from 7.0 to 7.4 recently. One of the applications is not getting executed successfully after RFC - ARFC 2 migration.

      At runtime its throwing below exception,

      Error :

      java.lang.illegalArgumentexception: must not add role listener with role null

      Error.JPG

      Do you have any idea what could be the issue with this ?

      Thanks in advance.

      Regards,

      Sheetal

      Author's profile photo Former Member
      Former Member

      Hi Nutan,

      Firstly, thanks for a great blog.

      We are migrating our WD code from version 7.0 to 7.4(NWDS 7.31). I am currently facing an issue at the Project Create stage (Step 3). I do not get a Migrate Project option when I Create Project. Instead it creates a deprecated project and then the options I have are Development Component --> Migrate to SC or Development Component ---> Convert into Development Component. I feel both these are not the right options. Furthermore, I am unable to edit any Add or Delete Dependencies to the DC either. Any pointers will be highly helpful.

      Thanks in advance,

      Tahzeeb

      Author's profile photo Madhu N Gangaguddaiah
      Madhu N Gangaguddaiah

      Hi Nutan,

      Thanks for a great blog.

      We are migrating our Webdynpro applications from 7.0 to 7.5(I suppose we have to use NWDS 7.5 and inturn jdk 1.8). We have yet to start the work. Do you have any idea whether the steps mentioned in the above blog is valid for NWDS 7.5. Or is there any major difference between 7.31 version to 7.5 version.

      Thanks,

      Madhu