cancel
Showing results for 
Search instead for 
Did you mean: 

CDS Table Function cannot be activated ("renamed"?) after deleting/recreating it

Sandra_Rossi
Active Contributor
255

Hello,

I'm trying to activate a Z-custom CDS Table Function and I get this error message:

DDL view cannot be renamed as ZZZ (DDL source ZZZ is active) (DDLS 534)

(German: Ddl-View kann nicht nach ZZZ umbenannt werden, Ddl Src ZZZ ist aktiv)

Note that right after "DDL view"/"Ddl-View", there should be the DDL View name (&1) but there's no name!!

It's probably related to what I did just before:

  1. I created ZZZ and activated ZZZ successfully. It was assigned to a Z package and a transport request.
  2. Because I wanted to investigate another way, I created ZZZ_2, activated it. It was also assigned to a Z package and a transport request.
  3. Because ZZZ_2 solution was better, I deleted ZZZ and copied ZZZ_2 to ZZZ.
  4. I tried to activate ZZZ and the error happened.
  5. Note that I never released nor transported the transport request.
  6. I deleted ZZZ_2, but still ZZZ could not be activated.
  7. I tried the transaction SDDLAR (among attemps, one option was running the program RUTDDLSACT), the program RUTDDLSDEL, but nothing worked.

I feel that's a bug, probably I should report it to SAP Support.

Any idea to bypass the error?

Thank you.

Sandra

NB: No SAP note found. My system: ABAP 7.58 SP 01 (ABAP PLATFORM 2023 SP 01 (02/2024))

View Entire Topic
Sandra_Rossi
Active Contributor

I could fix it. It's probably either a bug or a very restrictive transport check, so I'll ask my client to get an S-User to contact the SAP Support.

Bug reason:

  • For information, I investigated by setting a breakpoint at the method SET_ERROR of CX_DD_DDL_EXCEPTION (tip: you may do the same for any CDS DDL activation error).
  • I found out that for the error DDLS 534 for CDS Table Functions, the concerned code is the method CHECK_GLNAMES_AND_NAME_CHANGES of class CL_DD_DDL_TABLE_FUNCTION.
  • It calls the method NAMES_CHANGED_FROM_VERSION which determines that the CDS Table Function belongs to a transport request with a target system, that its old DDL source is empty/not found but it continues its logic to hallucinate that its old name was... empty (!!) and so it was renamed.
  • See below the last lines of code of which determine that ENTITYNAME_OLD is empty and consequently sets CHANGED to true (i.e. renamed).
      entityname_old = |{ cast cl_qlast_tab_func_definition( ddl )->get_name( ) case = upper }|.
    endif.

    if viewname_old <> viewname or entityname_old <> entityname.
      changed = abap_true.
    endif.

  endmethod.

To be honest, by debug, I just set CHANGED to false (empty), and the activation was successful.

 

Nitin_Nala
Explorer
0 Kudos
hey Sandra_Rossi , i saw your comment on a previous post, "Attend MM training or read MM book, then use SPRO MM guide.", where can i find SPRO MM Guide
Sandra_Rossi
Active Contributor
0 Kudos

(deleted)