因客户系统的序列号未启用库存校验,故很多序列号主数据的库存信息是有问题的
打个比方
物料号A 序列号1 SAP系统中当前在工厂2010 库存地点2010中
但是你现在要去做盘点,发现实际情况是
物料号A 序列号1 SAP系统中当前在工厂2010 库存地点2011中
你去盘点的时候,会报错BS 103 系统状态XXX已激活
那么你为了让盘点正常进行,你要么去做工厂内移库311 或者是修改序列号状态
移库311 我就不多说了
我们这边解决的方案是,修改序列号状态
序列号状态分为系统状态和客户状态
修改的函数分别是: 系统:STATUS_CHANGE_INTERN
客户:STATUS_CHANGE_EXTERN
系统状态对应的表是:TJ02T
客户状态对应的表是:TJ30
DATA:lt_status TYPE STANDARD TABLE OF jstat.
DATA:ls_status TYPE jstat.
DATA:lv_objnr TYPE j_objnr.
lv_objnr = equi-objnr
ls_status-stat = 'I0099'.
APPEND ls_status TO lt_status.
CALL FUNCTION 'STATUS_CHANGE_INTERN'
EXPORTING
* CHECK_ONLY = ' '
* CLIENT = SY-MANDT
objnr = lv_objnr
* ZEILE = ' '
* SET_CHGKZ =
* IMPORTING
* ERROR_OCCURRED =
* OBJECT_NOT_FOUND =
* STATUS_INCONSISTENT =
* STATUS_NOT_ALLOWED =
TABLES
status = lt_status
EXCEPTIONS
object_not_found = 1
status_inconsistent = 2
status_not_allowed = 3
OTHERS = 4.