【第18期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选

在金蝶云·星空-BOS平台应用中,你需要了解的典型/热门问答都在这里!
本帖不定期持续更新,欢迎小伙伴们收藏本帖,以便随时查看、扩充知识哟
【第18期】
1、 如何查询关账后的库存
问题描述:
需要制作一张类似于物料收发汇总表的sql报表,需要查询月初的即时库存,比如库存已经关账的7月份的,如何查询出6月份期初的数量
解决方案:
获取组织的最大关账日期:
select FORGID,MAX(FCLOSEDATE) FCLOSEDATE from T_STK_CLOSEPROFILE
WHERE FCATEGORY = 'STK' and FORGID IN (查询组织ID)
GROUP BY FORGID,FCATEGORY
获取期间数据:
select j.fname 组织名称,s.fname 仓库,t1.FBalDate 日期,m.fnumber 物料编码,ml.FNAME 物料名称,u.fname 计量单位,FBaseBegQTY 期初数量,FBaseReceiveQty 收入数量,FBaseSendQty 发出数量,FBaseEndQTY 结存数量
from T_STK_INVBAL t1
INNER JOIN t_bd_material m on t1.FMaterialID=m.FMaterialID
INNER JOIN t_bd_material_L ml on m.FMaterialID=ml.FMATERIALID and ml.FLOCALEID = 2052
INNER JOIN t_BD_unit_L u on t1.FBASEUNITID=u.FUNITID
LEFT JOIN T_ORG_ORGANIZATIONS_L AS j ON t1.FStockOrgId = j.FORGID and j.FLOCALEID = 2052
LEFT JOIN t_BD_Stock_L s on t1.FStockId=s.FStockId and s.FLOCALEID = 2052
where t1.FBalDate='查询期间的关账日期' and t1.FStockOrgId =查询组织ID
order by j.fname,m.fnumber,ml.FNAME
问题来源:
2、审批流里面,高级启动条件,想要个用物料的一个下拉列表字段的值是否存在来判断启动条件,应该怎么设置
问题描述:
审批流里面,高级启动条件,想要个用物料的一个下拉列表字段的值是否存在来
判断启动条件,应该怎么设置如何写代码
解决方案:
下面以[采购订单]的工作流为例
如果单据明细里面的物料出现存货类别为“产成品”的时候则启用工作流,如果单据明细里面的物料的存货类别没有“产成品”则走传统审批;
“产成品”的存货类别编码为CHLB05_SYS
[操作步骤]
1、在[流程配置中心]打开单据对应的流程配置,在“启动条件”里面配置高级条件,如下图
条件为len(filter(lambda x:(x.FMaterialId.FCategoryID ['Number']='CHLB05_SYS'),FPOOrderEntry))";0
CHLB05_SYS为存货类别编码,如果要判断其他存货类别修改此编码即可,
FPOOrderEntry为单据体标识,如果在其他单据里面判断,修改此标识即可

2、在BOS采购订单的物料编码需要引用存货类别属性

3、单据体标识查询方式,在BOS对应的单据及对应的页面即可查询到标识

问题来源:
审批流里面,高级启动条件,想要个用物料的一个下拉列表字段的值是否存在来判断启动条件,应该怎么设置 (kingdee.com)
3、获取单据的唯一标识FOBJECTTYPEID
问题描述:
获取单据的唯一标识FOBJECTTYPEID,这个有存储在数据库里吗?
就是上机操作日志里的 FOBJECTTYPEID , 去哪里获取更为准确?~~
物料:BD_MATERIAL
就是T_BAS_BILLTYPE 这个表是单据类型、这个FORMID
解决方案:
select FFORMID, * from T_BF_TABLEDEFINE应该是这个表的FFORMID
问题来源:
获取单据的唯一标识FOBJECTTYPEID (kingdee.com)
4、lambda表达式在保存校验生效,实体服务规则不生效,在实体服务规则中下FXX=FXXandlambda表达式判断生效
问题描述:
lambda表达式在保存校验生效,实体服务规则不生效,在实体服务规则中下FXX=FXXandlambda表达式判断生效,条件在单据头设置的,这个是为什么?
解决方案:
试试在表达式加上FMaterialId(lambda表达式中用到的单据体中字段) != null and,原因是因为在22年9月后的版本中,数据包不再是完整加载,表达式中加上字段名!=null后,运行时会加载该字段到数据包中。
问题来源:
lambda表达式在保存校验生效,实体服务规则不生效,在实体服务规则中下FXX=FXXandlambda表达式判断生效 (kingdee.com)
5、即时库存明细中添加一列安全库存,该如何操作???
问题描述:

解决方案:
可以BOS扩展添加基础资料属性字段,设置对应属性然后就可以查询到:


问题来源:
客户需要再即时库存明细中添加一列安全库存,该如何操作??? (kingdee.com)
6、套打抓取某个某个字段,是就打钩,这样要如何设置呢
问题描述:

解决方案:
简单的方式先在单据上配置实体服务规则实现多选框的隐藏或显示,套打配置的字段就自然实现了
参考,BOS设计器实体服务规则应用举例 (kingdee.com)
问题来源:
套打抓取某个某个字段,是就打钩,这样要如何设置呢 (kingdee.com)
7、Python如何获取多选下拉列表的值?
问题描述:
法人章是‘C’,财务章是‘E’,只要不选这其中任何一个,条件成立。现在是只要选了其他章,再加上任意上面的一个章,条件也成立了。


解决方案:
Python表达式判断需求,很容易实现,按如下修改即可:F_WAPC_MulCombo != null and all(xnot in ['C','E'] for x in F_WAPC_MulCombo.split(','))社区的空格有问题,您可下
问题来源:
Python如何获取多选下拉列表的值? (kingdee.com)
8、新建表单保存校验唯一性失败
问题描述:
OA和ERP对接,OA更新客户档案的结算方式和收款条件,webapi接口提示成功,但是实际没有值,求教高手。
语句如下:
{
"NeedUpDateFields": ["FRECCONDITIONID", "FSETTLETYPEID"],
"NumberSearch": "true",
"Model": {
"FCUSTID": "110461",
"FUseOrgId": {
"FNumber": "100"
},
"FRECCONDITIONID": {
"FNumber": "JSFS07_SYS"
},
"FSETTLETYPEID": {
"FNumber": "SKTJ02_SYS"
}
}
}
解决方案:
实际测试时可以的, 你试试把创建组织带进去!
{
"NeedUpDateFields": ["FSETTLETYPEID","FRECCONDITIONID"],
"Model": {
"FCUSTID": 110461,
"FCreateOrgId": {
"FNumber": "100"
},
"FUseOrgId": {
"FNumber": "100"
},
"FSETTLETYPEID": {
"FNumber": "JSFS07_SYS"
},
"FRECCONDITIONID": {
"FNumber": "SKTJ02_SYS"
}
}
}



问题来源:
webapi 保存(修改)无法更新 客户档案的结算方式和收款条件 (kingdee.com)
9、星空8.1,如何设置选单的默认转换规则
问题描述:
收款单选单其他应收单的默认转换规则是其他应收单-收款单,如何设置默认其他应收单-收款单(明细)
解决方案:

问题来源:
星空8.1,如何设置选单的默认转换规则 (kingdee.com)
10、计算收款条件预收比例报错“BOSDynamicRow is not iterable ”
问题描述:
在收款条件单据头增加了 预收比例 字段,通过单据体实体服务规则计算 预收比例
现在新增界面报错“BOSDynamicRow is not iterable”,新增数据也不会更新预收比例
但是选单进行表达式测试时预收比例是可以被更新到的
请大佬指导下
解决方案:
这个报错是因为,我们要对单据体的某个字段进行遍历汇总,但是传入表达式上下文中的数据包是当前行的,而不是整个单据体集合的,所以执行该表达式会提示错误说,某某字段无法遍历。
来源文章:二开案例.表达式.表达式中的汇总计算
问题来源:
计算收款条件预收比例报错“BOSDynamicRow is not iterable ” (kingdee.com)
11、新增单据转换,启用提示单据关联未设定
问题描述:

解决方案:
下游单据得先开启这里

又或者单据转换规则不启用这里

但如果你需要联查和反写,就得用第一种方式
问题
【第18期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。







