加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

批量创建物料主数据

(2016-11-30 17:14:43)
标签:

abap


2016-11-30
今天抽时间研究了一下BAPI_MATERIAL_SAVEREPLICA
觉得这个bapi 很给力,请注意增强和BAPI_MATERIAL_SAVEdata 是不一样的
需要扩展 BAPI_TE_E1MARA..
我这项目mara 有自定义必输字段,所以使用了BAPI_TE_E1MARA.
TABLES MARA.

DATA LT_BAPIE1MATHEADER TYPE TABLE OF BAPIE1MATHEADER WITH HEADER LINE.

FIELD-SYMBOLS  TYPE  BAPIE1MATHEADER.

DATA LT_MARA          TYPE TABLE OF MARA         WITH HEADER LINE.
DATA LT_MARC          TYPE TABLE OF MARC         WITH HEADER LINE.
DATA LT_BAPIE1MARA    TYPE TABLE OF BAPIE1MARA   WITH HEADER LINE.
DATA LT_BAPIE1MARAX   TYPE TABLE OF BAPIE1MARAX  WITH HEADER LINE.
DATA LT_BAPIE1MAKT    TYPE TABLE OF BAPIE1MAKT   WITH HEADER LINE.
DATA LT_MAKT          TYPE TABLE OF MAKT         WITH HEADER LINE.
DATA LT_BAPIE1PAREX   TYPE TABLE OF BAPIE1PAREX  WITH HEADER LINE.
DATA LT_BAPIE1PAREXX  TYPE TABLE OF BAPIE1PAREXX WITH HEADER LINE.
DATA LT_BAPIE1MARC    TYPE TABLE OF BAPIE1MARC WITH HEADER LINE.
DATA LT_BAPIE1MARCX   TYPE TABLE OF BAPIE1MARCX WITH HEADER LINE.
DATA LS_BAPI_TE_E1MARA  TYPE BAPI_TE_E1MARA.
DATA LS_BAPI_TE_E1MARAX TYPE BAPI_TE_E1MARAX.

*PARAMETERS P_MATNR TYPE MATNR.

SELECT-OPTIONS S_MATNR FOR MARA-MATNR.

PARAMETERS P_MATNT TYPE MATNR DEFAULT '999999999999999999'.

START-OF-SELECTION.

  SELECT INTO CORRESPONDING FIELDS OF TABLE LT_MARA
    FROM MARA
     WHERE MATNR IN S_MATNR.

  LOOP AT LT_MARA.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  LT_MARA-MATNR
      IMPORTING
        OUTPUT LT_MARA-MATNR.

    LT_MARA-MATNR+0(1'Z'.

    LT_BAPIE1MATHEADER-FUNCTION     'INS'.
    LT_BAPIE1MATHEADER-MATERIAL     LT_MARA-MATNR.
    LT_BAPIE1MATHEADER-IND_SECTOR   LT_MARA-MBRSH.
    LT_BAPIE1MATHEADER-MATL_TYPE    LT_MARA-MTART.
    LT_BAPIE1MATHEADER-BASIC_VIEW   'X'.
    LT_BAPIE1MATHEADER-STORAGE_VIEW 'X'.
    LT_BAPIE1MATHEADER-PURCHASE_VIEW  'X'.

    APPEND LT_BAPIE1MATHEADER.

    CLEAR  LT_BAPIE1MATHEADER.

    CALL FUNCTION 'ZBXYZ_CONVERT_LINE'
      EXPORTING
        IS_LINE  LT_MARA
      IV_CLEAR 'X'
      CHANGING
        CS_LINE  LT_BAPIE1MARA.

    LT_BAPIE1MARA-FUNCTION   'INS'.

    APPEND LT_BAPIE1MARA.

    CALL FUNCTION 'ZBXYZ_CHECK_UPDFLAG'
      EXPORTING
        IS_LINE  LT_BAPIE1MARA
      CHANGING
        CS_LINEX LT_BAPIE1MARAX.
    LT_BAPIE1MARAX-FUNCTION   'INS'.
    APPEND LT_BAPIE1MARAX.

    MOVE-CORRESPONDING LT_MARA TO LS_BAPI_TE_E1MARA.
    LS_BAPI_TE_E1MARA-MATERIAL  LT_MARA-MATNR.
    LT_BAPIE1PAREX-FUNCTION  'INS'.
    LT_BAPIE1PAREX-MATERIAL  LT_MARA-MATNR.
    LT_BAPIE1PAREX-STRUCTURE  'BAPI_TE_E1MARA'.
    LT_BAPIE1PAREX-VALUEPART1 LS_BAPI_TE_E1MARA.
    APPEND LT_BAPIE1PAREX.
    CLEAR LT_BAPIE1PAREX.

    LS_BAPI_TE_E1MARAX-MATERIAL  LT_MARA-MATNR.
    LS_BAPI_TE_E1MARAX-ZPRDNAM   'X'.  "自定义必输字段。。。项目需求!
    LS_BAPI_TE_E1MARAX-ZPRDTYP   'X'.

    LT_BAPIE1PAREXX-FUNCTION  'INS'.
    LT_BAPIE1PAREXX-MATERIAL  LT_MARA-MATNR.
    LT_BAPIE1PAREXX-STRUCTURE  'BAPI_TE_E1MARAX'.
    LT_BAPIE1PAREXX-VALUEPART1 LS_BAPI_TE_E1MARAX.
    APPEND LT_BAPIE1PAREXX.
    CLEAR LT_BAPIE1PAREXX.

  ENDLOOP.

  SELECT INTO CORRESPONDING FIELDS OF TABLE LT_MAKT
    FROM MAKT
     WHERE MATNR IN S_MATNR.

  LOOP AT LT_MAKT.

    CALL FUNCTION 'ZBXYZ_CONVERT_LINE'
      EXPORTING
        IS_LINE  LT_MAKT
      IV_CLEAR 'X'
      CHANGING
        CS_LINE  LT_BAPIE1MAKT.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  LT_MAKT-MATNR
      IMPORTING
        OUTPUT LT_MAKT-MATNR.

    LT_MAKT-MATNR+0(1'Z'.

    LT_BAPIE1MAKT-MATERIAL LT_MAKT-MATNR .
    LT_BAPIE1MAKT-FUNCTION 'INS'.

    APPEND LT_BAPIE1MAKT.
    CLEAR  LT_BAPIE1MAKT.

  ENDLOOP.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE LT_MARC
       FROM MARC
       WHERE MATNR IN S_MATNR.

  LOOP AT LT_MARC.

    CALL FUNCTION 'ZBXYZ_CONVERT_LINE'
      EXPORTING
        IS_LINE  LT_MARC
      IV_CLEAR 'X'
      CHANGING
        CS_LINE  LT_BAPIE1MARC.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  LT_MARC-MATNR
      IMPORTING
        OUTPUT LT_MARC-MATNR.

    LT_MARC-MATNR+0(1'Z'.

    LT_BAPIE1MARC-FUNCTION   'INS'.
    LT_BAPIE1MARC-MATERIAL   LT_MARC-MATNR .

    APPEND LT_BAPIE1MARC .

    CALL FUNCTION 'ZBXYZ_CHECK_UPDFLAG'
      EXPORTING
        IS_LINE  LT_BAPIE1MARC
      CHANGING
        CS_LINEX LT_BAPIE1MARCX.

    LT_BAPIE1MARCX-FUNCTION   'INS'.
    LT_BAPIE1MARCX-MATERIAL   LT_MARC-MATNR  .

    APPEND LT_BAPIE1MARCX.

  ENDLOOP.

  DATA LS_BAPIRET2 TYPE BAPIRET2.
  DATA LT_BAPIRET2 TYPE TABLE OF BAPIRET2.
  CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
    EXPORTING
      NOAPPLLOG            'X'
      NOCHANGEDOC          'X'
      TESTRUN              SPACE
      INPFLDCHECK          SPACE
    FLAG_CAD_CALL        '
    NO_ROLLBACK_WORK     '
    FLAG_ONLINE          '
    IMPORTING
      RETURN               LS_BAPIRET2
    TABLES
      HEADDATA             LT_BAPIE1MATHEADER
      CLIENTDATA           LT_BAPIE1MARA
      CLIENTDATAX          LT_BAPIE1MARAX
      PLANTDATA            LT_BAPIE1MARC
      PLANTDATAX           LT_BAPIE1MARCX
    FORECASTPARAMETERS   =
    FORECASTPARAMETERSX  =
    PLANNINGDATA         =
    PLANNINGDATAX        =
    STORAGELOCATIONDATA  =
    STORAGELOCATIONDATAX =
    VALUATIONDATA        =
    VALUATIONDATAX       =
    WAREHOUSENUMBERDATA  =
    WAREHOUSENUMBERDATAX =
    SALESDATA            =
    SALESDATAX           =
    STORAGETYPEDATA      =
    STORAGETYPEDATAX     =
      MATERIALDESCRIPTION  LT_BAPIE1MAKT
    UNITSOFMEASURE       =
    UNITSOFMEASUREX      =
    INTERNATIONALARTNOS  =
    MATERIALLONGTEXT     =
    TAXCLASSIFICATIONS   =
    PRTDATA              =
    PRTDATAX             =
      EXTENSIONIN          LT_BAPIE1PAREX
 EXTENSIONINX         LT_BAPIE1PAREXX
    FORECASTVALUES       =
    UNPLNDCONSUMPTION    =
    TOTALCONSUMPTION     =
      RETURNMESSAGES       LT_BAPIRET2
    .

体验了一下,感觉超给力


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有