- REPORT znadar_xx_crear_orden.
- TABLES: sscrfields, usr01.
- TABLES: ko013.
- SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME.
- PARAMETERS: p_text TYPE text30 LOWER CASE OBLIGATORY DEFAULT 'XX:WB'.
- PARAMETERS: p_DESC TYPE as4text LOWER CASE,
- p_prog TYPE versobjnam OBLIGATORY,
- *--[ Si no pones versión, irá a buscar la que le toca en la gestión de versiones
- p_vers TYPE n LENGTH 3.
- SELECTION-SCREEN END OF BLOCK b01.
- SELECT-OPTIONS: p_users FOR usr01-bname OBLIGATORY.
- *--[ Permite buscar si ha sido metido en una orden y continuar con su descripción
- SELECTION-SCREEN FUNCTION KEY 1.
- TYPES: BEGIN OF ty_St,
- text(56),
- colo(1),
- vers(3),
- END OF ty_st.
- DATA: l_desc TYPE as4text,
- lt_attributes TYPE scts_attrs,
- lt_users TYPE scts_users,
- l_users TYPE scts_user,
- l_vers TYPE n LENGTH 3,
- l_mask TYPE ty_st,
- ps_new_request TYPE trwbo_request_header,
- pt_new_tasks TYPE trwbo_request_headers.
- DATA: gr_table TYPE REF TO cl_salv_table.
- TYPES: BEGIN OF ty_text,
- as4text TYPE e07t-as4text,
- END OF ty_text.
- DATA: t_ord TYPE STANDARD TABLE OF ty_text.
- AT SELECTION-SCREEN.
- DATA: t_return TYPE STANDARD TABLE OF ddshretval.
- CASE sscrfields-ucomm.
- WHEN 'FC01'.
- CHECK NOT p_prog IS INITIAL.
- DATA(l_obj_name) = '%' && p_prog && '%'.
- SELECT * FROM e071 AS a
- INNER JOIN e070 AS b
- ON b~trkorr = a~trkorr OR
- b~strkorr = a~trkorr
- INNER JOIN e07t AS c ON
- c~trkorr = b~TRKorr
- INTO CORRESPONDING FIELDS OF TABLE @t_ord
- WHERE obj_name LIKE @l_OBJ_NAME AND
- langu = @sy-langu.
- SORT t_ord DESCENDING.
- DELETE ADJACENT DUPLICATES FROM t_ord.
- DATA: lr_content TYPE REF TO cl_salv_form_element.
- DATA: lr_selections TYPE REF TO cl_salv_selections.
- cl_salv_table=>factory(
- EXPORTING
- list_display = 'X'
- IMPORTING
- r_salv_table = gr_table
- CHANGING
- t_table = t_ord ).
- gr_table->set_screen_popup(
- start_column = 1
- end_column = 100
- start_line = 1
- end_line = 20 ).
- lr_selections = gr_table->get_selections( ).
- lr_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
- gr_table->display( ).
- DATA(lo_selections) = gr_table->get_selections( ).
- DATA(lt_rows) = lo_selections->get_selected_rows( ).
- LOOP AT lt_rows INTO DATA(l_row).
- READ TABLE t_ord INTO DATA(l_ord) INDEX l_row.
- p_desc = l_ord-as4text.
- EXIT.
- ENDLOOP.
- WHEN OTHERS.
- *--[ Ayuda automágica
- IF p_vers IS INITIAL.
- SELECT * FROM vrsd INTO TABLE @DATA(t_vers)
- WHERE objname = @p_prog.
- IF sy-subrc EQ 0.
- p_vers = lines( t_vers ).
- ENDIF.
- ENDIF.
- ENDCASE.
- INITIALIZATION.
- MOVE '@13@ Buscar objeto' TO sscrfields-functxt_01.
- p_users-sign = 'I'.
- p_users-option = 'EQ'.
- p_users-low = sy-uname. APPEND p_users.
- end-of-SELECTION.
- IF p_vers IS INITIAL.
- SELECT * FROM vrsd INTO TABLE @DATA(t_vers)
- WHERE objname = @p_prog.
- IF sy-subrc EQ 0.
- l_vers = lines( t_vers ).
- ELSE.
- l_vers = '001'.
- ENDIF.
- ELSE.
- l_vers = p_vers.
- ENDIF.
- CONCATENATE p_text p_desc INTO l_desc SEPARATED BY ':'.
- REPLACE ALL OCCURRENCES OF '::' IN l_desc WITH ':'.
- REPLACE ALL OCCURRENCES OF ' :' IN l_desc WITH ':'.
- REPLACE ALL OCCURRENCES OF ': ' IN l_desc WITH ':'.
- CONDENSE l_desc.
- l_mask-text = l_desc.
- l_mask-colo = ':'.
- l_mask-vers = l_vers.
- l_desc = l_mask.
- SELECT * FROM usr01 INTO TABLE @DATA(l_usr01)
- WHERE bname IN @p_users.
- LOOP AT l_usr01 INTO DATA(l_sus).
- l_users-user = l_sus-bname. l_users-type = 'X'. APPEND l_users TO lt_users.
- ENDLOOP.
- IF lines( lt_users ) = 0.
- l_users-user = sy-uname. l_users-type = 'X'. APPEND l_users TO lt_users.
- ENDIF.
- CALL FUNCTION 'TR_INSERT_REQUEST_WITH_TASKS'
- EXPORTING
- iv_type = 'K'
- iv_text = l_desc
- iv_target = 'IS4'
- it_attributes = lt_attributes
- it_users = lt_users
- iv_tardevcl = ko013-tardevcl
- iv_devclass = ko013-devclass
- iv_tarlayer = ko013-tarlayer
- iv_repoid = ko013-repoid
- iv_with_badi_check = 'X'
- IMPORTING
- es_request_header = ps_new_request
- et_task_headers = pt_new_tasks
- EXCEPTIONS
- insert_failed = 1
- enqueue_failed = 2
- OTHERS = 3.
- IF sy-subrc EQ 0.
- MESSAGE s398(00) WITH 'Orden creada'.
- ELSE.
- MESSAGE s398(00) WITH 'Fallo en orden'.
- ENDIF.
- LEAVE TO SCREEN 0.
Última modificación de la página el 17 March 2022 a las 09h00
Powered by
PmWiki