Академический Документы
Профессиональный Документы
Культура Документы
INTO v_t_item FROM t163y WHERE spras = sy-langu AND epstp = t_saida_pendente-pstyp. ENDSELECT. IF t_saida_pendente-banfn = v_banfn. MOVE: t_saida_pendente-bsart TO t_req_item-doc_type, t_saida_pendente-banfn TO t_req_item-preq_no, t_saida_pendente-bnfpo TO t_req_item-preq_item, v_t_item TO t_req_item-item_cat, t_saida_pendente-knttp TO t_req_item-acctasscat, t_saida_pendente-txz01 TO t_req_item-short_text, t_saida_pendente-lfdat TO t_req_item-deliv_date, t_saida_pendente-matkl TO t_req_item-mat_grp, t_saida_pendente-werks TO t_req_item-plant, t_saida_pendente-ekgrp TO t_req_item-pur_group, t_saida_pendente-afnam TO t_req_item-preq_name, t_saida_pendente-lifnr TO t_req_item-des_vendor, t_saida_pendente-meins TO t_req_item-unit, c_1 TO t_req_item-pckg_no. APPEND t_req_item. MOVE: t_saida_pendente-kostl t_saida_pendente-aufnr t_saida_pendente-banfn t_saida_pendente-bnfpo APPEND t_req_rm. TO t_req_rm-cost_ctr, TO t_req_rm-order_no, TO t_req_rm-preq_no, TO t_req_rm-preq_item.
ADD 1 TO v_cont. IF v_cont = 1. MOVE: c_1 TO t_req_serv-pckg_no, v_cont TO t_req_serv-line_no, c_1 TO t_req_serv-from_line, c_x TO t_req_serv-outl_ind, c_2 TO t_req_serv-subpckg_no. APPEND t_req_serv. ADD 1 TO v_cont. ENDIF. "if v_cont_reg = 1. MOVE: t_saida_pendente-meins TO t_req_serv-base_uom, t_saida_pendente-userf1_txt TO t_req_serv-userf1_txt, t_saida_pendente-extrow TO t_req_serv-ext_line, t_saida_pendente-srvpos TO t_req_serv-service, t_saida_pendente-menge TO t_req_serv-quantity, t_saida_pendente-tbtwr TO t_req_serv-gr_price, c_2 TO t_req_serv-pckg_no , v_cont TO t_req_serv-line_no, c_null TO t_req_serv-outl_ind, c_null TO t_req_serv-subpckg_no, c_62 TO t_req_serv-uom_iso, c_1 TO t_req_serv-price_unit. APPEND t_req_serv. MOVE: c_2 TO t_req_line-pckg_no,
v_cont TO t_req_line-line_no, c_100 TO t_req_line-percentage, c_1 TO t_req_line-serial_no, t_saida_pendente-menge TO t_req_line-quantity, c_100 TO t_req_line-net_value. APPEND t_req_line. CLEAR v_control. ELSE. "IF t_saida_pendente-banfn = v_banfn. v_control = c_x. SORT t_req_item BY preq_no preq_item. DELETE ADJACENT DUPLICATES FROM t_req_item COMPARING preq_no preq_item. SORT t_req_rm BY preq_no preq_item. DELETE ADJACENT DUPLICATES FROM t_req_rm COMPARING preq_no preq_item. SORT: t_req_item BY preq_no preq_item, t_req_rm BY preq_no preq_item. CALL FUNCTION 'BAPI_REQUISITION_CREATE' IMPORTING number = v_banfn TABLES requisition_items = t_req_item[] requisition_account_assignment = t_req_rm[] requisition_services = t_req_serv[] requisition_srv_accass_values = t_req_line[] return = t_return[]. IF t_return[] IS INITIAL. MOVE: t_req_item-preq_no TO t_mensagem_log-banfn, t_req_item-preq_item TO t_mensagem_log-bnfpo, t_saida_pendente-extrow TO t_mensagem_log-extrow, text-001 TO t_mensagem_log-message, c_s TO t_mensagem_log-flag. APPEND t_mensagem_log. ELSE. LOOP AT t_return. MOVE: t_req_item-preq_no TO t_mensagem_log-banfn, t_saida_pendente-extrow TO t_mensagem_log-extrow, t_return-message TO t_mensagem_log-message, c_e TO t_mensagem_log-flag. APPEND t_mensagem_log. ENDLOOP. ENDIF. CLEAR: v_cont,
t_return, t_return[], t_req_item, t_req_item[], t_req_rm, t_req_rm[], t_req_serv, t_req_serv[], t_req_line, t_req_line[]. v_banfn = t_saida_pendente-banfn. MOVE: t_saida_pendente-bsart TO t_req_item-doc_type, t_saida_pendente-banfn TO t_req_item-preq_no, t_saida_pendente-bnfpo TO t_req_item-preq_item, v_t_item TO t_req_item-item_cat, t_saida_pendente-knttp TO t_req_item-acctasscat, t_saida_pendente-txz01 TO t_req_item-short_text, t_saida_pendente-lfdat TO t_req_item-deliv_date, t_saida_pendente-matkl TO t_req_item-mat_grp, t_saida_pendente-werks TO t_req_item-plant, t_saida_pendente-ekgrp TO t_req_item-pur_group, t_saida_pendente-afnam TO t_req_item-preq_name, t_saida_pendente-lifnr TO t_req_item-des_vendor, t_saida_pendente-meins TO t_req_item-unit, c_1 TO t_req_item-pckg_no. APPEND t_req_item. MOVE: t_saida_pendente-kostl t_saida_pendente-aufnr t_saida_pendente-banfn t_saida_pendente-bnfpo APPEND t_req_rm. TO t_req_rm-cost_ctr, TO t_req_rm-order_no, TO t_req_rm-preq_no, TO t_req_rm-preq_item.
ADD 1 TO v_cont. IF v_cont = 1. MOVE: c_1 TO t_req_serv-pckg_no, v_cont TO t_req_serv-line_no, c_1 TO t_req_serv-from_line, c_x TO t_req_serv-outl_ind, c_2 TO t_req_serv-subpckg_no. APPEND t_req_serv. ADD 1 TO v_cont. ENDIF. "if v_cont_reg = 1. MOVE: t_saida_pendente-meins TO t_req_serv-base_uom, t_saida_pendente-userf1_txt TO t_req_serv-userf1_txt, t_saida_pendente-extrow TO t_req_serv-ext_line, t_saida_pendente-srvpos TO t_req_serv-service, t_saida_pendente-menge TO t_req_serv-quantity, t_saida_pendente-tbtwr TO t_req_serv-gr_price, c_2 TO t_req_serv-pckg_no , v_cont TO t_req_serv-line_no, c_null TO t_req_serv-outl_ind, c_null TO t_req_serv-subpckg_no, c_62 TO t_req_serv-uom_iso, c_1 TO t_req_serv-price_unit. APPEND t_req_serv. MOVE: c_2 v_cont TO t_req_line-pckg_no, TO t_req_line-line_no,
c_100 TO t_req_line-percentage, c_1 TO t_req_line-serial_no, t_saida_pendente-menge TO t_req_line-quantity, c_100 TO t_req_line-net_value. APPEND t_req_line. ENDIF. "IF t_saida_pendente-banfn = v_banfn. ENDLOOP. IF v_control IS INITIAL. SORT t_req_item BY preq_no preq_item. DELETE ADJACENT DUPLICATES FROM t_req_item COMPARING preq_no preq_item. SORT t_req_rm BY preq_no preq_item. DELETE ADJACENT DUPLICATES FROM t_req_rm COMPARING preq_no preq_item. SORT: t_req_item BY preq_no preq_item, t_req_rm BY preq_no preq_item. CALL FUNCTION 'BAPI_REQUISITION_CREATE' IMPORTING number = v_banfn TABLES requisition_items = t_req_item[] requisition_account_assignment = t_req_rm[] requisition_services = t_req_serv[] requisition_srv_accass_values = t_req_line[] return = t_return[]. IF t_return[] IS INITIAL. MOVE: t_req_item-preq_no TO t_mensagem_log-banfn, t_req_item-preq_item TO t_mensagem_log-bnfpo, t_saida_pendente-extrow TO t_mensagem_log-extrow, text-001 TO t_mensagem_log-message, c_s TO t_mensagem_log-flag. APPEND t_mensagem_log. ELSE. LOOP AT t_return. MOVE: t_req_item-preq_no TO t_mensagem_log-banfn, t_saida_pendente-extrow TO t_mensagem_log-extrow, t_return-message TO t_mensagem_log-message, c_e TO t_mensagem_log-flag. APPEND t_mensagem_log. ENDLOOP. ENDIF. ENDIF. "IF v_control ENDIF. "IF t_saida_pendente[] IS NOT INITIAL.
CLEAR: v_cont, v_banfn, v_control, t_return, t_return[], t_req_item, t_req_item[], t_req_rm, t_req_rm[], t_req_serv, t_req_serv[], t_req_line, t_req_line[]. ENDFUNCTION.