Search on this Website

Showing posts with label SAP Upgrade. Show all posts
Showing posts with label SAP Upgrade. Show all posts

Friday, April 30, 2010

Error: Could not specify the access range automatically. This means that you need a RANGE addition.

Cause: Loops with “VARY” or “VARYING” can cause problems in Unicode environ-ment because, on the one hand, you cannot be sure that you are accessing memory con-tents with the correct type and on the other hand, memory could be inadvertently over-written.

DO … VARYING f FROM f1 NEXT f2 [RANGE f3].
WHILE … VARY f FROM f1 NEXT f2 [RANGE f3].

With these statements, the fields f, f1 and f2 must be type-compatible with one another.



To avoid overwriting memory contents, a RANGE for valid accesses is implicitly or ex-plicitly implemented for these statements.

Solution:

If the RANGE f3 addition is specified, a syntax or runtime error is triggered, should f1 or f2 not be included in f3. For f3, only structures and elementary fields of the types C, N, or X are permitted.

If the RANGE addition is not specified, it is implicitly defined with FROM f1 NEXT f2 as follows:

• If the syntax check recognizes that both f1 and f2 are components of the same structure, the valid RANGE area is defined from the smallest structure containing f1 and f2.
• There is a syntax error if the syntax check recognizes that f1 and f2 are not part of the same structure.
• A valid range must be defined explicitly using RANGE if the syntax check does no recognize that f1 and f2are not together.

If a deep structure is defined as a RANGE addition, the system checks for every loop pass that there are no field references, object references, tables, or strings within the ac-cessed range.


Example:

* DO 10 TIMES VARYING B FROM A+9(1) NEXT A+8(1).
DO 10 TIMES VARYING B FROM A+9(1) NEXT A+8(1) RANGE A+0(1).

Alternative method :

PARAMETERS: P$_TXT01 LIKE SOLISTI1-LINE MODIF ID GRI, "objtxt.
P$_TXT02 LIKE SOLISTI1-LINE MODIF ID GRI.
DATA: W$_TXT00 LIKE SOLISTI1-LINE. "replaces parameter

* DO 3 TIMES VARYING W$_TXT00 FROM P$_TXT01 NEXT P$_TXT02.

** Begin of Changes - 46C To ECC6 - IN9AGARWAL
DATA: BEGIN OF WA_SOLISTI1,
P$_TXT03 TYPE SOLISTI1-LINE,
P$_TXT04 TYPE SOLISTI1-LINE,
END OF WA_SOLISTI1.

WA_SOLISTI1-P$_TXT03 = P$_TXT01.
WA_SOLISTI1-P$_TXT04 = P$_TXT02.

DO 3 TIMES VARYING W$_TXT00 FROM WA_SOLISTI1-P$_TXT03 NEXT WA_SOLISTI1-P$_TXT04 range WA_SOLISTI1.

Click Here to Read More !!!!

Error : In Unicode, DESCRIBE LENGTH can only be used with the IN BYTE MODE or IN CHARACTER MODE addition

Error : In Unicode, DESCRIBE LENGTH can only be used with the IN BYTE MODE or IN CHARACTER MODE addition
.

Cause: In some cases, the syntax rules that apply to Unicode Programs are different than those for non-Unicode programs For example, if one uses the addition LENGTH, one must also use one of the two additions IN CHARACTER MODE or IN BYTE MODE in Unicode systems.

Solution: Specify the mode depending upon the field types.



... IN CHARACTER MODE

This addition can only be used for character-type fields and in combination with the addition
LENGTH. The length of the field f is determined in characters.

... IN BYTE MODE

This addition can only be used in combination with the addition LENGTH. The length of the
field f is determined in bytes.

Example:

DATA: FLD(8),
LEN TYPE I,
* DESCRIBE FIELD FLD LENGTH LEN.
DESCRIBE FIELD FLD LENGTH LEN IN CHARACTER MODE.

Click Here to Read More !!!!

Error : WG_CRLF must be a character-like data object (data type C, N, D, T,or STRING) String

Error : WG_CRLF must be a character-like data object (data type C, N, D, T,or STRING) STRING).

Cause: Here WG_CRLF may be a variable or an internal table which contains variables which are of type X. Type X is used to represent hexadecimal values. Each Hexadeci-mal value can hold two characters (8 bits). These Hexadecimal values may also represent the codes for performing some actions like Horizontal Tab, Line Feed, etc. Till Version 4.6C (Non Unicode complaint environment), there was no problem if we try to assign a type C to type X and vice versa. But from Version ECC6.0, it’s not possible.

Solution: So we need to change all the X type variables to the C type Variables with their values unchanged. This can be tackled by declaring a variable as Type C, and then use the method UCCP('XXXX') of the Class CL_ABAP_CONV_IN_CE where XXXX represents the 8-bit hexadecimal value represented as 16 bits. Before this we need to load the definition of the Class CL_ABAP_CONV_IN_CE.

Example:


** Begin of Changes - 46C To ECC6 - IN9AGARWAL
CLASS: CL_ABAP_CONV_IN_CE DEFINITION LOAD.
** End of Changes - 46C To ECC6 - IN9AGARWAL

*\DATA: BEGIN OF wg_crlf,
*\ crlf(2) TYPE x VALUE '0D0A',
*\ END OF wg_crlf,

** Begin of Changes - 46C To ECC6 - IN9AGARWAL
DATA: BEGIN OF wg_crlf,
crlf(2) TYPE c,
END OF wg_crlf,
** End of Changes - 46C To ECC6 - IN9AGARWAL



** Begin of Changes - 46C To ECC6 - IN9AGARWAL
wg_crlf-crlf = CL_ABAP_CONV_IN_CE=>UCCP('0D0A').
** End of Changes - 46C To ECC6 - IN9AGARWAL

Note - 1: There are some methods of class CL_ABAP_CHAR_UTILITIES which are used to remove Errors related to Hexadecimal variables :

Following methods of class CL_ABAP_CHAR_UTILITIES are used for different val-ues of variables :

cl_abap_char_utilities=>horizontal_tab --- 09
cl_abap_char_utilities=>CR_LF --- 0D0A
cl_abap_char_utilities=>VERTICAL_TAB --- 0B
cl_abap_char_utilities=>NEWLINE --- 0A
cl_abap_char_utilities=>FORM_FEED --- 0C
cl_abap_char_utilities=>BACKSPACE --- 08


Examples :

* data : w_tab type x value '09'.

* DATA: HEX_LINEFEED TYPE X VALUE '0A'.
* DATA: LINEFEED TYPPE X VALUE ‘ODOA’.

** Begin of Changes - 46C To ECC6 - IN9AGARWAL
data : w_tab type C VALUE
CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

DATA: HEX_LINEFEED TYPE C VALUE cl_abap_char_utilities=>NEWLINE

DATA: LINEFEED TYPPE C VALUE cl_abap_char_utilities=>CR_LF

** End of Changes - 46C To ECC6 - IN9AGARWAL


Note – 2: For e.g, the variable of type X has length more than one. Then an internal ta-ble must be created for the variable.

Example :

CLASS: CL_ABAP_CONV_IN_CE DEFINITION LOAD.
* DATA : LF(2) TYPE X VALUE 'F5CD'.
DATA : BEGIN OF LF,
A1 TYPE C,
A2 TYPE C,
END OF LF.
START-OF-SELECTION.
LF-A1 = CL_ABAP_CONV_IN_CE=>UCCP('00F5').
LF-A2 = CL_ABAP_CONV_IN_CE=>UCCP('00CD').

Click Here to Read More !!!!

Some of the Common Errors in UCCHECK and their resolution

Case - 1:

Error : Upload/Ws_Upload and Download/Ws_Download are obsolete, since they are not Unicode-enabled; use the class cl_gui_frontend_services

Cause : From Version ECC6.0 (Unicode complaint environment), the Function Mod-ules UPLOAD / WS_UPLOAD / DOWNLOAD / WS_DOWNLOAD has become obso-lete. In replacement of these Function Modules, we have GUI_UPLOAD / GUI_DOWNLOAD.

Solution: All the UPLOAD / WS_UPLOAD function modules need to be replaced with GUI_UPLOAD FM and all the DOWNLOAD / WS_DOWNLOAD with the GUI_DOWNLOAD function modules.

For replacing WS_UPLOAD :



1
*\ call function 'WS_UPLOAD'
*\ exporting
*\ filename = p_filel
*\ filetype = 'DAT' "'ASC' "'DAT'
*\ tables
*\ data_tab = record
*\ exceptions
*\ conversion_error = 1
*\ file_open_error = 2
*\ file_read_error = 3
*\ invalid_type = 4
*\ no_batch = 5
*\ unknown_error = 6
*\ invalid_table_width = 7
*\ gui_refuse_filetransfer = 8
*\ customer_error = 9
*\ others = 10.


DATA : L_P_FILEL TYPE STRING.

Clear: L_P_FILEL.
L_P_FILEL = P_FILEL.

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = L_P_FILEL
FILETYPE = 'ASC'
TABLES
DATA_TAB = RECORD
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Clear: L_P_FILEL.

*} REPLACE


Note - 1 : The parameter FILENAME in GUI_UPLOAD is of type STRING for version ECC6.0. In 4.6C version (Non Unicode complaint environment), for the above code, ex-port parameter filename in UPLOAD / WS_UPLOAD was of data type “Character”. This need to be taken care of otherwise if an Extended Syntax Check is performed using the transaction SLIN, there would bet a Call Function Interface Error because of this. So to avoid that, one needs to declare a variable L_P_FILEL of type STRING and assign-ing that to the Parameter FILENAME. Also it’s better to have file type ‘ASC’.





For replacing WS_DOWNLOAD:

*{ REPLACE RE2K900049 1
*\ CALL FUNCTION 'WS_DOWNLOAD'
*\ EXPORTING
*\ FILENAME = W_FILENAME
*\ FILETYPE = 'ASC'
*\ TABLES
*\ DATA_TAB = TAB_PC2
*\ EXCEPTIONS
*\ FILE_OPEN_ERROR = 1
*\ FILE_WRITE_ERROR = 2
*\ INVALID_FILESIZE = 3
*\ INVALID_TYPE = 4
*\ NO_BATCH = 5
*\ UNKNOWN_ERROR = 6
*\ INVALID_TABLE_WIDTH = 7
*\ GUI_REFUSE_FILETRANSFER = 8
*\ CUSTOMER_ERROR = 9
*\ OTHERS = 10.
*\

** Begin of Changes - 46C To ECC6 - IN9AGARWAL
DATA : L_W_FILENAME TYPE STRING.

Clear: L_W_FILENAME.
L_W_FILENAME = W_FILENAME.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = L_W_FILENAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TAB_PC2
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


For replacing UPLOAD :

PARAMETERS: I_NFILE LIKE RLGRAP-FILENAME DEFAULT
'c:\fi\docgen.prn'.

Note : Please make sure that default location is given if its not then dont use default file-name parameter in your Function module.

1
*\ CALL FUNCTION 'UPLOAD'
*\ EXPORTING
*\ FILENAME = I_NFILE "NOME FILE
*\ FILETYPE = 'ASC'
*\ TABLES
*\ DATA_TAB = FILIN
*\ EXCEPTIONS
*\ CONVERSION_ERROR = 1
*\ INVALID_TABLE_WIDTH = 2
*\ INVALID_TYPE = 3
*\ NO_BATCH = 4
*\ UNKNOWN_ERROR = 5
*\ OTHERS = 6.
*\

So we will be using the method ` GUI_UPLOAD` of the class `CL_GUI_FRONTEND_SERVICES`. Now in 4.6, while using FM UPLOAD, a pop-up used to appear, prompting you to get/locate the path of the file. To get the same function-ality in GUI_UPLOAD use code as below-


data: ft type filetable,
rc type i,
l_i_nfile type string,
l_i_nfile_temp type string.

data: l_ft type line of filetable.

clear: l_i_nfile_temp, rc, l_ft, l_i_nfile.
refresh: ft.
l_i_nfile_temp = i_nfile.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'File open'
DEFAULT_FILENAME = l_i_nfile_temp
CHANGING
FILE_TABLE = ft
RC = rc
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
others = 5.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

read table ft into l_ft index 1.

l_i_nfile = l_ft-filename.

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = l_i_nfile
FILETYPE = 'ASC'
TABLES
DATA_TAB = FILIN
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

clear: l_i_nfile_temp, rc, l_ft, l_i_nfile.
refresh: ft.


For replacing DOWNLOAD :

DOWNLOAD is obsolete function module for storing SAP data in a file in the file sys-tem of the presentation server.
EXAMPLE :

PARAMETERS: PC_FILE LIKE RLGRAP-FILENAME DEFAULT
'c:\test.txt' modif id LOC.


* CALL FUNCTION 'DOWNLOAD'
* EXPORTING
* FILENAME = PC_FILE
* FILETYPE = 'DAT'
* IMPORTING
* FILESIZE = W_FSIZE
* ACT_FILENAME = W_FNAME
* ACT_FILETYPE = W_FTYPE
* TABLES
* DATA_TAB = TAB
* EXCEPTIONS
* CONVERSION_ERROR = 1
* INVALID_TABLE_WIDTH = 2
* INVALID_TYPE = 3
* NO_BATCH = 4
* UNKNOWN_ERROR = 5
* OTHERS = 6.

So we will be using the method `GUI_DOWNLOAD` of the class `CL_GUI_FRONTEND_SERVICES`. Now in 4.6, while using FM DOWNLOAD, a pop-up used to appear, prompting you to to put the path to save the file. To get the same functionality in GUI_DOWNLOAD use code as below-


data: l_filename type string,
l_path type string,
l_fullpath type string,
l_filename_temp type string.
** End of Changes - 46C To ECC6 - IN9AGARWAL

** Begin of Changes - 46C To ECC6 - IN9AGARWAL
Clear: l_filename, l_path, l_fullpath, l_filename_temp.
l_filename_temp = PC_FILE.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = 'File save'
DEFAULT_FILE_NAME = l_filename_temp
CHANGING
FILENAME = l_filename
PATH = l_path
FULLPATH = l_fullpath
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = l_filename
FILETYPE = 'ASC'
TABLES
DATA_TAB = tab
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


Click Here to Read More !!!!

Tuesday, April 20, 2010

Common Error During SAP Upgrade-Error3

Error: In the Unicode context, TRANSLATE... CODEPAGE/NUMBER FORMAT is not allowed.

Cause: In the TRANSLATE statements, the additions FROM CODEPAGE and FROM NUMBER FORMAT are not allowed in a Unicode program. New conversion classes provided to replace these statements. Amongst other things, these classes are a (possible) replacement for the language elements TRANSLATE … CODEPAGE and TRANSLATE … NUMBER FORMAT …, which may not be used in Unicode Programs.

Solution: Data that is not available in ABAP format (that is, text data that is not in the system code page format, or numeric data that is not in the byte order used on the application server), is stored in an X field or XSTRING in binary form.
• When converting to an ABAP format from another format, data is read from a byte sequence and written to an ABAP data object.
• When converting from an ABAP format to another format, data is read from an ABAP data object and written as a byte sequence.




The Classes available for this purpose are:

CL_ABAP_CONV_IN_CE
Converting other formats to ABAP data objects. (Reading a binary input stream).

CL_ABAP_CONV_OUT_CE
Converting ABAP data objects to another format. (Writing to a binary output stream).

CL_ABAP_CONV_X2X_CE
Converting data from one format to another. (Reading from a binary input stream and
writing to a binary output stream).

CL_ABAP_CONV_OBJ
Converting data from one format to another.

Example :

zzmbbpsysm-cpcodepage = '1100'.

* TRANSLATE context-fieldcont
* FROM CODE PAGE zzmbbpcath-cpcodepage
* TO CODE PAGE zzmbbpsysm-cpcodepage.



DATA: L_CODEPAGE LIKE tcp0c-charco VALUE '0000'.
CONSTANTS: L_UNICODECP(4) TYPE C VALUE '1100'.

DATA: l_converter TYPE REF TO cl_abap_conv_obj.
DATA: l_out TYPE string.
DATA: l_fromcode TYPE cpcodepage.
DATA: l_tocode TYPE cpcodepage.

Clear: l_out,
l_converter,
l_fromcode,
l_tocode.

l_fromcode = L_CODEPAGE.
l_tocode = L_UNICODECP.

CREATE OBJECT l_converter
EXPORTING
incode = l_fromcode
miss = '.'
broken = '.'
use_f1 = 'X'
outcode = l_tocode
EXCEPTIONS
invalid_codepage = 1
internal_error = 2.

IF sy-subrc eq 0.
* Do Nothing.
ENDIF.

CALL METHOD L_CONVERTER->CONVERT
EXPORTING
INBUFF = context
INBUFFLG = 0
OUTBUFFLG = 0
IMPORTING
OUTBUFF = l_out
EXCEPTIONS
INTERNAL_ERROR = 1
others = 2
.
IF sy-subrc eq 0.
context = l_out.
ENDIF.

Clear: l_out,
l_converter,
l_fromcode,
l_tocode.



Click Here to Read More !!!!

Common Error During SAP Upgarde-Error 2

Error : ZZMBBPCAPH cannot be converted to a character-type field.

Solution :

Here ZZMBBPCAPH is a Transparent table.

Convert ZZMBBPCAPH into upper case





*\ MESSAGE e019(0q) WITH zzmbbpcaph.

MESSAGE e019(0q) WITH 'ZZMBBPCAPH'.

*} REPLACE

Click Here to Read More !!!!

Common Error During SAP Upgrade

Error : "SSFCOMPOP" must be a flat structure. You cannot use internal tables, strings, references, or structures as components. .

Example :

*\PARAMETERS: PRINTER LIKE SSFCOMPOP-TDDEST. "DEFAULT 'BX14'.

Here SSFCOMPOP is a flat structure .So we have to declare variable PRINTER of type Data element of field TDDEST which is ‘RSPOPNAME’.





PARAMETERS: PRINTER type RSPOPNAME. "DEFAULT 'BX14'

Click Here to Read More !!!!

Friday, January 25, 2008

SAP Upgrade : Read_text Function Module has been Modified


Read_text Function Module has been Modified in new Version.Please Comment INLINE table in ECC6.0.It is no more use in it.

Older Version ( 4.6c)


CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = thead-tdid
language = thead-tdspras
name = thead-tdname
object = thead-tdobject
TABLES
lines = inline
inline = XXXX "comment this one in new version , it is no more have any use
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
Click Here to Read More !!!!

Monday, September 10, 2007

Conversion of SAP System to Unicode

What is Unicode?

Unicode is the encoding standard which provides the basis for processing, storage and interchange of text data in any language in all modern software and information technology protocols.
Who Needs Unicode?
Acting in global business requires support of a Global Character Set!
(i)Companies running global business processes like Global HR Systems or Global Master Data Management
(ii) Companies offering Web Services to their customers: Global Master Data containing multiple local language characters.

(iii) Companies using Open Standards: J2EE and .NET integration(JAVA speaks Unicode)
(iv) Collaborative Business: Integration of Third Party Products that run on different code pages

Basic Concept
All Unicode Conversion Paths are based one concept
1. Prepare non-Unicode system.
2. Export non-Unicode database and convert non-Unicode data.
3. Create new Unicode database and import the non-Unicode database.
4. Do post-conversion activities in the Unicode system.

Prepare Non-Unicode System: Transaction SPUMG
In transaction SPUMG you collect and analyze character data without code page information. SPUMG creates control information that will be used during the database conversion.

SPUMG consists of several database scans

􀀟 Consistency Check
􀀟 Tables without Language Information
􀀟 Tables with Ambiguous Language Information
􀀟 Tables with Language Information
􀀟 Reprocess
􀀟 INDX Analysis
􀀟 INDX Repair
Learning in pdf :
Unicode SAP System – Why and How
Unicode Conversion Paths – Basic Concept
How to Convert a System
Unicode Conversion Paths
Hardware, Sizing, Downtime
Additional Information
References and Contacts

Click Here to Read More !!!!

Tuesday, September 4, 2007

SAP Upgrading-Transaction SPDD, SPAU

Support Pack?

Support Packs are the upgrades we get for one release of SAP. For example, for component 4.7 you have support pack levels too (you can see this in transaction SPAM). SAP releases support packs for standard corrections which you can also implement separately through OSS notes (if you do not want the import the support pack). OSS notes might not carry all the changes that the SP might bring.


These are the two activities that an ABAPer does during upgrade:


1. SPDD: This is for data dictionary corrections. If any standard tables have been modified, then that object appears in the list and you have to adjust it again after comparing the versions.


2. SPAU: This is for repository objects (programs, functions, classes, etc.). These have to be compared to the previous versions too and any missing bespoke code is to re-inserted. However, there are a few cases where it need not.

More Details;

http://help.sap.com/saphelp_nw04/helpdata/en/2e/6d66617d9011d396b60000e82de14a/frameset.htm

http://help.sap.com/saphelp_nw2004s/helpdata/en/60/d6ba7bceda11d1953a0000e82de14a/content.htm

Steps :

( (1) All Z programs and customization are adjusted in repository.

(2) Using these transaction the sap prepare phase undertakes all these.

( (3) Then u might have to take the Combined and Unicode C process which is like combined upgrade and uniconverison as well.

(4) First step is to change all ABAP programs to Unicode enabled.

(5) You have to run a upgrade tool called SPUM4.

( (6) Then u have to do data maintainence consistency check etc.

(7) Actually all this is done automatically when you run SAPUP and sapprepare.

(8) Run SPDD and SPAU transaction for data dictionary correction and repositary.

More Details;

http://help.sap.com/saphelp_nw04/helpdata/en/2e/6d66617d9011d396b60000e82de14a/frameset.htm

http://help.sap.com/saphelp_nw2004s/helpdata/en/60/d6ba7bceda11d1953a0000e82de14a/content.htm

Transaction SPDD allows you to process Data dictionary objects needing adjustment. You should be very careful while making/accepting the changes as the impact is more than changing the program. The delay in SPDD will delay the upgrade project. The time frame for SPDD is before downtime and SPDD is performed in sand box client

OSS note adjustment is also a part of SPDD, where we either reset the OSS note (It will come default with the upgrade version) or apply the OSS note (If OSS note is applicable for our release and if possible note should be applied using SNOTE.)

Transaction SPAU allows you to process Repository objects needing adjustment.
This task involves changing/accepting the SAP standard object brought in by SAP because of upgrade. We might wish to retain the changes from previous version in SAP standard object because of typical business scenario. SPAU comes after the downtime phase of upgrade and is carried in normal client.



Click Here to Read More !!!!