-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path06-range.abap
71 lines (61 loc) · 1.86 KB
/
06-range.abap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
select vbeln, posnr
up to 100 rows
from vbap
into table @data(lt_data) .
if ( sy-subrc ne 0 ) .
return .
endif .
data(lt_range) =
value fip_t_vbeln_range(
for l in lt_data (
sign = rsmds_c_sign-including
option = rsmds_c_option-equal
low = l-vbeln
)
) .
***********************************************************************
lt_range = value #(
for groups vbeln of wa in lt_data
group by wa-vbeln ascending
without members
( sign = rsmds_c_sign-including
option = rsmds_c_option-equal
* low = wa-vbeln ) ) .
low = vbeln ) ) .
lt_objnr = VALUE #( FOR ls_objrn IN t_equi ( objnr = ls_objrn-objnr ) ).
lt_objnr = value #(
for groups order of ls_objrn in t_equi
group by ls_objrn-objnr ascending
without members
( objnr = order ) ) .
IF ( lines( im_ativos ) EQ 0 ) .
RETURN .
ENDIF .
DATA(lr_equipament) = VALUE ranges_equnr(
FOR GROUPS equipament OF l IN im_ativos
WHERE ( equnr IS NOT INITIAL )
GROUP BY l-equnr ASCENDING
WITHOUT MEMBERS
( sign = rsmds_c_sign-including
option = rsmds_c_option-equal
low = equipament ) ) .
IF ( lines( lr_equipament ) EQ 0 ) .
RETURN .
ENDIF .
SELECT *
FROM /yga/tativos
INTO TABLE @lt_ativos
WHERE equnr IN @lr_equipament .
IF ( sy-subrc NE 0 ) .
RETURN .
ENDIF .
***********************************************************************
lt_range = value #(
for groups vbeln of wa in lt_data
group by wa-vbeln ascending
without members
( sign = rsmds_c_sign-including
option = rsmds_c_option-equal
* low = wa-vbeln ) ) .
low = vbeln ) ) .
***********************************************************************