本文档提供了金蝶云·星空-BOS平台应用中的多个典型/热门问题及其解决方案。其中包括了关于SVN节点错误、Python中DynamicObject转Json的方法、通过仓库负责人做审批流配置、自定义单据物料分组报错、工作流字段必填设置、关闭块操作功能、监控方案消息标题为空原因、移动单据下推插件获取内码问题、BOS设计器登录后开发报错及字段特定条件设置等内容的详细解答和操作步骤。每个问题均附有详细的错误信息、调用堆栈和解决方案,帮助用户快速定位并解决问题。
在金蝶云·星空-BOS平台应用中,你需要了解的典型/热门问答都在这里!
本帖不定期持续更新,欢迎小伙伴们收藏本帖,以便随时查看、扩充知识哟
【第19期】
1、bos签出提示System.Collections.ListDictionaryInternal,扩展没问题
问题描述:
发生时间: 2023-09-20 15:48:02
错误来源: mscorlib
错误信息: The node 'D:\WorkSpace\QZOR\银利达\DataModel_20\XSYFX_5abbbf1b\550c78d5-32e1-4ac8-a0b6-55ed47552f73.2052.dymx' was not found.
===================================================
调用堆栈:
Server stack trace:
at Kingdee.BOS.VersionControl.SVNSCCProvider.svnClient_SvnError(Object sender, SvnErrorEventArgs e)
at SharpSvn.SvnClient.raise_SvnError(Object sender, SvnErrorEventArgs e)
at SharpSvn.SvnClient.OnSvnError(SvnErrorEventArgs e)
at SharpSvn.SvnClient.HandleClientError(SvnErrorEventArgs e)
at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, SvnException error, Object targets)
at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, svn_error_t* error, Object targets)
at SharpSvn.SvnClient.Resolve(String path, SvnAccept choice, SvnResolveArgs args)
at Kingdee.BOS.VersionControl.SVNSCCProvider.Add(String[] items, Boolean immediatelyDo, String comment)
at Kingdee.BOS.VersionControl.SVNSCCProvider.MyRemoteLock(String path)
at Kingdee.BOS.VersionControl.SVNSCCProvider.CheckOut(String[] items)
at Kingdee.BOS.IDE.Core.AbstractNode.CheckOut(IViewManager isv, Boolean recursion, Boolean AutoUpdate)
at Kingdee.BOS.IDE.Designer.BizObjectNode.<>n__FabricatedMethod29(IViewManager , Boolean , Boolean )
at Kingdee.BOS.IDE.Designer.BizObjectNode.<>c__DisplayClass27.<CheckOut>b__26()
at Kingdee.BOS.IDE.Designer.BizObjectNode.<>c__DisplayClass2b.<CallWithTimeout>b__2a()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Action.EndInvoke(IAsyncResult result)
at Kingdee.BOS.IDE.Designer.BizObjectNode.CallWithTimeout(Action action, Int32 timeoutMilliseconds)
at Kingdee.BOS.IDE.Designer.BizObjectNode.CheckOut(IViewManager isv, Boolean recursion, Boolean AutoUpdate)
at Kingdee.BOS.IDE.Core.Utils.CheckOut(AbstractNode abstractNode, IViewManager ivm)
at Kingdee.BOS.IDE.Core.Utils.CheckOutCommand(AbstractNode abstractNode, IViewManager ivm)
at Kingdee.BOS.DomainModelDesigner.ViewManager.MDIParent_BarItemClick(Object sender, BarItemClickArgs e)
at Kingdee.BOS.IDE.frmMain.barManager_ItemClick(Object sender, ItemClickEventArgs e)
错误数据: System.Collections.ListDictionaryInternal
解决方案:
尝试以下操作
刷新SVN节点
移除对象后重新引入
问题来源:
bos签出提示System.Collections.ListDictionaryInternal,扩展没问题 (kingdee.com)
2、python 中 DynamicObjectToJson 应该引用哪个组件
问题描述:
解决方案:
这个方法需要自定义:
private static string DynamicObjectToJson(object obj) { var jsonSerializerProxy = new JsonSerializerProxy(Encoding.UTF8, false); var jsonData = jsonSerializerProxy.Serialize(obj); return jsonData;
}
来源:二开案例.单据插件.DynamicObject转Json (kingdee.com)
编辑于 2023年09月25日 10:18:54
python 中要咋引用呢
增加一个方法
def dynamicobjecttojson(dyobject): jsonSerializerProxy = JsonSerializerProxy(Encoding.UTF8, False) jsonData = jsonSerializerProxy.Serialize(dyobject) return jsonData
PYTHON实现操作中发送POST,GET请求 (kingdee.com)
引用组件
问题来源:
python 中 DynamicObjectToJson 应该引用哪个组件 (kingdee.com)
3、需求是限定仓库来指定审批人,但仓库不是单据头字段,可以通过仓库负责人来做审批流吗?
问题描述:
解决方案:
可以,前提是一张单据只有一个仓库,方式:
单据头增加仓库字段,单据头字段更新单据体仓库,用该字段作为审批流条件
也可以用Python表达式: 流程条件使用单据体字段 (kingdee.com)
问题来源:
需求是限定仓库来指定审批人,但仓库不是单据头字段,可以通过仓库负责人来做审批流吗? (kingdee.com)
4、自定义单据,单据体里有物料分组,然后新单据继承了该单据,保存新的单据时,报错:未设置分组信息存储表
问题描述:
自定义单据,单据体里有物料分组,然后新单据继承了该单据,保存新的单据时,报错:未设置分组信息存储表,但是我加了T_BD_MATERIALGROUP,为什么不行呢?
解决方案:
编辑于 2023年09月26日 14:56:15
问题来源:
自定义单据,单据体里有物料分组,然后新单据继承了该单据,保存新的单据时,报错:未设置分组信息存储表 (kingdee.com)
5、 如何配置工作流,在审核时,某字段才必填,填写后才能审核通过
问题描述:
如何配置工作流,在审核时,某字段必填,填写后才能审核通过
解决方案:
字段先取消审核中锁定、先把字段放出来、在工作流程配置里设置对应节点字段必录就可以了
问题来源:
如何配置工作流,在审核时,某字段才必填,填写后才能审核通过 (kingdee.com)
6、 如何关闭块选择,块复制,块粘贴功能,BOS设置了还是无效!
问题描述:
如何关闭块选择,块复制,块粘贴功能,BOS设置了还是无效!
解决方案:
块选择在参数中禁用,块粘贴在BOS里具体单据明细信息属性里取消勾选
问题来源:
如何关闭块选择,块复制,块粘贴功能,BOS设置了还是无效! (kingdee.com)
7、 监控方案消息标题不能为空的原因
问题描述:
解决方案:
排查下轻应用页签-消息标题
问题来源:
8、 移动单据下推插件
问题描述:
移动单据下推插件,暂存后,怎么获取生成的暂存的下游单据内码
//开始处理下推结果:
//获取下推生成的下游单据数据包
Kingdee.BOS.Orm.DataEntity.DynamicObject[] targetBillObjs = (from p in operationResult.TargetDataEntities select p.DataEntity).ToArray();
if (targetBillObjs.Length == 0)
{
throw new KDBusinessException("", string.Format("由{0}自动下推{1},没有成功生成数据包,自动下推失败!", sourceFormId, targetFormId));
}
// 读取目标单据元数据
var targetBillMeta = MetaDataServiceHelper.Load(this.View.Context, targetFormId) as FormMetadata;
OperateOption saveOption = OperateOption.Create();
//暂存下推数据
var draftResult = BusinessDataServiceHelper.Draft(this.View.Context, targetBillMeta.BusinessInfo, targetBillObjs, saveOption, "draft");
MobileShowParameter paramBill = new MobileShowParameter();
paramBill.FormId = "VBGU_YHMMDH_BOS";// 移动单据标识
paramBill.PKey = targetBillObjs["id"];//??????????
paramBill.Status = OperationStatus.EDIT;//新增为 OperationStatus.ADDNEW
this.View.ShowForm(paramBill);
解决方案:
暂存成功的数据包是已经创建了FID的 解析 draftResult 这个数据集合,获取FID即可,具体的可以调试进来后看下 这个动态对象集合的具体详情,看下是通过属性"ID"还是直接通过字段标识获取
问题来源:
9、 bos设计器可以正常登录,所有项目点击开发都提示未能从程序集“Kingdee.BOS.VersionControl
问题描述:
bos设计器可以正常登录,所有项目点击开发都提示未能从程序集“Kingdee.BOS.VersionControl。有没有大神知道怎么处理?错误详情如下:发生时间: 2023-09-19 17:53:48错误来源: System.Windows.Forms错误信息: 未能从程序集“Kingdee.BOS.VersionControl, Version=8.1.620.12, Culture=neutral, PublicKeyToken=null”中加载类型“Kingdee.BOS.VersionControl.SvnIDEStatus”。===================================================调用堆栈: 在 System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) 在 System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) 在 System.Windows.Forms.Control.Invoke(Delegate method) 在 Kingdee.BOS.WinForm.KDWaitForm.<>c__DisplayClass5.<PrivateDoTask>b__4() 在 Kingdee.BOS.WinForm.KDWaitForm.PrivateDoTask(Form owner, Action act) 在 Kingdee.BOS.WinForm.KDWaitForm.OnShown(EventArgs e) 在 System.Windows.Forms.Form.CallShownEvent() 在 System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) 在 System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) 在 System.Windows.Forms.Control.InvokeMarshaledCallbacks()错误数据: System.Collections.ListDictionaryInternal
解决方案:
环境出问题了,参考下列步骤卸载、重装一下
1、打开下图所示文件夹,找到Kingdee.BOS.DeskClient.Shell
2、双击打开Kingdee.BOS.DeskClient.Shell
3、找到Bos设计器(金蝶云星空集成开发平台)选项,点击“卸载”按钮
4、卸载成功后Bos设计器将会从列表中移除,桌面快捷图标也会被清理
注意:卸载成功后需关闭Kingdee.BOS.DeskClient.Shell程序,否则所有客户端将无法启动
1、登陆云星空后台,点击右上角个人图像弹出下拉选项,根据操作系统位数选择安装相应的Bos设计器
2、安装过程如下,为全自动安装无须任何操作
安装完成后弹出如下所示登陆窗口
并生成相应的桌面快捷图标,至此安装完成
问题来源:
bos设计器可以正常登录,所有项目点击开发都提示未能从程序集“Kingdee.BOS.VersionControl
10、 如何设置:字段 费用金额/100 必须要有余数,如果整除,不允许保存
问题描述:
比如:201/100,允许保存;200/100不允许保存
解决方案:
用%,判断:费用金额%100=0则为整除,不允许保存
问题来源:
如何设置:字段 费用金额/100 必须要有余数,如果整除,不允许保存 (kingdee.com)
11、BOS如何设置:单据体基础资料等于单据头基础资料,当单据体基础资料变动时自动更新并赋值给单据头基础资料?
问题描述:
解决方案:
单据体字段要勾选【即时触发值更新】 然后设置 单据体的实体服务规则。 规则条件:单据体基础资料=单据体基础资料 满足条件执行:单据头基础资料=单据体基础资料
问题来源:
BOS如何设置:单据体基础资料等于单据头基础资料,当单据体基础资料变动时自动更新并赋值给单据头基础资料? (kingdee.com)
12、 客户上的复选框信息如何带到销售订单上去
问题描述:
在客户界面里新增了一个是否含税的复选框,如何能够新建销售订单的时候自动把这个信息带过去(销售订单的是否含税默认勾选了)
解决方案:
做值更新或实体服务规则
前置条件为客户复选框勾选
问题来源:
客户上的复选框信息如何带到销售订单上去 (kingdee.com)
13、 金蝶bos单怎么设置单据编号手工录,客户不要自动生成
问题描述:
金蝶bos单怎么设置单据编号手工录,客户不要自动生成
解决方案:
不要扩展单据 在原单据上直接删除编码规则 扩展单据不允许更改编码规则
问题来源:
金蝶bos单怎么设置单据编号手工录,客户不要自动生成 (kingdee.com)
14、 套打动态字段表达式测试通过,但是打印预览不显示
问题描述:
套打设置动态字段,当分店为空则取客户地址,否则取分店地址。
套打取值设置:
表达式测试:
打印预览时,不管有没有分店,地址均为空:
解决方案:
原因:
你是在订单明细添加动态实体字段。模板上你却在网格添加的文本控件属性对应动态字段,并不在数据表格内的单元格属性对应动态字段。
处理方法:
选中数据表格的第一行,然后插入行,选择“当前行之前”,即在字段名称所在的普通行前插入普通行。然后直接在插入的普通行相应单元格设置动态字段,不要添加文本控件。
这样显示的地址永远是订单明细第一行的地址。
提示:文本控件设置的字段只能是单据头的字段(包括在单据头设置的动态字段),读取不了明细字段。明细字段只能在数据表格内显示。
问题来源:
套打动态字段表达式测试通过,但是打印预览不显示 (kingdee.com)
15、 套打中想设置合计一栏,因为单据没有这个理论重量字段,所以使用的增加实体动态字段,现在需要给增加合计,sum合计该怎么实现
问题描述:
他这个理论重量=长度×数量×结算米重
解决方案:
添加聚合动态字段对动态字段进行求和。示例:
问题来源:
套打中想设置合计一栏,因为单据没有这个理论重量字段,所以使用的增加实体动态字段,现在需要给增加合计,sum合计该怎么实现 (kingdee.com)
查看往期精选:
【汇总】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选 (kingdee.com)
推荐阅读