Properties SourceCde
txt
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
    ENDIF.
55
  ENDIF.
56
ENDFORM.