【第13期】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选 2023年10月发布原创
金蝶云社区-OUT_MAN
OUT_MAN
57人赞赏了该文章 691次浏览 未经作者许可,禁止转载编辑于2024年02月05日 10:24:24
封面

各位社区的小伙伴们,大家好,我是  版主 OUT_MAN


在金蝶云·星空-协同开发产品应用中,你需要了解的典型/热门问答都在这里!  

本帖每月持续更新,欢迎小伙伴们点赞,收藏本帖,CTRL+F关键词搜索,以便随时查看、扩充知识哟



【第13期】

  更新日期:2023-10


1、 AfterExecuteOperationTransaction 中如何获取生产订单的 FID

问题描述:
这是一个注册到审核按钮下的插件,点击审核按钮之后,继续执行我上面的代码,首先需要点获得生产订单的FID,这一步就卡住了。

image.png

解决方案:

foreach (DynamicObject entity in e.DataEntitys)

{   //如果不为空,开始循环

if (entity != null) 

{

//获取单据内码

long id = Convert.ToInt32(entity["id"]);

}

}

image.png

问题来源:https://vip.kingdee.com/link/s/lQ4ft         


2、 webapi 如何查看所有物料?

问题描述:
webapi 如何查看所有物料?怎么写 json 语句能查看所有物料信息?或者用 for 循环吗? 用循环也需要提前知道物料编码吧? 怎么得到物料编码呢?

image.png

解决方案:

用单据查询接口:Limit设置为0查所有

{

    "FormId": "BD_MATERIAL",

    "FieldKeys": "FNumber",

    "FilterString": [],

    "OrderString": "",

    "TopRowCount": 0,

    "StartRow": 0,

    "Limit": 0,

    "SubSystemId": ""

}

image.png

问题来源:https://vip.kingdee.com/link/s/lQ4lf 


3、 求一份科目余额表的sql,我取出来和前台对不上。

问题描述:
求一份科目余额表的sql,我取出来和前台对不上

解决方案:

科目余额表过滤框有个是否包含未过账,如果只关联科目余额表只会有过账的数据,要包含未过账要从凭证取然后拼接起来

详细SQL语句:https://vip.kingdee.com/link/s/lQ4Z1 

image.png

问题来源:https://vip.kingdee.com/link/s/lQ4Ze 



4、 webapi单据查询,字段key集合传什么?

问题描述:
以这个为例,假设我要查询的字段在表头要怎么使用,如果在明细表要怎么使用,如果既有表头字段又有明细字段怎么使用?

image.png

解决方案:

官方已经告诉你答案了,看我粗红框框起来的部分。

image.png

1.如果你不明白什么是Key。

答:就是你在BOSIDE中看到的字段的标识,标识就是Key。


2.假设我要查询的字段在表头要怎么使用?

答:直接把你要查询的单据头字段的标识放进去,多个字段用英文逗号分隔。


3.如果在明细表要怎么使用?

答:你想问,查询单据体的字段,怎么传值。其实,上面截图中,粗红框框起来的部分,已经告诉你怎么用了,请仔细阅读理解一下。一言以蔽之,就是单据体标识_单据体字段标识,以下我举个例子,进项费用发票的单据体标识是FSALEEXINVENTRY,单据体的源单类型字段的标识是FSRCBILLTYPEID,那么就是传FSALEEXINVENTRY_FSRCBILLTYPEID

image.png

image.png


4.既有表头字段又有明细字段怎么使用?

答:跟第2点的回答一模一样,直接把你要查询的字段的标识放进去,多个字段用英文逗号分隔。单据体字段是单据体标识_单据体字段标识,单据头字段是字段标识。查询出来的效果类似于SQL语句查询,如果你的单据体有两行数据,那么单据头数据也会跟着重复两行。其实,这个接口,就是SQL查询,金蝶只是把你传过的字段标识转成SQL查询罢了。

问题来源:https://vip.kingdee.com/link/s/lQ47l  


5、 业务单据启用了审批流,可云之家移动审批,客户一次性提交了多条数据,PC端进行了审核,审核完以后,云之家未更新,一直在待审。

问题描述:
业务单据启用了审批流,可云之家移动审批,客户一次性提交了多条数据,PC端进行了审核,审核完以后,云之家未更新,一直在待审批界面未更新;

1697771742090.png1697771769578.png

解决方案:

一、总体排查思路:

  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登录对应的数据中心。

image.png

解决方案:

先说代码,这里需要传入的是单据的完整数据包。而除了保存操作外,其他操作在服务插件中不会加载单据的所有字段,所以这里需要先获取到当前操作的单据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更新 在此之前试过关闭防火墙,关闭杀毒,卸载重装,服务器本机安装,未安装过金蝶软件的电脑安装,全部都是一样的报错,需要能分析日志的高手!

image.png

解决方案:

验证一下服务器本机下载是否能够正常下载?

1、如何不可以,那么重新安装补丁(安装界面点击“高级”,勾选上方重复导入和重复执行);

2、如果可以,那么可能是文件名触发了网络安全软件的拦截功能:

    2.1 咨询网管,调整安全策略。

    2.2 将附件解压后拷贝到客户端安装目录(默认:客户端安装根目录\Kingdee\K3Cloud\DeskClient),重新安装更新。

问题来源:https://vip.kingdee.com/link/s/lQ4yB


8、“软件登录提示“非云星空有效账户”,以及一堆报错【超级紧急!helphelp】

问题描述:

image.png

image.png

解决方案:

管理中心-数据中心列表,双击打开数据中心,填写新的数据库sa密码,同时检查数据库是不是设置了密码策略自动更新。

问题来源:https://vip.kingdee.com/link/s/lQ4d4 

 


我创建了<<协同开发,轻松入门>>的学习清单,推荐给你,和我一起学习交流吧!

<<协同开发,轻松入门>>


查看往期精选:

【汇总】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选


赞 57