Properties SourceCde
txt
1
*&--------------------------------------------------------------------*
2
*&      Form  TEMP_DELIM_UNDELETE                                     *
3
*&--------------------------------------------------------------------*
4
* process undelete of non-selected entries due to temp. delimitation  *
5
*&--------------------------------------------------------------------*
6
* TDU_ENDDA --> enddate to display during warning                     *
7
* TDU_ACT   --> value of action flag                                  *
8
* TDU_ACT_TXT --> value of action flag for text table                 *
9
* TDU_IX    --> index of entry to modify in TOTAL                     *
10
* COUNTER   <-> (global) number of undeleted entries                  *
11
* SY-SUBRC  <-- (global) 0 - curr. entry undeleted, others - new entry*
12
*&--------------------------------------------------------------------*
13
FORM temp_delim_undelete USING value(tdu_endda) value(tdu_begda)
14
                               tdu_act tdu_act_txt tdu_ix.
15
  LOCAL: total.
16
  DATA: trans_pattern(6) TYPE c, rec TYPE i, ix TYPE i.
17
 
18
  CLEAR tdu_ix.
19
  READ TABLE total WITH KEY <vim_xtotal_key> BINARY SEARCH.
20
  IF sy-subrc EQ 0. "new entry already exists - must be a deleted
21
    "by previous temporal delimitation one
22
    IF <action> EQ geloescht OR <action> EQ neuer_geloescht OR
23
       <action> EQ update_geloescht.
24
      tdu_ix = sy-tabix.
25
      READ TABLE extract WITH KEY <vim_xtotal_key>.
26
      rec = sy-subrc. ix = sy-tabix.
27
      IF sy-subrc EQ 0 AND <xact> EQ markiert.
28
        SUBTRACT 1 FROM mark_extract.
29
      ELSE.
30
        MOVE tdu_endda TO <vim_enddate_mask>.
31
        IF vim_special_mode EQ vim_reset.
32
          MESSAGE i120(sv)."Es werden weitere Einträge zurückgeholt
33
        ELSE.
34
          MESSAGE w120(sv)."Es werden weitere Einträge zurückgeholt
35
        ENDIF.
36
      ENDIF.
37
      ADD 1 TO counter.
38
      IF rec EQ 0.                     "read table extract subrc
39
        sy-fdpos = vim_delim_entries-index3.
40
        vim_delim_entries-index3 = ix.
41
        APPEND vim_delim_entries.
42
        vim_delim_entries-index3 = sy-fdpos.
43
      ENDIF.
44
      MOVE: geloescht TO trans_pattern,
45
              original TO trans_pattern+1(1),
46
            neuer_geloescht TO trans_pattern+2(1),
47
              neuer_eintrag TO trans_pattern+3(1),
48
            update_geloescht TO trans_pattern+4(1),
49
              aendern TO trans_pattern+5(1).
50
      TRANSLATE <action> USING trans_pattern.
51
      MOVE <action> TO tdu_act.
52
      IF x_header-bastab NE space AND
53
         x_header-texttbexst NE space.
54
        TRANSLATE <action_text> USING trans_pattern.
55
        MOVE <action_text> TO tdu_act_txt.
56
      ENDIF.
57
      IF tdu_begda NE <vim_begdate>.   "udl entry will be modified
58
        MOVE: original TO trans_pattern, aendern TO trans_pattern+1.
59
        TRANSLATE: tdu_act USING trans_pattern,
60
                   tdu_act_txt USING trans_pattern.
61
      ENDIF.
62
    ENDIF.                             "current entry is a deleted one
63
    CLEAR sy-subrc.
64
  ENDIF.                               "sy-subrc eq 0
65
ENDFORM.                               "temp_delim_undelete