本文介绍了K3Cloud系统中关于弹性域,特别是仓位和辅助属性的设置、操作及相关问题处理。概述了仓位的定义、相关表说明及数据完整性要求,详细说明了仓位禁用和恢复的流程。针对客户在实际操作中遇到的五类问题,如仓位维度为空导致无法保存、禁用仓位值集后过滤字段仍显示、仓位值集数据异常等问题,给出了具体的解决步骤和SQL脚本。同时,还介绍了辅助属性的相关操作和表格查询方法。
【前言】
目前K3Cloud系统中弹性域相关字段有:辅助属性、仓位。
通过设置界面展示为固定列和弹窗模式。
一般更改相关值后需要清缓存重启iis后生效。
【仓位定义】
【仓位相关表说明】
---仓位值集列表
select * from T_BAS_FLEXVALUES
select * from T_BAS_FLEXVALUES_L
select * FROM T_BAS_FLEXVALUESENTRY
select * from T_BAS_FLEXVALUESENTRY_L
--仓库 (启用仓位后)
select * from t_BD_STOCK
select * from T_BD_STOCKFLEXDETAIL
select * from T_BD_STOCKFLEXITEM
--值集合组合
select * from T_BD_FLEXVALUESCOM
--值使用
select * from T_BAS_FLEXVALUESDETAIL
【仓位禁用说明】
1.仓位值集下仓位值禁用,这里会禁用组合表Com。
反禁用的话需要到仓库下进行选中具体组合值来反禁用。
2.仓库下组合值禁用和反禁用:这里选定组合值保存即可。
【仓位数据完整性】
仓位值集审核时会生成一个新的维度,使用表中会增加一列,同事扩展元数据中也会增加一个节点。
1.数据表:
2.元数据:
【客户问题】
Q1:系统中期初导入部分仓位维度为空的数据,后续出库时选择不到这部分数据,直接粘贴录入保存提示XX维度为空不允许保存。
A:仓库启用的仓位维度都是必录的,单据保存操作有校验是无法保存某个维度为空的数据的,如果已经存在则要跳过这个校验有2中方法
1.录入的时候选择有个有库存的仓位,保存后后台修改为对应的仓位id,审核校对。
2.保存操作上会挂一般XXSave的校验插件,这里面一般是校验辅单位数量、辅助属性、仓位数据录入校验,如果确保可以正确录入这些数据可以暂时反勾选这个插件以跳过仓位校验。
Q2:客户新增某些仓位值集,后续发现没有使用便禁用了,但是单据列表过滤界面还是会存在该仓位值集过滤字段。
A:首先得看是否被仓库引用
1.如果没有被仓库引用,是需要反审核仓位值集,清缓存过滤界面字段才会消失。
2.如果已经被仓库引用,需要先确定该仓库仓位值集没有被单据使用后,
则可以反审核仓库后台删掉对应仓位值集引用,处理完后再反审核仓位值集。
处理表:
[code]UPDATE t_BD_Stock SET FISOPENLOCATION = '0' WHERE FSTOCKID = XXX;
DELETE T_BD_STOCKFLEXDETAIL WHERE FENTRYID =XXXX;
DELETE T_BD_STOCKFLEXITEM WHERE FENTRYID = XXXX;
DELETE T_BD_FLEXVALUESCOM WHERE FSTOCKID = XXX;
Q3:客户发现仓位值集列表中存在已审核的某个维度FF10000X,在对应的使用表不存在此列以及元数据扩展也不存在此节点。
A:目前碰到过的问题是由于客户倒入异常数据的所致。
可以在测试库尝试按照以下步骤解决问题:
1.后台更改这个仓位值集为暂存状态
2.前台保存审核该仓位值集
调整完后测试其相关功能是否正常,无误后再正式环境操作。
Q4:客户发现仓位值集列表中存在多个已审核的相同维度FF10000X,在对应的使用表存在此列以及元数据扩展也存在此节点。
A:目前碰到过的是由于仓位值复制功能导致,最新补丁(07月20号)已经修复。
可以在测试库尝试按照以下步骤解决问题:
假如存在2个FF100005:编码10(FF100005)、编码11(FF100005)
1.首先在使用值表根据重复维度key的值来确定哪个维度是正式存在的。--- 确定使用了仓位值集10
2.修改相同维度FF10000X其他值集合key为一个新的维度key。--- 修改编码11为F100006
1.修改新的维度key为暂存状态-。--- 修改编码11为暂存
2.前台保存审核该仓位值集。--- 修改编码11为暂存
注意:如果前台直接反审核编码11(FF100005),是会使得原使用表的F100005被删导致数据丢失。
如果不小心使用反审核导致数据丢失,则需要从备份库才能中恢复数据过来了。
Q5:仓库启用仓位后添加相关仓位保存报错:提示“NOT SUPPORT DATATYPE”。
原因:使用的仓位值集未生成对应的维度数据没有对应的FFLEXNUMBER[code]/*原因:仓位值集数据异常 仓位值集 CW04、01 未生成对应的维度数据,同时已存在的维度数据又有部分异常
分析账套中:引用仓位值集 CW04、01 仓库的情况,发现相关仓库均未审核,故可以重新审核仓位值集合
*/
--1.先查下改id的FPACKAGEID是什么然后记录下来第三步用,执行脚本:去掉包标志
UPDATE T_META_OBJECTTYPE SET FPACKAGEID = NULL WHERE FID = 'BD_FLEXVALUESDETAIL_EXTEND'
--2.BOS设计器 手工修改xml 删去 除FF100001、FF100001、FF100001外的节点 注意同步修改外观xml 修改完后 关闭此界面避免影响后续操作
--3.执行脚本:打上包标志
UPDATE T_META_OBJECTTYPE SET FPACKAGEID = 'XXXXXXXXXXXXXXXXXXXXXXX'
WHERE FID = 'BD_FLEXVALUESDETAIL_EXTEND'
--4.执行脚本:异常仓位值集更新为暂存状态
UPDATE T_BAS_FLEXVALUES SET FDOCUMENTSTATUS = 'A' WHERE FID IN (100004,100005)
--5.系统 手工审核仓位值集合
--6.系统 测试仓库是否正常[/code]
【相关问题】
报错:已添加了具有相同键的项(同上述问题Q4)
【相关内容】
弹性域字段-辅助属性
【辅助属性相关说明】
知识分享 - 辅助属性表格介绍
--辅助属性列表
SELECT * FROM T_BD_FLEXAUXPROPERTY
SELECT * FROM T_BD_FLEXAUXPROPERTYENTITY
--物料启用辅助属性
SELECT * FROM T_BD_MATERIALAUXPTY
--物料启用了辅助属性维度各维度的设置值
SELECT * FROM T_BD_AUXPTYVALUE
SELECT * FROM T_BD_AUXPTYVALUEENTITY
--物料启用了辅助属性组合值设置
SELECT * FROM T_BD_AUXPTYVALCOM
SELECT * FROM T_BD_AUXPTYVALCOMENTRY
--单据物料使用辅助属性
SELECT * FROM T_BD_FLEXSITEMDETAILV [/code]
推荐阅读