各位社区的小伙伴们,大家好,我是 版主 OUT_MAN
在金蝶云·星空-协同开发产品应用中,你需要了解的典型/热门问答都在这里!
本帖每月持续更新,欢迎小伙伴们点赞,收藏本帖,CTRL+F关键词搜索,以便随时查看、扩充知识哟
玩转金蝶云社区
【第13期】
更新日期:2023-10
1、 AfterExecuteOperationTransaction 中如何获取生产订单的 FID
问题描述:
这是一个注册到审核按钮下的插件,点击审核按钮之后,继续执行我上面的代码,首先需要点获得生产订单的FID,这一步就卡住了。
解决方案:
foreach (DynamicObject entity in e.DataEntitys)
{ //如果不为空,开始循环
if (entity != null)
{
//获取单据内码
long id = Convert.ToInt32(entity["id"]);
}
}
问题来源:https://vip.kingdee.com/link/s/lQ4ft
2、 webapi 如何查看所有物料?
问题描述:
webapi 如何查看所有物料?怎么写 json 语句能查看所有物料信息?或者用 for 循环吗? 用循环也需要提前知道物料编码吧? 怎么得到物料编码呢?
解决方案:
用单据查询接口:Limit设置为0查所有
{
"FormId": "BD_MATERIAL",
"FieldKeys": "FNumber",
"FilterString": [],
"OrderString": "",
"TopRowCount": 0,
"StartRow": 0,
"Limit": 0,
"SubSystemId": ""
}
问题来源:https://vip.kingdee.com/link/s/lQ4lf
3、 求一份科目余额表的sql,我取出来和前台对不上。
问题描述:
求一份科目余额表的sql,我取出来和前台对不上
解决方案:
科目余额表过滤框有个是否包含未过账,如果只关联科目余额表只会有过账的数据,要包含未过账要从凭证取然后拼接起来
详细SQL语句:https://vip.kingdee.com/link/s/lQ4Z1
问题来源:https://vip.kingdee.com/link/s/lQ4Ze
4、 webapi单据查询,字段key集合传什么?
问题描述:
以这个为例,假设我要查询的字段在表头要怎么使用,如果在明细表要怎么使用,如果既有表头字段又有明细字段怎么使用?
解决方案:
官方已经告诉你答案了,看我粗红框框起来的部分。
1.如果你不明白什么是Key。
答:就是你在BOSIDE中看到的字段的标识,标识就是Key。
2.假设我要查询的字段在表头要怎么使用?
答:直接把你要查询的单据头字段的标识放进去,多个字段用英文逗号分隔。
3.如果在明细表要怎么使用?
答:你想问,查询单据体的字段,怎么传值。其实,上面截图中,粗红框框起来的部分,已经告诉你怎么用了,请仔细阅读理解一下。一言以蔽之,就是单据体标识_单据体字段标识,以下我举个例子,进项费用发票的单据体标识是FSALEEXINVENTRY,单据体的源单类型字段的标识是FSRCBILLTYPEID,那么就是传FSALEEXINVENTRY_FSRCBILLTYPEID
4.既有表头字段又有明细字段怎么使用?
答:跟第2点的回答一模一样,直接把你要查询的字段的标识放进去,多个字段用英文逗号分隔。单据体字段是单据体标识_单据体字段标识,单据头字段是字段标识。查询出来的效果类似于SQL语句查询,如果你的单据体有两行数据,那么单据头数据也会跟着重复两行。其实,这个接口,就是SQL查询,金蝶只是把你传过的字段标识转成SQL查询罢了。
问题来源:https://vip.kingdee.com/link/s/lQ47l
5、 业务单据启用了审批流,可云之家移动审批,客户一次性提交了多条数据,PC端进行了审核,审核完以后,云之家未更新,一直在待审。
问题描述:
业务单据启用了审批流,可云之家移动审批,客户一次性提交了多条数据,PC端进行了审核,审核完以后,云之家未更新,一直在待审批界面未更新;
解决方案:
一、总体排查思路:
1.查看标准集成消息日志。找到对应的待办(可根据时间、消息触发人),并且根据待办找到对应的更新待办转已办的日志。如果日志显示失败,可根据日志记录的错误原因,进行分析;
2.如果日志显示成功或者没有日志,应当排查是否是用户映射丢失,或者是第三方显示没有刷新的问题,又或者是日志和第三方显示的待办不匹配造成了错误的判断。
3.在排查了上述的原因之后,若还是无法判断,可以尝试手动执行,执行之后继续观察待办任务是否更新。
4.日志信息是乱码报错,或提供的信息不足以支撑自助解决问题,或毫无头绪,则提单附上日志。
二、消息日志查询步骤:
1.登录Administrator→【云之家消息日志】(云之家对接业务审批)或【轻应用标准集成日志】(飞书、钉钉或其他第三方软件对接)
2.根据消息接口名称:【云之家待办转已办消息接口】和是否发送成功:【失败】进行筛选
3.筛选出单据后打开,查看失败原因
三、自助解决问题思路参考:
情况一:若只是简单的报错例如:无法连接到服务器、服务器无响应、网络繁忙等原因。可以判断为网络延迟或消息接口拥堵的问题,重新执行该消息即可,见截图操作点击手动执行。
情况二:若是乱码报错,则需提单具体分析,可自行先拿一下报错日志(详情见下图),操作详情与第3步一致,会呈现在报错原因中,复制出来即可。
备注:此操作在金蝶云星空7.7.0.202106版本下操作,适用于金蝶云星空全版本
四、官方文献参考:
https://vip.kingdee.com/link/s/lQ4m5
https://vip.kingdee.com/link/s/lQ4mi
问题来源:https://vip.kingdee.com/link/s/lQ4mw
6、 服务插件调用获取批号按钮写会单据,只能在BeforeDoSaveExecute里面使用,要在审核的服务插件这里用要怎么改?
问题描述:
我在WebAPI中找了好久没找到能返回数据中心列表的WebAPI。我想先获取数据中心列表渲染到页面再使用获取到的数据中心ID登录对应的数据中心。
解决方案:
先说代码,这里需要传入的是单据的完整数据包。而除了保存操作外,其他操作在服务插件中不会加载单据的所有字段,所以这里需要先获取到当前操作的单据ID集合,然后Load数据包,再传入你报错的这个位置使用。
参考代码如下:
public override void AfterExecuteOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterExecuteOperationTransaction e) { base.AfterExecuteOperationTransaction(e); var pkIds = new List<object>(); foreach (var exBillData in e.SelectedRows) { var billObj=exBillData.DataEntity; pkIds.Add(billObj["Id"]); } DynamicObject[] dynamicObjects = BusinessDataServiceHelper.Load(this.Context, pkIds.ToArray(), this.BusinessInfo.GetDynamicObjectType()); ExtendedDataEntitySet extEntitySet = new ExtendedDataEntitySet(); extEntitySet.Parse(dynamicObjects, this.BusinessInfo); //... //最后调用Save saveResult=BusinessDataServiceHelper.Save(this.Context, this.BusinessInfo,dynamicObjects, null, "Save"); }
要注意的是,审核操作是不会自动调用保存的,那么即使生成批号到数据包之后,也不会自动保存到数据库,还要单独调用SAVE才会保存数据到数据库!
另外,批号是必填的,怎么会到审核环节才来生成批号呢?
问题来源:https://vip.kingdee.com/link/s/lQ4x2
7、 BOS设计器下载更新失败,[SVNProvider.dll】下载失败。
问题描述:
更新到版本:V8.0.0.20220922 安装安全加固补丁后,导致BOS设计器和套打设计器用不了,更新报错,详见下图,烦请解决过此问题的老师指导下如何处理,感谢!2023-10-19更新 在此之前试过关闭防火墙,关闭杀毒,卸载重装,服务器本机安装,未安装过金蝶软件的电脑安装,全部都是一样的报错,需要能分析日志的高手!
解决方案:
验证一下服务器本机下载是否能够正常下载?
1、如何不可以,那么重新安装补丁(安装界面点击“高级”,勾选上方重复导入和重复执行);
2、如果可以,那么可能是文件名触发了网络安全软件的拦截功能:
2.1 咨询网管,调整安全策略。
2.2 将附件解压后拷贝到客户端安装目录(默认:客户端安装根目录\Kingdee\K3Cloud\DeskClient),重新安装更新。
问题来源:https://vip.kingdee.com/link/s/lQ4yB
8、“软件登录提示“非云星空有效账户”,以及一堆报错【超级紧急!helphelp】
问题描述:
解决方案:
管理中心-数据中心列表,双击打开数据中心,填写新的数据库sa密码,同时检查数据库是不是设置了密码策略自动更新。
问题来源:https://vip.kingdee.com/link/s/lQ4d4
我创建了<<协同开发,轻松入门>>的学习清单,推荐给你,和我一起学习交流吧!
<<协同开发,轻松入门>>
查看往期精选:
【汇总】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选
推荐阅读