Properties | SourceCde
Title |  |
Original language | DE | Englisch
Created | 27.10.1998 |  | SAP |
Last changed by | 13.11.2001 |  | SAP |
Status | Active |
Attributes
Type | INCLUDE program |
Status | Test program |
Application | Basis |
Package | SVIM | Basis View Maintenance
| Editor lock
txt
    1
    *---------------------------------------------------------------------*
    2
    *       FORM PREPARE_READ_REQUEST                                     *
    3
    *---------------------------------------------------------------------*
    4
    *       prepare global data for read request                          *
    5
    *---------------------------------------------------------------------*
    6
    FORM prepare_read_request.
    7
    8
      DATA: action TYPE activ_auth, oc_to_be_checked TYPE xfeld,
    9
            sellines TYPE i.
    10
    11
      PERFORM init_state_vector.
    12
      PERFORM vim_reset_texttab USING view_name.           "SW Texttransl
    13
      PERFORM vim_bc_logs_get USING view_name x_header x_namtab[]
    14
                              CHANGING vim_bc_entry_list.
    15
      IF vim_adjust_middle_level_mode EQ subset. "ignore subsets
    16
        vim_adj_header = x_header[].
    17
        CLEAR x_header-subsetflag. MODIFY x_header INDEX 1.
    18
        vim_adj_namtab = x_namtab[].
    19
        LOOP AT x_namtab WHERE readonly EQ subset AND keyflag NE space.
    20
          CLEAR x_namtab-readonly. MODIFY x_namtab.
    21
        ENDLOOP.
    22
        vim_adj_dbasellist = dba_sellist[].
    23
        LOOP AT dba_sellist WHERE ddic CO vim_subset_marks.
    24
          IF dba_sellist-value IS INITIAL AND dba_sellist-initial EQ space.
    25
            DELETE dba_sellist. "unvollständige Subsetbedingungen löschen
    26
          ELSE.
    27
            TRANSLATE dba_sellist-ddic USING 'S BX'. "'S A BXMX'.
    28
            MODIFY dba_sellist.
    29
          ENDIF.
    30
        ENDLOOP.
    31
        DESCRIBE TABLE dba_sellist.
    32
        IF sy-tfill GT 0.
    33
          READ TABLE dba_sellist INDEX sy-tfill.
    34
          CLEAR dba_sellist-and_or.
    35
          MODIFY dba_sellist INDEX sy-tabix.
    36
        ENDIF.
    37
      ENDIF.
    38
    * remove old selections from authorisation
    39
    *  if not vim_dba_sel_kept is initial and vim_called_by_cluster = space.
    40
    *    refresh dba_sellist[].                                 "UF210200b
    41
    *    append lines of vim_dba_sel_kept to dba_sellist.
    42
    *  endif.
    43
    *  DELETE dba_sellist WHERE ddic = 'M'.
    44
      IF vim_called_by_cluster = space.
    45
        DELETE dba_sellist WHERE from_auth <> space
    46
         AND ddic <> 'S' and ddic <> 'B'.                       "UF210200e
    47
        DESCRIBE TABLE dba_sellist LINES sellines.
    48
        IF sellines GT 0.
    49
          READ TABLE dba_sellist INDEX sellines.
    50
          CLEAR dba_sellist-and_or.
    51
          MODIFY dba_sellist INDEX sy-tabix.
    52
        ENDIF.
    53
      ENDIF.                                                     "UF210200
    54
      IF NOT vim_oc_inst IS INITIAL.
    55
    * insert selection from authorisation into sellist
    56
        IF <status>-st_action = anzeigen.
    57
          action = svorg_read.
    58
        ELSE.
    59
          action = svorg_maint.
    60
        ENDIF.
    61
        CALL METHOD vim_oc_inst->combine_vimsel_with_auth
    62
          EXPORTING
    63
            action  = action
    64
          CHANGING
    65
            sellist = dba_sellist[].
    66
        CALL METHOD vim_oc_inst->get_to_be_checked
    67
          IMPORTING
    68
            to_be_checked = oc_to_be_checked.
    69
        IF oc_to_be_checked <> space or x_header-bastab <> space.
    70
    * check TOTAL vs. authorisation after reading
    71
          PERFORM vim_maint_selflag USING    'S'
    72
                                    CHANGING x_header-selection.
    73
        ENDIF.
    74
      ENDIF.
    75
    ENDFORM.