/***
描述:
作者:
建立时间:
修改时间:
***/
CREATE proc xxxxx(
@doccode nvarchar(50),--凭证单号
@stcode nvarchar(50), --仓库编号
@userCode nvarchar(50),--操作人
@mytable [WMS_CP_11275] readonly, --扫描的托码表格
@Result nvarchar(200) output)
as
begin
declare @tp_Barcode nvarchar(50)
declare @tp_MatCode nvarchar(50)
declare @tp_WHCode nvarchar(50)
declare @tp_actBoxNums nvarchar(50)
declare @strErrorBarcodeList nvarchar(500)=''
DECLARE My_Cursor CURSOR --定义游标
FOR SELECT * FROM @mytable --查出需要的集合放到游标中
OPEN My_Cursor --打开游标
fetch next from My_Cursor into @tp_Barcode,@tp_MatCode,@tp_WHCode,@tp_actBoxNums
WHILE @@FETCH_STATUS = 0
BEGIN
--在这里做一些逻辑处理
--再做一次数据的验证
if (exists(select * from WMS_CP_Barcode_IM with(nolock) where Barcode=@tp_Barcode and StCode=@stcode and DataState=2 ))
begin
--当满足验证条件时,则进行以下真正的逻辑处理
--1,先更新条码状态信息
update WMS_CP_Barcode_IM set StCode='',WHCode='',DataState=3 where Barcode=@tp_Barcode
--2,再插入条码扫描历史表
Insert into WMS_CP_IO_History(Barcode,ModeType,Form_Id,Doccode,Operator,OperationTime)
values(@tp_Barcode,'-','11-275',@doccode,@userCode,getdate())
end
else
--当验证不通过时,抛一个错误出去
set @strErrorBarcodeList=@strErrorBarcodeList + @tp_Barcode + ','
fetch next from My_Cursor into @tp_Barcode,@tp_MatCode,@tp_WHCode,@tp_actBoxNums
END
CLOSE My_Cursor --关闭游标
DEALLOCATE My_Cursor --释放游标
if (@strErrorBarcodeList<>'')
begin
set @Result=@strErrorBarcodeList
end
else
begin
set @Result='OK'
end
end