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.
ABAP 创建设备BAPI BAPI_EQUI_CREATE
最新推荐文章于 2024-01-18 19:07:56 发布