SAP Technical Upgrade From R3 4.7 To ECC 6.0
SAP Technical Upgrade From R3 4.7 To ECC 6.0
SAP Technical Upgrade From R3 4.7 To ECC 6.0
0
Friday, January 1, 2010
SAP Technical Upgrade from R/3 4.7 to ECC 6.0
Introduction
This blog covers details from Technical perspective ( for Team Leads/ Software Engineers/Developers) for doing an upgrade from R/3 4.7 to ECC 6.0. Following are the major points which would be covered :
1. Pre-Upgrade analysis
Study the existing landscape & the To-Be Landscape Plan the soft freeze & Hard freeze transport strategy Run the pre-upgrade tool to identify the no. of programs which would be reflected for UCCHECK , Upgrade fixes etc. If you do not have an in-house tool, then you may consider developing one. This tool would have details of Obsolete FM's, search for CALL TRANSACTOIN statement, obsolete ABAP statements etc. Based on such details the tool will search for all the programs which have such FMs/Statements etc & then it will provide a list of impacted objects
Number of cloned objects ( Copy of Standard programs which are modified to meet additional requirements)
Number of Standard Objects modified ( Core Code Modification done by Customer in standard objects )
Number of objects which would be impacted due to updation of Unicode flag Number of BDC programs
Based on the no. of objects reflected, you can plan the technical team size/duration etc. This will help during project planning
The Functional consultants can go through the config. settings / level of customization etc. This will help to identify any specific test scenarios & amount of testing required.
Identify the number of interfaces/ 3rd party systems interacting with the SAP system
Identify the printer/Barcode scanner etc compatibility with the new system Basis consultant may go through the system & identify the need for additional hardware/sizing etc.
Based on the inputs from Technical/Functional/Basis consultants you may prepare a draft Project Plan
Prepare a landscape document ( AS IS & TO BE ) Also prepare the Technical & Funtional analysis document which can be shared with the team
You may have to schedule meetings with Customer to understand there timelines & project plan. i.e. Overlapping of any other projects, hardware availability, Priority of any other projects etc
In consultation with Customer finalize the timelines for each phase incuding the number of mock runs etc
Finalize the project plan & share the same with Customer Identify the POC from both sides for each phase/task/activity Prepare the resource plan Start the offshore connectivity setup & onboarding of team members You may share the landscape & other documents with the team members so that they get acquainted with the system.
3. SPDD phase
During this phase execute the SPDD transaction. The SPDD transaction would return All the Standard Data Dictionary objects viz Data Elements/Domains/ Structures/ Tables/ Append structures etc which have been modified by Customer.
The technical team has to decide whether they want to RESET TO ORIGINAL or ADOPT MODIFICATION. This two options are available to fix the objects reflected in SPDD transaction. Here the Technical team has to do a Version comparison of the object & analyze whether they require the custom change. If the custom change is required in ECC 6.0, then select ADOPT MODIFICATION else select RESET TO ORIGINAL ( i.e. you do not require the custom change which was done in the old system. Instead you want the standard version of the object in ECC 6.0 system ).
Ensure that you put all the objects in the correct SPDD TR To avoid doing SPDD again in the subsequent systems, you have to release the SPDD TR in a different way
Goto SPDD tcode & click on "Select for Transport", place the cursor on the task of the Main TR & then release the Task. Similary place the cursor on the main TR & then click on 'Select for Transport'. This will ensure that the SPDD fixes done in DEV are automatically imported at OS level in the subsequent system. Provide the TR number to the BASIS team & they would ensure to import the SPDD TR at OS level.
SPDD activity has to be done only in 000 client. Ensure that you do not do it in any other client.
The system would be completely open & it wont ask for access keys to modify standard objects. So be careful while fixing SPDD objects & ensure that you do not touch any other object which is not part of SPDD.
4. SPAU
SPAU is performed in the normal client i.e. DEV client. Execute tcode SPAU once BASIS gives a go-ahead You will get a list of affected programs.
The programs are standard objects which are modified by customer with some custom changes
Analyse the changes & identify whether you need the custom changes (Adopt modification ) or you want to go ahead without the custom changes ( Reset to Original )
Ensure that you include all the fixes in a Transport Request - SPAU Provide the TR number to BASIS, so that they can import the same TR in subsequent systems
5. UCCHECK
Execute tcode UCCHECK This will provide a list of impacted objects. This activity would require 1 to 2 weeks depending on the number of custom objects reflected in UCCHECK
Ensure that all the fixes are included under a single UCCHECK TR Testing of the fixed objects have to be done by developer & functional consultant
Apart from UCCHECK objects you need to check custom programs which are reflected by the upgrade tool
Fix the programs & include it either in UCCHECK TR or another TR which would be imported after UCCHECK TR
All the custom program fixes have to be tested Ensure that the documentation/commenting/Modlog etc is properly maintained
7. Testing
Unit testing to be done as per the Test scripts UAT to be done as per the test scripts If Solution Manager is used, then the tcodes have to be executed from SolMan
Results to be documented whereever applicable PDF outputs/Print/Barcode scanning/ Background Jobs/ Workflows / Interfaces etc has to be tested thoroughly
There are some activities which cant be included in a Transport request. Such activities have to be manually executed in each system after upgrade. These activities are called as Post upgrade activities. eg. Regenerating ABAP Queries after upgrade - This cant be captured in a TR, hence has to be done in each system
Prepare a list of Post Upgrade activities & update the details along with Primary/Secondary Contact, Task details, System against which you can update whether the task is completed or pending. This tracker would help to monitor the status
Down time has this activity as well. So ensure that you have documented all the post upgrade activity detail so that you spend less amount of time during PRD post-upgrade activities. Try to automate whereever possible.
Cloned program modification tracker Custom Changes in Standard program moved to Implicit Enhancements UCCHECK tracker SPDD tracker SPAU tracker Access key request tracker Transport tracker Post Upgrade activities tracker
OSS message tracker Unit Testing/UAT tracker Test script preparation tracker
Workflows Q : Will the upgrade affect open work items A : It is perfectly fine to have open work items when upgrading. Any open work items of old version can be executed in the upgraded ECC 6.0 version. Ensure that all the associated notes listed in Note 1068627 are applied in your system. [1068627 - Composite note about workflow upgrade]. Spool SP01 Q : Is there any impact on spools created in the old version A : Yes. All the old spools which are reflected in SP01 in the old version cant be retrieved post upgrade + Unicode conversion to ECC 6.0. Hence the old spools which are required post upgrade has to be either archived/converted to PDF/printed before the upgrade. Please refer note 842767 for additional details. Obsolete Tables Q : Are any table made obsolete in ECC 6.0 as compared to R/3 4.7 A : Yes. Table TVARV is replaced with TVARVC & table TTXER is replaced with TTXERN. Table TVARV is replaced with TVARVC Check if any entries are read from table TVARV in any of the custom programs. If yes then all those custom programs have to be changed to read data from TVARVC. Refer note 557314. Execute program RSTVARVCLIENTDEPENDENT. This program transfers entries of table TVARV to TVARVC (program doesnt have selection screen. Check the number of entries in both the tables before & after executing the program). Table TTXER is replaced with TTXERN Check if any entries are read from table TTXER in any of the custom programs. If
yes then all those custom programs have to be changed to read data from TTXERN. Execute program SDTXT1AID to copy entries from table TTXER to table TTXERN. Check the number of entries in both the tables before & after executing the program. Refer note 900607. Output of program SDTXT1AID. There could be some entries which wont get copied from TTXER to TTXERN. They either would be duplicate or incorrect entries which you can ignore.
Program Variants Q : Are variants affected due to upgrade. A : Yes, variants are affected after upgrade. After Upgrade, run program RSVCHECK which will list down all the variants which are affected. Run program RSVARDOC_610 with necessary values to adjust those variants. However if a selection screen field has become mandatory for a tcode due to upgrade it has to be addressed by assigning a value to it manually.
ABAP Queries Q : After upgrade, the query dumps when we try to execute it A : ABAP Queries are affected due to upgrade. We need to regenerate the queries post upgrade. We can re-generate the queries using FM RSAQ_GENERATE_PROGRAM which uses work area, query name and user group as input. If the queries are more in number we can write a small program using above FM and table AQGQCAT- for global query and table AQLQCAT- for local/client specific query
Q : ALV layouts previously created from SAP queries no longer function correctly after upgrade A : Refer note 725468
SPDD Q : There are many objects reflected under DELETED OBJECTS node. How do we fix this? A : Objects reflected under DELETED OBJECTS should be ignored & need not be fixed. Q : How to handle the transport of SPDD as BASIS wants the SPDD TR to be imported at OS level A : Ensure that all the fixes wrt SPDD are captured in a single Transport. Multiple transports are not acceptable for SPDD fixes. While releasing the task of your SPDD TR, click on SELECT FOR TRANSPORT button which is in SPDD tcode 2nd screen. System will prompt to confirm the TR for subsequent system. Confirm the TR number & proceed. The SELECT FOR TRANSPORT step is extremely important else your BASIS team wont be able to import the SPDD TR at OS level in the subsequent system.
SPAU/ fixing core code modifications Q : Can the Enhancement framework be used to fix SPAU objects A : Yes. SAP has introduced Enhancement framework along with ECC 6.0. For all the core code mods reflected in SPAU, check if there exists a possibility of moving the core code mod to an implicit enhancement. If yes, then remove the core code mod & paste it in the new enhancement. Custom code which is inserted at the start and end of a INCLUDE or a SUBROUTINE can be moved to implicit enhancements. This will help during subsequent upgrades & will save an object from core code mod.
Third Party objects Q : How to handle 3rd party SAP programs A : Check with the 3rd party vendor for the programs of ECC 6.0 version. Normally all the 3rd party SAP certified vendors maintain the set of programs for each version. So once you upgrade to ECC 6.0, you need to contact your vendor & ask him to
provide the set of programs for ECC 6.0 version. Vendor would have a team which would take care of making the 3rd party objects in your system Unicode compatible for ECC 6.0. Obsolete Transactions Q : Are there any obsolete transactions in ECC 6.0 A : Yes. E.g. VOTX is replaced by VOTXN in ECC 6.0. Goto table PRGN_CORR2 & check list of old & corresponding new tcodes against your SAP Version.
Obsolete FMs Q : How do I know if any of the custom programs are using obsolete FMs? A : Table TFTIT would reflect obsolete FMs. Please use following steps to get the list of obsolete FMs. You may create a small program to check all your custom programs for usage of obsolete FMs. Such FM calls should be replaced with appropriate replacement FM.
Usage of Internal SAP FMs in Custom programs Q : What if my system has some custom programs using FMs which are not released to customer? A : As per SAP, any objects which are not released to customer can be changed by SAP at any point of time. Such objects need not be backward compatible. The output of programs using such FM can vary. SAP wont be taking any responsibility nor will provide any note/solution if customer has used a non-released (internal SAP) object. Any kind of data loss or any other impact would be sole responsibility of customer. E.g. FM SO_OBJECT_SEND is internally released for SAP use & should not be used in any custom programs. If its used by customer, then they need to replace the call to this FM with another FM SO_DOCUMENT_SEND_API1. PDF files created using SO_OBJECT_SEND cant be opened in ECC 6.0 as the FM has undergone some changes in ECC 6.0. Hence all the custom programs which are using SO_OBJECT_SEND should be replaced with appropriate FM. Customers should create a tool to identify a list of custom programs where non-
released (Internal SAP ) FMs are being used. Programs which are calling such FMs should be modified to point to suitable replacement FM. If a FM was released to customer in old version (say 4.7) & later on was changed to Internal SAP only, then in such case SAP would provide a note. Post Upgrade Activities Q : Will there be any manual activities involved post Unicode conversion A : Yes. While doing the upgrade on Development system, you would come across few fixes which cant be captured in a transport request. Such task has to be documented in a Post Upgrade Activity Tracker & such activities have to be carried out in all the subsequent system post Unicode conversion. E.g. 1. Execute program SDTXT1AID as per note 900607 2. Execute FM "RSAQ_GENERATE_PROGRAM" for all the queries to regenerate them Ensure that you get authorization to necessary tcodes before hand as there would be a very small window to perform Post Upgrade activities on Production system. In order to reduce the entire downtime, documenting the post upgrade activity tasks & providing necessary authorization, keeping the related notes handy would definitely help.
Cloned Programs Q : Do we need to fix cloned programs as well? A : Well there would be some cloned programs which have few standard includes & few Z Includes which are copy of standard includes. If these standard includes have undergone some change / deletion / modification etc, then there is a possibility of the cloned program giving dump/error. Hence as a preventive step, all the cloned programs should be validated (syntax check) & tested. There is a possibility of the Main program undergoing lot of changes due to upgrade. Customer has to take a call to decide if they want to create a clone program of the upgraded version of std. program or would like to continue with the old version of the cloned program.
Q : Which objects can be ignored for UCCHECK? A : Following objects can be ignored for UCCHECK: All the $TMP Objects Objects which exist in development system but not yet transported to Quality. If you fix these objects, you might end up including it in the UCCHECK transport which would be forwarding such type of objects to subsequent systems without testing/UAT/sign-off from customer. Objects under Local Workbench TR Inactive Objects/Objects having error in old system (E.g. A custom program which is having error in R/3 4.7 system need not be fixed in ECC 6.0 for UCCHECK)
Checkbox declaration to be changed Q : Do we need to change parameter declaration of TYPE CHECKBOX A : Yes. In SAP 4.6c version TYPE CHECKBOX used to create a checkbox on the left hand side with the corresponding text on the right hand side. But after upgrade the same code is creating Checkbox on the right hand side with the text on the L.H.S. Few users prefer to have the same selection screen, the way it was in the earlier version. Hence modify the custom programs to replace TYPE CHECKBOX with AS CHECKBOX. You may identify all the programs using TYPE CHECKBOX with the help of search string program RPR_ABAP_SOURCE_SCAN.
EDIFCT custom table entries Q : While upgrading to ECC 6.0, custom entries in table EDIFCT are deleted A : Yes, the upgrade deletes the custom entries from EDIFCT table. Before upgrade take a backup of EDIFCT table entries as per note 865142
Replacing WS_DOWNLOAD FM Q : WS_DOWNLOAD FM should be replaced with GUI_DOWNLOAD FM? A : Yes, the new replacement is FM GUI_DOWNLOAD. While replacing check if the
MODE parameter is passed with value A in the program. If yes then you need to ensure that for FM GUI_DOWNLOAD APPEND parameter is set to X. Similarly check if the FIELDNAMES is assigned to any internal table. If yes, then in GUI_DOWNLOAD pass the same internal table to FIELDNAMES.