Difference between revisions of "SAP PM BAPI CA01"
From SapWiki
(Created page with " <nowiki>*&---------------------------------------------------------------------* *& Report ZPP_CREAR_HR *& *&----------------------------------------------------------------...") |
|||
| Line 6: | Line 6: | ||
*&---------------------------------------------------------------------* | *&---------------------------------------------------------------------* | ||
| − | REPORT | + | REPORT zpp_crear_hr. |
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
| − | + | TYPE-POOLS : slis. | |
| − | + | DATA: BEGIN OF gs_data, | |
| − | + | material LIKE bapi1012_mtk_c-material, "Material | |
| − | + | plant LIKE bapi1012_mtk_c-plant, "Centro | |
| − | + | task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta | |
| − | + | group_counter LIKE bapi1012_tsk_c-group_counter, "Contador | |
| − | + | ident_key LIKE bapi1012_tsk_c-ident_key, "Pto. Inspección | |
| − | + | insppoint_partiallot_assgnmt LIKE bapi1012_tsk_c-insppoint_partiallot_assgnmt, "Datos Parciales | |
| − | + | dyn_modif_level LIKE bapi1012_tsk_c-dyn_modif_level, "Nivel Dinamizacion | |
| − | + | activity LIKE bapi1012_opr_c-activity, "Numero de Operacion | |
| − | + | work_cntr LIKE bapi1012_opr_c-work_cntr, "Puesto de Trabajo | |
| − | + | control_key LIKE bapi1012_opr_c-control_key, "Clave de Control | |
| − | + | description LIKE bapi1012_opr_c-description, "Descrip. Operación | |
| − | + | insp_point_complt_flow_variant LIKE bapi1012_opr_c-insp_point_complt_flow_variant, "Variante de Proceso | |
| − | + | time_grid LIKE bapi1012_opr_c-time_grid, "Secuencial Hora | |
| − | + | time_factor LIKE bapi1012_opr_c-time_factor, " Factor de Tiempo | |
| − | + | time_unit LIKE bapi1012_opr_c-time_unit, "Unidad de Tiempo | |
| − | + | denominator LIKE bapi1012_opr_c-denominator, "Denominador para conversión u.medida hoja ruta y operación | |
| − | + | nominator LIKE bapi1012_opr_c-nominator, "Contador para conversión u.medida hoja de ruta y operación | |
| − | + | base_quantity LIKE bapi1012_opr_c-base_quantity, "Cantidad base | |
| − | + | inspchar LIKE bapi1012_cha_c-inspchar, "Numero de Caracteristica | |
| − | + | char_descr LIKE bapi1012_cha_c-char_descr, "Texto breve para característica inspección | |
| − | + | mstr_char LIKE bapi1012_cha_c-mstr_char, "Caracteristica | |
| − | + | smpl_procedure LIKE bapi1012_cha_c-smpl_procedure, "Procedimiento | |
| − | + | smpl_unit LIKE bapi1012_cha_c-smpl_unit, "Unidad de Medida | |
| − | + | smpl_quant LIKE bapi1012_cha_c-smpl_quant, "Cantidad para muestra | |
| − | + | dyn_modif_rule LIKE bapi1012_cha_c-dyn_modif_rule, "Regla Dinamizacion | |
| − | + | spc_criterion_key LIKE bapi1012_cha_c-spc_criterion_key, "Criterio SPC | |
| − | + | up_tol_lmt LIKE bapi1012_cha_c-up_tol_lmt, "Tolerancia Superior | |
| − | + | lw_tol_lmt LIKE bapi1012_cha_c-lw_tol_lmt, "Tolerancia Inferior | |
| − | + | formula_check_by_sap LIKE bapi1012_cha_c-formula_check_by_sap, "Verificar y calcular fórmula en QM | |
| − | + | formula_field_1 LIKE bapi1012_cha_c-formula_field_1, | |
| − | + | formula_field_2 LIKE bapi1012_cha_c-formula_field_2, | |
| − | + | task_measure_unit LIKE bapi1012_tsk_c-task_measure_unit, | |
| − | + | END OF gs_data. | |
| − | + | DATA gt_data LIKE TABLE OF gs_data. | |
| − | + | DATA: BEGIN OF gs_data_material, | |
| − | + | material LIKE bapi1012_mtk_c-material, "Material | |
| − | + | plant LIKE bapi1012_mtk_c-plant, "Centro | |
| − | + | task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta | |
| − | + | group_counter LIKE bapi1012_tsk_c-group_counter, "Contador | |
| − | + | ident_key LIKE bapi1012_tsk_c-ident_key, "Pto. Inspección | |
| − | + | insppoint_partiallot_assgnmt LIKE bapi1012_tsk_c-insppoint_partiallot_assgnmt, "Datos Parciales | |
| − | + | dyn_modif_level LIKE bapi1012_tsk_c-dyn_modif_level, "Nivel Dinamizacion | |
| − | + | END OF gs_data_material. | |
| − | + | DATA: BEGIN OF gs_data_operacion, | |
| − | + | material LIKE bapi1012_mtk_c-material, "Material | |
| − | + | plant LIKE bapi1012_mtk_c-plant, "Centro | |
| − | + | task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta | |
| − | + | group_counter LIKE bapi1012_tsk_c-group_counter, "Contador | |
| − | + | activity LIKE bapi1012_opr_c-activity, "Numero de Operacion | |
| − | + | work_cntr LIKE bapi1012_opr_c-work_cntr, "Puesto de Trabajo | |
| − | + | control_key LIKE bapi1012_opr_c-control_key, "Clave de Control | |
| − | + | description LIKE bapi1012_opr_c-description, "Descrip. Operación | |
| − | + | insp_point_complt_flow_variant LIKE bapi1012_opr_c-insp_point_complt_flow_variant, "Variante de Proceso | |
| − | + | time_grid LIKE bapi1012_opr_c-time_grid, "Secuencial Hora | |
| − | + | time_factor LIKE bapi1012_opr_c-time_factor, " Factor de Tiempo | |
| − | + | time_unit LIKE bapi1012_opr_c-time_unit, "Unidad de Tiempo | |
| − | + | denominator LIKE bapi1012_opr_c-denominator, | |
| − | + | nominator LIKE bapi1012_opr_c-nominator, | |
| − | base_quantity | + | base_quantity LIKE bapi1012_opr_c-base_quantity, |
| − | + | END OF gs_data_operacion. | |
| − | + | DATA: BEGIN OF gs_data_cha, | |
| − | + | material LIKE bapi1012_mtk_c-material, "Material | |
| − | + | plant LIKE bapi1012_mtk_c-plant, "Centro | |
| − | + | task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta | |
| − | + | group_counter LIKE bapi1012_tsk_c-group_counter, "Contador | |
| − | + | activity LIKE bapi1012_opr_c-activity, "Numero de Operacion | |
| − | + | inspchar LIKE bapi1012_cha_c-inspchar, "Numero de Caracteristica | |
| − | + | char_descr LIKE bapi1012_cha_c-char_descr, | |
| − | + | mstr_char LIKE bapi1012_cha_c-mstr_char, "Caracteristica | |
| − | + | smpl_procedure LIKE bapi1012_cha_c-smpl_procedure, "Procedimiento | |
| − | + | smpl_unit LIKE bapi1012_cha_c-smpl_unit, "Unidad de Medida | |
| − | + | smpl_quant LIKE bapi1012_cha_c-smpl_quant, "Cantidad para muestra | |
| − | + | dyn_modif_rule LIKE bapi1012_cha_c-dyn_modif_rule, "Regla Dinamizacion | |
| − | + | spc_criterion_key LIKE bapi1012_cha_c-spc_criterion_key, "Criterio SPC | |
| − | + | up_tol_lmt LIKE bapi1012_cha_c-up_tol_lmt, "Tolerancia Superior | |
| − | + | lw_tol_lmt LIKE bapi1012_cha_c-lw_tol_lmt, "Tolerancia Inferior | |
| − | + | formula_check_by_sap LIKE bapi1012_cha_c-formula_check_by_sap, | |
| − | + | formula_field_1 LIKE bapi1012_cha_c-formula_field_1, | |
| − | + | formula_field_2 LIKE bapi1012_cha_c-formula_field_2, | |
| − | END OF gs_data_cha. | + | END OF gs_data_cha. |
| − | + | DATA gt_data_material LIKE TABLE OF gs_data_material. | |
| − | + | DATA gt_data_operacion LIKE TABLE OF gs_data_operacion. | |
| − | + | DATA gt_data_cha LIKE TABLE OF gs_data_cha. | |
| + | DATA decstel(2) TYPE c. | ||
| − | + | DATA gd_tfile TYPE ibipparms-path. | |
| − | + | TYPES: BEGIN OF ty_log, | |
| + | material LIKE bapi1012_mtk_c-material, "Material | ||
| + | plant LIKE bapi1012_mtk_c-plant, "Centro | ||
| + | task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta | ||
| + | group_counter LIKE bapi1012_tsk_c-group_counter, "Contador | ||
| + | type TYPE bapi_mtype, | ||
| + | message TYPE bapi_msg, | ||
| + | END OF ty_log. | ||
| − | + | DATA gt_log TYPE TABLE OF ty_log. | |
| − | + | DATA gs_log LIKE LINE OF gt_log. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
| − | PARAMETERS: p_file | + | PARAMETERS: p_file TYPE string LOWER CASE OBLIGATORY, |
| − | p_test | + | p_test TYPE bapiflag DEFAULT 'X'. |
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
| − | + | AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. | |
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
gd_tfile = p_file. | gd_tfile = p_file. | ||
| − | + | CALL FUNCTION 'F4_FILENAME' | |
EXPORTING | EXPORTING | ||
field_name = 'P_FILE' | field_name = 'P_FILE' | ||
| Line 137: | Line 131: | ||
file_name = gd_tfile. | file_name = gd_tfile. | ||
| − | + | MOVE gd_tfile TO p_file. | |
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
START-OF-SELECTION. | START-OF-SELECTION. | ||
| Line 145: | Line 139: | ||
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
| − | + | END-OF-SELECTION. | |
*--------------------------------------------------------------------* | *--------------------------------------------------------------------* | ||
| − | + | IF gt_data[] IS INITIAL. | |
| − | + | WRITE:/ 'No se seleccionaron datos'. | |
RETURN. | RETURN. | ||
| − | + | ENDIF. | |
PERFORM crear_hoja_de_ruta. | PERFORM crear_hoja_de_ruta. | ||
| Line 163: | Line 157: | ||
* <-- p2 text | * <-- p2 text | ||
*----------------------------------------------------------------------* | *----------------------------------------------------------------------* | ||
| − | FORM get_task_list_group | + | FORM get_task_list_group USING i_change |
| − | gs_bapi_mtk | + | gs_bapi_mtk TYPE bapi1012_mtk_c |
| − | gs_bapi_tsk | + | gs_bapi_tsk TYPE bapi1012_tsk_c. |
DATA: BEGIN OF ls_h, | DATA: BEGIN OF ls_h, | ||
| Line 192: | Line 186: | ||
DELETE lt_mtk_int WHERE loekz = 'X'. | DELETE lt_mtk_int WHERE loekz = 'X'. | ||
* IF gs_cntrl-flg_change_mode = const-flg_yes. | * IF gs_cntrl-flg_change_mode = const-flg_yes. | ||
| − | + | IF i_change = 'X'. | |
DELETE lt_mtk_int WHERE plnal <> gs_bapi_mtk-group_counter. | DELETE lt_mtk_int WHERE plnal <> gs_bapi_mtk-group_counter. | ||
ENDIF. | ENDIF. | ||
DESCRIBE TABLE lt_mtk_int LINES ls_h-lin. | DESCRIBE TABLE lt_mtk_int LINES ls_h-lin. | ||
| − | IF ls_h-lin = 1 OR i_change | + | IF ls_h-lin = 1 OR i_change IS INITIAL. |
READ TABLE lt_mtk_int INTO ls_mtk_int INDEX 1. | READ TABLE lt_mtk_int INTO ls_mtk_int INDEX 1. | ||
CHECK: sy-subrc = 0. | CHECK: sy-subrc = 0. | ||
| Line 230: | Line 224: | ||
* text | * text | ||
*----------------------------------------------------------------------* | *----------------------------------------------------------------------* | ||
| − | + | FORM crear_hoja_de_ruta. | |
| − | + | DATA lt_materialtaskallocation TYPE TABLE OF bapi1012_mtk_c . | |
| − | + | DATA lt_task TYPE TABLE OF bapi1012_tsk_c. | |
| − | + | DATA lt_operation TYPE TABLE OF bapi1012_opr_c. | |
| − | + | DATA lt_inspcharacteristic TYPE TABLE OF bapi1012_cha_c. | |
| − | + | DATA ls_materialtaskallocation TYPE bapi1012_mtk_c . | |
| − | + | DATA ls_task TYPE bapi1012_tsk_c. | |
| − | + | DATA ls_operation TYPE bapi1012_opr_c. | |
| − | + | DATA ls_inspcharacteristic TYPE bapi1012_cha_c. | |
| − | + | DATA lt_return TYPE TABLE OF bapiret2. | |
| − | + | DATA ls_return LIKE LINE OF lt_return. | |
| − | + | LOOP AT gt_data INTO gs_data. | |
| − | + | CLEAR: gt_data_material[]. | |
| − | + | CLEAR: gt_data_operacion[]. | |
| − | + | CLEAR: gt_data_cha[]. | |
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' | CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' | ||
EXPORTING | EXPORTING | ||
| − | + | input = gs_data-group_counter | |
IMPORTING | IMPORTING | ||
| − | + | output = gs_data-group_counter. | |
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' | CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' | ||
EXPORTING | EXPORTING | ||
| − | + | input = gs_data-material | |
IMPORTING | IMPORTING | ||
| − | + | output = gs_data-material | |
EXCEPTIONS | EXCEPTIONS | ||
| − | + | length_error = 1 | |
OTHERS = 2. | OTHERS = 2. | ||
| − | IF | + | IF sy-subrc <> 0. |
| − | + | CLEAR gs_data-material. | |
ENDIF. | ENDIF. | ||
CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT' | CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT' | ||
EXPORTING | EXPORTING | ||
| − | + | input = gs_data-activity | |
IMPORTING | IMPORTING | ||
| − | + | output = gs_data-activity. | |
| − | MOVE-CORRESPONDING gs_data | + | MOVE-CORRESPONDING gs_data TO gs_data_material. |
| − | MOVE-CORRESPONDING gs_data | + | MOVE-CORRESPONDING gs_data TO gs_data_operacion. |
| − | MOVE-CORRESPONDING gs_data | + | MOVE-CORRESPONDING gs_data TO gs_data_cha. |
| − | + | APPEND gs_data_material TO gt_data_material. | |
| − | + | APPEND gs_data_operacion TO gt_data_operacion. | |
| − | + | APPEND gs_data_cha TO gt_data_cha. | |
* ENDLOOP. | * ENDLOOP. | ||
| − | + | LOOP AT gt_data_material INTO gs_data_material. | |
| − | + | CLEAR: lt_operation[], | |
| − | + | lt_inspcharacteristic[], | |
| − | + | lt_materialtaskallocation[], | |
lt_task[], | lt_task[], | ||
lt_return[]. | lt_return[]. | ||
| Line 295: | Line 289: | ||
* gs_data-GROUP_COUNTER = 2. | * gs_data-GROUP_COUNTER = 2. | ||
| − | MOVE-CORRESPONDING gs_data | + | MOVE-CORRESPONDING gs_data TO ls_materialtaskallocation. |
| − | + | IF ls_materialtaskallocation-material IS NOT INITIAL. | |
| − | + | APPEND ls_materialtaskallocation TO lt_materialtaskallocation. | |
| − | + | ENDIF. | |
| − | MOVE-CORRESPONDING gs_data | + | MOVE-CORRESPONDING gs_data TO ls_task. |
| − | ls_task- | + | ls_task-task_list_usage = '1'. |
| − | ls_task- | + | ls_task-task_list_status = '4'. |
ls_task-valid_from = sy-datum. | ls_task-valid_from = sy-datum. | ||
| Line 308: | Line 302: | ||
* ls_task-TASK_MEASURE_UNIT = 'KI'. "CA | * ls_task-TASK_MEASURE_UNIT = 'KI'. "CA | ||
| − | APPEND ls_task | + | APPEND ls_task TO lt_task. |
| − | + | LOOP AT gt_data_operacion INTO gs_data_operacion WHERE | |
| − | + | material = gs_data_material-material | |
| − | + | AND plant = gs_data_material-plant | |
| − | + | AND task_list_group = gs_data_material-task_list_group | |
| − | + | AND group_counter = gs_data_material-group_counter | |
| − | + | AND activity IS NOT INITIAL. | |
| − | + | ls_operation-task_list_group = gs_data_material-task_list_group. | |
| − | + | ls_operation-group_counter = gs_data_material-group_counter. | |
| − | + | ls_operation-activity = gs_data_operacion-activity. | |
| − | + | ls_operation-work_cntr = gs_data_operacion-work_cntr. | |
| − | + | ls_operation-control_key = gs_data_operacion-control_key. | |
| − | + | ls_operation-description = gs_data_operacion-description. | |
| − | + | ls_operation-insp_point_complt_flow_variant = gs_data_operacion-insp_point_complt_flow_variant. | |
| − | + | ls_operation-time_grid = gs_data_operacion-time_grid. | |
| − | + | ls_operation-time_factor = gs_data_operacion-time_factor. | |
| − | + | ls_operation-time_unit = gs_data_operacion-time_unit. | |
| − | + | ls_operation-denominator = gs_data_operacion-denominator. | |
| − | + | ls_operation-nominator = gs_data_operacion-nominator. | |
| − | + | ls_operation-base_quantity = gs_data_operacion-base_quantity. | |
| − | + | APPEND ls_operation TO lt_operation. | |
| − | + | LOOP AT gt_data_cha INTO gs_data_cha WHERE | |
| − | + | material = gs_data_material-material | |
| − | + | AND plant = gs_data_material-plant | |
| − | + | AND task_list_group = gs_data_material-task_list_group | |
| − | + | AND group_counter = gs_data_material-group_counter | |
| − | + | AND activity = gs_data_operacion-activity | |
| − | + | AND inspchar IS NOT INITIAL. | |
| − | + | ls_inspcharacteristic-task_list_group = gs_data_material-task_list_group. | |
| − | + | ls_inspcharacteristic-group_counter = gs_data_material-group_counter. | |
| − | + | ls_inspcharacteristic-activity = gs_data_cha-activity. | |
| − | + | ls_inspcharacteristic-inspchar = gs_data_cha-inspchar. | |
| − | + | ls_inspcharacteristic-mstr_char = gs_data_cha-mstr_char. | |
| − | + | ls_inspcharacteristic-smpl_procedure = gs_data_cha-smpl_procedure. | |
| − | + | ls_inspcharacteristic-smpl_unit = gs_data_cha-smpl_unit. | |
| − | + | ls_inspcharacteristic-smpl_quant = gs_data_cha-smpl_quant. | |
| − | + | ls_inspcharacteristic-dyn_modif_rule = gs_data_cha-dyn_modif_rule. | |
| − | + | ls_inspcharacteristic-spc_criterion_key = gs_data_cha-spc_criterion_key . | |
| − | + | ls_inspcharacteristic-up_tol_lmt = gs_data_cha-up_tol_lmt. | |
| − | + | ls_inspcharacteristic-lw_tol_lmt = gs_data_cha-lw_tol_lmt. | |
| − | + | ls_inspcharacteristic-formula_check_by_sap = gs_data_cha-formula_check_by_sap. | |
| − | + | ls_inspcharacteristic-formula_field_1 = gs_data_cha-formula_field_1 . | |
| − | + | ls_inspcharacteristic-formula_field_2 = gs_data_cha-formula_field_2 . | |
| − | + | ls_inspcharacteristic-char_descr = gs_data_cha-char_descr. | |
| − | + | APPEND ls_inspcharacteristic TO lt_inspcharacteristic. | |
| − | + | ENDLOOP. | |
| − | + | ENDLOOP. | |
* MOVE-CORRESPONDING gs_data to ls_OPERATION. | * MOVE-CORRESPONDING gs_data to ls_OPERATION. | ||
| Line 370: | Line 364: | ||
* APPEND ls_INSPCHARACTERISTIC to lt_INSPCHARACTERISTIC. | * APPEND ls_INSPCHARACTERISTIC to lt_INSPCHARACTERISTIC. | ||
| − | + | DATA ld_testrun TYPE bapiflag. | |
ld_testrun = 'X'. | ld_testrun = 'X'. | ||
| − | + | DATA ld_bomusage TYPE bapi1012_control_data-bom_usage . | |
| − | + | ld_bomusage = '1'. "fabricacion | |
CALL FUNCTION 'BAPI_ROUTING_CREATE' | CALL FUNCTION 'BAPI_ROUTING_CREATE' | ||
| − | + | EXPORTING | |
| − | + | testrun = p_test | |
| − | * | + | * PROFILE = |
| − | + | bomusage = ld_bomusage | |
| − | * | + | * APPLICATION = |
* IMPORTING | * IMPORTING | ||
| − | * | + | * GROUP = |
| − | * | + | * GROUPCOUNTER = |
TABLES | TABLES | ||
| − | + | task = lt_task | |
| − | + | materialtaskallocation = lt_materialtaskallocation | |
| − | * | + | * SEQUENCE = |
| − | + | operation = lt_operation | |
| − | * | + | * LENGTHCALCULATION = |
| − | * | + | * SUBOPERATION = |
| − | * | + | * REFERENCEOPERATION = |
| − | * | + | * WORKCENTERREFERENCE = |
| − | * | + | * COMPONENTALLOCATION = |
| − | * | + | * PRODUCTIONRESOURCE = |
| − | + | inspcharacteristic = lt_inspcharacteristic | |
| − | * | + | * TEXTALLOCATION = |
| − | * | + | * TEXT = |
| − | + | return = lt_return. | |
| − | |||
| − | MOVE-CORRESPONDING gs_data_material | + | MOVE-CORRESPONDING gs_data_material TO gs_log. |
| − | + | LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'. | |
| − | MOVE-CORRESPONDING ls_return | + | MOVE-CORRESPONDING ls_return TO gs_log. |
| − | + | APPEND gs_log TO gt_log. | |
| − | + | ENDLOOP. | |
| − | + | IF sy-subrc <> 0. | |
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' | CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' | ||
* EXPORTING | * EXPORTING | ||
| Line 416: | Line 409: | ||
* IMPORTING | * IMPORTING | ||
* RETURN = | * RETURN = | ||
| − | + | . | |
gs_log-type = 'S'. | gs_log-type = 'S'. | ||
gs_log-message = 'Hoja de ruta creada'. | gs_log-message = 'Hoja de ruta creada'. | ||
| − | + | APPEND gs_log TO gt_log. | |
| − | + | ENDIF. | |
* BREAK-POINT. | * BREAK-POINT. | ||
ENDLOOP. | ENDLOOP. | ||
| Line 430: | Line 423: | ||
| − | + | ENDFORM. "select_data | |
*&---------------------------------------------------------------------* | *&---------------------------------------------------------------------* | ||
| Line 437: | Line 430: | ||
* text | * text | ||
*----------------------------------------------------------------------* | *----------------------------------------------------------------------* | ||
| − | + | FORM upload. | |
CALL FUNCTION 'GUI_UPLOAD' | CALL FUNCTION 'GUI_UPLOAD' | ||
EXPORTING | EXPORTING | ||
| − | + | filename = p_file | |
| − | + | filetype = 'DAT' | |
TABLES | TABLES | ||
| − | + | data_tab = gt_data | |
EXCEPTIONS | EXCEPTIONS | ||
| − | + | file_open_error = 1 | |
| − | + | file_read_error = 2 | |
| − | + | no_batch = 3 | |
| − | + | gui_refuse_filetransfer = 4 | |
| − | + | invalid_type = 5 | |
| − | + | no_authority = 6 | |
| − | + | unknown_error = 7 | |
| − | + | bad_data_format = 8 | |
| − | + | header_not_allowed = 9 | |
| − | + | separator_not_allowed = 10 | |
| − | + | header_too_long = 11 | |
| − | + | unknown_dp_error = 12 | |
| − | + | access_denied = 13 | |
| − | + | dp_out_of_memory = 14 | |
| − | + | disk_full = 15 | |
| − | + | dp_timeout = 16 | |
OTHERS = 17. | OTHERS = 17. | ||
| − | IF | + | IF sy-subrc <> 0. |
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO | * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO | ||
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. | * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. | ||
| Line 469: | Line 462: | ||
| − | + | ENDFORM. "upload | |
*&---------------------------------------------------------------------* | *&---------------------------------------------------------------------* | ||
| Line 479: | Line 472: | ||
*... Create Instance | *... Create Instance | ||
TRY. | TRY. | ||
| − | + | cl_salv_table=>factory( IMPORTING r_salv_table = DATA(gr_table) | |
| − | + | CHANGING t_table = gt_log ). | |
CATCH cx_salv_msg. | CATCH cx_salv_msg. | ||
ENDTRY. | ENDTRY. | ||
*... Enable Generic ALV functions | *... Enable Generic ALV functions | ||
| − | + | DATA(gr_functions) = gr_table->get_functions( ). | |
** gr_functions->set_default( ). | ** gr_functions->set_default( ). | ||
gr_functions->set_all( ). | gr_functions->set_all( ). | ||
| − | + | DATA(lr_columns) = gr_table->get_columns( ). | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
*... Display table | *... Display table | ||
Latest revision as of 16:00, 5 April 2020
*&---------------------------------------------------------------------*
*& Report ZPP_CREAR_HR
*&
*&---------------------------------------------------------------------*
*& Descripcion : Creación de Hojas de Ruta (CA01)
*&---------------------------------------------------------------------*
REPORT zpp_crear_hr.
*--------------------------------------------------------------------*
TYPE-POOLS : slis.
DATA: BEGIN OF gs_data,
material LIKE bapi1012_mtk_c-material, "Material
plant LIKE bapi1012_mtk_c-plant, "Centro
task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta
group_counter LIKE bapi1012_tsk_c-group_counter, "Contador
ident_key LIKE bapi1012_tsk_c-ident_key, "Pto. Inspección
insppoint_partiallot_assgnmt LIKE bapi1012_tsk_c-insppoint_partiallot_assgnmt, "Datos Parciales
dyn_modif_level LIKE bapi1012_tsk_c-dyn_modif_level, "Nivel Dinamizacion
activity LIKE bapi1012_opr_c-activity, "Numero de Operacion
work_cntr LIKE bapi1012_opr_c-work_cntr, "Puesto de Trabajo
control_key LIKE bapi1012_opr_c-control_key, "Clave de Control
description LIKE bapi1012_opr_c-description, "Descrip. Operación
insp_point_complt_flow_variant LIKE bapi1012_opr_c-insp_point_complt_flow_variant, "Variante de Proceso
time_grid LIKE bapi1012_opr_c-time_grid, "Secuencial Hora
time_factor LIKE bapi1012_opr_c-time_factor, " Factor de Tiempo
time_unit LIKE bapi1012_opr_c-time_unit, "Unidad de Tiempo
denominator LIKE bapi1012_opr_c-denominator, "Denominador para conversión u.medida hoja ruta y operación
nominator LIKE bapi1012_opr_c-nominator, "Contador para conversión u.medida hoja de ruta y operación
base_quantity LIKE bapi1012_opr_c-base_quantity, "Cantidad base
inspchar LIKE bapi1012_cha_c-inspchar, "Numero de Caracteristica
char_descr LIKE bapi1012_cha_c-char_descr, "Texto breve para característica inspección
mstr_char LIKE bapi1012_cha_c-mstr_char, "Caracteristica
smpl_procedure LIKE bapi1012_cha_c-smpl_procedure, "Procedimiento
smpl_unit LIKE bapi1012_cha_c-smpl_unit, "Unidad de Medida
smpl_quant LIKE bapi1012_cha_c-smpl_quant, "Cantidad para muestra
dyn_modif_rule LIKE bapi1012_cha_c-dyn_modif_rule, "Regla Dinamizacion
spc_criterion_key LIKE bapi1012_cha_c-spc_criterion_key, "Criterio SPC
up_tol_lmt LIKE bapi1012_cha_c-up_tol_lmt, "Tolerancia Superior
lw_tol_lmt LIKE bapi1012_cha_c-lw_tol_lmt, "Tolerancia Inferior
formula_check_by_sap LIKE bapi1012_cha_c-formula_check_by_sap, "Verificar y calcular fórmula en QM
formula_field_1 LIKE bapi1012_cha_c-formula_field_1,
formula_field_2 LIKE bapi1012_cha_c-formula_field_2,
task_measure_unit LIKE bapi1012_tsk_c-task_measure_unit,
END OF gs_data.
DATA gt_data LIKE TABLE OF gs_data.
DATA: BEGIN OF gs_data_material,
material LIKE bapi1012_mtk_c-material, "Material
plant LIKE bapi1012_mtk_c-plant, "Centro
task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta
group_counter LIKE bapi1012_tsk_c-group_counter, "Contador
ident_key LIKE bapi1012_tsk_c-ident_key, "Pto. Inspección
insppoint_partiallot_assgnmt LIKE bapi1012_tsk_c-insppoint_partiallot_assgnmt, "Datos Parciales
dyn_modif_level LIKE bapi1012_tsk_c-dyn_modif_level, "Nivel Dinamizacion
END OF gs_data_material.
DATA: BEGIN OF gs_data_operacion,
material LIKE bapi1012_mtk_c-material, "Material
plant LIKE bapi1012_mtk_c-plant, "Centro
task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta
group_counter LIKE bapi1012_tsk_c-group_counter, "Contador
activity LIKE bapi1012_opr_c-activity, "Numero de Operacion
work_cntr LIKE bapi1012_opr_c-work_cntr, "Puesto de Trabajo
control_key LIKE bapi1012_opr_c-control_key, "Clave de Control
description LIKE bapi1012_opr_c-description, "Descrip. Operación
insp_point_complt_flow_variant LIKE bapi1012_opr_c-insp_point_complt_flow_variant, "Variante de Proceso
time_grid LIKE bapi1012_opr_c-time_grid, "Secuencial Hora
time_factor LIKE bapi1012_opr_c-time_factor, " Factor de Tiempo
time_unit LIKE bapi1012_opr_c-time_unit, "Unidad de Tiempo
denominator LIKE bapi1012_opr_c-denominator,
nominator LIKE bapi1012_opr_c-nominator,
base_quantity LIKE bapi1012_opr_c-base_quantity,
END OF gs_data_operacion.
DATA: BEGIN OF gs_data_cha,
material LIKE bapi1012_mtk_c-material, "Material
plant LIKE bapi1012_mtk_c-plant, "Centro
task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta
group_counter LIKE bapi1012_tsk_c-group_counter, "Contador
activity LIKE bapi1012_opr_c-activity, "Numero de Operacion
inspchar LIKE bapi1012_cha_c-inspchar, "Numero de Caracteristica
char_descr LIKE bapi1012_cha_c-char_descr,
mstr_char LIKE bapi1012_cha_c-mstr_char, "Caracteristica
smpl_procedure LIKE bapi1012_cha_c-smpl_procedure, "Procedimiento
smpl_unit LIKE bapi1012_cha_c-smpl_unit, "Unidad de Medida
smpl_quant LIKE bapi1012_cha_c-smpl_quant, "Cantidad para muestra
dyn_modif_rule LIKE bapi1012_cha_c-dyn_modif_rule, "Regla Dinamizacion
spc_criterion_key LIKE bapi1012_cha_c-spc_criterion_key, "Criterio SPC
up_tol_lmt LIKE bapi1012_cha_c-up_tol_lmt, "Tolerancia Superior
lw_tol_lmt LIKE bapi1012_cha_c-lw_tol_lmt, "Tolerancia Inferior
formula_check_by_sap LIKE bapi1012_cha_c-formula_check_by_sap,
formula_field_1 LIKE bapi1012_cha_c-formula_field_1,
formula_field_2 LIKE bapi1012_cha_c-formula_field_2,
END OF gs_data_cha.
DATA gt_data_material LIKE TABLE OF gs_data_material.
DATA gt_data_operacion LIKE TABLE OF gs_data_operacion.
DATA gt_data_cha LIKE TABLE OF gs_data_cha.
DATA decstel(2) TYPE c.
DATA gd_tfile TYPE ibipparms-path.
TYPES: BEGIN OF ty_log,
material LIKE bapi1012_mtk_c-material, "Material
plant LIKE bapi1012_mtk_c-plant, "Centro
task_list_group LIKE bapi1012_tsk_c-task_list_group, "Grp. Hoja de Ruta
group_counter LIKE bapi1012_tsk_c-group_counter, "Contador
type TYPE bapi_mtype,
message TYPE bapi_msg,
END OF ty_log.
DATA gt_log TYPE TABLE OF ty_log.
DATA gs_log LIKE LINE OF gt_log.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
PARAMETERS: p_file TYPE string LOWER CASE OBLIGATORY,
p_test TYPE bapiflag DEFAULT 'X'.
*--------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*--------------------------------------------------------------------*
gd_tfile = p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = gd_tfile.
MOVE gd_tfile TO p_file.
*--------------------------------------------------------------------*
START-OF-SELECTION.
*--------------------------------------------------------------------*
PERFORM upload.
*--------------------------------------------------------------------*
END-OF-SELECTION.
*--------------------------------------------------------------------*
IF gt_data[] IS INITIAL.
WRITE:/ 'No se seleccionaron datos'.
RETURN.
ENDIF.
PERFORM crear_hoja_de_ruta.
PERFORM display_log.
*&---------------------------------------------------------------------*
*& Form get_task_list_group
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_task_list_group USING i_change
gs_bapi_mtk TYPE bapi1012_mtk_c
gs_bapi_tsk TYPE bapi1012_tsk_c.
DATA: BEGIN OF ls_h,
valid_to TYPE sydatum,
lin TYPE i,
END OF ls_h,
ls_mtk_int TYPE maplb,
lt_mtk_int TYPE TABLE OF maplb,
ls_tsk_int TYPE plko.
ls_h-valid_to = sy-datum.
* read material task allocation
CALL FUNCTION 'CP_DB_MAPL_READ'
EXPORTING
datub = ls_h-valid_to
datuv = gs_bapi_mtk-valid_from
matnr = gs_bapi_mtk-material
werks = gs_bapi_mtk-plant
TABLES
matpl = lt_mtk_int
EXCEPTIONS
no_records = 1
OTHERS = 2.
CHECK: sy-subrc = 0.
* delete deleted material task allocations
DELETE lt_mtk_int WHERE loekz = 'X'.
* IF gs_cntrl-flg_change_mode = const-flg_yes.
IF i_change = 'X'.
DELETE lt_mtk_int WHERE plnal <> gs_bapi_mtk-group_counter.
ENDIF.
DESCRIBE TABLE lt_mtk_int LINES ls_h-lin.
IF ls_h-lin = 1 OR i_change IS INITIAL.
READ TABLE lt_mtk_int INTO ls_mtk_int INDEX 1.
CHECK: sy-subrc = 0.
* gs_cntrl-task_list_group = ls_mtk_int-plnnr.
ELSE.
SORT lt_mtk_int BY datuv DESCENDING.
LOOP AT lt_mtk_int INTO ls_mtk_int.
* read task list header
CALL FUNCTION 'CI03_READ_PLKO'
EXPORTING
i_plnty = ls_mtk_int-plnty
i_plnnr = ls_mtk_int-plnnr
i_plnal = ls_mtk_int-plnal
i_date = ls_mtk_int-datuv
IMPORTING
e_plko = ls_tsk_int
EXCEPTIONS
tl_not_existent = 1
tl_not_valid = 2
OTHERS = 3.
CHECK: sy-subrc = 0.
IF ls_tsk_int-verwe = gs_bapi_tsk-task_list_usage.
* gs_cntrl-task_list_group = ls_tsk_int-plnnr.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " get_task_list_group
*&---------------------------------------------------------------------*
*& Form select_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM crear_hoja_de_ruta.
DATA lt_materialtaskallocation TYPE TABLE OF bapi1012_mtk_c .
DATA lt_task TYPE TABLE OF bapi1012_tsk_c.
DATA lt_operation TYPE TABLE OF bapi1012_opr_c.
DATA lt_inspcharacteristic TYPE TABLE OF bapi1012_cha_c.
DATA ls_materialtaskallocation TYPE bapi1012_mtk_c .
DATA ls_task TYPE bapi1012_tsk_c.
DATA ls_operation TYPE bapi1012_opr_c.
DATA ls_inspcharacteristic TYPE bapi1012_cha_c.
DATA lt_return TYPE TABLE OF bapiret2.
DATA ls_return LIKE LINE OF lt_return.
LOOP AT gt_data INTO gs_data.
CLEAR: gt_data_material[].
CLEAR: gt_data_operacion[].
CLEAR: gt_data_cha[].
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_data-group_counter
IMPORTING
output = gs_data-group_counter.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = gs_data-material
IMPORTING
output = gs_data-material
EXCEPTIONS
length_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
CLEAR gs_data-material.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT'
EXPORTING
input = gs_data-activity
IMPORTING
output = gs_data-activity.
MOVE-CORRESPONDING gs_data TO gs_data_material.
MOVE-CORRESPONDING gs_data TO gs_data_operacion.
MOVE-CORRESPONDING gs_data TO gs_data_cha.
APPEND gs_data_material TO gt_data_material.
APPEND gs_data_operacion TO gt_data_operacion.
APPEND gs_data_cha TO gt_data_cha.
* ENDLOOP.
LOOP AT gt_data_material INTO gs_data_material.
CLEAR: lt_operation[],
lt_inspcharacteristic[],
lt_materialtaskallocation[],
lt_task[],
lt_return[].
* clear gs_data-TASK_LIST_GROUP.
* gs_data-GROUP_COUNTER = 2.
MOVE-CORRESPONDING gs_data TO ls_materialtaskallocation.
IF ls_materialtaskallocation-material IS NOT INITIAL.
APPEND ls_materialtaskallocation TO lt_materialtaskallocation.
ENDIF.
MOVE-CORRESPONDING gs_data TO ls_task.
ls_task-task_list_usage = '1'.
ls_task-task_list_status = '4'.
ls_task-valid_from = sy-datum.
ls_task-valid_to_date = '99991231'.
* ls_task-TASK_MEASURE_UNIT = 'KI'. "CA
APPEND ls_task TO lt_task.
LOOP AT gt_data_operacion INTO gs_data_operacion WHERE
material = gs_data_material-material
AND plant = gs_data_material-plant
AND task_list_group = gs_data_material-task_list_group
AND group_counter = gs_data_material-group_counter
AND activity IS NOT INITIAL.
ls_operation-task_list_group = gs_data_material-task_list_group.
ls_operation-group_counter = gs_data_material-group_counter.
ls_operation-activity = gs_data_operacion-activity.
ls_operation-work_cntr = gs_data_operacion-work_cntr.
ls_operation-control_key = gs_data_operacion-control_key.
ls_operation-description = gs_data_operacion-description.
ls_operation-insp_point_complt_flow_variant = gs_data_operacion-insp_point_complt_flow_variant.
ls_operation-time_grid = gs_data_operacion-time_grid.
ls_operation-time_factor = gs_data_operacion-time_factor.
ls_operation-time_unit = gs_data_operacion-time_unit.
ls_operation-denominator = gs_data_operacion-denominator.
ls_operation-nominator = gs_data_operacion-nominator.
ls_operation-base_quantity = gs_data_operacion-base_quantity.
APPEND ls_operation TO lt_operation.
LOOP AT gt_data_cha INTO gs_data_cha WHERE
material = gs_data_material-material
AND plant = gs_data_material-plant
AND task_list_group = gs_data_material-task_list_group
AND group_counter = gs_data_material-group_counter
AND activity = gs_data_operacion-activity
AND inspchar IS NOT INITIAL.
ls_inspcharacteristic-task_list_group = gs_data_material-task_list_group.
ls_inspcharacteristic-group_counter = gs_data_material-group_counter.
ls_inspcharacteristic-activity = gs_data_cha-activity.
ls_inspcharacteristic-inspchar = gs_data_cha-inspchar.
ls_inspcharacteristic-mstr_char = gs_data_cha-mstr_char.
ls_inspcharacteristic-smpl_procedure = gs_data_cha-smpl_procedure.
ls_inspcharacteristic-smpl_unit = gs_data_cha-smpl_unit.
ls_inspcharacteristic-smpl_quant = gs_data_cha-smpl_quant.
ls_inspcharacteristic-dyn_modif_rule = gs_data_cha-dyn_modif_rule.
ls_inspcharacteristic-spc_criterion_key = gs_data_cha-spc_criterion_key .
ls_inspcharacteristic-up_tol_lmt = gs_data_cha-up_tol_lmt.
ls_inspcharacteristic-lw_tol_lmt = gs_data_cha-lw_tol_lmt.
ls_inspcharacteristic-formula_check_by_sap = gs_data_cha-formula_check_by_sap.
ls_inspcharacteristic-formula_field_1 = gs_data_cha-formula_field_1 .
ls_inspcharacteristic-formula_field_2 = gs_data_cha-formula_field_2 .
ls_inspcharacteristic-char_descr = gs_data_cha-char_descr.
APPEND ls_inspcharacteristic TO lt_inspcharacteristic.
ENDLOOP.
ENDLOOP.
* MOVE-CORRESPONDING gs_data to ls_OPERATION.
* MOVE-CORRESPONDING gs_data to ls_INSPCHARACTERISTIC.
* append ls_OPERATION to lt_OPERATION.
* APPEND ls_INSPCHARACTERISTIC to lt_INSPCHARACTERISTIC.
DATA ld_testrun TYPE bapiflag.
ld_testrun = 'X'.
DATA ld_bomusage TYPE bapi1012_control_data-bom_usage .
ld_bomusage = '1'. "fabricacion
CALL FUNCTION 'BAPI_ROUTING_CREATE'
EXPORTING
testrun = p_test
* PROFILE =
bomusage = ld_bomusage
* APPLICATION =
* IMPORTING
* GROUP =
* GROUPCOUNTER =
TABLES
task = lt_task
materialtaskallocation = lt_materialtaskallocation
* SEQUENCE =
operation = lt_operation
* LENGTHCALCULATION =
* SUBOPERATION =
* REFERENCEOPERATION =
* WORKCENTERREFERENCE =
* COMPONENTALLOCATION =
* PRODUCTIONRESOURCE =
inspcharacteristic = lt_inspcharacteristic
* TEXTALLOCATION =
* TEXT =
return = lt_return.
MOVE-CORRESPONDING gs_data_material TO gs_log.
LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.
MOVE-CORRESPONDING ls_return TO gs_log.
APPEND gs_log TO gt_log.
ENDLOOP.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
gs_log-type = 'S'.
gs_log-message = 'Hoja de ruta creada'.
APPEND gs_log TO gt_log.
ENDIF.
* BREAK-POINT.
ENDLOOP.
ENDLOOP.
*PERFORM get_task_list_group using 'X'
* ls_MATERIALTASKALLOCATION
* ls_task.
ENDFORM. "select_data
*&---------------------------------------------------------------------*
*& Form upload
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM upload.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = gt_data
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "upload
*&---------------------------------------------------------------------*
*& Form display_log
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display_log.
*... Create Instance
TRY.
cl_salv_table=>factory( IMPORTING r_salv_table = DATA(gr_table)
CHANGING t_table = gt_log ).
CATCH cx_salv_msg.
ENDTRY.
*... Enable Generic ALV functions
DATA(gr_functions) = gr_table->get_functions( ).
** gr_functions->set_default( ).
gr_functions->set_all( ).
DATA(lr_columns) = gr_table->get_columns( ).
*... Display table
gr_table->display( ).
ENDFORM. "display_log