ABAP-创建信息记录
转载:https://www.bbsmax.com/A/o75Nrnn95W/
CALL FUNCTION ‘ME_INITIALIZE_INFORECORD’.
CALL FUNCTION ‘ME_DIRECT_INPUT_INFORECORD’
*&---------------------------------------------------------------------*
*& Report YTST_FF_005_003
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YTST_FF_005_003.
*&---------------------------------------------------------------------*
*& Form FRM_INFNR_CREATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_INFNR_CREATE .
DATA: WA_EINA TYPE EINA,
WA_EINE TYPE EINE,
WA_EINA_NEW TYPE EINA,
WA_EINE_NEW TYPE EINE.
DATA: IT_HEAD TYPE STANDARD TABLE OF MESTXH,
IT_LINE TYPE STANDARD TABLE OF MESTXL.
DATA: IT_EINA TYPE STANDARD TABLE OF EINA,
IT_EINE TYPE STANDARD TABLE OF EINE.
DATA:L_SUBRC LIKE SY-SUBRC.
*&数量默认‘’
*&S1.检查选中的数据是否ok
READ TABLE GT_UP INTO WA_UP WITH KEY SEL = 'X' FLAG = 'E'.
IF SY-SUBRC EQ .
MESSAGE S000 WITH '选中数据存在错误,请先检查!' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
*&S2.据选择获取待创建的订单编号
READ TABLE GT_UP INTO WA_UP WITH KEY SEL = 'X' TEXT = ' '.
IF SY-SUBRC NE .
MESSAGE S000 WITH '请选择可操作的数据!' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
*&S3.一条数据创建一个信息记录
LOOP AT GT_UP ASSIGNING <FS_UP> WHERE SEL EQ 'X' AND TEXT EQ ' '.
*&L1.EINA采购信息记录 - 一般数据
WA_EINA-MATNR = <FS_UP>-MATNR.
WA_EINA-LIFNR = <FS_UP>-LIFNR.
WA_EINA-IDNLF = <FS_UP>-IDNLF."货号
*&L2.采购信息记录 - 采购组织数据
WA_EINE-EKORG = 'P001'.
WA_EINE-WERKS = <FS_UP>-WERKS.
WA_EINE-ESOKZ = <FS_UP>-ESOKZ.
WA_EINE-EKGRP = <FS_UP>-EKGRP.
WA_EINE-NETPR = <FS_UP>-NETPR."净价
WA_EINE-PEINH = <FS_UP>-PEINH."单位
WA_EINE-NORBM = ''."订单数量
WA_EINE-APLFZ = <FS_UP>-APLFZ."计划的天数内交货(输入)
WA_EINE-EFFPR = ''. "有效价格
* WA_EINE-MWSKZ = 'J1'."销售/购买税代码
CALL FUNCTION 'ME_INITIALIZE_INFORECORD'.
CALL FUNCTION 'ME_DIRECT_INPUT_INFORECORD'
EXPORTING
ACTIVITY = <FS_UP>-SIGN "'H' "V 修改,H创建
I_EINA = WA_EINA
I_EINE = WA_EINE
I_NO_SUPPOSE = ''
I_VORGA = 'A'
* i_no_suppose = 'X'"重要
* i_vorga = 'B'
* i_skip_nr_check = ''
IMPORTING
E_EINA = WA_EINA_NEW
E_EINE = WA_EINE_NEW
TABLES
T_HEAD = IT_HEAD
T_LINE = IT_LINE
EXCEPTIONS
TEXTNAME_INVALID =
OTHERS = .
IF SY-SUBRC <> .
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
L_SUBRC = SY-SUBRC.
ENDIF.
CALL FUNCTION 'ME_POST_INFORECORD'
EXPORTING
I_MATNR = WA_EINA-MATNR
O_MATNR = WA_EINA-MATNR
TABLES
T_EINA_I = IT_EINA.
*&APPEND wa_eine_new to it_eine.
CALL FUNCTION 'ME_UPDATE_INFORECORD_COND'
TABLES
REINE = IT_EINE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IF L_SUBRC EQ .
<FS_UP>-FLAG = 'S'.
<FS_UP>-TEXT = '创建信息记录成功'.
<FS_UP>-ICON = '@5B@'.
<FS_UP>-SEL = '-'.
<FS_UP>-INFNR = WA_EINA_NEW-INFNR.
ELSE.
<FS_UP>-FLAG = 'E'.
<FS_UP>-TEXT = '创建信息记录失败'.
<FS_UP>-ICON = '@5C@'.
ENDIF.
ENDLOOP.
ENDFORM. " FRM_INFNR_CREATE