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

本文详细介绍了在SAP系统中如何使用BAPI 'STATUS_CHANGE_EXTERN'来更改设备的用户自定义状态,包括如何设置关键参数set_inact以实现不同场景的状态更新。
,通过bapi实现&spm=1001.2101.3001.5002&articleId=53006267&d=1&t=3&u=9f4cde0ac055484f8ab6bd8bd69b8dd1)
5560

被折叠的 条评论
为什么被折叠?



