ME11/ME12采购信息记录维护通过BAPI: ME_INFORECORD_MAINTAIN 实现。
Purchase Information Record = PIR
主要功能包括:创建或修改PIR抬头和采购组织数据
实现代码如下:
DATA:
ls_eina TYPE mewieina,
ls_einax TYPE mewieinax,
ls_eine TYPE mewieine,
ls_einex TYPE mewieinex,
lt_return TYPE mewi_t_return,
lv_message TYPE string.
ls_eina-info_rec = gv_infnr.
ls_eina-material = is_data-matnr.
ls_eina-vendor = is_data-lifnr.
ls_eina-base_uom = is_data-meins.
ls_eina-po_unit = is_data-mein1.
ls_eina-conv_num1 = is_data-umrez."转换分子
ls_eina-conv_den1 = is_data-umren."转换分母
IF 新建.
ls_einax-info_rec = 'X'.
ENDIF.
ls_einax-material = 'X'.
ls_einax-vendor = 'X'.
ls_einax-base_uom = 'X'.
ls_einax-po_unit = 'X'.
ls_einax-conv_num1 = 'X'.
ls_einax-conv_den1 = 'X'.
ls_eine-info_rec = gv_infnr.
ls_eine-purch_org = is_data-ekorg.
ls_eine-plant = is_data-werks.
* PIR 类型值:
* 0 标准
* 2 寄售
* 3 分包合同
* P 管道
* 1 可记帐
ls_eine-info_type = is_data-esokz.
ls_eine-conv_num1 = is_data-umrez."转换分子
ls_eine-conv_den1 = is_data-umren."转换分母
ls_eine-plnd_delry = is_data-plifz.
ls_eine-pur_group = is_data-bkgrp.
ls_eine-tax_code = is_data-mwskz.
IF 新建.
ls_einex-info_rec = 'X'.
ENDIF.
ls_einex-purch_org = 'X'.
ls_einex-plant = 'X'.
ls_einex-info_type = 'X'.
ls_einex-conv_num1 = 'X'.
ls_einex-conv_den1 = 'X'.
ls_einex-plnd_delry = 'X'.
ls_einex-pur_group = 'X'.
ls_einex-tax_code = 'X'.
CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
EXPORTING
i_eina = ls_eina
i_einax = ls_einax
i_eine = ls_eine
i_einex = ls_einex
* TESTRUN =
* IMPORTING
* E_EINA =
* E_EINE =
TABLES
* TXT_LINES =
* cond_validity =
* condition =
* COND_SCALE_VALUE =
* COND_SCALE_QUAN =
return = lt_return.
CLEAR: lv_message.
LOOP AT lt_return INTO DATA(ls_return) WHERE type CA 'AEX'.
IF lv_message IS INITIAL.
lv_message = ls_return-message.
ELSE.
lv_message = |{ lv_message }/{ ls_return-message }|.
ENDIF.
ENDLOOP.
IF lv_message IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
其中
抬头数据判断是否需要新建逻辑:根据供应商编码+物料号 查询表EINA,如果可以检索到 “采购信息记录号”,则为修改;
采购组织数据判断是否需要新建逻辑:采购组织+工厂+信息类型查询表EINE,如果可以检索到 “采购信息记录号”,则为修改。