K3 BOS应用开发百问百答(V1.0) 下载本文

K/3 BOS应用开发百问百答

【摘要】编码规则丢失

版本:K310.2SP1

问题描述:我们从BOS提取出单据的SQL,运行到其他账套后,发现编码规则丢失,必须重新进行编码规则的设置,请问用sql发布的话,如何才能不丢失编码规则。

【解答】

从BOS导出的模板后请更改脚本中以下语句:

/****** Object:Data 单据编号:ICBillNo Script Date: 2006-01-06 ******/ If not exists (SELECT * FROM ICBillNo WHERE FBillID=700000)

begin INSERT

INTO

ICBillNo(FBillID,FBillName,FPreLetter,FSufLetter,FCurNo,FBillName_CHT,FBillName_EN,FFormat,FPos,FCanAlterBillNo,FCheckAfterSave,FUseBillCodeRule,FDesc) VALUES end

其中“FPreLetter”是单据编码的前缀。

(700000,'

_BOS','','',2,'

700000_BOS','Doc700000_BOS','00000000',700000,0,0,1,'00000002')

【摘要】怎样将旧单改造数据结构的动作打包到Bos安装包中?

版本:K310.2SP2 问题描述:在BOS开发过程中,在原来的表中增加了一列如: poRequest 中增加一个列 ColA 在利用K3BOS打包工具进行打包的时候怎么来把增加一列ColA的动作打在安装包内?

【解答】

旧单改造(以单据类型是否小于200000000判断)的数据结构变更,BOS目前尚未支持,还请手工调整。

范例代码如下:

if not exists (select name from syscolumns where id=(select id from sysobjects where name='poRequest') and name='ColA' )

ALTER TABLE poRequest ADD ColA int not null default(0) GO

【摘要】中间层上发布插件后,客户端的插件dll文件没有被更新。

版本:K3Bos10.2SP2+10.3

问题描述:我在客户处,对编写的插件单独打包,在客户的中间层上发布,但是客户端的插件dll文件没有被更新。客户是2个中间层服务器,发布是在有BOS运行平台的加密狗的中间层上进行的。发布后,客户端又使用了远程组建注册,仍没有效果。

【解答】

1、SP2开始安装包只需要在中间层服务器上安装,客户端自动部署。但SP2有一问题,由于打包过程中将文件进行了压缩,解压后文件日期变化,导致可能客户端更新不到最新的组件,这种情况需要手工更新客户端,V10。3版本此问题已解决。

第7页

K/3 BOS应用开发百问百答

2、元数据、功能部署、插件打在一个包中不会有问题,功能可正确运行。

【摘要】发布的BOS单据如何删除

版本:K310.2SP2+10.3+10.2SP1

问题描述:已经发布的BOS单据如何从主控台中删除?有没有相应的SQL脚本?因为不删除的话在重新发布时系统老是自动增加新的单据编号,容易引起用户混乱。

【解答】

目前主控台和K3BOS都未提供相应功能,通过SQL变通实现,请参考如下SQL代码:

delete from t_dataflowDetailFunc where fsubfuncid in (select FSubFuncID from t_dataflowSubFunc where ffuncname='子功能名称')

delete t_dataflowSubFunc where ffuncname='子功能名称' update t_DataFlowTimeStamp set fname=fname

【摘要】Bos单据发布后主控台没有显示

版本:K310.2SP2+10.3+10.2SP1

问题描述:K3发布时虽然提示发布成功,但主控台仍没有显示

【解答】

打开子系统分组和子系统明细的属性,检查适应帐套类型是否一致。

【摘要】BOS部署客户端智能升级失败

版本:K310.2SP2+K310.3

问题描述:进入主控台报[BOS部署客户端智能升级失败]

【解答】

1、重新导入中间层应用程序EBOBOS组件K3MBOSInstall.dll组件; 2、将应用程序EBOBOS的标示-帐户改为交互式用户。

【摘要】打包应用程序是否有类似的InstallShield的脚本参考

版本:所有版本

问题描述:如何打包应用程序?有一个项目需要发布,如何像开K/3发布补丁一样,自动找到金蝶的安装目录,自动注册组件,在中间层连接帐套,执行SQL语句。是否有类似的InstallShield的脚本参考?

【解答】

请尝试使用BOS里的部署功能(除BOS的插件外,其他客户端和中间层组件也能发布),使用InstallShield比较复杂。《客户化开发知识库v1.0》文档中有使用InstallShield制作安装包的说明。 在最新的BOS V10.2SP中,提供了“一次环境部署,所有客户端自动更新”的功能,即在客户环境中一次部署完毕后,所有客户端登陆中间层时,能自动更新客户端组件,减少了重复安装客户端的工作量。

第8页

K/3 BOS应用开发百问百答

七、其他

【摘要】关于BOS的加密问题

版本:K310.2SP1+0704

问题描述:现在有个客户的版本是10.2+sp1+704,客户自定义了一个应收合同的多级审核,系统自动放送的消息提示需要BOS加密狗,是不是客户需要购买BOS运行平台?

【解答】

客户需要购买BOS运行平台才能使用多级审核的功能。客户需要购买BOS运行平台才能使用多级审核的功能。

【摘要】在使用citrix客户端时,调用出BOS过滤界面后,选择下拉列表后出错 版本:K310.2SP2+10.3+10.2SP1(所有版本)

问题描述:在使用citrix客户端时,调用出BOS过滤界面后,选择下拉列表后出错

【解答】

citrix客户端版本未打SP3的情况下选择16位色进入会造成如上问题,选择256色或打上citrix Sp3后该问题消除。

【摘要】关于Bos已过期问题的处理。

版本:K310.2SP2 or 10.3

问题描述:大家在开发过程中,遇到BOS已过期时怎么办?

【解答】

因BOS V10.2 Sp2加密策略调整,机构原有的通狗中没有BOS设计器,需要单独向总部申请BOS设计器Licenses。另外,为了解决机构在给客户演示过程中不方便的问题,近期(2006年8月份)发布了V10.3补丁,部分放开了发布主控台和在主控台中运行的限制,请大家到技术支持网站查询并下载。

【摘要】中间层插件

版本:K310.2SP1

问题描述:我用金蝶BOS的客户端向导生成一个编辑窗口的客户端,然后自己写了一个中间层,没有中金蝶BOS的中间层向导生成。现在在服务器上运行正常,但在客户端上报组件不能创建。请问为什么?

【解答】

估计你写的中间层组件并不是BOS中间层插件,如果只是一个普通的中间层组件,需要为该组件进行远程组件配置。

如果你的中间层组件并不需要捕获BOS单据中间层事件,请直接使用m_BillInterface.K3Lib.GetData(或UpdateData)执行数据库操作,而不用另外建立中间层组件。

第9页

K/3 BOS应用开发百问百答

【摘要】BOS插件调用工资系统汇总表

版本:K310.1

问题描述:如果使用K/3BOS的插件功能调用工资管理系统的<工资汇总表>?

【解答】

在BOS插件中用以下代码可以调出\工资汇总表 Dim objSrv as Object

Set objSrv = CreateObject(\call objSrv.PAPayRpt(103)

【摘要】bos插件中如果发生任何错误,在k3界面中不会出现任何提示

版本:K310.2SP1+0704+SP2+10.3(所有版本)

问题描述:现在bos插件中如果发生任何错误,在k3界面中不会出现任何提示,这样一旦插件不正常的话无法看出,是否只能在插件中自己捕获错误信息?

【解答】

本来就应该在插件中要做错误处理。开发部项目组也是这样处理的。而且有错误处理也是k3开发的编码规范之一。

【摘要】以Administrator主控台设置刷新其他用户主控台设置 版本:K310.2SP2+10.3+10.2SP1

问题描述:以Administrator主控台设置刷新其他用户主控台设置

【解答】

10.4基础系统部功能点,目前通过SQL变通实现,请参考如下SQL代码: delete t_DataFlowTimeStamp where fname not in ('dataflow16394','dataflow')

insert into t_DataFlowTimeStamp(FName) select 'dataflow'+convert(char(5),t1.FUserID) from t_user t1 where t1.fuserid>16394

delete t_UserTopClass where fuserid>16394 insert

e,FVisible,FUserid) select

FTopClassID,FTopClassName,FTopClassName_EN,FTopClassName_CHT,FIndex,FAcctType,FVisible,t2.FUserid

from t_UserTopClass t1,(select fuserid from t_user where fuserid>16394) t2 where t1.fuserid=16394 update t_DataFlowTimeStamp set fname=fname

into

t_UserTopClass(FTopClassID,FTopClassName,FTopClassName_EN,FTopClassName_CHT,FIndex,FAcctTyp

【摘要】系统帮助文件的挂靠

版本:K310.2SP2+10.3

问题描述:如何使用系统帮助文件的挂靠?

第10页