本文是关于金蝶云·星空-BOS平台应用的常见问题及解决方案合集,涉及子单据头使用、PLM物料和BOM审批推送、销售订单流转条件、文本赋值给基础资料、单位字段关联、轻分析功能使用、收款单联系人设置、报表开发去重、采购价目表字段编辑及上下游单据关联等10个具体问题及其详细的解决方案,为平台使用者提供了实用的指导和帮助。
在金蝶云·星空-BOS平台应用中,你需要了解的典型/热门问答都在这里!
本帖不定期持续更新,欢迎小伙伴们收藏本帖,以便随时查看、扩充知识哟
【第31期】
1、子单据头如何使用
问题描述:
如何让分录页签的内容展示在子单据头,如图所示,虽然有子单据头,但是没有页签下的信息,新手小白请大神不吝赐教
解决方案:
参考:
设置要移动的字段实体属性.选择子单据头
问题来源:
2、PLM里物料和BOM审批工作流,怎么增加物料/BOM审核后推送服务
问题描述:
设置PLM里物料和BOM审批工作流,想配置审核后自动推送到ERP, 完成节点新增服务选不到 物料推送服务,服务里怎么增加物料和BOM推送服务?
解决方案:
参考链接最下面文档,审批流 添加下推服务
问题来源:
PLM里物料和BOM审批工作流,怎么增加物料/BOM审核后推送服务 (kingdee.com)
3、 销售订单工作流能不能以销售数量作为流转条件,数量小于1000,a审核,大于1000,b审核
问题描述:
销售订单工作流能不能以销售数量作为流转条件,数量小于1000,a审核,大于1000,b审核
解决方案:
编辑于 2024年09月27日 13:40:28
如果是按照其中有一行小于1000就跑到a审核呢,要加什么条件
单据体中的字段,公式取到的是一个集合,不能直接跟常量进行比较。
需要lambda表达式,对单据体行,进行循环,逐行取基础资料字段值进行比较:
比如,判断应收单单体数量字段大于1000是否有值:
len(filter(lambda x: x. FMATERIALID<>"" and x. F_QHGH_JSCY>1000, FEntityDetail))>0
以上如果有一行是超过1000,则该条件为真。
你将上面公式中,字段按你的要求改下,FEntityDetail是单据体标识
len(filter(lambda x: x. FQty<>''and x.FQty>1000, FSaleOrderEntry))>0我怎么设置的,测试下来一行里面如果有大于1000和小于1000,两条线都能通过,这个要怎么设置呢,F_QHGH_JSCY这个是什么字段?
流程分为几条线,每条线上都要考虑不同情况:
1、大于1000:按上面的公式;
2、小于1000,并且没有大于1000:这里需要两个表示式,用 and 连接
“没有大于1000”表示式:len(filter(lambda x: x. FQty<>''and x.FQty>1000, FSaleOrderEntry))<=0
3、等于1000:参照第1条。
问题来源:
销售订单工作流能不能以销售数量作为流转条件,数量小于1000,a审核,大于1000,b审核 (kingdee.com)
4、文本赋值给基础资料
问题描述:
订单号1是文本字段,订单号2是基础资料字段(在销售订单列表选),怎么设置文本赋值给基础资料?
解决方案:
如果文本字段是基础资料的编码什么的,可以使用GETPKVALUE给基础资料字段赋值。 可以参考这个知识编写:BOS设计器的公式编辑器增加“表达式测试”功能:https://vip.kingdee.com/link/s/li0T3
问题来源:
5、源单数量字段未关联单位
问题描述:
为什么有单位字段却选不到
解决方案:
你这个单位是基础资料属性是选不到的。你得用基础资料字段绑定单位,然后通过值更新从物料里面带出单位基础资料来才能选择。
问题来源:
6、sql 直接账表,可否使用轻分析功能
问题描述:
如果有,则很方便呀。
解决方案:
1、可以在轻分析中做数据准备的时候,直接通过SQL取数作为数据源:
2、选择自定义SQL取数。
3、然后将直接SQL账表的SQL语句做更改,输入到SQL部分,保存数据源。
4、再根据需要搭建轻分析图表或者报表即可。
问题来源:
sql 直接账表,可否使用轻分析功能 (kingdee.com)
7、收款单新增客户联系人字段,联系人怎么设置成可选状态
问题描述:
收款单上联系人字段被锁定了只会带出默认联系人,联系人怎么设置成可选状态
解决方案:
你用的是基础资料属性字段吧;这个肯定不能修改啊;你要用基础资料字段才能选联系人;参考销售订单的客户信息设置;
问题来源:
收款单新增客户联系人字段,联系人怎么设置成可选状态 (kingdee.com)
8、标准报表添加自定义字段开发后,出现重复行,求指教
问题描述:
根据帖子写的代码,采购订单执行明细表增加了订单明细的“项目”字段,改完插件后可以显示该字段,但是明细表出现重复行,原插件是不会这样的,应该是代码写错了,求大神指教
sql拼接代码如下,注:t4是预置基础资料,F_TNCK_BASE_83G是订单明细加的项目字段,F_PDVC_Text_43c是订单执行明细表加的文本字段,用来显示项目名称
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
//创建临时表用于保存自己的数据
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
TempTableName = dbservice.CreateTemporaryTableName(this.Context, 1);
string strTable = TempTableName[0];
//调用基类方法,获取初步的查询结果
base.BuilderReportSqlAndTempTable(filter, strTable);
//对初步的查询结果处理,然后回填到默认的存放查询结果到临时表
StringBuilder sb = new StringBuilder();
sb.AppendFormat(@"/*dialect*/select t1.*,t4.FName as F_PDVC_Text_43c
into {0} from {1} t1 inner join t_PUR_POOrder t2
on t1.FBILLNO = t2.FBILLNO inner join t_PUR_POOrderEntry t3 on t2.FID = T3.FID
left join T_BAS_PREBDTWO_L t4
on t3.F_TNCK_BASE_83G = t4.FID where 1=1", tableName, strTable);
DBUtils.Execute(this.Context, sb.ToString());
}
报表明细重复
解决方案:
参考:
sql脚本可优化两处:去重关键字,多语言表需要指定语言
/*dialect*/select distinct t1.*,t4.FName as F_PDVC_Text_43c
into {0} from {1} t1 inner join t_PUR_POOrder t2
on t1.FBILLNO = t2.FBILLNO inner join t_PUR_POOrderEntry t3 on t2.FID = T3.FID
left join T_BAS_PREBDTWO_L t4
on t3.F_TNCK_BASE_83G = t4.FID and t4.FLOCALEID=2052 --中文简体
where 1=1
问题来源:
标准报表添加自定义字段开发后,出现重复行,求指教 (kingdee.com)
9、 在采购价目表中增加一个字段,然后 这个字段在价目表审核后可编辑保存
问题描述:
在采购价目表中增加一个字段,
此字段通过价格取数也可以取到采购订单上
这样就可以比较实际的采购单价与VPA单价的差异,
现在就是有一个问题,可能会出现采购价目表的单价未发生变化,但是VPA价格变化了,所以就是想能否设置成采购价目表上VPA单价审核后可修改
单据状态下已经这样设置了,但是并不能修改
后面又看了实体服务规则也没有锁定这个字段
单据头上这样设置是可以的,但是单据体上的字段貌似都不行。请各们大神指教,谢谢
解决方案:
单据体上还有个行状态
里面也要审核解锁一下
问题来源:
在采购价目表中增加一个字段,然后 这个字段在价目表审核后可编辑保存 (kingdee.com)
10、上游单据下推生成的下游单据,下游单据关联关系表和下游单据怎么关联
问题描述:
我知道关联关系表和上游是有源单id,那上游单据下推生成的下游单据,下游单据关联关系表和下游单据怎么关联,是下游单据的FID和关联关系表的flinkid吗
解决方案:
参考:
select
t1.FBILLNO --生产订单编号
,t1.FID --生产订单内码
,t2.FENTRYID --生产订单明细内码
,t2.FSEQ --生产订单明细序号
,t4.FENTRYID --生产入库明细内码
,t5.FBILLNO --生产入库单编号
from T_PRD_MO t1---生产订单(上游单据)
inner join T_PRD_MOENTRY t2 on t1.FID=t2.FID---生产订单单据体
inner join T_PRD_INSTOCKENTRY_Lk t3 on t1.FID=t3.FSBILLID and t2.FENTRYID=t3.FSID and t3.FSTABLENAME='T_PRD_MOENTRY' --关联关系表(下游单据)
inner join T_PRD_INSTOCKENTRY t4 on t3.FENTRYID=t4.FENTRYID---生产入库单据体(下游单据)
inner join T_PRD_INSTOCK t5 on t4.FID=t5.FID---生产入库单据头(下游单据)
补充:
1. _Lk表补充:FSBILLID 源单单据内码, FSID 源单单据明细行内码,FSTABLENAME 源单数据表名,FENTRYID 下游单据明细行内码;
2. 下游单据lk表不一定是明细表_lk,具体需要根据bos‘单据关联配置’查看;
问题来源:
上游单据下推生成的下游单据,下游单据关联关系表和下游单据怎么关联 (kingdee.com)
查看往期精选:
【汇总】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选 (kingdee.com)
推荐阅读