Application Development 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: 

Early detect syntax errors caused by DDIC changes (early regenerate ABAP Load)

Sandra_Rossi
Active Contributor
607

Hi experts,

I'd like your opinion about how to handle the regeneration of ABAP Loads after the export or import of transport requests. Let me explain.

Yesterday, I encountered an error which I think could have been detected and fixed much earlier.

In a 7.40 SP 23 system (I think it would apply to any system version), a DDIC Data Element was changed, increasing its length from 12 to 40 characters, and the change was imported successfully in another system of the same landscape (RC 0), October 12th.

But yesterday, 8 days after the import, when running a Z program, there was a syntax error at this place:

TYPES: BEGIN OF ty_s_pdlist,
         zzcreator TYPE bbp_pds_pdlist-zzcreator,
       END OF ty_s_pdlist.
DATA tl_pdlist TYPE TABLE OF ty_s_pdlist.
DATA tl_bname_fae TYPE TABLE OF user_addr-bname.
tl_bname_fae = VALUE #( FOR <sl_pdlist> IN tl_pdlist
                        ( <sl_pdlist>-zzcreator ) ).
Syntax error MESSAGEG@6:
"<SL_PDLIST>-ZZCREATOR" and the line of "TL_BNAME_FAE" are incompatible.
(French '<SL_PDLIST>-ZZCREATOR' et le type de lignes de 'TL_BNAME_FAE' sont incompatibles.)

The field ZZCREATOR is in the append structure ZAINCL_EEW_PD_HEADER_CSF_P2, which appends the structure INCL_EEW_PD_HEADER_CSF, which is included in BBP_PDS_HSC, itself included in BBP_PDS_PDLIST.

The import date of the data element was October 12th, 2023:

For information, the concerned Z program was correctly marked to be recompiled (invalidated load: the last generation date REPOLOAD-UDAT is May 10th, 2023, and the last DDIC change is October 12th, 2023):

As I said, I guess this could have been detected 8 days ago, right after the export or the import of the transport request, by running a regeneration of all the invalidated ABAP loads, which would have detected the syntax error (SGEN/program RSGENINVLAS).

Here are my questions:

A. What is your strategy to regenerate the ABAP loads to detect the syntax errors early?

  1. Automatic run right after importing the TR, how?
  2. In the source system, regenerate all invalidated loads during the TR export via BAdI CTS_EXPORT_FEEDBACK?
  3. How are you informed of the syntax errors after SGEN has run?

B. Is there any drawback regenerating all the invalidated ABAP loads? (in development/integration systems)

C. Do you have other strategy to prevent any other late error detections?

Thank you!

Regards.

Sandra

1 REPLY 1

UweFetzer_se38
Active Contributor
369

Interesting question Sandra, haven't made any thoughts about it yet (maybe due to a lack of pressure 😉 ).

Will make this question more public on social media.