ABAP 创建设备BAPI BAPI_EQUI_CREATE

36 篇文章 1 订阅
DATA: EXT_NUMBER    TYPE BAPI_ITOB_PARMS-EQUIPMENT.
  DATA: DATA_GENERAL  TYPE BAPI_ITOB.
  DATA: DATA_GENERAL_EXP  TYPE BAPI_ITOB.
  DATA: DATA_SPECIFIC TYPE BAPI_ITOB_EQ_ONLY.
  DATA: DATA_INSTALL  TYPE BAPI_ITOB_EQ_INSTALL.
  DATA: RETURN        TYPE BAPIRET2.
  DATA: T_RETURN      TYPE TABLE OF BAPIRET2 WITH HEADER LINE.
  DATA : LV_TPLNR TYPE BAPI_ITOB_PARMS-FUNCLOC.
  DATA : LS_INSTALL TYPE BAPI_ITOB_EQ_INSTALL_EXT.
  DATA: GS_MEG  LIKE LINE OF  GT_MEG.

  ""创建主设备 长文本参数
  DATA: LS_THEAD TYPE THEAD,
        LT_LTXTS TYPE STANDARD TABLE OF TLINE,
        LS_LTXTS TYPE TLINE.

  DATA LS_EQKT TYPE EQKT.
  DATA: LT_EQKT_UPT TYPE TABLE OF EQKT,
        LT_EQKT_DEL TYPE TABLE OF EQKT,
        LT_EQKT_INS TYPE TABLE OF EQKT.

  DATA: OBJECTKEY     TYPE BAPI1003_KEY-OBJECT.
  DATA: CLASSNUM      TYPE BAPI1003_KEY-CLASSNUM.
  DATA: VALUESCHAR    TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR WITH HEADER LINE.
  DATA: GV_GEWRK TYPE CRHD-OBJID.

"  IF GT_DATA IS NOT INITIAL .
****数据准备
*    ext_number = <fs_data>-equnr.
    LOOP AT GT_DATA  INTO DATA(GS_DATA).                      "设备数据循环
      CLEAR DATA_GENERAL.
      DATA_GENERAL-DESCRIPT   = GS_DATA-EQKTX.         "设备描述
      DATA_GENERAL-OBJECTTYPE = GS_DATA-EQART.         "技术对象类型
      DATA_GENERAL-AUTHGRP    = GS_DATA-BEGRU.         "授权组
      DATA_GENERAL-START_FROM = GS_DATA-INBDT.         "开始日期
      DATA_GENERAL-MANFACTURE = GS_DATA-HERST.         "制造商
      DATA_GENERAL-MANMODEL   = GS_DATA-TYPBZ.         "型号
      DATA_GENERAL-MANSERNO   = GS_DATA-SERGE.         "系列号
      DATA_GENERAL-MAINTPLANT = GS_DATA-SWERK.         "维护工厂
      DATA_GENERAL-BUS_AREA   = GS_DATA-GSBER.         "业务范围
      DATA_GENERAL-COSTCENTER = GS_DATA-KOSTL.         "成本中心
      SELECT SINGLE  OBJID  FROM CRHD INTO GV_GEWRK WHERE ARBPL = GS_DATA-GEWRK.
      DATA_GENERAL-WORK_CTR   = GV_GEWRK .   "工作中心
      DATA_GENERAL-PLANGROUP  = GS_DATA-INGRP.         "计划员组
      "DATA_INSTALL-FUNCLOC = GS_DATA-TPLNR.        "功能位置标签
      DATA_GENERAL-READ_CRDAT = SY-DATUM.   "创建日期
      CLEAR DATA_SPECIFIC.
      DATA_SPECIFIC-EQUICATGRY = 'C'.        "设备类型
      "设备位置信息
      CLEAR DATA_INSTALL.
****调用BAPI创建设备主数据
      CLEAR EXT_NUMBER.
      CALL FUNCTION 'BAPI_EQUI_CREATE'
        EXPORTING
          EXTERNAL_NUMBER  = EXT_NUMBER
          DATA_GENERAL     = DATA_GENERAL
          DATA_SPECIFIC    = DATA_SPECIFIC
          DATA_INSTALL     = DATA_INSTALL
        IMPORTING
          EQUIPMENT        = EXT_NUMBER
          DATA_GENERAL_EXP = DATA_GENERAL_EXP
          RETURN           = RETURN.
      IF RETURN-TYPE = 'E' OR RETURN-TYPE = 'A'.
        "创建设备失败
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            MSGID = RETURN-ID
            MSGNR = RETURN-NUMBER
            MSGV1 = RETURN-MESSAGE_V1
            MSGV2 = RETURN-MESSAGE_V2
            MSGV3 = RETURN-MESSAGE_V3
            MSGV4 = RETURN-MESSAGE_V4.

        GS_MEG-RTYPE  = 'E'.
        GS_MEG-RTMSG  = '设备台账创建失败!' && RETURN-ID && RETURN-NUMBER && RETURN-MESSAGE  && RETURN-MESSAGE_V1 && RETURN-MESSAGE_V2 && RETURN-MESSAGE_V2 && RETURN-MESSAGE_V4 .
        GS_MEG-ZOANO  = GS_DATA-ZOANO.
        GS_MEG-ZOALNO = GS_DATA-ZOALNO.
        APPEND GS_MEG TO GT_MEG.
        CLEAR:GS_MEG.
      ELSE.
        "创建设备成功
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.

        EXT_NUMBER = |{ EXT_NUMBER ALPHA = OUT }|.
        EXT_NUMBER = |{ EXT_NUMBER ALPHA = IN }|.

*&--------直接安装
        LS_INSTALL-FUNCLOC = GS_DATA-TPLNR.
        CLEAR RETURN.
        CALL FUNCTION 'BAPI_EQUI_INSTALL'
          EXPORTING
            EQUIPMENT    = EXT_NUMBER
            DATA_INSTALL = LS_INSTALL
          IMPORTING
            RETURN       = RETURN.
        IF RETURN-TYPE  = '' OR RETURN-TYPE = 'S'.
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              WAIT = 'X'.
          GS_MEG-RTYPE = 'S'.
          GS_MEG-RTMSG = '恭喜您!设备台账创建成功!!!'." && EXT_NUMBER.
          GS_MEG-EQUNR = EXT_NUMBER.
          GS_MEG-ZOANO  = GS_DATA-ZOANO.
          GS_MEG-ZOALNO = GS_DATA-ZOALNO.
          APPEND GS_MEG TO GT_MEG.
          CLEAR:GS_MEG.
          ZFMPARAVALSAVE2 'R'.
          " EXIT.
        ELSE.
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          GS_MEG-RTYPE = 'S'.
          GS_MEG-RTMSG = '恭喜您!设备台账创建成功!!!,功能位置安装失败!!' && RETURN-MESSAGE." && EXT_NUMBER .
          GS_MEG-EQUNR = EXT_NUMBER.
          GS_MEG-ZOANO  = GS_DATA-ZOANO.
          GS_MEG-ZOALNO = GS_DATA-ZOALNO.
          APPEND GS_MEG TO GT_MEG.
          CLEAR:GS_MEG.
          ZFMPARAVALSAVE2 'R'.
          "EXIT.
        ENDIF.
      ENDIF.
    ENDLOOP.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值