库存管理系统已经启用,库存更新方式的修改(批量修改所有库存组织)原创
金蝶云社区-云端迈步
云端迈步
8人赞赏了该文章 3,512次浏览 未经作者许可,禁止转载编辑于2021年01月11日 08:51:38

问题:库存管理系统已经启用,库存的更新方式的修改默认是锁定了不允许修改的

如果要修改 ,需要通过SQL


库存更新方式,有两个选项,一个是审核时,另一个是保存时。


前提】:要对库存更新方式进行修改,首先要把出入库类型的单据,包括调拨、退货、组装拆卸单据等先审核掉,再进行修改。否则那些保存、审核中、重新审核的单据对库存的影响会发生异常。


操作人员最好具备一定的SQL知识


本文特别适合那种组织机构比较多的环境,可以执行SQL进行批量修改,只需要执行一次


注意】:改动后台数据有风险,请先在测试环境验证无误后再到正式环境执行!

由于“库存更新方式”参数是以XML格式的文本保存在数据库中,不能像普通文本一样进行UPDATE,本文采取了游标来操作SQL对XML内容进行修改



以下是示例代码:(已在蓝海环境验证,具体的生产环境可能存在XML字段内容或顺序差异,请先在测试环境验证)

--先备份表 T_BAS_SysParameter ,很重要

select * into T_BAS_SysParameterbak0721 from T_BAS_SysParameter 


-- 以下SQL段(所有库存组织)库存更新方式:改为“保存时”

declare @xml  xml

declare @forgid int

declare syschkorsave cursor for

select forgid  from T_BAS_SysParameter where FParameterObjId=N'STK_StockParameter' 

open syschkorsave 

fetch next from syschkorsave into @forgid 

while @@fetch_status = 0

begin

select @xml=FPARAMETERS from T_BAS_SysParameter where FParameterObjId=N'STK_StockParameter' and forgid=@forgid

set @xml.modify('replace value of (/STKStockParameter/UpdateStockPoint/text())[1] with "1"')    -- 保存时1

UPDATE T_BAS_SysParameter SET FPARAMETERS= @xml Where FParameterObjId=N'STK_StockParameter' and forgid=@forgid

fetch next from syschkorsave   into @forgid

end

CLOSE syschkorsave

DEALLOCATE syschkorsave

-------以上SQL段,库存方式改为保存时


==============


-- 以下SQL段:(所有库存组织)库存更新方式:改为“审核时”


declare @xml  xml

declare @forgid int

declare syschkorchk cursor for

select forgid  from T_BAS_SysParameter where FParameterObjId=N'STK_StockParameter' 

open syschkorchk 

fetch next from syschkorchk into @forgid 

while @@fetch_status = 0

begin

select @xml=FPARAMETERS from T_BAS_SysParameter where FParameterObjId=N'STK_StockParameter' and forgid=@forgid

set @xml.modify('replace value of (/STKStockParameter/UpdateStockPoint/text())[1] with "2"')  --审核时2

UPDATE T_BAS_SysParameter SET FPARAMETERS= @xml Where FParameterObjId=N'STK_StockParameter' and forgid=@forgid

 fetch next from syschkorchk into @forgid

end

CLOSE syschkorchk

DEALLOCATE syschkorchk


-----以上SQL,(所有库存组织)库存更新方式:改为“审核时”


改完以后,

仍需要 重启IIS服务器,

或者: 在库存管理系统参数设置界面   点击“保存”按钮 新的参数才生效,如下图


image.png


赞 8