1
*---------------------------------------------------------------------*
2
* FORM ENQUEUE *
3
4
* enqueue view *
5
6
* VALUE(E_ACT) --> action: E -> enqueue, D -> dequeue *
7
* VALUE(EXIT_FORM) ---> name of exit form to process after enqueue *
8
9
FORM enqueue USING value(e_act) value(exit_form).
10
*----------------------------------------------------------------------*
11
* enqueue view
12
13
CALL FUNCTION 'VIEW_ENQUEUE'
14
EXPORTING
15
view_name = vim_view_name
16
action = e_act
17
enqueue_mode = 'E'
18
enqueue_range = vim_enqueue_range
19
TABLES
20
sellist = <vim_sellist>
21
EXCEPTIONS
22
foreign_lock = 1
23
system_failure = 2
24
table_not_found = 5
25
client_reference = 7.
26
27
DATA: rc LIKE sy-subrc.
28
29
CASE sy-subrc.
30
WHEN 1.
31
MESSAGE i049(sv) WITH sy-msgv1.
32
sy-subrc = 1.
33
WHEN 2.
34
MESSAGE a050(sv) WITH view_name.
35
WHEN 3.
36
MESSAGE a037(sv) WITH view_name.
37
WHEN 5.
38
MESSAGE a028(sv) WITH view_name.
39
WHEN 7.
40
MESSAGE w054(sv) WITH sy-mandt.
41
sy-subrc = 7.
42
ENDCASE.
43
rc = sy-subrc.
44
IF exit_form NE space.
45
PERFORM (exit_form) IN PROGRAM (sy-repid).
46
ENDIF.
47
IF e_act EQ 'E'.
48
IF sy-subrc <> 0.
49
vim_enq_s_u_rc = sy-subrc.
50
ELSEIF rc <> 0.
51
vim_enq_s_u_rc = rc.
52
ELSE.
53
vim_enq_s_u_rc = 0.
54
55
56
ENDFORM.