本文是关于金蝶云·星空-BOS平台应用的热门问题解答合集,涵盖查询关账后库存、审批流高级启动条件设置、单据唯一标识获取、保存校验问题、即时库存明细扩展、套打设置、Python处理多选下拉列表、表单保存校验、选单默认转换规则、收款条件预收比例计算错误、单据转换关联未设定、基础资料级联过滤、生产入库计算、工作流审批绕过、单据发布、物料编码分组字段自动获取、数据库字段删除、收款单字段显示控制、物料模糊查询设置、单据类型首选项配置、提示框内容配置、物料序列号管理默认设置、基础资料赋值等多个方面的问题及解决方案。
在金蝶云·星空-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、新增单据转换,启用提示单据关联未设定
问题描述:
解决方案:
下游单据得先开启这里
又或者单据转换规则不启用这里
但如果你需要联查和反写,就得用第一种方式
问题来源:
新增单据转换,启用提示单据关联未设定 (kingdee.com)
12、 通过基础资料的过滤条件实现级联,不能引用FID实现吗?
问题描述:
业务需求:两个基础资料模块,第一个基础资料选择项目号,第二个基础资料根据项目号带出项目关联的采购合同。 问题:由于项目号基础资料不能引用其FID字段,我现在不能通过传FID作为过滤参数,只能传项目号作为参数过滤。想实现这种操作只能写插件了?
解决方案:
第二个基础资料的过滤里面,用GetValue(第一个基础资料的标识),就可以获取其ID了,然后根据你的需要去组合这个过滤
问题来源:
通过基础资料的过滤条件实现级联,不能引用FID实现吗? (kingdee.com)
13、现在有一个需求:在生产入库的时候物料入库单位是千克,但是物料信息里面维护了物料的毛重,在生产入库的时候能不能
问题描述:
在生产入库的时候物料入库单位是千克,但是物料信息里面维护了物料的毛重,在生产入库的时候能不能,用无聊的千克除以毛重得到数量,现在在生产入库单中如何取到毛重这个字段呢?求各位大神和解答
解决方案:
在单据体添加毛重字段,选物料的基础资料带出来,不想显示出来就隐藏字段,在配置计算规则
问题来源:
现在有一个需求:在生产入库的时候物料入库单位是千克,但是物料信息里面维护了物料的毛重,在生产入库的时候能不能, (kingdee.com)
14、怎么设置指定账号提交的单据不进入工作流审批,由发起人审批
问题描述:
星空标准版-工作流审批,给销售订单配置了审批工作流,如果设置才能实现某个销售员账号提交的单据不进入工作流,而是自己提交自己审核呢?求大佬指教!
刚刚我在提交的开始节点到下一步审批节点之间设置了流转条件,条件为:单据表头上的销售员不为指定销售员名字,但是测试的时候提示流程直接挂起!
解决方案:
问题来源:
怎么设置指定账号提交的单据不进入工作流审批,由发起人审批 (kingdee.com)
15、新增单据发布列表类型怎么发布?
问题描述:
新增单据发布列表类型怎么发布?
解决方案:
问题来源:
16、物料编码选择分组后,增加的文本字段自动获取物料分组编码的第一个值。请问怎么获取?
问题描述:
物料编码选择分组后,增加的文本字段自动获取物料分组编码的第一个值。请问怎么获取?
解决方案:
增加实体服务规则:
问题来源:
物料编码选择分组后,增加的文本字段自动获取物料分组编码的第一个值。请问怎么获取? (kingdee.com)
17、 字段元素删除后,如何同步删除后台数据库表中的对应列?
问题描述:
字段元素删除后,如何同步删除后台数据库表中的对应列?
解决方案:
ALTER TABLE [dbo].[T_SAL_ORDER] DROP CONSTRAINT [DF__T_SAL_ORD__FNOTE__3B2333AA]--删约束
ALTER TABLE T_SAL_ORDER DROP COLUMN FNOTE --删字段
需要自己到数据库删除,如果删除的时候提示有约束可以先删除约束之后再删除字段
编辑于 2023年08月15日 11:16:49
删除约束不会对原数据造成什么影响吧?
不会,这个约束只是对这个字段有影响。
问题来源:
字段元素删除后,如何同步删除后台数据库表中的对应列? (kingdee.com)
18、如何让收款单在不同单据类型下,显示不同的字段?
问题描述:
如何让收款单在不同单据类型下,显示不同的字段?我在收款单单据头上加了一个经办人字段,但只有在保证金收款单单据类型下使用,在其他单据类型下隐藏,而且必须录,如何设置?
解决方案:
设置实体服务规则即可,参考收款单原有的实体服务规则,判断当单据类型为保证金收款单时显示字段,并设置必录,否则隐藏字段
问题来源:
如何让收款单在不同单据类型下,显示不同的字段? (kingdee.com)
19、选择物料,模糊查询时,这个除了有名称以外能不能增加规格信息显示出来?如何设置?
问题描述:
选择物料,模糊查询时,这个除了有名称以外能不能增加规格信息显示出来?如何设置?
解决方案:
admin登录以后单据参数配置里面设置下
问题来源:
选择物料,模糊查询时,这个除了有名称以外能不能增加规格信息显示出来?如何设置? (kingdee.com)
20、将收款单中的单据类型选项的销售收款单(内销)设置成首选项
问题描述:
解决方案:
问题来源:
将收款单中的单据类型选项的销售收款单(内销)设置成首选项 (kingdee.com)
21、请问一下金蝶对应的像这种提示tips框内容是如何配置的?对应要进行代码二开的话应该如何确认?
问题描述:
解决方案:
问题来源:
请问一下金蝶对应的像这种提示tips框内容是如何配置的?对应要进行代码二开的话应该如何确认? (kingdee.com)
22、业务场景:所有自制的物料都用序列号;需求:新增物料,物料属性为自制时,默认开启序列号管理的库存管理,并且为预先生成
问题描述:
业务场景:所有自制的物料都用序列号;需求:新增物料,物料属性为自制时,默认开启序列号管理的库存管理,并且生成方式默认为预先生成,如何设置?
解决方案:
添加物料属性值更新事件:
前提条件: FErpClsID ='2'
值更新事件: FIsSNManage =true; FSNGenerateTime ='2'
出于容错角度(操作人员物料属性字段先选择自制后改成别的)建议再加一条反向的值更新事件:
前提条件: FErpClsID <>'2'
值更新事件: FIsSNManage =false; FSNGenerateTime ='1'
问题来源:
业务场景:所有自制的物料都用序列号;需求:新增物料,物料属性为自制时,默认开启序列号管理的库存管理,并且为预先生成 (kingdee.com)
23、给自定义基础资料赋值时,提示字段属性只读不能赋值。用内码赋值提示没有定义字段引用,要怎么给基础资料赋值呢?
问题描述:
背景:在采购入库单上增加自字义字段员工,员工等于采购员关联的员工,
通过设值更新,出现如下图:
要怎么弄才能实现给员工赋值呢?
解决方案:
如下图:
使用GETPKVALUE函数获取职员编码对应的员工内码赋值给员工基础资料
问题来源:
给自定义基础资料赋值时,提示字段属性只读不能赋值。用内码赋值提示没有定义字段引用,要怎么给基础资料赋值呢? (kingdee.com)
查看往期精选:
【汇总】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选 (kingdee.com)
推荐阅读