Difference between revisions of "SAP PM BAPI HOJARUTA"
From SapWiki
(Created page with "==Leer Hoja de Ruta de Equipo (IA01)== <nowiki>FORM select_data. DATA ld_lines_o TYPE i. DATA ld_lines_m TYPE i. * data para puesto de trabajo (ARBPL) SELECT DISTINCT...") |
|||
Line 1: | Line 1: | ||
− | ==Leer Hoja de Ruta de | + | ==Leer Hoja de Ruta de Equipos (IA01)== |
<nowiki>FORM select_data. | <nowiki>FORM select_data. | ||
DATA ld_lines_o TYPE i. | DATA ld_lines_o TYPE i. | ||
Line 188: | Line 188: | ||
ENDFORM. "select_data</nowiki> | ENDFORM. "select_data</nowiki> | ||
+ | |||
+ | ==Leer Hoja de Ruta de Ubicaciones Técnicas (IA11)== | ||
+ | <nowiki>FORM select_data. | ||
+ | DATA ld_lines_o TYPE i. | ||
+ | DATA ld_lines_m TYPE i. | ||
+ | |||
+ | * data para puesto de trabajo (ARBPL) | ||
+ | SELECT DISTINCT objid | ||
+ | arbpl | ||
+ | FROM crhd | ||
+ | INTO TABLE lt_crhd | ||
+ | FOR ALL ENTRIES IN gt_plpo | ||
+ | WHERE objid = gt_plpo-arbid. "#EC CI_NOFIRST | ||
+ | |||
+ | SELECT * INTO TABLE gt_tapl from tapl | ||
+ | WHERE tplnr IN s_tplnr | ||
+ | AND plnty = p_plnty | ||
+ | AND iwerk = p_werks | ||
+ | AND loekz = space. | ||
+ | |||
+ | CLEAR: gt_plko[], | ||
+ | gt_plpo[], | ||
+ | gt_plmk[]. | ||
+ | |||
+ | DESCRIBE TABLE gt_tapl LINES lin. | ||
+ | LOOP AT gt_tapl INTO gs_tapl. | ||
+ | succ = 100 / lin * sy-tabix. | ||
+ | CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' | ||
+ | EXPORTING | ||
+ | percentage = succ | ||
+ | text = text-001. | ||
+ | |||
+ | gs_data-tplnr = gs_tapl-tplnr. | ||
+ | gs_data-werks = gs_tapl-iwerk. | ||
+ | gs_data-plnal = gs_tapl-plnal. | ||
+ | |||
+ | CALL FUNCTION 'CP_EX_PLAN_READ' | ||
+ | EXPORTING | ||
+ | plnty_imp = gs_tapl-plnty | ||
+ | plnnr_imp = gs_tapl-plnnr | ||
+ | plnal_imp = gs_tapl-plnal | ||
+ | sttag_imp = sy-datum | ||
+ | TABLES | ||
+ | plko_exp = gt_plko | ||
+ | plmz_exp = gt_plmz | ||
+ | plpo_exp = gt_plpo | ||
+ | plmk_exp = gt_plmk | ||
+ | EXCEPTIONS | ||
+ | not_found = 1 | ||
+ | plnal_initial = 2 | ||
+ | OTHERS = 3 | ||
+ | . | ||
+ | IF sy-subrc <> 0. | ||
+ | * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO | ||
+ | * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. | ||
+ | ENDIF. | ||
+ | |||
+ | DATA ld_cont(2) TYPE n. | ||
+ | |||
+ | LOOP AT gt_plko INTO gs_plko WHERE plnty = gs_tapl-plnty | ||
+ | AND plnnr = gs_tapl-plnnr | ||
+ | AND plnal = gs_tapl-plnal. | ||
+ | |||
+ | gs_data-sttag = gs_plko-datuv. | ||
+ | gs_data-ktext = gs_plko-ktext. | ||
+ | gs_data-werks = gs_plko-werks. | ||
+ | READ TABLE lt_crhd INTO ls_crhd WITH KEY objid = gs_plko-arbid. | ||
+ | IF sy-subrc = 0. | ||
+ | gs_data-arbpl = ls_crhd-arbpl. | ||
+ | ENDIF. | ||
+ | |||
+ | gs_data-verwe = gs_plko-verwe. | ||
+ | gs_data-vagrp = gs_plko-vagrp. | ||
+ | gs_data-statu = gs_plko-statu. | ||
+ | gs_data-anlzu = gs_plko-anlzu. | ||
+ | gs_data-strat = gs_plko-strat. | ||
+ | |||
+ | * data gt_PLMZ type TABLE OF PLMZPM. | ||
+ | DATA ls_stpo TYPE stpo. | ||
+ | DATA gt_stpo TYPE TABLE OF stpo. | ||
+ | DATA gt_plwp TYPE TABLE OF plwp. | ||
+ | DATA gs_stpo LIKE LINE OF gt_stpo. | ||
+ | DATA gs_plwp LIKE LINE OF gt_plwp. | ||
+ | DATA ld_name LIKE thead-tdname. | ||
+ | DATA lt_lines LIKE TABLE OF tline. | ||
+ | DATA ls_lines LIKE LINE OF lt_lines. | ||
+ | |||
+ | ld_cont = 0. | ||
+ | LOOP AT gt_plpo INTO gs_plpo. | ||
+ | CLEAR: gt_stpo[], | ||
+ | gt_plwp[]. | ||
+ | |||
+ | ADD 1 TO ld_cont. | ||
+ | |||
+ | IF ld_cont = 1. | ||
+ | mc_set_plpo 01. | ||
+ | gs_data-indet_01 = gs_plpo-indet. | ||
+ | ELSEIF ld_cont = 2. | ||
+ | mc_set_plpo 02. | ||
+ | ELSEIF ld_cont = 3. | ||
+ | mc_set_plpo 03. | ||
+ | EXIT. | ||
+ | ENDIF. | ||
+ | ENDLOOP. "operaciones | ||
+ | MOVE-CORRESPONDING gs_data TO gs_data_o. | ||
+ | APPEND gs_data_o TO gt_data_o. | ||
+ | |||
+ | ENDLOOP. "grupo hoja ruta | ||
+ | |||
+ | ENDLOOP. "EAPL</nowiki> | ||
+ | |||
+ | ==Leer Hoja de Ruta Instrucciones (IA05)== | ||
+ | <nowiki>FORM select_data. | ||
+ | DATA ld_lines_o TYPE i. | ||
+ | DATA ld_lines_m TYPE i. | ||
+ | |||
+ | SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_plko_a FROM plko | ||
+ | WHERE werks = p_werks | ||
+ | AND plnty = p_plnty | ||
+ | AND loekz <> 'X'. | ||
+ | |||
+ | * data para puesto de trabajo (ARBPL) | ||
+ | SELECT DISTINCT objid | ||
+ | arbpl | ||
+ | werks | ||
+ | FROM crhd | ||
+ | INTO TABLE lt_crhd | ||
+ | FOR ALL ENTRIES IN gt_plko_a | ||
+ | WHERE objid = gt_plko_a-arbid. | ||
+ | |||
+ | CLEAR: gt_plko[], | ||
+ | gt_plpo[], | ||
+ | gt_plmk[]. | ||
+ | |||
+ | DESCRIBE TABLE gt_plko_a LINES lin. | ||
+ | |||
+ | LOOP AT gt_plko_a INTO gs_plko. | ||
+ | succ = 100 / lin * sy-tabix. | ||
+ | CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' | ||
+ | EXPORTING | ||
+ | percentage = succ | ||
+ | text = text-001. | ||
+ | |||
+ | gs_data-werks_h = gs_plko-werks. | ||
+ | gs_data-plnnr = gs_plko-plnnr. | ||
+ | gs_data-plnal = gs_plko-plnal. | ||
+ | |||
+ | CALL FUNCTION 'CP_EX_PLAN_READ' | ||
+ | EXPORTING | ||
+ | plnty_imp = gs_plko-plnty | ||
+ | plnnr_imp = gs_plko-plnnr | ||
+ | plnal_imp = gs_plko-plnal | ||
+ | sttag_imp = sy-datum | ||
+ | TABLES | ||
+ | plko_exp = gt_plko | ||
+ | plmz_exp = gt_plmz | ||
+ | plpo_exp = gt_plpo | ||
+ | plmk_exp = gt_plmk | ||
+ | EXCEPTIONS | ||
+ | not_found = 1 | ||
+ | plnal_initial = 2 | ||
+ | OTHERS = 3 | ||
+ | . | ||
+ | IF sy-subrc <> 0. | ||
+ | * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO | ||
+ | * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. | ||
+ | ENDIF. | ||
+ | |||
+ | |||
+ | LOOP AT gt_plko INTO gs_plko . | ||
+ | gs_data-ktext = gs_plko-ktext. | ||
+ | gs_data-werks_h = gs_plko-werks. | ||
+ | READ TABLE lt_crhd INTO ls_crhd WITH KEY objid = gs_plko-arbid. | ||
+ | IF sy-subrc = 0. | ||
+ | gs_data-arbpl_h = ls_crhd-arbpl. | ||
+ | gs_data-werks = ls_crhd-werks. | ||
+ | ENDIF. | ||
+ | |||
+ | gs_data-verwe = gs_plko-verwe. | ||
+ | gs_data-vagrp = gs_plko-vagrp. | ||
+ | gs_data-statu = gs_plko-statu. | ||
+ | gs_data-datuv = gs_plko-datuv. | ||
+ | |||
+ | ENDLOOP. "grupo hoja ruta | ||
+ | |||
+ | ENDLOOP. "EAPL</nowiki> |
Revision as of 22:41, 6 April 2020
Leer Hoja de Ruta de Equipos (IA01)
FORM select_data. DATA ld_lines_o TYPE i. DATA ld_lines_m TYPE i. * data para puesto de trabajo (ARBPL) SELECT DISTINCT objid arbpl FROM crhd INTO TABLE lt_crhd FOR ALL ENTRIES IN gt_plpo WHERE objid = gt_plpo-arbid. SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_eapl FROM eapl WHERE iwerk = p_werks AND equnr IN s_equnr AND plnty = p_plnty AND loekz <> 'X'. CLEAR: gt_plko[], gt_plpo[], gt_plmk[]. DESCRIBE TABLE gt_eapl LINES lin. LOOP AT gt_eapl INTO gs_eapl. succ = 100 / lin * sy-tabix. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = succ text = text-001. gs_data_h-code = '1'. gs_data_h-equnr = gs_eapl-equnr. gs_data_h-werks = gs_eapl-iwerk. gs_data_h-plnal = gs_eapl-plnal. CALL FUNCTION 'CP_EX_PLAN_READ' EXPORTING plnty_imp = gs_eapl-plnty plnnr_imp = gs_eapl-plnnr plnal_imp = gs_eapl-plnal sttag_imp = sy-datum TABLES plko_exp = gt_plko plmz_exp = gt_plmz plpo_exp = gt_plpo pltx_exp = gt_pltxd plmk_exp = gt_plmk EXCEPTIONS not_found = 1 plnal_initial = 2 OTHERS = 3 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT gt_plko INTO gs_plko WHERE plnty = gs_eapl-plnty AND plnnr = gs_eapl-plnnr AND plnal = gs_eapl-plnal. gs_data_h-sttag = gs_plko-datuv. gs_data_h-ktext = gs_plko-ktext. gs_data_h-werks = gs_plko-werks. READ TABLE lt_crhd INTO ls_crhd WITH KEY objid = gs_plko-arbid. IF sy-subrc = 0. gs_data_h-arbpl = ls_crhd-arbpl. ENDIF. gs_data_h-verwe = gs_plko-verwe. gs_data_h-vagrp = gs_plko-vagrp. gs_data_h-statu = gs_plko-statu. gs_data_h-anlzu = gs_plko-anlzu. gs_data_h-strat = gs_plko-strat. gs_data_h-istru = gs_plko-istru. PERFORM set_nuevos_valores_h. APPEND gs_data_h TO gt_salida. DATA ls_stpo TYPE stpo. DATA gt_stpo TYPE TABLE OF stpo. DATA gt_plwp TYPE TABLE OF plwp. DATA gs_stpo LIKE LINE OF gt_stpo. DATA gs_plwp LIKE LINE OF gt_plwp. DATA ld_equi(8) TYPE n. DATA ld_name LIKE thead-tdname. DATA lt_lines LIKE TABLE OF tline. DATA ls_lines LIKE LINE OF lt_lines. ld_equi = gs_eapl-equnr. LOOP AT gt_plpo INTO gs_plpo. CLEAR: gt_stpo[], gt_plwp[]. gs_data_d-code = '2'. MOVE-CORRESPONDING gs_plpo TO gs_data_d. READ TABLE lt_crhd INTO ls_crhd WITH KEY objid = gs_plpo-arbid. IF sy-subrc = 0. gs_data_d-arbpl = ls_crhd-arbpl. ENDIF. PERFORM set_nuevos_valores_d. APPEND gs_data_d TO gt_salida. ENDLOOP. "operaciones ENDLOOP. "grupo hoja ruta ENDLOOP. "EAPL ==Leer Hoja de Ruta Materiales (CA01)== <nowiki>FORM select_data. DATA: BEGIN OF lt_hoja, plnnr LIKE mapl-plnnr, werks LIKE mapl-werks, matnr LIKE mapl-matnr, END OF lt_hoja. DATA ld_lines_o TYPE i. DATA ld_lines_m TYPE i. SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_mapl FROM mapl WHERE werks = p_werks AND matnr IN s_matnr AND plnty = p_plnty AND loekz <> 'X'. CLEAR: gt_plko[], gt_plpo[], gt_plmk[]. DESCRIBE TABLE gt_mapl LINES lin. LOOP AT gt_mapl INTO gs_mapl. succ = 100 / lin * sy-tabix. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = succ text = text-001. CLEAR gs_data. gs_data-datuv = gs_mapl-datuv. gs_data-material = gs_mapl-matnr. gs_data-plant = gs_mapl-werks. gs_data-task_list_group = gs_mapl-plnnr. gs_data-group_counter = gs_mapl-plnal. CALL FUNCTION 'CP_EX_PLAN_READ' EXPORTING plnty_imp = gs_mapl-plnty plnnr_imp = gs_mapl-plnnr plnal_imp = gs_mapl-plnal sttag_imp = sy-datum TABLES plko_exp = gt_plko = plpo_exp = gt_plpo plmk_exp = gt_plmk EXCEPTIONS not_found = 1 plnal_initial = 2 OTHERS = 3 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT gt_plko INTO gs_plko WHERE plnty = gs_mapl-plnty AND plnnr = gs_mapl-plnnr AND plnal = gs_mapl-plnal. gs_data-ident_key = gs_plko-slwbez. gs_data-insppoint_partiallot_assgnmt = gs_plko-ppkztlzu. gs_data-dyn_modif_level = gs_plko-qdynhead. gs_data-dyn_modif_rule = gs_plko-qdynregel. gs_data-quantonce = gs_plko-ppkztlzu. gs_data-task_measure_unit = gs_plko-plnme. ENDLOOP. "PLKO ENDLOOP. "MAPL LOOP AT gt_data INTO gs_data. MOVE gs_data-task_list_group TO gs_data_o-group. MOVE gs_data-group_counter TO gs_data_o-grcnt. MOVE gs_data-datuv TO gs_data_o-date. MOVE gs_data-ident_key TO gs_data_o-insp_point. MOVE gs_data-quantonce TO gs_data_o-part_lot. MOVE gs_data-dyn_modif_level TO gs_data_o-dm_level. MOVE gs_data-dyn_modif_rule TO gs_data_o-dm_rule. APPEND gs_data_o TO gt_data_o. ENDLOOP. ENDFORM. "select_data
Leer Hoja de Ruta de Ubicaciones Técnicas (IA11)
FORM select_data. DATA ld_lines_o TYPE i. DATA ld_lines_m TYPE i. * data para puesto de trabajo (ARBPL) SELECT DISTINCT objid arbpl FROM crhd INTO TABLE lt_crhd FOR ALL ENTRIES IN gt_plpo WHERE objid = gt_plpo-arbid. "#EC CI_NOFIRST SELECT * INTO TABLE gt_tapl from tapl WHERE tplnr IN s_tplnr AND plnty = p_plnty AND iwerk = p_werks AND loekz = space. CLEAR: gt_plko[], gt_plpo[], gt_plmk[]. DESCRIBE TABLE gt_tapl LINES lin. LOOP AT gt_tapl INTO gs_tapl. succ = 100 / lin * sy-tabix. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = succ text = text-001. gs_data-tplnr = gs_tapl-tplnr. gs_data-werks = gs_tapl-iwerk. gs_data-plnal = gs_tapl-plnal. CALL FUNCTION 'CP_EX_PLAN_READ' EXPORTING plnty_imp = gs_tapl-plnty plnnr_imp = gs_tapl-plnnr plnal_imp = gs_tapl-plnal sttag_imp = sy-datum TABLES plko_exp = gt_plko plmz_exp = gt_plmz plpo_exp = gt_plpo plmk_exp = gt_plmk EXCEPTIONS not_found = 1 plnal_initial = 2 OTHERS = 3 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. DATA ld_cont(2) TYPE n. LOOP AT gt_plko INTO gs_plko WHERE plnty = gs_tapl-plnty AND plnnr = gs_tapl-plnnr AND plnal = gs_tapl-plnal. gs_data-sttag = gs_plko-datuv. gs_data-ktext = gs_plko-ktext. gs_data-werks = gs_plko-werks. READ TABLE lt_crhd INTO ls_crhd WITH KEY objid = gs_plko-arbid. IF sy-subrc = 0. gs_data-arbpl = ls_crhd-arbpl. ENDIF. gs_data-verwe = gs_plko-verwe. gs_data-vagrp = gs_plko-vagrp. gs_data-statu = gs_plko-statu. gs_data-anlzu = gs_plko-anlzu. gs_data-strat = gs_plko-strat. * data gt_PLMZ type TABLE OF PLMZPM. DATA ls_stpo TYPE stpo. DATA gt_stpo TYPE TABLE OF stpo. DATA gt_plwp TYPE TABLE OF plwp. DATA gs_stpo LIKE LINE OF gt_stpo. DATA gs_plwp LIKE LINE OF gt_plwp. DATA ld_name LIKE thead-tdname. DATA lt_lines LIKE TABLE OF tline. DATA ls_lines LIKE LINE OF lt_lines. ld_cont = 0. LOOP AT gt_plpo INTO gs_plpo. CLEAR: gt_stpo[], gt_plwp[]. ADD 1 TO ld_cont. IF ld_cont = 1. mc_set_plpo 01. gs_data-indet_01 = gs_plpo-indet. ELSEIF ld_cont = 2. mc_set_plpo 02. ELSEIF ld_cont = 3. mc_set_plpo 03. EXIT. ENDIF. ENDLOOP. "operaciones MOVE-CORRESPONDING gs_data TO gs_data_o. APPEND gs_data_o TO gt_data_o. ENDLOOP. "grupo hoja ruta ENDLOOP. "EAPL
Leer Hoja de Ruta Instrucciones (IA05)
FORM select_data. DATA ld_lines_o TYPE i. DATA ld_lines_m TYPE i. SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_plko_a FROM plko WHERE werks = p_werks AND plnty = p_plnty AND loekz <> 'X'. * data para puesto de trabajo (ARBPL) SELECT DISTINCT objid arbpl werks FROM crhd INTO TABLE lt_crhd FOR ALL ENTRIES IN gt_plko_a WHERE objid = gt_plko_a-arbid. CLEAR: gt_plko[], gt_plpo[], gt_plmk[]. DESCRIBE TABLE gt_plko_a LINES lin. LOOP AT gt_plko_a INTO gs_plko. succ = 100 / lin * sy-tabix. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = succ text = text-001. gs_data-werks_h = gs_plko-werks. gs_data-plnnr = gs_plko-plnnr. gs_data-plnal = gs_plko-plnal. CALL FUNCTION 'CP_EX_PLAN_READ' EXPORTING plnty_imp = gs_plko-plnty plnnr_imp = gs_plko-plnnr plnal_imp = gs_plko-plnal sttag_imp = sy-datum TABLES plko_exp = gt_plko plmz_exp = gt_plmz plpo_exp = gt_plpo plmk_exp = gt_plmk EXCEPTIONS not_found = 1 plnal_initial = 2 OTHERS = 3 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT gt_plko INTO gs_plko . gs_data-ktext = gs_plko-ktext. gs_data-werks_h = gs_plko-werks. READ TABLE lt_crhd INTO ls_crhd WITH KEY objid = gs_plko-arbid. IF sy-subrc = 0. gs_data-arbpl_h = ls_crhd-arbpl. gs_data-werks = ls_crhd-werks. ENDIF. gs_data-verwe = gs_plko-verwe. gs_data-vagrp = gs_plko-vagrp. gs_data-statu = gs_plko-statu. gs_data-datuv = gs_plko-datuv. ENDLOOP. "grupo hoja ruta ENDLOOP. "EAPL