SAP PM BAPI HOJARUTA
From SapWiki
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