Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Help with ITAB_DUPLICATE_KEY

Former Member
0 Likes
432

Hello all,

Attached below is my ABAP code written for BW. I want do a look up from

RESULT_PACKAGE-UCCONTRACT

but I keep getting a short dump on this because there are multiple UCCONTRACT in RESULT_PACKAGE. Can someone pleaes help me with this error?


    DATA: BEGIN OF l_s_masterdata,
            /BI0/OIUCCONTRACT   TYPE /BI0/OIUCCONTRACT,
            /BI0/OIUCPREMISE    TYPE /BI0/OIUCPREMISE,
            /BI0/OIUCINSTALLA   TYPE /BI0/OIUCINSTALLA,
            /BI0/OIUC_POD       TYPE /BI0/OIUC_POD,
          END OF l_s_masterdata,
          l_t_masterdata LIKE HASHED TABLE OF l_s_masterdata
            WITH UNIQUE KEY /BI0/OIUCCONTRACT.

*   cache mapping table per data package

I keep hitting the duplicate error on this line

    SELECT UCCONTRACT UCPREMISE UCINSTALLA UC_POD FROM /BIC/AZCON_D0800
      INTO CORRESPONDING FIELDS OF TABLE l_t_masterdata
      FOR ALL ENTRIES IN RESULT_PACKAGE
      WHERE UCCONTRACT = RESULT_PACKAGE-UCCONTRACT.

*   Loop through result package and assign mapped fields
    LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
      READ TABLE l_t_masterdata INTO l_s_masterdata WITH TABLE KEY
        /BI0/OIUCCONTRACT = <result_fields>-UCCONTRACT.

      IF sy-subrc = 0.
          <RESULT_FIELDS>-UCPREMISE   = l_s_masterdata-/BI0/OIUCPREMISE.
          <RESULT_FIELDS>-UCINSTALLA  = l_s_masterdata-/BI0/OIUCINSTALLA
          .
          <RESULT_FIELDS>-UC_POD      = l_s_masterdata-/BI0/OIUC_POD.
      ELSE.
          <RESULT_FIELDS>-UCPREMISE   = ''.
          <RESULT_FIELDS>-UCINSTALLA  = ''.
          <RESULT_FIELDS>-UC_POD      = ''.
      ENDIF.

    ENDLOOP.

Hello all,

Attached below is my ABAP code written for BW. I want do a look up from

RESULT_PACKAGE-UCCONTRACT

but I keep getting a short dump on this because there are multiple UCCONTRACT in RESULT_PACKAGE. Can someone pleaes help me with this error?


    DATA: BEGIN OF l_s_masterdata,
            /BI0/OIUCCONTRACT   TYPE /BI0/OIUCCONTRACT,
            /BI0/OIUCPREMISE    TYPE /BI0/OIUCPREMISE,
            /BI0/OIUCINSTALLA   TYPE /BI0/OIUCINSTALLA,
            /BI0/OIUC_POD       TYPE /BI0/OIUC_POD,
          END OF l_s_masterdata,
          l_t_masterdata LIKE HASHED TABLE OF l_s_masterdata
            WITH UNIQUE KEY /BI0/OIUCCONTRACT.

*   cache mapping table per data package

I keep hitting the duplicate error on this line

    SELECT UCCONTRACT UCPREMISE UCINSTALLA UC_POD FROM /BIC/AZCON_D0800
      INTO CORRESPONDING FIELDS OF TABLE l_t_masterdata
      FOR ALL ENTRIES IN RESULT_PACKAGE
      WHERE UCCONTRACT = RESULT_PACKAGE-UCCONTRACT.

*   Loop through result package and assign mapped fields
    LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
      READ TABLE l_t_masterdata INTO l_s_masterdata WITH TABLE KEY
        /BI0/OIUCCONTRACT = <result_fields>-UCCONTRACT.

      IF sy-subrc = 0.
          <RESULT_FIELDS>-UCPREMISE   = l_s_masterdata-/BI0/OIUCPREMISE.
          <RESULT_FIELDS>-UCINSTALLA  = l_s_masterdata-/BI0/OIUCINSTALLA
          .
          <RESULT_FIELDS>-UC_POD      = l_s_masterdata-/BI0/OIUC_POD.
      ELSE.
          <RESULT_FIELDS>-UCPREMISE   = ''.
          <RESULT_FIELDS>-UCINSTALLA  = ''.
          <RESULT_FIELDS>-UC_POD      = ''.
      ENDIF.

    ENDLOOP.

1 REPLY 1
Read only

former_member156446
Active Contributor
0 Likes
395

WITH UNIQUE KEY /BI0/OIUCCONTRACT.

change to WITH non UNIQUE KEY /BI0/OIUCCONTRACT.