ABAP-ITS服务发布

发布时间 2023-08-14 17:23:20作者: TigerMan

1.首先要创建一个程序

  1 *&---------------------------------------------------------------------*
  2 *& Report ZTEST05
  3 *&---------------------------------------------------------------------*
  4 *&
  5 *&---------------------------------------------------------------------*
  6 REPORT ztest05.
  7 
  8 TYPES:BEGIN OF ty_data ,
  9         matnr TYPE marc-matnr,
 10         mtart TYPE marc-werks,
 11         xchar TYPE marc-xchar,
 12       END OF ty_data .
 13 
 14 DATA:gt_data  TYPE TABLE OF ty_data,
 15      gv_matnr TYPE mara-matnr.
 16 
 17 *ALV相关变量
 18 DATA:gs_alv      TYPE REF TO cl_gui_alv_grid, "ALV类
 19      gs_con      TYPE REF TO cl_gui_custom_container,                   "容器类
 20      g_dock      TYPE REF TO cl_gui_docking_container,
 21      gt_fieldcat TYPE lvc_t_fcat,                                       "列格式
 22      gs_fieldcat TYPE lvc_s_fcat,                                       "列格式-结构
 23      gs_stable   TYPE lvc_s_stbl,                                       "光标
 24      gs_layout   TYPE lvc_s_layo,                                       "输出格式
 25      gt_output   TYPE STANDARD TABLE OF sflight,
 26      ok_code     TYPE sy-ucomm.
 27 
 28 END-OF-SELECTION.
 29   CALL SCREEN '9000' .
 30 
 31 MODULE status_9000 OUTPUT.
 32 
 33   SET PF-STATUS 'STATUS_9000'.
 34   SET TITLEBAR 'TEXT01'.
 35 
 36 ENDMODULE.
 37 
 38 MODULE init OUTPUT.
 39 
 40   IF gs_alv IS INITIAL.
 41     PERFORM frm_create_alv.
 42     "设置布局
 43     PERFORM frm_set_layout.
 44     "设置字段目录
 45     PERFORM frm_set_fieldcat.
 46     "ALV展示
 47     PERFORM frm_alv_out.
 48   ELSE.
 49     PERFORM frm_refresh_alv.
 50   ENDIF.
 51 
 52 ENDMODULE.
 53 
 54 MODULE user_command_9000 INPUT.
 55   CALL METHOD gs_alv->check_changed_data."更改数据
 56   DATA(lv_code) = ok_code.
 57   CLEAR ok_code.
 58   CASE lv_code.
 59     WHEN '&F03' OR '&F12' OR '&F15'.
 60       LEAVE TO SCREEN 0.
 61     WHEN 'OK'.
 62       PERFORM frm_select.
 63     WHEN OTHERS.
 64   ENDCASE.
 65 ENDMODULE.
 66 
 67 FORM frm_select .
 68 
 69   IF gv_matnr IS NOT INITIAL .
 70 
 71     SELECT *
 72       INTO CORRESPONDING FIELDS OF TABLE @gt_data
 73       FROM marc
 74       WHERE matnr = @gv_matnr .
 75 
 76   ELSE .
 77 
 78     SELECT *
 79      INTO CORRESPONDING FIELDS OF TABLE @gt_data
 80      FROM marc .
 81 
 82   ENDIF .
 83 
 84 ENDFORM .
 85 
 86 FORM frm_set_fieldcat.
 87   DATA: lv_name    TYPE lvc_s_fcat-fieldname,
 88         lv_scrtext TYPE lvc_s_fcat-scrtext_l.
 89 
 90   REFRESH:gt_fieldcat.
 91   PERFORM frm_build_fieldcat USING :
 92     'MATNR'       ''   '' 'X'    'MARC'          'MATNR'       ''    '物料编码' ,
 93     'WERKS'       ''   '' 'X'    'MARC'          'WERKS'       ''    '工厂' ,
 94     'XCHAR'      ''  '' 'X'    'MARC'          'XCHAR'       ''    '批次' .
 95 
 96 ENDFORM.
 97 
 98 FORM frm_build_fieldcat USING pv_fieldname
 99                               pv_edit
100                               pv_no_out
101                               pv_no_zero
102                               pv_ref_table
103                               pv_ref_field
104                               pv_f4
105                               pv_reptext.
106 
107   CLEAR gs_fieldcat.
108   gs_fieldcat-fieldname    =  pv_fieldname.
109   gs_fieldcat-edit         =  pv_edit.
110   gs_fieldcat-no_out       =  pv_no_out.
111   gs_fieldcat-no_zero      =  pv_no_zero.
112   gs_fieldcat-ref_table    =  pv_ref_table.
113   gs_fieldcat-ref_field    =  pv_ref_field.
114   gs_fieldcat-f4availabl   =  pv_f4.
115   gs_fieldcat-coltext      =  pv_reptext.
116   gs_fieldcat-reptext      =  pv_reptext.
117   gs_fieldcat-scrtext_l    =  pv_reptext.
118   gs_fieldcat-scrtext_m    =  pv_reptext.
119   gs_fieldcat-scrtext_s    =  pv_reptext.
120 
121   APPEND gs_fieldcat TO gt_fieldcat.
122 
123 ENDFORM.
124 
125 FORM frm_set_layout .
126 
127   gs_layout-zebra = 'X'.
128   gs_layout-cwidth_opt = 'X'.
129 
130 ENDFORM.
131 
132 FORM frm_refresh_alv.
133 
134   CALL METHOD gs_alv->set_frontend_layout
135     EXPORTING
136       is_layout = gs_layout.
137 
138   gs_stable-row = 'X'.
139   gs_stable-col = 'X'.
140 
141   CALL METHOD gs_alv->refresh_table_display
142     EXPORTING
143       is_stable = gs_stable.
144 
145 ENDFORM.
146 
147 FORM frm_alv_out.
148 
149   DATA:gt_exclude TYPE ui_functions,
150        ls_exclude TYPE ui_func,
151        lv_save,
152        ls_variant TYPE  disvariant.
153   lv_save = 'A'.
154   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row .
155   APPEND ls_exclude TO gt_exclude.
156   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row .
157   APPEND ls_exclude TO gt_exclude.
158   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row .
159   APPEND ls_exclude TO gt_exclude.
160   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row .
161   APPEND ls_exclude TO gt_exclude.
162   CALL METHOD gs_alv->set_table_for_first_display
163     EXPORTING
164 *     i_buffer_active               =
165 *     i_bypassing_buffer            =
166 *     i_consistency_check           =
167 *     i_structure_name              =
168       is_variant                    = ls_variant
169       i_save                        = lv_save
170 *     i_default                     = 'X'
171       is_layout                     = gs_layout
172 *     is_print                      =
173 *     it_special_groups             =
174       it_toolbar_excluding          = gt_exclude
175 *     it_hyperlink                  =
176 *     it_alv_graphics               =
177 *     it_except_qinfo               =
178 *     ir_salv_adapter               =
179     CHANGING
180       it_outtab                     = gt_data
181       it_fieldcatalog               = gt_fieldcat
182 *     it_sort                       =
183 *     it_filter                     =
184     EXCEPTIONS
185       invalid_parameter_combination = 1
186       program_error                 = 2
187       too_many_lines                = 3
188       OTHERS                        = 4.
189 
190 ENDFORM.
191 
192 FORM frm_create_alv.
193 
194   "后台运行,没有GUI,会有错误。
195   "判断是否后台运行
196   IF cl_gui_alv_grid=>offline( ) IS INITIAL.
197 
198     "前台运行
199     "创建容器
200     CREATE OBJECT gs_con
201       EXPORTING
202         container_name = 'GC_CON'.   "customer control控件的名称
203 
204     "将ALV植入到容器中
205     CREATE OBJECT gs_alv
206       EXPORTING
207         i_parent = gs_con.
208   ELSE .
209 
210     "后台运行
211     CREATE OBJECT gs_alv EXPORTING i_parent = g_dock.
212 
213   ENDIF .
214 
215 ENDFORM .

2.创建事务码

 3.创建服务

 4.SICF激活服务

服务路径:/sap/bc/gui/sap/its/