1 |
2 |
3 |
4 |
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 |
39 |
40 |
41 |
42 |
43 |
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 |
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 |
71 | PERFORM vim_maint_selflag USING 'S' |
72 | CHANGING x_header-selection. |
73 | ENDIF. |
74 | ENDIF. |
75 | ENDFORM. |