前台可以通过tcode IE02修改设备的状态和其他数据。设备的状态分用户自定义状态和系统状态。
IE02:
也可以通过函数修改: STATUS_CHANGE_EXTERN(用户自定义状态)
STATUS_CHANGE_INTERN (系统状态)
两个函数用法很相似,下面介绍一下STATUS_CHANGE_EXTERN的用法:
1 2 3 4 5 6 7 8 9 10 |
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获取逻辑:
1 2 3 4 |
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'。
以上。
发表评论