cancel
Showing results for 
Search instead for 
Did you mean: 

TIME_OUT in t-code VA02 while deleting document

VXLozano
Active Contributor
0 Kudos
177

Hiya all.

We're getting TIME_OUT short dumps when deleting some SD docs via VA02. I traced the ST22, put a break-point in the exploding line, and found something weird.

VXLozano_0-1718271849820.png

The dump is raised within a LOOP in the DELETE_TEXT function module. While debugging, I found the system calls that function continually, with the it CATALOG containing one additional line each time the module is called.

I'm about to keep debugging that thing, but before that, I decided to try to get some hints from here. Maybe any of you has experienced that behaviour and can lend a hand before my brain melts.

I cannot promise I'll give you points for the right answer, but will do my best to be thankful and a good person enough to post my advances if I'll get any.

Thanks in advance,

Vic

Update: for some reason, the form that should read the std texts of the header retrieves the whole stxh table... or it seems so

 

*---------------------------------------------------------------------*
*       FORM KOPFTEXTE_SELEKTIEREN                                    *
*---------------------------------------------------------------------*
*       Vorhandene Kopftexte selektieren                              *
*---------------------------------------------------------------------*
FORM KOPFTEXTE_SELEKTIEREN.

  CALL FUNCTION 'SELECT_TEXT'
       EXPORTING
            OBJECT     = 'VBBK      '
            NAME       = XTHEAD-TDNAME
            ID         = '*   '
            LANGUAGE   = '*'
       IMPORTING
            ENTRIES    = TXT_ENTRIES
       TABLES
            SELECTIONS = REFTEXT.

ENDFORM.

 

The value of XTHEAD-TDNAME is empty, so the FM retrieves the whole table with OBJECT 'VBBK'...

I guess it's because something we do wrong, but the only thing we do different in the SDocs is to SHOW one of the BP's texts in one of the header's additional data folder. Nothing editable text-related there...

BaerbelWinkler
Active Contributor

Hi Vic!

Could you please share the exact place with a code snippet where this happens? I could then at least check how the code in that place looks like in our NW 7.50 system. Perhaps that might help.

Cheers

Bärbel

VXLozano
Active Contributor
0 Kudos

Line 105 of the DELETE_TEXT function module.

LOOP AT CATALOG WHERE TDOBJECT = OBJECT 
  AND TDNAME IN R_NAME 
  AND TDID IN R_ID 
  AND TDSPRAS IN R_LANGUAGE.

The CATALOG table has one more item per iteration (not the LOOPs one, but each time this FM is called within the process, what appears to be infinitelly -does this word exists?-).

I've found the CATALOG contains some text items that are not in the document, but related (like parterns' texts or so). I cannot understand the logic that puts those items in the deletion queue... just happy that the process crashes before it deletes all those texts.

Accepted Solutions (0)

Answers (1)

Answers (1)

BaerbelWinkler
Active Contributor

From your description, it sounds as if you can at least replicate it easily enough. Have you worked with dynamic logpoints already which can be set up via TCode SDLP and can be created based on a breakpoint? If you put one at the problematic statement and try to capture potentially helpful field content in the logpoint you might be able to gain some more insights. It's for example possible to have it capture the call stack and other helpful "entities". The online description for SDLP is quite helpful.

Here is the code as I see it in our NW 7.50 EHP8 system with SP28:

*     ...Texte sofort loeschen..........................................
 WHEN SAVEMODE_DIALOG.
      DELETE FROM  STXH CLIENT SPECIFIED
       WHERE MANDT    =  CLIENT
         AND TDOBJECT =  OBJECT
         AND TDNAME   IN R_NAME
         AND TDID     IN R_ID
         AND TDSPRAS  IN R_LANGUAGE.
      DELETE_COUNT = SY-DBCNT.
      DELETE FROM  STXB CLIENT SPECIFIED
       WHERE RELID    =  'TX'
         AND MANDT    =  CLIENT
         AND TDOBJECT =  OBJECT
         AND TDNAME   IN R_NAME
         AND TDID     IN R_ID
         AND TDSPRAS  IN R_LANGUAGE.
      DELETE FROM  STXL CLIENT SPECIFIED
       WHERE RELID    =  'TX'
         AND MANDT    =  CLIENT
         AND TDOBJECT =  OBJECT
         AND TDNAME   IN R_NAME
         AND TDID     IN R_ID
         AND TDSPRAS  IN R_LANGUAGE.

*     ...Texte ueber Verbuchung loeschen................................
 WHEN SAVEMODE_POSTING.
      PERFORM IMPORT_CATALOG.
*     ...Aufnehmen Texte aus Datenbank in Textkatalog...................
      IF TEXTMEMORY_ONLY <> 'X'.                             "B20K015761
         SELECT * FROM STXH
          WHERE TDOBJECT =  OBJECT
            AND TDNAME   IN R_NAME
            AND TDID     IN R_ID
            AND TDSPRAS  IN R_LANGUAGE.
            PERFORM READ_CATALOG USING STXH-TDOBJECT
                                       STXH-TDNAME
                                       STXH-TDID
                                       STXH-TDSPRAS.
            IF SY-SUBRC > 0.
*              ...Text noch nicht in Textkatalog........................
               ADD 1 TO DELETE_COUNT.
               CATALOG_CHANGED = TRUE.
               PERFORM INSERT_CATALOG USING STXH-TDOBJECT
                                            STXH-TDNAME
                                            STXH-TDID
                                            STXH-TDSPRAS
                                            FUNCTION_DELETE
                                            FALSE.           "B20K074874
            ENDIF.
         ENDSELECT.
      ENDIF.                                                 "B20K015761
*     ...Texte in Textkatalog bearbeiten................................
      LOOP AT CATALOG WHERE TDOBJECT =  OBJECT
                        AND TDNAME   IN R_NAME
                        AND TDID     IN R_ID
                        AND TDSPRAS  IN R_LANGUAGE.
         IF TEXTMEMORY_ONLY = 'X'.                           "B20K015761
            DELETE CATALOG.                                  "B20K015761
            CATALOG_CHANGED = TRUE.                          "B20K015761
            ADD 1 TO DELETE_COUNT.                           "B20K015761
         ELSE.                                               "B20K015761
            CASE CATALOG-FUNCTION.

Hope that any of this helps!

Cheers

Bärbel