生产入库多辅助单位问题
860次浏览
编辑于2017年12月22日 22:30:22
A物料启用了辅助计量单位 箱(25包)
在生产入库时,部分装箱按照 箱(25包)入库
另外一部分需要按照另一规格 箱(30包)入库,但是辅助单位并不支持修改;
手工放开修改,报错信息如下:
发生时间: 2017-12-22 10:11:03
错误编号: BOS_ExecuteNonQuery
错误信息: 不能在具有唯一索引“IDX_STK_INVENTORY_CLUST”的对象“dbo.T_STK_INVENTORY”中插入重复键的行。重复键值为 (152488_1_103099BD_KeeperOrg1BD_OwnerOrg1_0_0_10000_0_0,, , , )。
语句已终止。
Sql语句: INSERT INTO T_STK_INVENTORY (FID, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FMATERIALID, FSECUNITID, FOBJECTTYPEID, FISEFFECTIVED) SELECT IT.FINVENTORYID, IT.FSTOCKORGID, IT.FKEEPERTYPEID, IT.FKEEPERID, IT.FOWNERTYPEID, IT.FOWNERID, IT.FSTOCKID, IT.FSTOCKLOCID, IT.FAUXPROPID, IT.FSTOCKSTATUSID, IT.FLOT, IT.FBOMID, IT.FMTONO, IT.FPROJECTNO, IT.FPRODUCEDATE, IT.FEXPIRYDATE, IT.FBASEUNITID, IT.FSTOCKUNITID, IT.FMATERIALID, IT.FSECUNITID, 'STK_Inventory', '0' FROM (SELECT MIN(FINVENTORYID) finventoryid, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FMATERIALID, FSECUNITID, FCOMBINEID FROM T_STK_PREINVDIMENSION GROUP BY FMATERIALID, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FSECUNITID, FCOMBINEID) it INNER JOIN (SELECT DISTINCT FCOMBINEID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE FROM T_STK_PREINVDIMENSION WHERE FTRANID = @TranId) it2 ON ((((IT.FCOMBINEID = IT2.FCOMBINEID AND IT.FMTONO = IT2.FMTONO) AND IT.FPROJECTNO = IT2.FPROJECTNO) AND ISNULL(IT.FPRODUCEDATE, @NullDefDate1) = ISNULL(IT2.FPRODUCEDATE, @NullDefDate2)) AND ISNULL(IT.FEXPIRYDATE, @NullDefDate3) = ISNULL(IT2.FEXPIRYDATE, @NullDefDate4)) WHERE NOT EXISTS (SELECT 1 FROM T_STK_INVENTORY IT3 WHERE (((((((IT.FCOMBINEID = IT3.FCOMBINEID AND IT.FMTONO = IT3.FMTONO) AND IT.FPROJECTNO = IT3.FPROJECTNO) AND ISNULL(IT.FPRODUCEDATE, @NullDefDate5) = ISNULL(IT3.FPRODUCEDATE, @NullDefDate6)) AND ISNULL(IT.FEXPIRYDATE, @NullDefDate7) = ISNULL(IT3.FEXPIRYDATE, @NullDefDate8)) AND IT.FBASEUNITID = IT3.FBASEUNITID) AND IT.FSTOCKUNITID = IT3.FSTOCKUNITID) AND IT.FSECUNITID = IT3.FSECUNITID))
===================================================
在生产入库时,部分装箱按照 箱(25包)入库
另外一部分需要按照另一规格 箱(30包)入库,但是辅助单位并不支持修改;
手工放开修改,报错信息如下:
发生时间: 2017-12-22 10:11:03
错误编号: BOS_ExecuteNonQuery
错误信息: 不能在具有唯一索引“IDX_STK_INVENTORY_CLUST”的对象“dbo.T_STK_INVENTORY”中插入重复键的行。重复键值为 (152488_1_103099BD_KeeperOrg1BD_OwnerOrg1_0_0_10000_0_0,
语句已终止。
Sql语句: INSERT INTO T_STK_INVENTORY (FID, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FMATERIALID, FSECUNITID, FOBJECTTYPEID, FISEFFECTIVED) SELECT IT.FINVENTORYID, IT.FSTOCKORGID, IT.FKEEPERTYPEID, IT.FKEEPERID, IT.FOWNERTYPEID, IT.FOWNERID, IT.FSTOCKID, IT.FSTOCKLOCID, IT.FAUXPROPID, IT.FSTOCKSTATUSID, IT.FLOT, IT.FBOMID, IT.FMTONO, IT.FPROJECTNO, IT.FPRODUCEDATE, IT.FEXPIRYDATE, IT.FBASEUNITID, IT.FSTOCKUNITID, IT.FMATERIALID, IT.FSECUNITID, 'STK_Inventory', '0' FROM (SELECT MIN(FINVENTORYID) finventoryid, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FMATERIALID, FSECUNITID, FCOMBINEID FROM T_STK_PREINVDIMENSION GROUP BY FMATERIALID, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FSECUNITID, FCOMBINEID) it INNER JOIN (SELECT DISTINCT FCOMBINEID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE FROM T_STK_PREINVDIMENSION WHERE FTRANID = @TranId) it2 ON ((((IT.FCOMBINEID = IT2.FCOMBINEID AND IT.FMTONO = IT2.FMTONO) AND IT.FPROJECTNO = IT2.FPROJECTNO) AND ISNULL(IT.FPRODUCEDATE, @NullDefDate1) = ISNULL(IT2.FPRODUCEDATE, @NullDefDate2)) AND ISNULL(IT.FEXPIRYDATE, @NullDefDate3) = ISNULL(IT2.FEXPIRYDATE, @NullDefDate4)) WHERE NOT EXISTS (SELECT 1 FROM T_STK_INVENTORY IT3 WHERE (((((((IT.FCOMBINEID = IT3.FCOMBINEID AND IT.FMTONO = IT3.FMTONO) AND IT.FPROJECTNO = IT3.FPROJECTNO) AND ISNULL(IT.FPRODUCEDATE, @NullDefDate5) = ISNULL(IT3.FPRODUCEDATE, @NullDefDate6)) AND ISNULL(IT.FEXPIRYDATE, @NullDefDate7) = ISNULL(IT3.FEXPIRYDATE, @NullDefDate8)) AND IT.FBASEUNITID = IT3.FBASEUNITID) AND IT.FSTOCKUNITID = IT3.FSTOCKUNITID) AND IT.FSECUNITID = IT3.FSECUNITID))
===================================================
推荐阅读