【第18期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选原创
金蝶云社区-Dave身份
Dave
63人赞赏了该文章 1254次浏览 未经作者许可,禁止转载编辑于2023年10月15日 11:17:59

在金蝶云·星空-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


问题来源

如何查询关账后的库存 (kingdee.com)


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

image.png


解决方案

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、即时库存明细中添加一列安全库存,该如何操作???

问题描述:

image.png


解决方案

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

image.pngimage.png


问题来源

客户需要再即时库存明细中添加一列安全库存,该如何操作??? (kingdee.com)





6、套打抓取某个某个字段,是就打钩,这样要如何设置呢

问题描述:

image.png

解决方案

简单的方式先在单据上配置实体服务规则实现多选框的隐藏或显示,套打配置的字段就自然实现了

参考,BOS设计器实体服务规则应用举例 (kingdee.com)

问题来源

套打抓取某个某个字段,是就打钩,这样要如何设置呢 (kingdee.com)



7、Python如何获取多选下拉列表的值?

问题描述:

法人章是‘C’,财务章是‘E’,只要不选这其中任何一个,条件成立。现在是只要选了其他章,再加上任意上面的一个章,条件也成立了。

image.png

image.png

解决方案

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"
        }
    }
}


001044508023ecb3639a75e91bde7aa.png

 企业版/标准版/BOS平台/BOS运行时


解决方案


实际测试时可以的, 你试试把创建组织带进去!

{
    "NeedUpDateFields": ["FSETTLETYPEID","FRECCONDITIONID"],
    "Model": {
        "FCUSTID": 110461,
        "FCreateOrgId": {
            "FNumber": "100"
        },
 "FUseOrgId": {
            "FNumber": "100"
        },
       "FSETTLETYPEID": {
            "FNumber": "JSFS07_SYS"
        },
        "FRECCONDITIONID": {
            "FNumber": "SKTJ02_SYS"
        }
    }
}

1692935749197.jpg

1692935749208.png


image.png

image.png


问题来源

webapi 保存(修改)无法更新 客户档案的结算方式和收款条件 (kingdee.com)



9、星空8.1,如何设置选单的默认转换规则

问题描述:

收款单选单其他应收单的默认转换规则是其他应收单-收款单,如何设置默认其他应收单-收款单(明细)

解决方案

image.png

问题来源

星空8.1,如何设置选单的默认转换规则 (kingdee.com)



10、计算收款条件预收比例报错“BOSDynamicRow is not iterable ”

问题描述:

在收款条件单据头增加了 预收比例 字段,通过单据体实体服务规则计算 预收比例

现在新增界面报错“BOSDynamicRow is not iterable”,新增数据也不会更新预收比例

但是选单进行表达式测试时预收比例是可以被更新到的

请大佬指导下

image.png

5875a6c4cea601e7853c75ebbec2eed.png


解决方案

这个报错是因为,我们要对单据体的某个字段进行遍历汇总,但是传入表达式上下文中的数据包是当前行的,而不是整个单据体集合的,所以执行该表达式会提示错误说,某某字段无法遍历。

来源文章:二开案例.表达式.表达式中的汇总计算


问题来源

计算收款条件预收比例报错“BOSDynamicRow is not iterable ” (kingdee.com)



11、新增单据转换,启用提示单据关联未设定

问题描述:

image.png

解决方案

下游单据得先开启这里

image.png


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

image.png


但如果你需要联查和反写,就得用第一种方式

问题来源

新增单据转换,启用提示单据关联未设定 (kingdee.com)



12、 通过基础资料的过滤条件实现级联,不能引用FID实现吗?

问题描述:

业务需求:两个基础资料模块,第一个基础资料选择项目号,第二个基础资料根据项目号带出项目关联的采购合同。
问题:由于项目号基础资料不能引用其FID字段,我现在不能通过传FID作为过滤参数,只能传项目号作为参数过滤。想实现这种操作只能写插件了?

解决方案

第二个基础资料的过滤里面,用GetValue(第一个基础资料的标识),就可以获取其ID了,然后根据你的需要去组合这个过滤

image.png

问题来源

通过基础资料的过滤条件实现级联,不能引用FID实现吗? (kingdee.com)



13、现在有一个需求:在生产入库的时候物料入库单位是千克,但是物料信息里面维护了物料的毛重,在生产入库的时候能不能

问题描述:

在生产入库的时候物料入库单位是千克,但是物料信息里面维护了物料的毛重,在生产入库的时候能不能,用无聊的千克除以毛重得到数量,现在在生产入库单中如何取到毛重这个字段呢?求各位大神和解答

image.png

解决方案


image.png

image.png

在单据体添加毛重字段,选物料的基础资料带出来,不想显示出来就隐藏字段,在配置计算规则

image.png


问题来源

现在有一个需求:在生产入库的时候物料入库单位是千克,但是物料信息里面维护了物料的毛重,在生产入库的时候能不能, (kingdee.com)


14、怎么设置指定账号提交的单据不进入工作流审批,由发起人审批

问题描述:

星空标准版-工作流审批,给销售订单配置了审批工作流,如果设置才能实现某个销售员账号提交的单据不进入工作流,而是自己提交自己审核呢?求大佬指教!


刚刚我在提交的开始节点到下一步审批节点之间设置了流转条件,条件为:单据表头上的销售员不为指定销售员名字,但是测试的时候提示流程直接挂起!


解决方案

image.png


问题来源

怎么设置指定账号提交的单据不进入工作流审批,由发起人审批 (kingdee.com)



15、新增单据发布列表类型怎么发布?

问题描述:

新增单据发布列表类型怎么发布?

image.png


解决方案

image.png


问题来源

新增单据发布列表类型怎么发布? (kingdee.com)



16、物料编码选择分组后,增加的文本字段自动获取物料分组编码的第一个值。请问怎么获取?

问题描述:

物料编码选择分组后,增加的文本字段自动获取物料分组编码的第一个值。请问怎么获取?


解决方案

增加实体服务规则:

image.png


问题来源

物料编码选择分组后,增加的文本字段自动获取物料分组编码的第一个值。请问怎么获取? (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、如何让收款单在不同单据类型下,显示不同的字段?

问题描述:

如何让收款单在不同单据类型下,显示不同的字段?我在收款单单据头上加了一个经办人字段,但只有在保证金收款单单据类型下使用,在其他单据类型下隐藏,而且必须录,如何设置?


解决方案

设置实体服务规则即可,参考收款单原有的实体服务规则,判断当单据类型为保证金收款单时显示字段,并设置必录,否则隐藏字段

image.png


问题来源

如何让收款单在不同单据类型下,显示不同的字段? (kingdee.com)



19、选择物料,模糊查询时,这个除了有名称以外能不能增加规格信息显示出来?如何设置?

问题描述:


选择物料,模糊查询时,这个除了有名称以外能不能增加规格信息显示出来?如何设置?

上传图片



解决方案

image.png

admin登录以后单据参数配置里面设置下


问题来源

选择物料,模糊查询时,这个除了有名称以外能不能增加规格信息显示出来?如何设置? (kingdee.com)



20、将收款单中的单据类型选项的销售收款单(内销)设置成首选项

问题描述:

image.png


解决方案

image.png


问题来源

将收款单中的单据类型选项的销售收款单(内销)设置成首选项 (kingdee.com)



21、请问一下金蝶对应的像这种提示tips框内容是如何配置的?对应要进行代码二开的话应该如何确认?

问题描述:

image.png


解决方案

image.png


问题来源

请问一下金蝶对应的像这种提示tips框内容是如何配置的?对应要进行代码二开的话应该如何确认? (kingdee.com)


22、业务场景:所有自制的物料都用序列号;需求:新增物料,物料属性为自制时,默认开启序列号管理的库存管理,并且为预先生成

问题描述:

业务场景:所有自制的物料都用序列号;需求:新增物料,物料属性为自制时,默认开启序列号管理的库存管理,并且生成方式默认为预先生成,如何设置?

上传图片

上传图片




解决方案

添加物料属性值更新事件:

前提条件: FErpClsID ='2'

值更新事件: FIsSNManage =true; FSNGenerateTime ='2'

image.png

出于容错角度(操作人员物料属性字段先选择自制后改成别的)建议再加一条反向的值更新事件:

前提条件: FErpClsID <>'2'

值更新事件: FIsSNManage =false; FSNGenerateTime ='1'


问题来源

业务场景:所有自制的物料都用序列号;需求:新增物料,物料属性为自制时,默认开启序列号管理的库存管理,并且为预先生成 (kingdee.com)



23、给自定义基础资料赋值时,提示字段属性只读不能赋值。用内码赋值提示没有定义字段引用,要怎么给基础资料赋值呢?

问题描述:

背景:在采购入库单上增加自字义字段员工,员工等于采购员关联的员工,

1691331587301.png

通过设值更新,出现如下图:

9945ea6ee6c3e0ec0de127f3037ac26.png

8aca4fa4d3f18f508081e7a7d2b28f2.png


75459989d1a07437331a0572b79c32e.png

452b3d08bd26b870395932fe6764e34.png

要怎么弄才能实现给员工赋值呢?


解决方案

如下图:

使用GETPKVALUE函数获取职员编码对应的员工内码赋值给员工基础资料

image.pngimage.png

问题来源

给自定义基础资料赋值时,提示字段属性只读不能赋值。用内码赋值提示没有定义字段引用,要怎么给基础资料赋值呢? (kingdee.com)


查看往期精选:

【汇总】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选 (kingdee.com)


赞 63