Total Pageviews

Thursday, January 19, 2012

ABAP in SAP Upgrade R/3 4.7 to ECC 6.0

Common issues faced during SAP Upgrade

Introduction

While working on the upgrade projects, we came across many issues for which we found some responses on SDN but all were scattered & there is no single source/document. Hence this article so that other SAP folks who are working on upgrade would have the benefit of a reference document which they would find of some help in case of crisis. Hope this will help you to reduce some sleepless nights J during your upgrade project. All the best!
This is presented in a Q & A format so that it doesn’t become more descriptive but directly talks about the issue & its resolution.

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 can’t 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 doesn’t 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 won’t 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.
Ø      Screen of RSVARDOC_610. Here we are fixing variant BOM_X of program ZMM_BOM_REPORT. If you want to fix all the variants of the program, then give “*” in S_VARI.



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 won’t 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 FM’s

Q         : How do I know if any of the custom programs are using obsolete FMs?
A             : Table TFTIT would reflect obsolete FM’s. Please use following steps to get the list of obsolete FM’s. You may create a small program to check all your custom programs for usage of obsolete FM’s. Such FM calls should be replaced with appropriate replacement FM.



Usage of Internal SAP FM’s in Custom programs

Q         : What if my system has some custom programs using FM’s 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 won’t 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 it’s 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’ can’t 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 ) FM’s are being used. Programs which are calling such FM’s 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.



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 can’t 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.


Objects to be ignored for UCCHECK

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”.



SAP Notes
Q         : Notes listed under INCONSISTENT node are reflected as "Obsolete version implemented" in SNOTE
A             : Ignore the notes reflected under SNOTE-Inconsistent Notes as the notes are already applied during upgrade

Transport Request Numbering

Q         : New TR number conflicts with transports created from other development systems.   Basically the TR number generated in the current dev system (that is a copy of existing dev system) is having a corresponding TR no. in the original system that would have reached Prod/Quality.                                                                                                                                                  A    : If system id is changed after upgrade and not before upgrade, transport request number conflicts will arise.  To prevent this, ask the basis team to increase the transport number sequence to such a number that the conflict will not arise at all.

2 comments:

  1. I really feel that i have learned everything I needed to know before having my sap upgrade. I wanted to learn as much as possible about it because i heard it can be a bit stressful. Thanks

    ReplyDelete
    Replies
    1. I am glad that the content helped you. Thanks for the feedback !

      Delete