-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzcl_intfmonitor_util.clas.abap
103 lines (80 loc) · 3.47 KB
/
zcl_intfmonitor_util.clas.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
"! <p class="shorttext synchronized" lang="en">SAP Interface Monitor - Utilities</p>
CLASS zcl_intfmonitor_util DEFINITION
PUBLIC
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
TYPES:
BEGIN OF mtyp_s_intf_param,
datatype TYPE zzeintfdatatype,
param TYPE zzeintfdatapar,
xparam TYPE zzexintfdatapar,
xdatatype TYPE ddtext,
paramtype TYPE zzeintfdatapartype,
END OF mtyp_s_intf_param .
TYPES:
mtyp_t_intf_param TYPE STANDARD TABLE OF mtyp_s_intf_param WITH NON-UNIQUE KEY datatype param.
"! <p class="shorttext synchronized" lang="en">Gets Domain Value text</p>
"!
"! @parameter id_domname | <p class="shorttext synchronized" lang="en">Domain name</p>
"! @parameter id_value | <p class="shorttext synchronized" lang="en">Values for Domains:
"! Single Value / Upper Limit</p>
"! @parameter rd_text | <p class="shorttext synchronized" lang="en">Short Text for Fixed Values</p>
CLASS-METHODS get_domain_text
IMPORTING id_domname TYPE dd07v-domname
id_value TYPE any
RETURNING VALUE(rd_text) TYPE dd07v-ddtext .
"! <p class="shorttext synchronized" lang="en">Gets Interface parameter definition</p>
"!
"! @parameter io_interface | <p class="shorttext synchronized" lang="en">SAP Interface Monitor</p>
"! @parameter et_definition | <p class="shorttext synchronized" lang="en">Param list information</p>
CLASS-METHODS get_interface_param_definition
IMPORTING io_interface TYPE REF TO zif_intfmonitor
EXPORTING et_definition TYPE mtyp_t_intf_param .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_intfmonitor_util IMPLEMENTATION.
METHOD get_domain_text.
DATA: ld_value TYPE dd07v-domvalue_l.
ld_value = id_value.
CALL FUNCTION 'SXMS_GET_DOMAIN_TEXT'
EXPORTING
domname = id_domname
value = ld_value
IMPORTING
text = rd_text
EXCEPTIONS
OTHERS = 999.
ENDMETHOD.
METHOD get_interface_param_definition.
DATA: lt_list TYPE ztt_zintfmonitor012,
ls_details TYPE zintfmonitor013.
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list,
<ls_definition> LIKE LINE OF et_definition.
ASSERT io_interface IS BOUND.
CLEAR et_definition[].
TRY.
zcl_zintfmonitor012_read=>get_list( EXPORTING id_intfid = io_interface->ms_detail-intfid
IMPORTING et_list = lt_list ).
CATCH zcx_intfmonitor .
* Do nothing
ENDTRY.
LOOP AT lt_list ASSIGNING <ls_list>.
INSERT INITIAL LINE INTO TABLE et_definition ASSIGNING <ls_definition>.
<ls_definition>-param = <ls_list>-param.
<ls_definition>-datatype = <ls_list>-datatype.
<ls_definition>-paramtype = <ls_list>-paramtype.
<ls_definition>-xdatatype = get_domain_text( id_domname = 'ZZDINTFDATATYPE'
id_value = <ls_definition>-datatype ). "#EC NOTEXT
TRY.
ls_details = zcl_zintfmonitor013_read=>get_details( id_intfid = io_interface->ms_detail-intfid
id_spras = sy-langu
id_param = <ls_list>-param ).
<ls_definition>-xparam = ls_details-xparam.
CATCH zcx_intfmonitor .
<ls_definition>-xparam = |< { <ls_list>-param } >|. "#EC NOTEXT
ENDTRY.
ENDLOOP.
ENDMETHOD.
ENDCLASS.