ASSIGN_CASTING_ILLEGAL_CAST

Hi All,
In BW 7.40, I am getting following dump while running DTP from data source 0MATERIAL_ATTR to 0MATERIAL.
First time error...not sure, someone please shed some light on this !!!
regards,

The declarations are like below..
i_DATA        TYPE TABLE OF STRING WITH HEADER LINE.
<fs>         TYPE bussdi2. 
bussdi2 is a structure.
If you say, the type decalarations don't match, how does it work with the unicode enabled system then? Because the declarations are exactly the same in both the systems.
Please tell me how i can avoid this dump?

Similar Messages

  • HR_INFOTYPE_OPERATION assign_casting_illegal_cast

    hi!
    i using HR_INFOTYPE_OPERATION to insert/delete infotype 2001 data!
    when run at   ASSIGN record TO <record> CASTING TYPE (tabname). "XDP UniCode
       will dump out ! ASSIGN_CASTING_ILLEGAL_CAST
    error analyze
    An exception occurred. This exception will be dealt with in more detail
    below. The exception, assigned to the class 'CX_SY_ASSIGN_CAST_ILLEGAL_CAST',
    was not caught, which
    led to a runtime error. The reason for this exception is:
    The error occurred in an
    ASSIGN f TO <fs> CASTING.
    ASSIGN f TO <fs> CASTING TYPE t.
    or
    ASSIGN f TO <fs> CASTING LIKE f1.
    statement.
    This error has two possible causes:
    1. Either the field type f or the target type - specified by <fs>, t, or
    f1 -  contains data references, object references, strings, or internal
    tables as components.
    The offset and type of the components in each type must match exactly.
    2. Either the declared type t or the type of f1 does not match the type
    so simulate this case as follow:
    field-symbols:<record> type any table.
    DATA TABNAME  LIKE DNTAB-TABNAME VALUE 'P2001'.
    data: RECORD type table of p2001 .
    tables:p2001.
    p2001-pernr = '11000029'.
    p2001-infty = '2001'.
    p2001-subty = '0300'.
    p2001-begda = '20090305'.
    p2001-endda = '20090305'.
    p2001-awart = '0300'.
    append p2001 to record.
    ASSIGN record TO <record> CASTING TYPE (tabname). "XDP UniCode.
    when run ASSIGN will dump too!
    but i don't how to do!
    how to resolue it! thank you very much!

    thank you!
    i have update code reference with you !
    but dump again,not change in result!
    the source:
      data:p_action type PSPAR-ACTIO.
      DATA: bapipakey type bapipakey,
        PP2001 TYPE TABLE OF  P2001 WITH HEADER LINE.
      CHECK EFLAG IS INITIAL.
      CLEAR WF09_RETURN.
      CASE 'X'.
        WHEN R_INS.
          p_action = 'INS'.
        WHEN R_DEL.
          p_action = 'DEL'.
      ENDCASE.
      APPEND WF09_P2001 TO PP2001.
      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty         = '2001'
          subtype       =  WF09_P2001-SUBTY
          number        = WF09_P2001-pernr
          validityend   = WF09_P2001-ENDDA
          validitybegin = WF09_P2001-begda
          record        =  PP2001[]
         operation     = 'INS'
          operation     = P_ACTION
          nocommit      = 'X'
        IMPORTING
          return        = WF09_RETURN
          key           = bapipakey
        EXCEPTIONS
          OTHERS        = 0.

  • ASSIGN_CASTING_ILLEGAL_CAST dump

    Hi,
    I get the ASSIGN_CASTING_ILLEGAL_CAST dump when i execute the statement ASSIGN i_data TO <FS> CASTING.
    The statement works fine with the same data in UNICODE enabled system. But it dumps in the unicode disabled system. What could be the problem here?
    The declarations are like below..
    i_DATA TYPE TABLE OF STRING WITH HEADER LINE.
    <fs> TYPE bussdi2.
    bussdi2 is a structure.
    If you say, the type decalarations don't match, how does it work with the unicode enabled system then? Because the declarations are exactly the same in both the systems.
    Please tell me how i can avoid this dump?
    Thanks for your answers!!

    Hi,
    "<FS>" and "I_DATA" contain references, internal tables, or strings. In the current statement, these must occur at the same offset position and they must be compatible. But I don't know how it works in the non-unicode system.
    Regards,
    Ali

  • Handling unexpected errors/situations in an ABAP program

    Hi,
    if i come across a situation where i need to handle a runtime error unexpectedly what should be my approach.
    for eg. if i build a dynamic select statement and if my logic goes wrong the program flow should proceed normally as if nothing has happened 'with out giving me a short dump' . what if im not sure about the type of error thats going to show up, is there any way?
    your help will be appreciated.
    Regards,
    ravi.

    Hi Ravi
    Not all exceptions can be overridden. FYI, Below are a list of exceptions that can be handled:
    Alphabetical Overview of Catchable Runtime Errors
    Below you find an alphabetical list of all catchable runtime errors. For each runtime error, the predefined exception class assigned is specified which is used to handle the respective runtime error as of Release 6.10. If an exception class is assigned to more than one catchable runtime error, it may contain as many message texts as required which you can find in the Class Builder on the Texts tab.
    Almost all of the runtime errors listed here are combined together in exception groups. These exception groups are also assigned those ABAP keywords at which the runtime errors contained can be caught.
    ADDF_INT_OVERFLOW
    Overflow at addition, type I ( ADD ... UNTIL / ADD ... FROM ... TO)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    ASSIGN_CASTING_ILLEGAL_CAST
    The components of the source field type and the target type which are strings, tables, or references do not have exactly the same offset and type.
    Exception class: CX_SY_ASSIGN_CAST_ILLEGAL_CAST
    ASSIGN_CASTING_UNKNOWN_TYPE
    The type specified at runtime is unknown.
    Exception class: CX_SY_ASSIGN_CAST_UNKNOWN_TYPE
    ASSIGN_FIELD_NOT_IN_RANGE
    The field is not within the RANGE specified.
    Exception class: CX_SY_ASSIGN_OUT_OF_RANGE
    BCD_FIELD_OVERFLOW
    Overflow at conversion / arithmetic operation (type P, with specified length)
    Exception class: CX_SY_CONVERSION_OVERFLOW
    BCD_OVERFLOW
    Overflow at conversion / arithmetic operation (type P)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    BCD_ZERODIVIDE
    Division by 0 (type P)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_ACOS_DOMAIN
    Invalid call of the mathematical function ACOS
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_ASIN_DOMAIN
    Invalid call of the mathematical function ASIN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_ATAN_DOMAIN
    Invalid call of the mathematical function ATAN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_BCD_OVERFLOW
    Overflow at arithmetic operation (all operands of type P)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_COSH_DOMAIN
    Invalid call of the mathematical function COSH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_COSH_OVERFLOW
    Overflow at mathematical function COSH
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_COS_DOMAIN
    Invalid call of the mathematical function COS
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_COS_LOSS
    Inaccurate result of function COS
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_EXP_DOMAIN
    Invalid call of the mathematical function EXP
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_EXP_RANGE
    Overflow or underflow at mathematical function EXP
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_DIV_OVERFLOW
    Overflow at division (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_MINUS_OVERFLOW
    Overflow at subtraction (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_PLUS_OVERFLOW
    Overflow at addition (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_TIMES_OVERFLOW
    Overflow at multiplication (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_ZERODIVIDE
    Division by 0 (type F)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_INT_ABS_OVERFLOW
    Integer overflow while calculating the absolute value
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_DIV_OVERFLOW
    Integer overflow at division
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_MINUS_OVERFLOW
    Integer overflow at subtraction
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_PLUS_OVERFLOW
    Integer overflow at addition
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_TIMES_OVERFLOW
    Integer overflow at multiplication
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_ZERODIVIDE
    Division by 0 (type I)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_LOG10_ERROR
    Invalid call of the mathematical function LOG10
    Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_LOG_ERROR
    Invalid call of the mathematical function LOG
    Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_MATH_DOMAIN
    Invalid call of a mathematical function
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_MATH_ERROR
    Error performing a mathematical function
    Exception class: None since this runtime error can no longer be caught
    COMPUTE_MATH_LOSS
    Inaccurate result of a mathematical function
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_MATH_OVERFLOW
    Overflow at a mathematical function
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_MATH_UNDERFLOW
    Underflow at a mathematical function
    Exception class: None since exception no longer occurs
    COMPUTE_POW_DOMAIN
    Invalid argument when using powers
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_POW_RANGE
    Overflow or underflow when using powers
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_SINH_DOMAIN
    Invalid call of the mathematical function SINH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_SINH_OVERFLOW
    Overflow at mathematical function SINH
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_SIN_DOMAIN
    Invalid call of the mathematical function SIN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_SIN_LOSS
    Inaccurate result of the function SIN
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_SQRT_DOMAIN
    Invalid call of the mathematical function SQRT
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TANH_DOMAIN
    Invalid call of the mathematical function TANH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TAN_DOMAIN
    Invalid call of the mathematical function TAN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TAN_LOSS
    Inaccurate result of the function TAN
    Exception class: CX_SY_PRECISION_LOSS
    CONNE_IMPORT_WRONG_COMP_DECS
    Import error; a component of a structured type in the dataset has wrong decimal places
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_COMP_LENG
    Import error; a component of a structured type in the dataset has the wrong length
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_COMP_TYPE
    Import error; a component of a structured type in the dataset has the wrong type
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_DECS
    Import error; a field in the dataset has wrong decimal places
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_LENG
    Import error; a field in the dataset has the wrong length
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_TYPE
    Import error; a field in the dataset has the wrong type
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_OBJECT_TYPE
    Import error; type conflict between simple and structured data types
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_STRUCTURE
    Import error; type conflict between structured objects
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONVT_CODEPAGE
    Character set conversion not possible for one or more characters
    Exception class: CX_SY_CONVERSION_CODEPAGE
    CONVT_CODEPAGE_INIT
    Conversion of texts between code pages not supported
    Exception class: CX_SY_CODEPAGE_CONVERTER_INIT
    CONVT_NO_NUMBER
    Value to be converted cannot be interpreted as a number
    Exception class: CX_SY_CONVERSION_NO_NUMBER
    CONVT_OVERFLOW
    Overflow at conversion (all types, not type P)
    Exception class: CX_SY_CONVERSION_OVERFLOW
    CREATE_DATA_ILLEGAL_DECIMALS
    Invalid value for the addition DECIMALS
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_ILLEGAL_INIT_SIZE
    Invalid value for the addition INITIAL SIZE
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_ILLEGAL_LENGTH
    Invalid value for the addition LENGTH
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_LEN_NOT_ALLOWED
    The addition LENGTH was used for a type other than C, N, X, or P
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_NOT_ALLOWED_TYPE
    The type specified dynamically in the addition TYPE is not typed completely.
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_UNKNOWN_TYPE
    The type specified in the addition TYPE is unknown.
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_OBJECT_CLASS_ABSTRACT
    You attempted to instantiate an abstract class.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CLASS_NOT_FOUND
    The class specified in the dynamic CREATE OBJECT was not found.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CREATE_PRIVATE
    You attempted to create an object of a class defined as 'CREATE PRIVATE'.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CREATE_PROTECTED
    You attempted to create an object of a class defined as 'CREATE PROTECTED'.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    DATA_LENGTH_NEGATIVE
    Invalid subfield access: Length negative
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_LENGTH_0
    Invalid subfield access: Length 0
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_LENGTH_TOO_LARGE
    Invalid subfield access: Length too large
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_NEGATIVE
    Invalid subfield access: Offset negative
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_LENGTH_TOO_LARGE
    Invalid subfield access: Offset + length too large
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_LENGTH_NOT_ALLOWED
    Invalid subfield access: Inadequate type
    Exception class: CX_SY_OFFSET_NOT_ALLOWED
    DATASET_CANT_CLOSE
    File could not be closed; there might be no more space in the file system.
    Exception class: CX_SY_FILE_CLOSE
    DATASET_CANT_OPEN
    File cannot be opened
    Exception class: CX_SY_FILE_OPEN
    DATASET_NO_PIPE
    OPEN DATASET with the addition FILTER is not supported on the current operating system.
    Exception class: CX_SY_PIPES_NOT_SUPPORTED
    DATASET_NO_POSITION
    Access to current read/write position of file not possible
    Exception class: CX_SY_FILE_POSITION
    DATASET_NOT_OPEN
    File not open
    Exception class: CX_SY_FILE_OPEN_MODE
    DATASET_OFFSET_TO_LARGE
    Offset specified exceeds the system limit
    Exception class: CX_SY_FILE_POSITION
    DATASET_PIPE_CLOSED
    Pipe for file closed
    Exception class: CX_SY_PIPE_REOPEN
    DATASET_READ_ERROR
    Error reading a file
    Exception class: CX_SY_FILE_IO
    DATASET_READ_ONLY
    File opened in read-only mode
    Exception class: CX_SY_FILE_OPEN_MODE
    DATASET_SEEK_ERROR
    Error positioning in a file
    Exception class: CX_SY_FILE_POSITION
    DATASET_TOO_MANY_FILES
    Maximum number of open files exceeded
    Exception class: CX_SY_TOO_MANY_FILES
    DATASET_WRITE_ERROR
    Error writing a file
    Exception class: CX_SY_FILE_IO
    DYN_CALL_METH_CLASSCONSTRUCTOR
    You attempted to call the class constructor.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_CLASS_ABSTRACT
    You attempted to call an abstract method.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
    DYN_CALL_METH_CLASS_NOT_FOUND
    You attempted to call a method of a class that does not exist.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
    DYN_CALL_METH_CONSTRUCTOR
    You attempted to call the instance constructor.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_EXCP_NOT_FOUND
    You attempted to catch an unknown exception.
    Exception class: CX_SY_DYN_CALL_EXCP_NOT_FOUND
    DYN_CALL_METH_NOT_FOUND
    You attempted to call an unknown method.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_NOT_IMPLEMENTED
    You attempted to call a method not yet implemented.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_NO_CLASS_METHOD
    You attempted to call an instance method through a class.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_PARAM_KIND
    You attempted to pass a parameter with a wrong parameter type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_LITL_MOVE
    You attempted to pass a constant actual parameter to a formal EXPORTING, CHANGING, or RETURNING parameter.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_MISSING
    A required parameter was not filled.
    Exception class: CX_SY_DYN_CALL_PARAM_MISSING
    DYN_CALL_METH_PARAM_NOT_FOUND
    You attempted to pass an unknown parameter.
    Exception class: CX_SY_DYN_CALL_PARAM_NOT_FOUND
    DYN_CALL_METH_PARAM_TAB_TYPE
    You attempted to pass a parameter with a wrong table type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_TYPE
    You attempted to pass a parameter with a wrong type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARREF_INITIAL
    An initial data reference was passed for a required parameter.
    Exception class: CX_SY_DYN_CALL_PARAM_MISSING
    DYN_CALL_METH_PRIVATE
    You attempted to call a private method outside.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_PROTECTED
    You attempted to call a protected method outside.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_REF_IS_INITIAL
    You attempted to call a method to an initial reference.
    Exception class: CX_SY_REF_IS_INITIAL
    EXPORT_BUFFER_NO_MEMORY
    The EXPORT data cluster is too large for the application buffer.
    Exception class: CX_SY_EXPORT_BUFFER_NO_MEMORY
    EXPORT_DATASET_CANNOT_OPEN
    The IMPORT/EXPORT statement was unable to open the file.
    Exception class: CX_SY_FILE_OPEN
    EXPORT_DATASET_WRITE_ERROR
    The Export statement could not write the file.
    Exception class: CX_SY_FILE_IO
    GENERATE_SUBPOOL_DIR_FULL
    The system is unable to generate another temporary subroutine pool.
    Exception class: CX_SY_GENERATE_SUBPOOL_FULL
    IMPORT_ALIGNMENT_MISMATCH
    Import error; identical sequence of components but with type conflict or with different integration into structured data types
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    IMPORT_TYPE_MISMATCH
    Import error; only at IMPORT...FROM MEMORY | FROM SHARED BUFFER...
    Exception class: None since this runtime error can not longer be caught
    IMPORT_WRONG_END_POS
    Import error; dataset has a different length.
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    MOVE_CAST_ERROR
    Type conflict assigning between object and/or interface references (only MOVE...?TO... or operator ?=)
    Exception class: CX_SY_MOVE_CAST_ERROR
    OPEN_DATASET_NO_AUTHORITY
    No authorization to access a file
    Exception class: CX_SY_FILE_AUTHORITY
    OPEN_PIPE_NO_AUTHORITY
    No authorization to access a file (OPEN DATASET...FILTER...)
    Exception class: CX_SY_FILE_AUTHORITY
    PERFORM_PROGRAM_NAME_TOO_LONG
    Invalid program name in the PERFORM statement
    Exception class: CX_SY_PROGRAM_NOT_FOUND
    REFI_WRONG_SECTION
    Wrong offset/length specification in the REPLACE statement
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    REPLACE_INFINITE_LOOP
    SECTION of length 0 in the REPLACE statement
    Exception class: CX_SY_REPLACE_INFINITE_LOOP
    RMC_COMMUNICATION_FAILURE
    Communication error during Remote Method Call
    Exception class: CX_SY_RMC_COMM_FAILURE
    RMC_INVALID_STATUS
    State error during Remote Method Call
    Exception class: CX_SY_RMC_INVALID_STATUS
    RMC_SYSTEM_FAILURE
    System error during Remote Method Call
    Exception class: CX_SY_RMC_SYSTEM_FAILURE
    STRING_LENGTH_NEGATIVE
    Invalid access with negative length to a string
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_LENGTH_TOO_LARGE
    Invalid access to a string (length too large)
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_NEGATIVE
    Invalid access with negative offset to a string
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_TOO_LARGE
    Invalid access to a string (offset too large)
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_LENGTH_TOO_LARGE
    Invalid access to a string (offset + length too large)
    Exception class: CX_SY_LOCALIZATION_ERROR
    TEXTENV_CODEPAGE_NOT_ALLOWED
    Character set not released in the system (SET LOCALE...)
    TEXTENV_INVALID
    Error setting the text environment (SET LOCALE...)
    Exception class: CX_SY_LOCALIZATION_ERROR

  • 'Z' table maintanence generator

    Hi,
    I am having a 'Z' table with 7 fields. In this 'Z' table I also have a field whose data type is STRING, for which I've created a 'Z' data type and a 'Z' domain.
    I am not able to create:
    1) Maintainence view using Tale maintanence generator for this table.
    Error is get is 'Data type STRING not supported in field SMS'.
    2) Neither am I able to maintain/modify entries in table using SE16N and check maintain entries, even after changing attributes as 'Display/Maintenance Allowed'.
    Even if I change some entries and click SAVE I get a dump saying
    Runtime errors         ASSIGN_CASTING_ILLEGAL_CAST
    Exception              CX_SY_ASSIGN_CAST_ILLEGAL_CAST
           Occurred on     10.09.2009 at   11:34:41
    Error in an ASSIGN ... CASTING statement in program "SAPLSE16N".
    Is it because of my data elemene string or something else?
    Please help.
    Regards,
    Amit

    Hi Amit,
    Yes. You are right. Table maintenance generator does not support fields of type with string, raw, rawstring, internal table, object reference etc...
    One solution I think is to create a maintenance transaction on your own.
    Regards,
    Deepika.

  • Field symbols in Object Oriented ALV

    Hi Friends....Can somebody explain me what is the significance of field symbols in OO ALV. Why it is assigned to Field catalog. Also explain me the basic steps to do Object Oriented ALV. Thanks in advance...

    Hi Satyesh,
    Field symbols are symbolic names to which a memory area can be assigned during program runtime. A field symbol can be used instead of data objects at operand positions of statements.
    Please go through this following code.  This uses field symbols for OO ALV.
      LCL_TABLE_DISPLAY DEFINITION
    CLASS lcl_table_display DEFINITION.
      PUBLIC SECTION.
        TYPE-POOLS: abap, slis.
        CLASS-METHODS: display_list IMPORTING in_data TYPE STANDARD TABLE,
                       display_grid IMPORTING in_data TYPE STANDARD TABLE.
        METHODS: constructor IMPORTING in_data TYPE STANDARD TABLE
                             EXCEPTIONS casting_error
                                        empty_fieldcat.
        METHODS: output_list,
                 output_grid.
        METHODS: set_table_name   IMPORTING in_tabname  TYPE any,
                 set_alv_title    IMPORTING in_title    TYPE any,
                 set_alv_settings IMPORTING in_settings TYPE any,
                 set_alv_layout   IMPORTING in_layout   TYPE any,
                 set_alv_event    IMPORTING in_name     TYPE any
                                            in_form     TYPE any.
      PRIVATE SECTION.
        CLASS-DATA: g_table_object TYPE REF TO lcl_table_display.
        TYPES: BEGIN OF ty_defin,
                 fieldname     TYPE fieldname,
                 ref_tabname   TYPE tabname,
                 ref_fieldname TYPE fieldname,
               END OF ty_defin.
        DATA: g_repid  TYPE repid,
              g_struc  TYPE tabname,
              g_table  TYPE tabname.
        DATA: gt_data  TYPE REF TO data.
        DATA: g_title  TYPE lvc_title,
              gt_fcat  TYPE slis_t_fieldcat_alv,
              gs_sett  TYPE lvc_s_glay,
              gs_layo  TYPE slis_layout_alv,
              gt_evnt  TYPE slis_t_event.
        DATA: gt_defin TYPE TABLE OF ty_defin,
              g_level  TYPE tabname.
        METHODS: output_table IMPORTING data TYPE REF TO data
                                        mode TYPE c,
                 fill_fieldcat IMPORTING repid TYPE repid
                                         struc TYPE tabname
                                CHANGING fcat  TYPE slis_t_fieldcat_alv
                              EXCEPTIONS no_definition,
                 get_definition IMPORTING repid TYPE repid
                                          struc TYPE tabname
                                 CHANGING abap  TYPE rsfb_source,
                 recursive_definition IMPORTING repid TYPE repid
                                       CHANGING abap  TYPE rsfb_source,
                 map_structure IMPORTING source TYPE any
                                CHANGING destin TYPE any.
    ENDCLASS.
      LCL_TABLE_DISPLAY IMPLEMENTATION
    CLASS lcl_table_display IMPLEMENTATION.
      Display table in ALV list
      METHOD display_list.
        IF NOT g_table_object IS INITIAL.
          FREE: g_table_object.
        ENDIF.
        CREATE OBJECT g_table_object EXPORTING in_data = in_data.
        CALL METHOD g_table_object->output_list.
      ENDMETHOD.
      Display table in ALV grid
      METHOD display_grid.
        IF NOT g_table_object IS INITIAL.
          FREE: g_table_object.
        ENDIF.
        CREATE OBJECT g_table_object EXPORTING in_data = in_data.
        CALL METHOD g_table_object->output_grid.
      ENDMETHOD.
      Create table display
      METHOD constructor.
        DATA: ls_data TYPE REF TO data.
        DATA: ob_desc TYPE REF TO cl_abap_structdescr.
        DATA: l_absol TYPE char200,
              l_repid TYPE repid,
              l_struc TYPE tabname.
        FIELD-SYMBOLS: <table> TYPE STANDARD TABLE,
                       <struc> TYPE ANY.
      Get data and store it into attribute
        CREATE DATA me->gt_data LIKE in_data.
        ASSIGN me->gt_data->* TO <table>.
        <table> = in_data.
      Get global data definition
        CREATE DATA ls_data LIKE LINE OF <table>.
        ASSIGN ls_data->* TO <struc>.
        CATCH SYSTEM-EXCEPTIONS assign_casting_illegal_cast = 1.
          ob_desc ?= cl_abap_typedescr=>describe_by_data( <struc> ).
        ENDCATCH.
        IF sy-subrc = 1.
          RAISE casting_error.
        ENDIF.
      Get program name and main type used to define table
        l_absol = ob_desc->absolute_name.
        SPLIT l_absol AT '\TYPE=' INTO l_repid l_struc.
        SHIFT l_repid UP TO '='.
        SHIFT l_repid.
        CHECK l_struc NP '%_*'.
        IF me->g_repid NE l_repid
        OR me->g_struc NE l_struc.
        Set attributes
          me->g_repid = l_repid.
          me->g_struc = l_struc.
          me->g_table = l_struc.
          REPLACE 'TY' WITH 'WT' INTO me->g_table.
        Field catalog
          CALL METHOD fill_fieldcat EXPORTING repid = l_repid
                                              struc = l_struc
                                     CHANGING fcat  = me->gt_fcat.
          IF me->gt_fcat IS INITIAL.
            RAISE empty_fieldcat.
          ENDIF.
        ENDIF.
      ENDMETHOD.
      Output list
      METHOD output_list.
        CALL METHOD output_table EXPORTING data = me->gt_data
                                           mode = 'L'.
      ENDMETHOD.
      Output grid
      METHOD output_grid.
        CALL METHOD output_table EXPORTING data = me->gt_data
                                           mode = 'G'.
      ENDMETHOD.
      Output table
      METHOD output_table.
        DATA: ls_vari TYPE disvariant.
        FIELD-SYMBOLS: <table> TYPE STANDARD TABLE.
        ASSIGN me->gt_data->* TO <table>.
      Get default user variant
        ls_vari-report = me->g_repid.
        ls_vari-username = sy-uname.
        CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
             EXPORTING
                  i_save     = 'U'
             CHANGING
                  cs_variant = ls_vari
             EXCEPTIONS
                  OTHERS     = 0.
      Display table contents
        IF mode = 'G'.
          CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
               EXPORTING
                    i_callback_program = me->g_repid
                    i_grid_title       = me->g_title
                    i_grid_settings    = me->gs_sett
                    is_layout          = me->gs_layo
                    it_fieldcat        = me->gt_fcat
                    i_save             = 'U'
                    is_variant         = ls_vari
                    it_events          = me->gt_evnt
               TABLES
                    t_outtab           = <table>
               EXCEPTIONS
                    OTHERS             = 0.
        ELSE.
          CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
               EXPORTING
                    i_callback_program = me->g_repid
                    is_layout          = me->gs_layo
                    it_fieldcat        = me->gt_fcat
                    i_save             = 'U'
                    is_variant         = ls_vari
                    it_events          = me->gt_evnt
               TABLES
                    t_outtab           = <table>
               EXCEPTIONS
                    OTHERS             = 0.
        ENDIF.
      ENDMETHOD.
      Fill field catalog
      METHOD fill_fieldcat.
        DATA: lt_abap   TYPE TABLE OF rssource.
        DATA: ls_defin  TYPE ty_defin.
        DATA: lt_dfies  TYPE TABLE OF dfies,
              ls_dfies  TYPE dfies,
              ls_dd04v  TYPE dd04v,
              ls_dd01v  TYPE dd01v,
              l_flong   TYPE dfies-lfieldname,
              l_dname   TYPE dfies-domname.
        DATA: ls_fcat   TYPE slis_fieldcat_alv,
              ls_fcat2  TYPE slis_fieldcat_alv.
        DATA: l_index   TYPE i,
              l_nbfld   TYPE i.
        FREE: me->gt_defin.
      Process data definition
        CALL METHOD get_definition EXPORTING repid = repid
                                             struc = struc
                                    CHANGING abap  = lt_abap.
      Process sub levels if required
        CALL METHOD recursive_definition EXPORTING repid = repid
                                          CHANGING abap  = lt_abap.
        IF me->gt_defin IS INITIAL.
          RAISE no_definition.
        ENDIF.
        LOOP AT me->gt_defin INTO ls_defin.
          CLEAR: ls_fcat.
          MOVE-CORRESPONDING ls_defin TO ls_fcat.
        Retrieve info about this field
          FREE: ls_dfies, ls_dd04v, ls_dd01v, l_dname.
          l_flong = ls_fcat-ref_fieldname.
          SET LOCALE LANGUAGE 'E'.
          TRANSLATE: ls_fcat-ref_tabname   TO UPPER CASE,
                     ls_fcat-ref_fieldname TO UPPER CASE,
                     l_flong               TO UPPER CASE.
          IF NOT ls_fcat-ref_tabname IS INITIAL.
          Try to get info about field in table
            CALL FUNCTION 'DDIF_FIELDINFO_GET'
                 EXPORTING
                      tabname        = ls_fcat-ref_tabname
                      fieldname      = ls_fcat-ref_fieldname
                      lfieldname     = l_flong
                 IMPORTING
                      dfies_wa       = ls_dfies
                 EXCEPTIONS
                      not_found      = 1
                      internal_error = 2
                      OTHERS         = 3.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING ls_dfies TO ls_fcat.
              ls_fcat-fieldname = ls_defin-fieldname.
              MOVE: ls_dfies-keyflag   TO ls_fcat-key,
                    ls_dfies-scrtext_m TO ls_fcat-seltext_l,
                    ls_dfies-domname   TO l_dname.
            ENDIF.
          ELSE.
          Try to get info about structure
            ls_defin-ref_tabname = ls_defin-ref_fieldname.
            CALL FUNCTION 'DDIF_FIELDINFO_GET'
                 EXPORTING
                      tabname   = ls_defin-ref_tabname
                 TABLES
                      dfies_tab = lt_dfies
                 EXCEPTIONS
                      OTHERS    = 0.
            IF NOT lt_dfies IS INITIAL.
            Process fields of this structure
              LOOP AT lt_dfies INTO ls_dfies.
                CLEAR: ls_fcat.
                MOVE-CORRESPONDING ls_dfies TO ls_fcat.
                CONCATENATE ls_defin-fieldname ls_fcat-fieldname
                       INTO ls_fcat-fieldname
                  SEPARATED BY '-'.
                MOVE ls_dfies-keyflag TO ls_fcat-key.
                MOVE ls_dfies-scrtext_m TO ls_fcat-seltext_l.
                ls_fcat-tabname = me->g_table.
                CLEAR: ls_fcat-col_pos,
                       ls_fcat-offset.
                IF ls_fcat-ref_tabname IS INITIAL.
                  ls_fcat-ddictxt = 'L'.
                ENDIF.
              Display Yes/No fields as checkboxes
                IF ls_dfies-domname = 'XFELD'.
                  ls_fcat-checkbox = 'X'.
                ENDIF.
              Add field to field catalog
                APPEND ls_fcat TO fcat.
              ENDLOOP.
            ELSE.
            Try to get info about data element
              CALL FUNCTION 'DDIF_DTEL_GET'
                   EXPORTING
                        name          = ls_fcat-ref_fieldname
                        langu         = sy-langu
                   IMPORTING
                        dd04v_wa      = ls_dd04v
                   EXCEPTIONS
                        illegal_input = 1
                        OTHERS        = 2.
              IF sy-subrc = 0.
                MOVE-CORRESPONDING ls_dd04v TO ls_fcat.
                MOVE: ls_dd04v-scrtext_m TO ls_fcat-seltext_l,
                      ls_dd04v-domname   TO l_dname.
              ELSE.
              Finally try to get info about domain
                CALL FUNCTION 'DDIF_DOMA_GET'
                     EXPORTING
                          name          = ls_fcat-ref_fieldname
                          langu         = sy-langu
                     IMPORTING
                          dd01v_wa      = ls_dd01v
                     EXCEPTIONS
                          illegal_input = 1
                          OTHERS        = 2.
                IF sy-subrc = 0.
                  MOVE-CORRESPONDING ls_dd01v TO ls_fcat.
                  MOVE: ls_dd01v-ddtext  TO ls_fcat-seltext_l,
                        ls_dd01v-domname TO l_dname.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        Table name must be internal table containing data
          ls_fcat-tabname = g_table.
        No offset
          CLEAR: ls_fcat-offset.
        Default text is stored in long text
          IF ls_fcat-ref_tabname IS INITIAL.
            ls_fcat-ddictxt = 'L'.
          ENDIF.
        Display Yes/No fields as checkboxes
          IF l_dname = 'XFELD'.
            ls_fcat-checkbox = 'X'.
          ENDIF.
        Add field to field catalog
          APPEND ls_fcat TO fcat.
        ENDLOOP.
      Link between fields
        DESCRIBE TABLE fcat LINES l_nbfld.
        LOOP AT fcat INTO ls_fcat.
          IF sy-tabix NE l_nbfld.
            l_index = sy-tabix + 1.
            READ TABLE fcat INTO ls_fcat2 INDEX l_index.
            IF sy-subrc = 0.
              IF ls_fcat-datatype = 'CURR'.
              Currency unit
                IF ls_fcat2-datatype = 'CUKY'.
                  ls_fcat-cfieldname = ls_fcat2-fieldname.
                  ls_fcat-ctabname   = ls_fcat2-tabname.
                  MODIFY fcat FROM ls_fcat.
                ELSE.
                  LOOP AT fcat INTO ls_fcat2
                               FROM l_index
                              WHERE datatype = 'CUKY'.
                  First currency unit after field
                    ls_fcat-cfieldname = ls_fcat2-fieldname.
                    ls_fcat-ctabname   = ls_fcat2-tabname.
                    MODIFY fcat FROM ls_fcat.
                    EXIT.
                  ENDLOOP.
                  IF sy-subrc NE 0.
                  No currency unit after field, try before
                    READ TABLE fcat INTO ls_fcat2
                                WITH KEY datatype = 'CUKY'.
                    IF sy-subrc = 0.
                      ls_fcat-cfieldname = ls_fcat2-fieldname.
                      ls_fcat-ctabname   = ls_fcat2-tabname.
                      MODIFY fcat FROM ls_fcat.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
              IF ls_fcat-datatype = 'QUAN'.
              Quantity unit
                IF ls_fcat2-datatype = 'UNIT'.
                  ls_fcat-cfieldname = ls_fcat2-fieldname.
                  ls_fcat-ctabname   = ls_fcat2-tabname.
                  MODIFY fcat FROM ls_fcat.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDMETHOD.
      Get definition of type from code source
      METHOD get_definition.
        DATA: l_strng TYPE rssource,
              ls_abap TYPE rssource,
              l_fdpos TYPE i,
              l_first TYPE i,
              l_lastr TYPE i.
        DATA: lt_incl TYPE TABLE OF repid,
              ls_incl TYPE repid.
      Get program code
        READ REPORT repid INTO abap.
        CHECK sy-subrc EQ 0.
      Get first line of definition
        CONCATENATE 'BEGIN OF' struc INTO l_strng
                                SEPARATED BY space.
        LOOP AT abap INTO ls_abap.
          IF ls_abap CS l_strng.
            l_fdpos = strlen( l_strng ) + sy-fdpos.
            IF ls_abap+l_fdpos(1) CA ', "'.
              l_first = sy-tabix.
              EXIT.
            ENDIF.
          ENDIF.
        ENDLOOP.
        IF l_first IS INITIAL.
        Table is defined in an include
          CALL FUNCTION 'RS_GET_ALL_INCLUDES'
               EXPORTING
                    program    = repid
               TABLES
                    includetab = lt_incl
               EXCEPTIONS
                    OTHERS     = 1.
          IF sy-subrc = 0.
            LOOP AT lt_incl INTO ls_incl.
            Try to find definition in this include
              READ REPORT ls_incl INTO abap.
              LOOP AT abap INTO ls_abap.
                IF ls_abap CS l_strng.
                  l_fdpos = strlen( l_strng ) + sy-fdpos.
                  IF ls_abap+l_fdpos(1) CA ',. "'.
                    l_first = sy-tabix.
                    EXIT.
                  ENDIF.
                ENDIF.
              ENDLOOP.
              IF NOT l_first IS INITIAL.
                EXIT.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDIF.
      Get last line of definition
        CONCATENATE 'END OF' struc INTO l_strng
                              SEPARATED BY space.
        LOOP AT abap INTO ls_abap.
          IF ls_abap CS l_strng.
            l_fdpos = strlen( l_strng ) + sy-fdpos.
            IF ls_abap+l_fdpos(1) CA ',. "'.
              l_lastr = sy-tabix - l_first.
              EXIT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      Keep only relevant code lines
        IF l_first LE 0
        OR l_lastr LE 0.
          REFRESH abap.
        ELSE.
          DELETE abap TO l_first.
          DELETE abap FROM l_lastr.
        ENDIF.
      ENDMETHOD.
      Get definition of type recursively
      METHOD recursive_definition.
        DATA: lt_token TYPE TABLE OF stokex,
              ls_token TYPE stokex,
              lt_state TYPE TABLE OF sstmnt,
              ls_state TYPE sstmnt.
        DATA: ls_defin TYPE ty_defin,
              l_reffld TYPE fieldname.
        DATA: lt_recu  TYPE TABLE OF rssource.
      Retrieve tokens
        SCAN ABAP-SOURCE abap
                  TOKENS INTO lt_token
              STATEMENTS INTO lt_state.
        LOOP AT lt_state INTO ls_state.
          CLEAR: ls_defin.
        Field name
          READ TABLE lt_token INTO ls_token
                             INDEX ls_state-from.
          ls_defin-fieldname = ls_token-str.
        Reference type
          READ TABLE lt_token INTO ls_token
                             INDEX ls_state-to.
          l_reffld = ls_token-str.
        Check if this type is defined in program
          FREE: lt_recu.
          CALL METHOD get_definition EXPORTING repid = repid
                                               struc = l_reffld
                                      CHANGING abap  = lt_recu.
          IF lt_recu IS INITIAL.
            IF NOT g_level IS INITIAL.
             CONCATENATE g_level ls_defin-fieldname INTO ls_defin-fieldname
                                                           SEPARATED BY '-'.
              CONDENSE ls_defin-fieldname.
            ENDIF.
            IF l_reffld CS '-'.
              SPLIT l_reffld AT '-'
                           INTO ls_defin-ref_tabname
                                ls_defin-ref_fieldname.
              IF ls_defin-ref_tabname = 'SY'.
                ls_defin-ref_tabname = 'SYST'.
              ENDIF.
            ELSE.
              ls_defin-ref_fieldname = ls_token-str.
            ENDIF.
            APPEND ls_defin TO me->gt_defin.
          ELSE.
          Process sub levels
            IF me->g_level IS INITIAL.
              me->g_level = ls_defin-fieldname.
            ELSE.
              CONCATENATE me->g_level ls_defin-fieldname INTO me->g_level
                                                 SEPARATED BY '-'.
            ENDIF.
            CALL METHOD recursive_definition EXPORTING repid = repid
                                              CHANGING abap  = lt_recu.
            IF me->g_level CS '-'.
              SHIFT me->g_level RIGHT UP TO '-'.
              SHIFT me->g_level RIGHT.
              SHIFT me->g_level LEFT DELETING LEADING space.
            ELSE.
              CLEAR: me->g_level.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDMETHOD.
      Set table name
      METHOD set_table_name.
        me->g_table = in_tabname.
      ENDMETHOD.
      Set title
      METHOD set_alv_title.
        me->g_title = in_title.
      ENDMETHOD.
      Set settings
      METHOD set_alv_settings.
        CALL METHOD map_structure EXPORTING source = in_settings
                                   CHANGING destin = me->gs_sett.
      ENDMETHOD.
      Set layout
      METHOD set_alv_layout.
        CALL METHOD map_structure EXPORTING source = in_layout
                                   CHANGING destin = me->gs_layo.
      ENDMETHOD.
      Add event
      METHOD set_alv_event.
        DATA: ls_evnt TYPE slis_alv_event.
        ls_evnt-name = in_name.
        ls_evnt-form = in_form.
        COLLECT ls_evnt INTO gt_evnt.
      ENDMETHOD.
      Map fields from incoming structure into attribute
      METHOD map_structure.
        DATA: ob_desc  TYPE REF TO cl_abap_structdescr,
              ls_compo TYPE abap_compdescr.
        FIELD-SYMBOLS: <field> TYPE ANY,
                       <struc> TYPE ANY.
        ob_desc ?= cl_abap_typedescr=>describe_by_data( destin ).
        LOOP AT ob_desc->components INTO ls_compo.
          ASSIGN COMPONENT ls_compo-name OF STRUCTURE source TO <field>.
          IF <field> IS ASSIGNED.
            ASSIGN COMPONENT ls_compo-name OF STRUCTURE destin TO <struc>.
            CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.
              MOVE <field> TO <struc>.
            ENDCATCH.
            UNASSIGN <field>.
          ENDIF.
        ENDLOOP.
      ENDMETHOD.
    ENDCLASS.
    PLZ REWARD POINTS

  • Job RWJ_ZHYP failure

    Hi
    Job RWJ_ZHYP failure causing Runtime Error ASSIGN_CASTING_ILLEGAL_CAST in EPD
    Need your solution ASAP..
    Thanks
    Jhony

    Hi
    Plese find below dump log:-
    Runtime Error          ASSIGN_CASTING_ILLEGAL_CAST
    Except.                CX_SY_ASSIGN_CAST_ILLEGAL_CAST
    Date and Time          09.01.2008 07:10:11
         Error in ABAP application program.
         The current ABAP program "SAPFGRWE" had to be terminated because one of the
         statements could not be executed.
         This is probably due to an error in the ABAP program.
    What can you do?
         Print out the error message (using the "Print" function)
         and make a note of the actions and input that caused the
         error.
         To resolve the problem, contact your SAP system administrator.
         You can use transaction ST22 (ABAP Dump Analysis) to view and administer
          termination messages, especially those beyond their normal deletion
         date.
         is especially useful if you want to keep a particular message.
    Error analysis
         An exception occurred. This exception is dealt with in more detail below
         . The exception, which is assigned to the class
          'CX_SY_ASSIGN_CAST_ILLEGAL_CAST', was neither
         caught nor passed along using a RAISING clause, in the procedure
          "MOVE_DOWNLOAD_STRUCTURE" "(FORM)"
         Since the caller of the procedure could not have expected this exception
          to occur, the running program was terminated.
         The reason for the exception is:
         The error occurred in an
           ASSIGN f TO <fs> CASTING.
           ASSIGN f TO <fs> CASTING TYPE t.
         or
           ASSIGN f TO <fs> CASTING LIKE f1.
         statement.
         This error has two possible causes:
         1. Either the field type f or the target type - specified by <fs>, t, or
          f1 -  contains data references, object references, strings, or internal
          tables as components.
         The offset and type of the components in each type must match exactly.
         2. Either the declared type t or the type of f1 does not match the type
         of the field symbol <fs>.
    Thanks
    Jhony

  • What is the problem with the code?

    Hello, the following is a segment of code that I have written recently:
            IF DATA+1(5) <> TEXT-035.
              CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
                                     OTHERS = 8.
                END CATCH.
              ENDIF.
    When I tried to compile the code, it says:
    Unable to interpret "SYSTEM-EXCEPTIONS". Possible causes: Incorrect spelling or comma error.          
    May I know where is the problem with this code? Thanks a lot!
    Regards,
    Anyi

    Here is a list of the system exceptions.
    Alphabetical List of Catchable Runtime Errors
    ,,ADDF_INT_OVERFLOW
    Overflow in addition with type I ( ADD ... UNTIL / ADD ... FROM ... TO)
    ,,ASSIGN_CASTING_ILLEGAL_CAST
    The offset and type of the source field and the target type do not match exactly in the components that are strings, tables, or references.
    ,,ASSIGN_CASTING_UNKNOWN_TYPE
    The type specified at runtime is unknown.
    ,,BCD_FIELD_OVERFLOW
    Overflow in conversion or arithmetic operations (type P with specified length)
    ,,BCD_OVERFLOW
    Overflow in conversion or arithmetic operation (type P)
    ,,BCD_ZERODIVIDE
    Division by 0 (type P)
    ,,CALL_METHOD_NOT_IMPLEMENTED
    Call of a non-implemented interface method
    ,,COMPUTE_ACOS_DOMAIN
    Invalid call of mathematical function ACOS
    ,,COMPUTE_ASIN_DOMAIN
    Invalid call of mathematical function ASIN
    ,,COMPUTE_ATAN_DOMAIN
    Invalid call of mathematical function ATAN
    ,,COMPUTE_BCD_OVERFLOW
    Overflow in arithmetic operation (all operands type P)
    ,,COMPUTE_COSH_DOMAIN
    Invalid call of mathematical function COSH
    ,,COMPUTE_COSH_OVERFLOW
    Overflow in mathematical function COSH
    ,,COMPUTE_COS_DOMAIN
    Invalid call of mathematical function COS
    ,,COMPUTE_COS_LOSS
    Result of COS function is inexact
    ,,COMPUTE_EXP_DOMAIN
    Invalid call of mathematical function EXP
    ,,COMPUTE_EXP_RANGE
    Over- or underflow in mathematical function EXP
    ,,COMPUTE_FLOAT_DIV_OVERFLOW
    Overflow in division (type F)
    ,,COMPUTE_FLOAT_MINUS_OVERFLOW
    Overflow in subtraction (type F)
    ,,COMPUTE_FLOAT_PLUS_OVERFLOW
    Overflow in addition (type F)
    ,,COMPUTE_FLOAT_TIMES_OVERFLOW
    Overflow in multiplication (type F)
    ,,COMPUTE_FLOAT_ZERODIVIDE
    Division by 0 (type F)
    ,,COMPUTE_INT_ABS_OVERFLOW
    Integer overflow when calculating the absolute value
    ,,COMPUTE_INT_DIV_OVERFLOW
    Integer overflow in division
    ,,COMPUTE_INT_MINUS_OVERFLOW
    Integer overflow in subtraction
    ,,COMPUTE_INT_PLUS_OVERFLOW
    Integer overflow in addition
    ,,COMPUTE_INT_TIMES_OVERFLOW
    Integer overflow in multiplication
    ,,COMPUTE_INT_ZERODIVIDE
    Division by 0 (type I)
    ,,COMPUTE_LOG10_ERROR
    Invalid call of the mathematical function LOG10
    ,,COMPUTE_LOG_ERROR
    Invalid call of the mathematical function LOG
    ,,COMPUTE_MATH_DOMAIN
    Invalid call of a mathematical function
    ,,COMPUTE_MATH_ERROR
    Error executing a mathematical function
    ,,COMPUTE_MATH_LOSS
    Result of a mathematical function is inexact
    ,,COMPUTE_MATH_OVERFLOW
    Overflow of a mathematical function
    ,,COMPUTE_MATH_UNDERFLOW
    Underflow in a mathematical function
    ,,COMPUTE_POW_DOMAIN
    Invalid argument when raising powers
    ,,COMPUTE_POW_RANGE
    Over- or underflow when raising powers
    ,,COMPUTE_SINH_DOMAIN
    Invalid call of the mathematical function SINH
    ,,COMPUTE_SINH_OVERFLOW
    Overflow in the mathematical function SINH
    ,,COMPUTE_SIN_DOMAIN
    Invalid call of the mathematical function SIN
    ,,COMPUTE_SIN_LOSS
    Result of the function SIN is inexact
    ,,COMPUTE_SQRT_DOMAIN
    Invalid call of the mathematical function SQRT
    ,,COMPUTE_TANH_DOMAIN
    Invalid call of the mathematical function TANH
    ,,COMPUTE_TAN_DOMAIN
    Invalid call of the mathematical function TAN
    ,,COMPUTE_TAN_LOSS
    Result of the function TAN is inexact
    ,,CONNE_IMPORT_WRONG_COMP_LENG
    Import error: A component in a structured type in the dataset has an incorrect length
    ,,CONNE_IMPORT_WRONG_COMP_TYPE
    Import error: A component of a structured type in the dataset has an incorrect length
    ,,CONNE_IMPORT_WRONG_FIELD_LENG
    Import error: A field in the dataset has an incorrect length
    ,,CONNE_IMPORT_WRONG_FIELD_TYPE
    Import error: A field in a dataset has the wrong type
    ,,CONNE_IMPORT_OBJECT_TYPE
    Import error: Type conflict between simple and structured data types
    ,,CONNE_IMPORT_WRONG_STRUCTURE
    Import error: Type conflict between structured objects
    ,,CONVT_HEX_CONFLICT
    Conversion conflict (Type X)
    ,,CONVT_NO_NUMBER
    Value for conversion cannot be interpreted as a number
    ,,CONVT_OVERFLOW
    Overflow in conversion (all types except type P)
    ,,CREATE_DATA_NOT_ALLOWED_TYPE
    The statement CREATE DATA cannot be executed with a generic type.
    ,,CREATE_DATA_UNKNOWN_TYPE
    The statement CREATE DATA cannot be executed with an unknown type.
    ,,CREATE_OBJECT_CLASS_ABSTRACT
    Attempt to instantiate an abstract class.
    ,,CREATE_OBJECT_CLASS_NOT_FOUND
    The class specified with a dynamic CREATE OBJECT was not found.
    ,,CREATE_OBJECT_CREATE_PRIVATE
    Attempt to create an object of a class defined as 'CREATE PRIVATE'.
    ,,CREATE_OBJECT_CREATE_PROTECTED
    Attempt to create an object of a class defined as 'CREATE PROTECTED'.
    ,,DATA_LENGTH_NEGATIVE
    Invalid subfield access: Negative length
    ,,DATA_LENGTH_0
    Invalid subfield access: Length 0
    ,,DATA_LENGTH_TOO_LARGE
    Invalid subfield access: Length too large
    ,,DATA_OFFSET_NEGATIVE
    Invalid subfield access: Negative offset
    ,,DATA_OFFSET_TOO_LARGE
    Invalid subfield access: Offset too large
    ,,DATA_OFFSET_LENGTH_TOO_LARGE
    Invalid subfield access: Offset + length too large
    ,,DATA_OFFSET_LENGTH_NOT_ALLOWED
    Invalid subfield access: Type not appropriate
    ,,DATASET_CANT_CLOSE
    Unable to close file. There may be no space left in the file system
    ,,DATASET_CANT_OPEN
    Unable to open file
    ,,DATASET_NO_PIPE
    The FILTER addition to the OPEN DATASET statement is not supported on the current operating system
    ,,DATASET_READ_ERROR
    Error reading a file
    ,,DATASET_TOO_MANY_FILES
    Maximum number of open files exceeded
    ,,DATASET_WRITE_ERROR
    Error writing to a file
    ,,DYN_CALL_METH_CLASSCONSTRUCTOR
    Attempt to call the class constructor
    ,,DYN_CALL_METH_CLASS_ABSTRACT
    Attempt to call an abstract method
    ,,DYN_CALL_METH_CLASS_NOT_FOUND
    Attempt to call a method of a non-existent class
    ,,DYN_CALL_METH_CONSTRUCTOR
    Attempt to call the instance constructor
    ,,DYN_CALL_METH_EXCP_NOT_FOUND
    Attempt to catch an unknown exception
    ,,DYN_CALL_METH_NOT_FOUND
    Attempt to call an unknown method
    ,,DYN_CALL_METH_NOT_IMPLEMENTED
    Attempt to call a method that has not been implemented yet
    ,,DYN_CALL_METH_NO_CLASS_METHOD
    Attempt to call an instance method via a class
    Attempt to pass a parameter with an incorrect parameter type
    ,,DYN_CALL_METH_PARAM_LITL_MOVE
    Attempt to pass a constant actual parameter to a formal EXPORTING, CHANGING or RETURNING parameter
    ,,DYN_CALL_METH_PARAM_MISSING
    An obligatory parameter was not supplied.
    ,,DYN_CALL_METH_PARAM_NOT_FOUND
    Attempt to pass an unknown parameter
    ,,DYN_CALL_METH_PARAM_TAB_TYPE
    Attempt to pass a parameter with an incorrect table type
    ,,DYN_CALL_METH_PARAM_TYPE
    Attempt to pass a parameter with an incorrect type
    ,,DYN_CALL_METH_PARREF_INITIAL
    An initial data reference was passed for an mandatory parameter.
    ,,DYN_CALL_METH_PRIVATE
    Attempt to call a private method from outside
    ,,DYN_CALL_METH_PROTECTED
    Attempt to call a protected method from outside
    ,,DYN_CALL_METH_REF_IS_INITIAL
    Attempt to call a method with an initial reference
    ,,EXPORT_BUFFER_NO_MEMORY
    The EXPORT data cluster is too large for the application buffer
    ,,EXPORT_DATASET_CANNOT_OPEN
    The IMPORT/EXPORT statement could not open the file
    ,,EXPORT_DATASET_WRITE_ERROR
    The EXPORT statement could not write to the file
    ,,GENERATE_SUBPOOL_DIR_FULL
    The system cannot generate any more temporary subroutine pools
    ,,IMPORT_ALIGNMENT_MISMATCH
    Import error: Same sequence of components, but with type conflict or different alignment in structured data types
    ,,IMPORT_TYPE_MISMATCH
    Import error: Only with IMPORT...FROM MEMORY | FROM SHARED BUFFER...
    ,,MOVE_CAST_ERROR
    Type conflict when assigning between object and interface references (only MOVE...?TO... or operator ?=)
    ,,OPEN_DATASET_NO_AUTHORITY
    No authorizatino to access the file
    ,,OPEN_PIPE_NO_AUTHORITY
    No authorization to access the file (OPEN DATASET...FILTER...).
    ,,PERFORM_PROGRAM_NAME_TOO_LONG
    Invalid program name with PERFORM statement
    ,,RMC_COMMUNICATION_FAILURE
    Communication error with Remote Method Call
    ,,RMC_INVALID_STATUS
    Status error with Remote Method Call
    ,,RMC_SYSTEM_FAILURE
    System error with Remote Method Call
    ,,STRING_LENGTH_NEGATIVE
    Invalid access with negative length to a string
    ,,STRING_LENGTH_TOO_LARGE
    Invalid access to a string (length too large)
    ,,STRING_OFFSET_NEGATIVE
    Invalid access with negative offset to a string
    ,,STRING_OFFSET_TOO_LARGE
    Invalid access to a string (offset too large)
    ,,STRING_OFFSET_LENGTH_TOO_LARGE
    Invalid access to a string (offset + length too large)
    ,,TEXTENV_CODEPAGE_NOT_ALLOWED
    Character set is not released in the system (SET LOCALE...)
    ,,TEXTENV_INVALID
    Error setting the text environment (SET LOCALE...)
    ,,TEXTENV_KEY_INVALID
    With SET LOCALE...: Value of LANGUAGE, COUNTRY or MODIFIER that is not allowed in the system.
    ,,TEXTENV_LANGUAGE_NOT_ALLOWED
    With SET LOCALE...: Invalid value of the LANGUAGE addition.
    What version of SAP are you on?   If on a newer version you may be able to create your own exception class.
    Regards,
    Rich Heilman

Maybe you are looking for