cancel
Showing results for 
Search instead for 
Did you mean: 

Source type \CLASS=CX_SY_NO_HANDLER is not compatible, for the purposes of assignment, with target type \CLASS=CX_STATIC_CHECK

Former Member
0 Kudos

I tried to execute DTP which extract data from a SAP XI source. But I don't understand this message when I try to execute it:

Source type \CLASS=CX_SY_NO_HANDLER is not compatible, for the purposes of assignment, with target type \CLASS=CX_STATIC_CHECK

I work on SAP BW 7.3.

This DTP used for Purchase Order extraction, get 2 filters with ABAP routines on date and number of PO.

I tried to debug the filter but I can't access ABAP code, the error message appears before the access of the filters extraction.

Can anyone help me?

Thanks

Romain

Accepted Solutions (1)

Accepted Solutions (1)

RamanKorrapati
Active Contributor
0 Kudos

Hi,

Two things you need cross check.

1. at data source and target connected transformations, there might be miss mapped. mean source and target fields length or type may not be the same.

2. in your dtp filter abap code, they may used fields which are not same type or length of source fields.

if you have access to dev system please check your routines code.

Thanks

Former Member
0 Kudos

Hi,

Many thanks for your reply !

I can access of dev system where the problem is (based on7.3). I noticed that the DTP on production system is working very well (based on 7.0).

Both DTP, on production and dev have the same parameters and filters.

It might be the length of source fields but why it's working on production system ? don't you think that the version can influence it ?

Tks,

Romain

Former Member
0 Kudos

Hi,

Maybe my ABAP code can provide more information :

   TABLES: tvarv.
DATA: l_max(8)   TYPE c,
*      l_max   TYPE /bi0/oicalday,
      l_date  TYPE sy-datum,
      t_range TYPE rssdlrange.
*$*$ end of global - insert your declaration only before this line   *-*
* -------------------------------------------------------------------
*     Fieldname       = BBP_PO_ID
*     data type       = CHAR
*     length          = 000010
* -------------------------------------------------------------------
form c_BBP_PO_ID
  tables l_t_range structure rssdlrange
  using i_r_request type ref to IF_RSBK_REQUEST_ADMINTAB_VIEW
        i_fieldnm type RSFIELDNM
  changing p_subrc like sy-subrc.
*       Insert source code to current selection field
*$*$ begin of routine - insert your code only below this line        *-*
  DATA: t_out_nonexisting_po   TYPE yeproc_existing_po
                                OCCURS 0 WITH HEADER LINE,
        l_next_po_number(10)       TYPE c,                               
*        l_next_po_number       TYPE /bi0/oibbp_po_id,
        l_next_po_number_c(10) TYPE c,
        l_rfc_xi               TYPE  rfcdes-rfcdest.

  CLEAR: t_range, t_range-iobjnm, l_next_po_number.

  t_range-fieldname = 'BBP_PO_ID'.
  t_range-sign      = 'I'.
  t_range-option    = 'BT'.

  SELECT SINGLE logsys FROM rsds
    INTO l_rfc_xi
    WHERE datasource = 'YAGORA_PO_I_BW'
      AND objvers    = 'A'.

  CALL FUNCTION 'YAGORA_CHECK_PO_XI'
    EXPORTING
      rfc_xi               = l_rfc_xi
    TABLES
      t_out_nonexisting_po = t_out_nonexisting_po.

  SORT t_out_nonexisting_po ASCENDING.
  CLEAR t_range-low.

  LOOP AT t_out_nonexisting_po.
    IF t_out_nonexisting_po-po_number EQ l_next_po_number.
      t_range-high = t_out_nonexisting_po-po_number.
    ELSE.
      IF t_range-low IS NOT INITIAL.
        APPEND t_range TO l_t_range.
      ENDIF.
      t_range-low  = t_out_nonexisting_po-po_number.
      t_range-high = t_out_nonexisting_po-po_number.
    ENDIF.
    l_next_po_number = t_out_nonexisting_po-po_number.
    l_next_po_number = l_next_po_number + 1.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = l_next_po_number
      IMPORTING
        output = l_next_po_number_c.
*    l_next_po_number_c = l_next_po_number.

    WRITE l_next_po_number_c TO l_next_po_number.
  ENDLOOP.
  APPEND t_range TO l_t_range.
  SORT l_t_range ASCENDING BY low.
  DELETE ADJACENT DUPLICATES FROM l_t_range.

Former Member
0 Kudos

The problem is solved now, I detected caracters on Purchase Order number and the système DUMP because it was declare as a number.

Thanks for you help !

Answers (0)