T-CODE:IE02修改设备数据(一般数据,状态),通过bapi实现

来源:互联网 发布:工业大数据 难点 编辑:程序博客网 时间:2024/06/14 17:27

IE02中修改设备数据主要分为两个部分:一般数据+状态(系统状态和用户自定义状态)。

一般数据修改BAPI:BAPI_EQUI_CHANGE

状态数据修改BAPI:  STATUS_CHANGE_EXTERN(用户自定义状态)

                                 STATUS_CHANGE_INTERN (系统状态)

上述BAPI 调用之后都需要CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.


重点介绍STATUS_CHANGE_EXTERN用法

CALL FUNCTION 'STATUS_CHANGE_EXTERN'
            EXPORTING
              objnr               = lv_objnr
              user_status         = lv_estat
              set_inact           = ''
            EXCEPTIONS
              object_not_found    = 1
              status_inconsistent = 2
              status_not_allowed  = 3
              OTHERS              = 4.

lv_objnr获取逻辑:SELECT SINGLE objnr INTO lv_objnr FROM equi WHERE equnr = lv_equnr."Equipment no.;

lv_estat对应TJ30-ESATA值;

参数set_inact很重要,当set_inact = ''时,可以更新设备对应的自定义状态为选择状态(X)并且不会删除原本的选定状态;set_inact = 'X' 无法更新设备自定义状态为选择状态或删除已经选定状态('')。如下示例:


对应上述的两种更新场景如下:

1:追加选定状态‘INIT’,即选定状态=ESD+INIT;

set_inact = ''

2:只选定‘INIT’,即要删除ESD的选定状态并选定INIT,选定状态=INIT;

需要做两次次操作:第一次选择INIT时:set_inact = ''

第二次删除ESD时:set_inact = 'X'


参考链接:https://archive.sap.com/discussions/thread/1151227




0 0
原创粉丝点击