金蝶BOS性能测试分析分享
金蝶K3BOS开发平台介绍

3
P3
K/3 BOS解决方案总体结构图
P4
BOS的构成
员 工 供 应 商 客 户 合 作 伙 伴
INTERNET
业 务 基 础 软 件 平 台
第 三 方 应 用
信息门户 业务流程 业务服务 基础平台
金蝶 BOS
应 用 服 务 器
生 命 周 期 管 理
业务建模工具 流程配置工具 数据集成工具 设计开发工具 测试部署工具
P17
部署与发布
主要功能
把业务功能发布至主控台或生
成安装包
客户价值
可以生成主控台菜单,统一访问
的方式
生成的安装包可以部署到其他账
套,实现开发环境与运行环境的 分离
P18
目录
产品简介 业务价值
19
P19
金蝶BOS平台对个人的应用价值
满足企业各层次人员对个性化ERP的需求:(业务需求、功能需求等)
功能菜单 工具栏
工程项目
界面编辑区
属性设置
控件工具箱
P8
可视化、与技术无关的集成开发环境
主要功能
可视化、技术无关的集成开发
子系统管理 工具栏和菜 单
环境
属性定义 丰富的字段 定义
可视化的定义业务单据
客户价值
通过鼠标点击、拖拉等方式创
建新系统,勿须编写程序代码, 所见即所得
P9
基础资料定义
主要功能
数 据 库
5
P5
金蝶K/3 BOS集成开发特性
简单拖拉拽,快捷制作基础资料界面
金蝶K/3 BOS
三大特性
可视化开发,快速设计业务单据界面
图形化配置,轻松搞定多级审核流程
简 单 快 速
优秀的平台bos

优秀的平台-----金蝶BOS金蝶BOS是一个开放的集成与应用平台,是金蝶ERP解决方案、合作伙伴解决方案以及客户定制应用的技术平台。
能够为企业灵活而迅速的设计、构建、实施和执行一套随需应变的ERP系统,并能够与现有的IT基础设施无缝地协同运作。
为不同行业不同企业的不同的应用阶段,构建随需应变的ERP解决方案。
金蝶BOS是什么?金蝶BOS是金蝶ERP的集成与应用平台。
金蝶BOS遵循面向服务的架构体系,是一个面向业务的可视化开发平台;是一个金蝶ERP和第三方应用集成的技术平台。
它有效的解决了ERP应用的最主要矛盾?D?D用户需求个性化和传统ERP软件标准化之间的矛盾。
金蝶BOS与金蝶ERP是什么关系?金蝶ERP是企业管理信息化的全面解决方案,金蝶ERP是基于金蝶BOS构建的。
金蝶ERP满足企业全面业务的标准应用;金蝶BOS确保了企业ERP应用中的个性化需求完美实现。
基于金蝶BOS的金蝶ERP,可以为不同行业不同发展阶段的企业构建灵活的、可扩展的、全面集成的整体解决方案。
金蝶BOS与金蝶ERP关系图金蝶BOS能解决客户的哪些问题?* 解决ERP日益增加的应用复杂度和快速开发/实施的矛盾* 能够快速配置或快速定制业务流程并部署到金蝶ERP中* 为客户提供与金蝶ERP集成的、可升级的、高效的、简单易用的开发工具* 满足企业发展与变化的应用需要基于BOS的金蝶ERP具有什么样的独特优势?* 金蝶ERP蕴涵现代企业管理理念, 融合40万企业最佳管理实践,帮助企业提升信息化管理水平* 金蝶BOS使金蝶ERP如虎添翼,有效解决企业应用需求个性化和传统ERP软件标准僵化之间的矛盾* 基于BOS的金蝶ERP,实施速度快,快速搭建贴身的应用环境,成功率高* 广泛的适应性,可针对不同行业的个性化特色,构建行业应用集成平台* 灵活的可扩展性,伴随企业快速成长,可继承性地扩展企业ERP管理应用* 基于BOS实现企业个性化应用的业务系统升级方便,确保系统扩展平稳过渡* 系统维护本地化,快速响应,不依赖实施服务人员,维护成本低且可控金蝶BOS给企业所带来什么价值?满足企业个性化需求* BOS功能强大配合ERP系统,能够实现企业的行业特性或个性要求;* 满足企业的业务流程变更频繁的需要,随需应变;低成本* 流程配置:根据业务流程而设计,降低企业变革成本与风险;* 简单易用:80%的零代码开发,减低企业的开发成本;* 集成功能:可以集成第三方系统,减少企业重复投资;* 维护简便:可减少企业的维护成本,能够随K/3系统升级;高效率* 快速完成信息系统的构建,缩短开发周期* 快速提升员工的应用水平,降低项目风险使用BOS开发和传统的二次开发有什么共性和区别?BOS开发和传统二次开发都是为了满足企业个性化需求。
金蝶BOS插件调试方法

Step 1:
写好插件,并且编译成为dll.
在编写插件时,你不必从头开始,因为BOS已经为您提供了很好的工具—“BOS插件开发向导”,可以为你生成你的插件的整体代码框架,如下图:
一般情况下你打开VB,新建好工程后,插件向导会出现在你的工具栏上,
如果你的工具栏上看不到的话,可以从VB的菜单“Add-Ins” “Add-In Manager”上进行设置,因为插件向导本身是VB的插件,设置界面如下:
选中“K/3 BOS PlugIns Maker VB AddIn”,将Load Behavior中的前两项选中,如上图,这样,下次你启动VB时就可以在工具栏和菜单栏上看到插件开发向导了。
PS:如果以上都不成功,那么可能是你插件向导的组件没有正确安装或注册,在K3ERP目录下的ADDIN文件夹下找到“K3BOSPLUGINSADDIN.dll”,并用regsvr32重新注册一下即可。
Step 2:
1,在想要调试的地方打好断点,如下图:
2,设置工程的兼容性为二进制兼容,如下图:
3,按下“F5”,出现如下图,点击“确定”即可
Step 3 :
1,在BOS单据中正确配置插件,如下图:
在配置时注意区分插件的类型,如果配置了不正确的类型,那么加载单据时就会报“Automateion错误”
2,保存单据,按“F5”测试单据,在单据上执行相应的操作。
程序在你下的断点处停了下来,这样你就可以进行插件的调试了,如下图:。
金蝶KIS旗舰版V5.0BOS解决方案

④内部公开 请勿外传
P19
金蝶BOS,中小企业技术平台之王 金蝶ERP,快速满足企业的行业特性需求
体验金蝶BOS快速构建个性化应用
④内部公开 请勿外传
P20
金蝶BOS,中小企业技术平台之王
金蝶BOS应用插件清单
序号
标题
标题
1
费用报销管理
渠道、伙伴、二级开 发商为客户提供多层 次的行业个性化应用 集成方案。
财务,物流,制造、 HR等核心模块在BOS 平台上构建。
最终客户可以通过 配置、开发、集成, 快速低成本构建个 性化的ERP系统。
行业应用在核心 产品基础上实现。
④内部公开 请勿外传
P23
金蝶BOS,中小企业技术平台之王 金蝶BOS应用价值解析
新经济时代(市场化、全球化、知识经济)
兼并和收购, 多种管理模 式并存
专业化、产业化
新技术: 3G与电子商务提高
“业务可以想发得展很远,但IT到不了的地方④,内业部公务开 请勿也外传一定到不了生产!”P力3
金蝶BOS,中小企业技术平台之王
企业发展所面对的问题
系统无法根据企业商务进展相应配合改进 (Systems are not changed or adapted
资金交易系统 (Trading)
高变技术革系统风险
(Technical systems)
④内部公开 请勿外传
P4
金蝶BOS,中小企业技术平台之王 信息系统滞后影响企业发展
低效率 高成本 高变革风险
不断放弃原有系统 不断增加新的系统 不断寻找集成方案 不断加大应用成本 ……
市场全球化
企业在快速的增长
金蝶 BOS 打印问题FAQ

EAS打印问题FAQ修订记录:时间作者备注2009-6-24李馥龙创建于BOS6.2集成测试阶段目录1、前言 (3)2、打印预览时内容完整,为什么打印时内容不全(最右边或最下边的部分内容丢失)? (3)3、针式打印机,两边带孔的连续纸张,第一页内容位置正确,第二页开始位置明显向下偏。
使用走纸微调没有效果。
(4)4、喷墨或激光打印机,宽度只够放下A4纸,对于24厘米宽的自定义纸张放不下怎么办? (4)5、打印方向设置成横向时为什么预览内容还是正向的?另外打印机进纸是不是也要横着放? (4)6、A4纸,横向,点打印后打印机上标写[注意]的红灯闪烁,按打印机面板上的开始按钮,内容按纵向输出(造成丢失)。
打印机型号为HP LaserJet5100。
(5)7、电子表格控件(KDSpread控件,Excel模式)调整列宽之后,打印预览内容完整,但打印到纸上,有些内容变成一串“####”。
(5)8、怎样实现双面打印? (5)9、打印时弹出对话框提示“打印中断”,客户端日志client.log文件中可以看到java.awt.print.PrinterException异常。
是什么原因? (6)10、集团统一的套打模板,在不同分公司的打印机上,打印出来的位置不一样。
(6)11、EAS v5.4中,套打预览时可以通过“井”字框拖曳边距,页面设置中也有页边距设置,为什么升级到EAS v6.0之后就没有了? (6)12、集团统一的套打模板,能不能在不同分公司用不同的纸张打印? (7)13、对于陌生的打印问题,是否有万能的终极分析方法? (7)1、前言本文搜集EAS 常见打印问题及解答。
EAS 打印功能的实现(包括序时簿打印、套打等)依赖于BOS 打印框架,打印框架是基于“Java 打印API ”的,受限于JDK 的底层实现,某些细节可能与Windows 常用的打印功能表现不完全一致。
由此而产生的问题,长期困扰实施人员和用户。
金蝶erp实验报告范文

金蝶ERP实验报告范文1. 引言本实验报告旨在对金蝶ERP系统进行测试和评估,以了解其功能和性能。
本报告将重点关注以下几个方面:•金蝶ERP的基本功能和使用方法•金蝶ERP在不同业务场景下的应用能力和灵活性•金蝶ERP的性能和稳定性2. 背景金蝶ERP是一款集成管理软件,广泛应用于企业的财务、人力资源、采购、销售等管理领域。
它具有模块化、易于定制、灵活扩展等特点。
本实验将使用金蝶ERP的最新版本进行测试和评估,以熟悉其功能和性能,并对其进行全面的分析。
3. 实验目标本实验的主要目标是评估金蝶ERP在企业管理中的应用能力,并对其性能进行评估。
具体目标包括:•理解金蝶ERP的基本功能•测试金蝶ERP在财务、人力资源、采购、销售等不同业务场景下的应用能力•评估金蝶ERP的性能和稳定性4. 实验步骤4.1 系统安装与配置首先,需要下载并安装金蝶ERP系统。
在安装过程中,按照安装向导的指示完成系统的安装和配置。
4.2 功能测试接下来,我们将对金蝶ERP的基本功能进行测试。
我们将测试以下几个方面:•财务管理:测试金蝶ERP在财务报表、资金管理、成本控制等方面的功能。
•人力资源管理:测试金蝶ERP在人事管理、薪资管理、绩效管理等方面的功能。
•采购管理:测试金蝶ERP在采购申请、采购订单、供应商管理等方面的功能。
•销售管理:测试金蝶ERP在销售订单、客户管理、产品管理等方面的功能。
4.3 应用能力测试在功能测试完成后,我们将对金蝶ERP在不同业务场景下的应用能力进行测试。
我们将选择几个典型的业务场景,如财务报表生成、人力资源招聘流程、采购订单审批流程和销售订单执行流程,并对系统的应对能力和灵活性进行评估。
4.4 性能与稳定性测试最后,我们将对金蝶ERP的性能和稳定性进行测试。
我们将模拟不同负载下的并发用户数,测试系统的响应时间和并发处理能力。
我们还将测试系统在高并发情况下的稳定性,以评估其可靠性。
5. 结果分析与总结通过测试和评估,我们可以得出以下结论:•金蝶ERP具有较为完善的财务、人力资源、采购、销售等管理功能。
性能测试分析报告

XXX项目性能测试分析报告版本:1.0修订历史记录目录1.引言 (4)1.1编写目的 (4)1.3名词术语 (4)1.4参考资料 (4)2.测试概要 (4)2.1测试组织 (4)2.2测试环境与配置 (5)2.3测试工具 (5)2.4测试范围 (5)2.5测试目的 (6)2.6测试内容 (6)3. 测试结果及统计分析 (6)3.1网站发布页面查询用例测试结果分析 (6)3.2网站注册用例测试结果分析................................................................. 错误!未定义书签。
3.3网站登录用例测试结果分析................................................................. 错误!未定义书签。
3.4前台网站我的项目提交用例测试结果分析......................................... 错误!未定义书签。
3.5前台网站我的投融资意向提交用例测试结果分析............................. 错误!未定义书签。
3.6后台登陆用例测试结果分析................................................................. 错误!未定义书签。
3.7我的项目提交用例测试结果分析......................................................... 错误!未定义书签。
3.8我的投融资意向提交用例测试结果分析............................................. 错误!未定义书签。
3.9项目查询用例测试结果分析................................................................. 错误!未定义书签。
金蝶 BOS互联网基础件平台介绍

1、面向应用的开放性
金蝶BOS使整个业务系统可以通过元数据模型进行展现,以面向业务的方式进行描述和定义。使得应用集成可以在专注在业务逻辑的分析及设计上,应用间接口无需考虑具体的数据存储、通信方式等底层技术细节,简化了应用集成的复杂度。
2、面向伙伴的开放性
金蝶BOS针对模型的定义与维护提供了图形化的集成开发环境。可以让服务商轻松地学习上手并进行面向客户的开发工作。最终使客户获得价值最大化。
2、业务流程集成
业务流程通过工作流管理系统统一定义并实施,企业内的管理制度及流程在一个集成的工作流管理平台上得以实现。
3、系统间集成
基于一个开放的元数据描述模型,其他系统可以非常容易的理解系统的结构,并通过统一的方式与系统进行通信。在通信方式上通过对Web Service的支持,不同系统平台间的系统也能够方便地进行交流。
4、用户访问集成
金蝶BOS支持Web页面的管理与维护,终端用户可以通过统一的浏览器入口对系统进行操纵。而且通过统一的界面管理工具,能够非常方便地将新的界面加入到系统中,以一个统一的方式展现给最终用户。移动用户通过无线应用的访问接口可以使用包括手机、Pocket PC等移动设备访问统一的后台系统。
相应的,软件供应商需要采用一种先进、开放、可靠、可伸缩的互联网应用平台来构建企业的应用系统,以解决日益增加的应用复杂度和快速开发/实施的矛盾,使应用软件产品的通用性与用户需求的个性化有机地协调。这种先进、开放、可靠、可伸缩的互联网应用平台就是商业操作系统(Business Operation System),即BOS。它可以随时构建用户不同的需求,帮助他们快速开发客户型的应用。
5、国际化集成
在这个国际化浪潮席卷而来的时代,企业要面对的是国际化的员工、客户、伙伴及供应商。金蝶BOS在元数据模型中支持可配置的多语言定义及管理,让不同国界的人员能够在同一个系统中工作。并且能够在不影响既有业务的情况下随时加入新的语言支持,轻松地让业务扩展到新的领域。
金蝶BOS开发指南(KDSpread)

⾦蝶BOS开发指南(KDSpread)⾦蝶BOS 开发指南开发指南——————KDSpread KDSpread⽬录1系统概述 (3)1.1产品功能概述 (3)1.2产品特性介绍 (4)2基本概念及应⽤指南 (4)2.1基本概念 (4)2.2应⽤指南 (4)2.2.1实例化KDSpread (4)2.2.2获取表页控制信息 (4)2.2.3保护机制 (5)2.2.4视图缩放和⽹格线 (5)2.2.5获取Range对象 (5)2.2.6融合 (6)2.2.7设置⾏格式 (6)2.2.8设置列格式 (7)2.2.9增加删除⾏列 (7)2.2.10增加删除单元格 (7)2.2.11设置单元格格式 (8)2.2.12设置单元格内容 (8)2.2.13启⽤数据编辑器 (8)2.2.14导⼊导出 (8)2.2.15视图控制 (9)1系统概述Microsoft Excel是最成功的专业软件之⼀,全球⽆数⽤户逐步积累着它的应⽤经验,它的展现和操作模式是业界同类软件的事实标准。
⾦蝶KDSpread控件是商业分析部界⾯组耗时数年制作的类Excel交互⽅式的Java图形控件,它有如下功能:⽀持多表页快速切换,⽀持同时操作多表页⽀持窗⼝拆分和窗格冻结,便于观察和编辑多页数据⽀持细粒度保护机制,⽀持定制的保护策略⽀持视图缩放,垂直⽔平⽹格线是否显⽰等细粒度的界⾯控制⽀持⾏列、单元格格式,条件格式,批注,丰富显⽰效果⽀持数据显⽰和编辑,⽽且可以灵活的更换绘制器(Renderer)和编辑器(Editor)⽀持Undo、Redo⽀持单元格的融合和拆分⽀持查找、替换⽀持多种⽂件格式的导⼊导出⽅式,可以与PDF、Excel等⽂件单向或双向交换数据⽀持打印预览和精确打印、⽤户再分页⽀持图表和嵌⼊式对象⽀持分组汇总、数据筛选⽀持超链接和斜线表头⽀持公式注册和批量取数⽬前KDSpread在如下软件系统中被⼴泛应⽤:预算报表系统合并报表系统;扩展报表系统;部分⼆次开发的模块;1.1产品功能概述KDSpread最⼤程度尊重了客户的Microsoft Excel既有使⽤经验和习惯,提供给客户最熟悉的界⾯展现和操作⽅式,功能涵盖了数据展现、编辑、图表、打印、数据分析、保护、视图控制等,为客户程序员提供了丰富、直观⽽紧凑的接⼝,代码产品经过了EAS530、EAS 540、EAS590、EAS600数个版本的应⽤,功能和稳定性均经受住了客户的考验。
使用BOS过程中常见问题

使⽤BOS过程中常见问题BOS⼯具常见问题集⼀、功能点使⽤问题解答 (2)⼆、环境使⽤类问题解答 (3)三、事件类问题解答 (8)四、发布类问题解答 (8)五、部署类问题解答 (12)六、集成模块----单据转换问题 (13)七、集成模块----权限问题 (14)⼋、集成模块----⼯作流问题 (15)九、⼯作流使⽤问题解答 (16)I、⼯作流快速⼊门部分 (16)II、⼯作流常见问题解答 (30)III、现场常见流程配置 (31)IV、现场常见问题解决⽅案 (38)⼗、集成模块----预警平台问题 (65)⼗⼀、集成模块----报表问题 (65)⼗⼆、集成模块----组织架构 (66)⼗三、代码应⽤问题 (68)⼗四、升级参考步骤 (71)⼗五、版本遗留缺陷 (74)⼀、功能点使⽤问题解答1、业务建模⼯具所定义的单据是怎么调整顺序的?在业务建模⼯具视图选中该单据,菜单【业务单元】→【录⼊顺序】⽤来调整编辑界⾯的输⼊顺序,也可以调整分录字段的显⽰顺序;菜单【业务单元】→【查询顺序】⽤来调整序时簿界⾯的显⽰顺序。
2、⽬前字段修改能修改什么属性?业务建模⼯具⾥不能修改系统定义字段(可以切换到studio视图修改),只能修改⾃定义字段;如果想要修改系统定义字段的显⽰标题,可通过属性⾥的“标签⽂字”进⾏修改;在⾃定义字段未保存前,该字段所对应的所有属性都可以修改;在⾃定义字段保存后,该字段只能修改字段标题,出现需要修改字段除了别名以外的属性的问题,⽐较快速的变通处理⽅法是删掉此字段再重建。
3、BIM中建的枚举只有整型吗?可不可以定义其他类型的枚举?⽬前都默认为String类型处理4、在运⾏时,EditUI界⾯中点击复制并新增时,单据编号(已配置编码规则)同时也会复制过去,⽽不会产⽣新的单据编号,如何解决?请重载setFieldsNull()⽅法,然后把你不想复制的字段set⼀个null值在⾥⾯就可以了5、在我们开发单据中,每个单据都⾃定义了⼀个审核的字段(并没有使⽤框架的审核功能),每张单都需要⽤户⼿⼯审核操作的。
性能测试问题总结

性能测试问题总结在软件开发和系统优化的过程中,性能测试是至关重要的环节。
通过性能测试,我们可以发现系统在处理大量用户请求、高并发场景以及复杂业务逻辑时可能出现的性能瓶颈和问题。
然而,在进行性能测试的过程中,往往会遇到各种各样的挑战和问题。
接下来,我将对常见的性能测试问题进行总结和分析。
一、测试环境问题1、硬件配置不一致在性能测试中,如果测试环境的硬件配置与生产环境存在较大差异,那么测试结果的参考价值就会大打折扣。
例如,生产环境使用的是高性能服务器,而测试环境使用的是配置较低的服务器,可能导致测试结果显示系统性能良好,但在实际生产环境中却出现性能瓶颈。
2、网络环境差异网络环境的不同也会对性能测试结果产生影响。
测试环境中的网络带宽、延迟和丢包率等参数可能与生产环境不同,从而导致测试结果无法真实反映系统在实际网络环境中的性能表现。
3、软件版本不一致测试环境中使用的软件版本与生产环境不一致,可能会引入一些未知的差异。
例如,数据库版本、中间件版本的不同,可能会导致性能表现的差异。
二、测试脚本问题1、脚本逻辑错误性能测试脚本的逻辑如果存在错误,可能会导致测试结果不准确。
例如,没有正确模拟用户的操作流程,或者在脚本中存在重复请求、遗漏关键步骤等问题。
2、参数化不合理在性能测试中,常常需要对一些数据进行参数化,以模拟真实的用户场景。
如果参数化不合理,例如参数取值范围不合理、参数分布不均匀等,可能会导致测试结果无法反映真实的系统性能。
3、关联和断言设置不当脚本中的关联和断言设置不当,可能会导致测试失败或者测试结果不准确。
例如,关联没有正确获取到动态数据,断言设置过于严格或宽松。
三、测试数据问题1、数据量不足如果测试数据量不足,无法模拟真实的业务场景,可能会导致系统在处理大量数据时出现性能问题。
2、数据分布不合理测试数据的分布如果不合理,例如某些数据类型出现的频率过高或过低,可能会影响测试结果的准确性。
3、数据质量问题测试数据中存在错误、重复或不完整的数据,可能会导致系统在处理数据时出现异常,从而影响性能测试结果。
U870 UAP VS K3 10.4 BOS 竞争分析

UAP
BOS
业务处理与工作流之间的异步 不支持多步退回、弃审; 不支持多步退回、弃审; 处理方式、 处理方式、以及事务处理等问 无审批流的进程管理和查审 题较多。 题较多。
产品优势对比三 :表单设计
U870
UAP
BOS
建模与布局分离,结构清晰, 建模与布局分离,结构清晰, 操作互不影响, 操作互不影响,并可以在各自 的设计阶段实现较为复杂的功 能。
U870
UAP
BOS
设计区域层次分明、 设计区域层次分明、各种组件 不支持 完全满足报表设计需求、 完全满足报表设计需求、属性 定义丰富能控制报表的行权限
产品优势对比一 :报表展现、逻辑功能 报表展现、
U870
UAP
BOS
支持图表设计, 支持图表设计,可以设计制作 不支持图表设计功能 出多种风格的图表。 出多种风格的图表。
在BOS中支持老单据模版的修 中支持老单据模版的修 改,但是不能像新单据一样随 意增加任何字段,其只是将原 意增加任何字段, 来的单据修改转移到了BOS中, 来的单据修改转移到了 中 只是形式上的整合, 只是形式上的整合,功能上没 有得到真正的整合。 有得到真正的整合。
产品优势对比三 :表单设计
U870
没有真正意义的工作流设 计平台,只是在BOS里面 计平台,只是在 里面 提供了简单的单据转换流 程定义功能, 程定义功能,以及单据的 多级审批设置, 多级审批设置,还是局限 在审批流范畴之内, 在审批流范畴之内,或简 单的单据上推下拉关系。 单的单据上推下拉关系。
产品优势对比二 :工作流设计器
U870
UAP
BOS
提供了图形化的流程设计工具 多级审核设置功能在 主控制 多级审核设置功能在K3主控制 设计与运统一入口。 台,设计与运统一入口。功能 简单,使用容易。 简单,使用容易。
金蝶BOS学习笔记-java版

} FilterInfo filter=new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("number",this.txtNumber.getText(),CompareType.EQUALS));// 做比较 if(this.editData.getId()!=null){
String id=tblMain.getRow(rows[i]).getCell("id").getValue().toString();//获得id。
TestApportionParaInfo paraInfo=TestApportionParaFactory.getRemoteInstance().getTestApportionPar aInfo(new ObjectUuidPK(id));//通过id获得对象
filter.getFilterItems().add(new FilterItemInfo("id",this.editData.getId(),CompareType.NOTEQUALS));
金蝶EAS-BOS概述

快速搭建企业信息系统应用模型, 快速搭建企业信息系统应用模型,基 于模型驱动架构(MDA) 于模型驱动架构(MDA)的开发模式和 相关的工具, 相关的工具,代码编写量大大减少
扩展性强
企业业务流程变更和调整涉及到 复杂的业务逻辑才需要进行代码编 其他直接通过BOS BOS平台提供的 写 , 其他直接通过 BOS 平台提供的 工具进行调整
系统集成性高
基于J2EE平台架构, 基于J2EE平台架构,支持多种数据 J2EE平台架构 库与操作系统,提供完善的接口组件, 库与操作系统,提供完善的接口组件, 公开除源代码外的所有资料, 公开除源代码外的所有资料,可以快 速同其他应用系统进行集成或实现接 口互连
EAS BOS平台 平台
系统维护性高
面向企业的应用支持, 面向企业的应用支持,大部分维 护工作可以由通过培训的企业用户 自己完成, 自己完成,涉及到代码部分才需要 专业人员介入,因此, 专业人员介入,因此,维护工作量 和代价都相对较小
较高的开发效率和较低的变革成本
21
P21
平台开发为客户带来的价值
差异化需求,80%部分非底层开发,高效率 高性价比,TCO最低 系统平滑升级,风险很小 尊重客户现有知识及管理体系 承认客户的行业经验及优势 继承客户优秀管理成果,先固化后优化 培养客户自己的实施队伍,提升相关人员自身的价 值 互相合作,互相促进
定位
使用先进、开放、可伸缩的技术体系,面向成长型企 业的业务需求,协同合作伙伴拓展管理业务,发展成 为中国管理软件技术平台的标准
3
P3
EAS-BOS的构成 EAS-BOS的构成
员 工 商 应 户 伴 供 客 伙 合 作
业 务 基 础 软 件 平 台
第二节 K3 BOS 详解

无须开发即能实现权限管理,大 大提升个性化业务应用的安全性
P12
版权所有 ©1993-2006 金蝶软件(中国)有限公司
操作管理
主要功能
对BOS基础资料或业务单据的操 作可以进行个性化定义
客户价值
BOS基础资料或单据生成时自动 生成一系列的操作如新增、修改、 删除等,可以重新定义操作的名 称或增加新的操作内容,以满足 特定的业务需求。
审核 流程 定义
单据 流程 定义
报表 定义
插件 开发
部署
发 布
运行已定义好的功能 将已配置信息发布到应用环境中
在K/3可主灵视界活化面的的上定定可义义以检业按斤务角业单色务据配报置表已开发的功能
可视化的定义检斤业务流程
P6
版权所有 ©1993-2006 金蝶软件(中国)有限公司
K/3 BOS的三大产品特性
封装K/3附件服务,若业务对象添加了 此字段类型,其值将自动显示对应业 务对象的附件数量
P28
版权所有 ©1993-2006 金蝶软件(中国)有限公司
业务单据定义-属性定义_字段通用属性1
属性类型 外观控制
属性名 繁体名称 简体名称 英文名称 边框 边框颜色 标题宽度 标题颜色 文本颜色 字体 宽度 高度 上 左
前置字段 可录入
无
是
无
否
无
否
无
否
有字段参与组合 是
无
否
无
否
说明
单据的单据体,可以是单分录,也可 以是多分录。
提供单据编号服务,用户可以设置单 据编号规则及自动填补断号等选项。
业务对象的制单人字段,其值为当前 系统登录用户。
对K/3系统用户信息的封装,如审核人 字段。
金蝶K3 BOS插件开发常见技巧

1、如何在工具栏上添加多级审核的按钮?在m_BillInterface_MenuBarInitialize事件里添加如下代码即可。
Set oTool = m_BillInterface.MenuBar.BOSTools("mnuEditMultiCheck")With oTool.Caption = "多级审核".ToolTipText = "多级审核".Description = "多级审核".BeginGroup = False.ToolPicture = App.Path + "\Checker.bmp".SetPicture 0, vbButtonFaceEnd WithSet oBand = oMenuBar.BOSBands("BandToolBar")oBand.BOSTools.InsertBefore "mnuFilePrint", oTool '将菜单对象插入指定工具栏2、如何在显示一张Bos单据的同时给它赋值?要想在显示Bos单据的同时给它赋值,关键是在显示前要购建m_Billinterface的data包,这样在显示这张同据的时候,程序会解析data包,并将里面的值赋到单据界面上来。
Dim dctData As kfo.DictionaryDim datasrv as objectDim oTableinfo as objectSet DataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")DataSrv.ClassTypeID = lClassTypeID 'lClassTypeID 需要弹出单据的IDSet oTableInfo = DataSrv.TableInfoSet dctData = DataSrv.GetEmptyBill '然后将当前单据数据包中需要的数据填充到dctdata的对应字段' 在以上语句执行后,dctdata(“page2”)里只有一行表结构(即表体只有一行)'赋表头的值dctData("Page1")(oTableinfo("map")("FText"))("FFLD") = m_BillInterface.GetFieldValue("FText")dctData("Page1")(oTableinfo("map")("FDeptID"))("FFLD") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FFLD)dctData("Page1")(oTableinfo("map")("FDeptID"))("FFND") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FFND)dctData("Page1")(oTableinfo("map")("FDeptID"))("FDSP") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FDSP)'赋表体的值Dim oPage2 As ObjectFor i = 1 To m_BillInterface.Data("Page2").UBound - 1Set oPage2 = dctData("Page2")(1).CloneAlldctData("Page2").Add oPage2 '添加到 dcDatadctData("Page2")(i + 1)(oTableinfo("map")("FIndex2"))("FFLD") = i + 1 '更改分录号NextFor i = 1 To m_BillInterface.Data("Page2").UBound'物料 FItemIDdctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FFLD") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFLD)dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FDSP") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FDSP)dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FFND") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFND)'物料名称 fbasepropertydctData("page2")(i)(oTableinfo("map")("fbaseproperty"))("FFLD") = m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFLD)dctData("Page2")(i)(oTableinfo("map")("fbaseproperty"))("FDSP") = m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FDSP)dctData("Page2")(i)(oTableinfo("map")("fbaseproperty"))("FFND") = m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFND)'计量单位 FUnitIDdctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FFLD") = m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FFLD)dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FDSP") = m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FDSP)dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FFND") = m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FFND)'数量 FQtydctData("Page2")(i)(oTableinfo("map")("FQty"))("FFLD") = m_BillInterface.GetFieldValue("fqty", i, Enu_ValueType_FFLD)NextSet obj = CreateObject("K3SingleClassBill.ClassInfoManager")With obj.datasrv = datasrv.ISCheckRight = True.Show , , , dctDataEnd With3、如何在插件中实现选单的功能?调用Bos单据m_BillInterface.BillCtl.DoSelBill lClassTypeID '(原单的ClassTypeID)调用工业单据m_BillInterface.BillCtl.DoSelOldBill lClassTypeID '(原单的ClassTypeID)4、在插件中以新增、修改和查看方式打开另一单据'********************************************'功能:显示BOS单据,显示的方式为新增、修改和浏览'参数:lClassTypeID—显示BOS单据的ID''********************************************Private Sub ShowBill(ByVal lClassTypeID As Long)Dim oDataSrv As ObjectDim oBill As ObjectOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK/3Object("K3ClassTpl.DataSrv") oDataSrv.ClassTypeID = lClassTypeIDSet oBill = CreateObject("K3SingleClassBill.ClassInfoManager")With oBill.DataSrv = oDataSrv.ISNetControl = True.ISCheckRight = True.Show'**********************'Show 参数类型'第一个参数 Optional ByVal lID As Long = 0 ;描述修改或查看的单据ID'第二个参数 Optional ByVal bShowGroup As Boolean = False ;如是基础资料时,是否显示分组'第三个参数 Optional ByVal BillStatus As Long = Enu_BillStatus_New ;显示方式 0—查看;1—新增;2—修改'第四个参数 Optional ByVal dctData As KFO.Dictionary '单据初始值'**********************End WithSet oDataSrv = NothingSet oBill = NothingExit Suberr_ctr:Set oDataSrv = NothingSet oBill = NothingEnd Sub5、显示BOS序时簿并返回选中的值'********************************************'功能:显示BOS序时簿并返回选中的值'参数:lClassTypeID—显示BOS单据的ID''********************************************Private Function ShowListByReturn(ByVal lClassTypeID As Long) As ObjectDim oDataSrv As ObjectDim objLookup As ObjectOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv") oDataSrv.ClassTypeID = lClassTypeIDIf oDataSrv.showfilter ThenSet objLookup = CreateObject("K3ClassLookUp.BillLookUp")objLookup.ClassTypeID = lClassTypeIDSet objLookup.DataSrv = oDataSrvobjLookup.LookupSet ShowListByReturn = objLookup.VectReturnEnd IfSet oDataSrv = NothingSet objLookup = NothingExit Functionerr_ctr:Set oDataSrv = NothingSet objLookup = NothingEnd Function6、如何在序事簿中得到选中行的记录集值?Dim vectSelect as kfo.vectorDim rs as adodb.recordsetSet vectSelect=m_Listinterface.GetSelectedBillInfoSet rs=m_Listinterface.datasrv.GetBillDetail(vectSelect(1)("FID"))7、将当前单据转化为另一单据,并无界面保存数据'********************************************'功能:将当前单据转化为另一单据,并无界面保存数据'参数:lClassTypeID—显示BOS单据的ID'********************************************Private Sub NoUISaveBill(ByVal lClassTypeID As Long)Dim oDataSrv As ObjectDim oTableInfo As ObjectDim oBill As ObjectDim oData As ObjectDim oSrv As ObjectDim oPage2 As ObjectDim i As LongOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv") oDataSrv.ClassTypeID = lClassTypeIDSet oTableInfo = oDataSrv.TableInfoSet oData = oDataSrv.GetEmptyBillFor i = 1 To m_BillInterface.Data("Page2").UBound - 1Set oPage2 = oData("Page2")(1).CloneAlloData("Page2").Add oPage2 '添加到 dcDataoData("Page2")(i + 1)("_-0001_FIndex2")("FFLD") = i + 1 '更改分录号NextFor i = 1 To m_BillInterface.Data("Page2").UBoundoData("Page2")(i)(oTableInfo("map")("FItemID"))("FFLD") =m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FFLD) oData("Page2")(i)(oTableInfo("map")("FItemID"))("FFND") =m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FFND) oData("Page2")(i)(oTableInfo("map")("FItemID"))("FDSP") =m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FDSP)NextSet oSrv = CreateObject("K3MClass.BillUpdate")i = oSrv.Save(MMTS.PropsString, oDataSrv.ClassType, oDataSrv.ClassTypeEntry,oDataSrv.TableInfo, oData, oDataSrv.dctLink)Set oDataSrv = NothingSet oBill = NothingExit Suberr_ctr:MsgBox Err.DescriptionSet oDataSrv = NothingSet oBill = NothingEnd Sub【备注】1、K/3 BOS保存方法Save的参数描述:'Public Function Save(ByVal sDsn As String, _' ByVal dctClassType As KFO.Dictionary, _' ByVal vctClassTypeEntry As KFO.Vector, _' ByVal dctTableinfo As KFO.Dictionary, _' ByRef dctData As KFO.Dictionary, _' ByVal dctLinks As KFO.Dictionary) As Long'/********************************************************************/'/*描述:单据保存'/*参数:'/*@ dctClassType KFO.Dictionary 单据整体信息模板'/*@ dctData KFO.Dictionary 单据数据包'/*@ dctLink KFO.Dictionary 选单关系模板,无选单为Nothing'/*@ dctTableInfo KFO.Dictionary 单据字段模板信息'/*@ sDsn String K/3标准数据库连接串'/*@ vctClassTypeEntry KFO.Vector 单据体模板信息'/*备注:'/********************************************************************/2、使用此方法时插件要添加MMTS。
金蝶云星空+V7.3产品培训_BOS_轻分析

左侧字段列表中可 能未包含用户所需 的所有字段,我们 可以通过公式编辑 器利用函数和运算 符定义基于现有字 段的公式,这被称 为“计算字段”。
14
主题式分析–数据分析
• 拖拽分析 • 创建计算字段 • 添加小计 • 添加总计 • 高级分析(环比、去年同期) • 筛选器 • 图表设置 • 查看数据 • 其它
11
主题式分析–数据分析
• 进入轻分析页面,用户在选择图表 类型后,只需要将一个或多个字段 拖拽到筛选器、行、列、数值区域 等功能区,即可开始数据分析工作。
• 提供丰富的可视化类型,简单拖拽 即可快速生成数据视图。
• 支持创建计算字段,支持添加小计 和总计,支持进行环比、去年同期 等高级分析。
• 支持发布到应用菜单。
行、列功能区存在多个维度字段时, 可对外层分组字段添加小计。
15
主题式分析–数据分析
• 拖拽分析 • 创建计算字段 • 添加小计 • 添加总计 • 高级分析(环比、去年同期) • 筛选器 • 图表设置 • 查看数据 • 其它
所有数据分析均可添加行、列总计,方法为:点击工 具栏〖分析 → 合计 → 显示行总计/显示列总计〗
数据可视、智慧呈现
通过强大的数据可视化引擎,轻分析可以自动根据业务用户的分析意 图,实现数据与图形的高效转换,为用户自动推导和呈现最优的数据 可视化效果。
分析探索、拖拽自如
无需编写艰深的代码,仅通过简单拖拽,就可完成多维透视的图表呈 现;丰富的分析类型结合直观的分析操作,让数据的探索从未如此简 单。
筛选功能区存在 多个筛选条件时, 可设置备选值是 否可联动。
18
主题式分析–数据分析
• 拖拽分析 • 创建计算字段 • 添加小计 • 添加总计 • 高级分析(环比、去年同期) • 筛选器 • 图表设置 • 查看数据 • 其它
金蝶云K3 Cloud BOS二次开发之参数设置

金蝶知识库文档
图-4 权限控制勿勾选
3.1 系统参数开发流程
3.1.1 在 BOSIDE 中绘制界面
步骤 1:打开 K/3BOS 界面,单击工具栏【新建】,弹出【新建向导】窗口,左边新建 类型选择新建【空白对象】或者复制。
此处选择新建,模板列表中选择【系统参数】,业务对象中输入对应的对象名称,单击 【确定】即可。如下图-5 所示。
}
金蝶软件(中国)有限公司 客户服务中心
第 9 页 共 18 页
金蝶知识库文档 finally {
ServiceFactory.CloseService(systemParameterService); } return sysParaObject; }
编写 xml 读取代码获取参数值: 在以上文档中已经讲解了系统参数的数据存储,可以自己通过读取 Fparameters 字段的 值,然后把它复制给一个 XML 对象,通过解析 XML 对象来获取参数。(网络上有很多 XML 解 析的实例,可以参考,这里不再举例)
(' PUR_PURCHASEORDER '是采购订单的标识)如下图-18 所示。
图-18 单据类型参数查询
所有的参数都存放在 FPARASETTINGXML 字段中,这是一个 XML 类型字段,在设置单据 类型参数时,实际上是在向这个 XML 字段添加标签,如下图-19 所示。
金蝶软件(中国)有限公司 客户服务中心
金蝶软件(中国)有限公司 客户服务中心
第 5 页 共 18 页
金蝶知识库文档
图-5 新建系统参数模板
步骤 2:绘制参数界面如下图-6 所示。在界面上添加控件、字段来绘制系统参数界面。
图-6 系统参数绘制界面
金蝶k3软件的实验报告

金蝶k3软件的实验报告金蝶K3软件的实验报告一、引言随着信息技术的不断发展,企业管理软件在现代企业中扮演着重要的角色。
金蝶K3软件作为一款领先的企业管理软件,被广泛应用于各行各业。
本实验旨在对金蝶K3软件进行实际操作和功能测试,以评估其在企业管理中的应用效果。
二、实验目的1. 了解金蝶K3软件的基本功能和特点;2. 掌握金蝶K3软件的操作方法;3. 评估金蝶K3软件在企业管理中的实际应用效果。
三、实验过程1. 安装和配置金蝶K3软件首先,我们下载并安装了金蝶K3软件。
在安装过程中,我们按照提示进行了相应的配置,包括数据库设置、用户权限等。
安装完成后,我们登录了系统,并进行了相关设置。
2. 财务管理功能测试金蝶K3软件提供了强大的财务管理功能,包括会计核算、成本管理、资金管理等。
我们通过创建账套、录入凭证、生成报表等操作,对其财务管理功能进行了测试。
结果显示,金蝶K3软件能够准确地进行财务数据的处理和分析,为企业的财务管理提供了有力支持。
3. 销售管理功能测试金蝶K3软件还提供了完善的销售管理功能,包括订单管理、客户管理、库存管理等。
我们通过创建销售订单、跟踪订单状态、进行库存盘点等操作,对其销售管理功能进行了测试。
结果显示,金蝶K3软件能够高效地进行销售流程的管理和控制,提高了企业的销售效率和客户满意度。
4. 人力资源管理功能测试金蝶K3软件还具备人力资源管理功能,包括员工档案管理、薪资管理、考勤管理等。
我们通过录入员工信息、设置薪资结构、进行考勤记录等操作,对其人力资源管理功能进行了测试。
结果显示,金蝶K3软件能够有效地管理企业的人力资源,提高了人力资源的利用效率和管理水平。
五、实验结论通过本次实验,我们对金蝶K3软件的功能和特点有了更深入的了解。
金蝶K3软件作为一款领先的企业管理软件,具备强大的财务管理、销售管理和人力资源管理功能,能够有效地支持企业的管理工作。
同时,金蝶K3软件的操作简便,界面友好,易于上手。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
金蝶B O S性能测试分析分享Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998金蝶BOS性能测试分析流程目录1.1. 简介最近通过版本的4-5月份集成测试与云平台的性能测试两个案例分析,发现性能测试只定位发现问题的工作方式不利于问题的快速处理,进而错过问题的最佳处理时机,给后续的发版带来很高的风险,4-5月份的集成测试只反馈CPU高消耗的现象与WEB的jprofile分析文档,因开发人员过忙与缺少实际环境而把问题一直耽搁着,这个问题本来在6月1号就发现了,结果到了7月5号迫不得已才组织人员协同分析定位问题,问题定位后也快速解决了问题;而云平台的性能测试我一直跟踪并协助定位性能问题,问题定位后,开发迅速修改代码,整个过程发现的几个重大性能问题都得到了快速的解决,通过对比这两个性能测试案例,得出只有快速定位问题才能高效的解决问题,只反馈问题现象,缺乏足够的依据,开发人员很难快速修复问题。
为了在BOS性能测试过程中快速定位问题以及在调优测试中快速找到性能提升点,特意整理在分析性能问题过程中涉及到的一些工具与方法,以便快速解决问题,本文将从用例分析、问题现象、问题分析、问题定位、辅助工具等方面规范性能问题的分析过程以及工作过程中的输出文档。
1.2. 参考资料2.1. 概述处理任何问题都有一套方法,性能测试分析过程也一样,我们平常测试发现的问题只是问题的表现,我们要透过现象逐步分析到问题的本质,透过本质我们才能快速解决问题,下面我就按经验来整理一下性能问题的分析思路与通用流程。
2.2. 分析思路我们通过一个倒金字塔模型来整理一个分析思路,由上至下逐步聚焦问题,测试过程中首先是会发现问题,发现性能问题后,我们第一步要确认是否是测试用例设计不当而导致的,如果不是我们就要用后续提到的各种工具与方法出具问题分析结果,根据分析数据推断出可能存在的代码可疑点,然后与开发一起如果修改问题。
2.3. 步骤结果输出2.4. 分析流程下图整理一个在性能测试过程中发现性能问题而进行问题定位的分析流程,本流程里不涉及到硬件绝对瓶颈的问题,如磁盘空间不足,另外应用服务器跟数据库服务器的参数都按照产品配置说明进行了正确配置,本流程图只用来指导分析软件本身存在的问题。
3.1. 概述本章节对分析各类问题涉及到的工具进行介绍,在问题分析中,不同的问题都有对应的工具进行辅助分析,选择正确的工具有助于快速定位问题,从而提高问题的处理效率。
3.2. 工具分类介绍一些将从IE、Java、数据库三方面对使用到的工具以及基本使用进行讲解,以此给在性能分析中提供参考3.2.1.HttpWatch3.2.1.1. 工具使用只要打开HttpWatch,然后点击录制,访问IE后,所有的HTTP交互就被录制下来,3.2.1.2. 分析思路通过是否使用catch来判断实际跟服务器起的交互次数,通过响应时间来判断哪个http请求消耗的时间较长,以此来初步判断存在问题的页面3.2.1.3. 分析案例1.问题大连中升项目3个强并发压力测试,发现响应时间比较长,应用服务器CPU消耗过高,能达到60%2.分析通过httpWatch分析http交互过程,重点分析页面,发现该页面每次都要向服务器提交提交60K左右的内容,从提交的内容看出,提交把一大片的HTML代码都提交到WEB SERVER了,而从下面的分析图中看到,一个实际的业务,其实业务本身性能很好,花了秒,而实际花了秒,从这看出性能很差劲,需要优化3.2.2.ThreadDump3.2.2.1. 工具使用1.通过调用EAS门户访问dump工具,访问端口号视具体情况而定,如下2.在打开的界面中分析线程的数量以及线程的调用堆栈3.2.2.2. 分析思路通过分析总线程的数量或某类线程的数量,如果出现的太多,而次数系统运行状况不好,则可以怀疑某类线程调用出现问题,通过线程的调用堆栈,可以推出哪些类的方法存在问题3.2.2.3. 分析案例1.问题金汉斯反馈最近打了几个补丁(有若干关联补丁)后,应用服务器CPU持续100%,系统功能整体非常慢,登录超过1分钟,单据提交10几分钟才能完成2.分析连线看了一下,应用服务器内存消耗正常,排除GC引起的CPU消耗异常。
查看threaddump,发现总是会有几十个活动的线程,虽然线程对应的业务方法各异,但都调用到动态扩展平台的方法,且堆栈大多停留在该方法上,可以认定CPU消耗过高是该方法被频繁调用,且消耗CPU资源过多引起。
a:419)3.2.3.Jprofiler3.2.3.1. 工具使用具体使用网上很多文章介绍,在此不做详解,下面给篇网上金蝶中间件一位同事些的指导文章3.2.3.2. 分析思路该工具可以分析多类问题,其主要优势是分析CPU热点,通过CPU视图,截取一段时间段的调用堆栈信息,停止后我们逐层分析消耗CPU多的方法,逐层深入分析,有些问题可能集中在一个地方爆发,这种情况很容易定位,如大连中升的问题;有些问题过于分散而一下子难以看出问题,这时要继续往下挖掘有用的信息,直至找到问题点,如 4-5月份的集成测试CPU消耗高的问题。
3.2.3.3. 分析案例11.问题4-5月份集成性能测试CPU消耗比以往高处一倍,CPU出现明显瓶颈2.分析通过Jprofile的CPU分析视图,层层分解,发现每个可疑点最后都能调用到动态配置平台,最后调用到BOS的枚举类的toString方法,最后经过开发修改,高消耗CPU的问题得到解决,剖析截图如下3.2.3.4. 分析案例11.问题大连中升项目3个强并发压力测试,发现响应时间比较长,应用服务器CPU消耗过高,能达到60%。
2.分析通过Jprofile的CPU视图,立马可发现主要消耗在一个具体的JSP页面上,此时已经很明确的告诉开发具体的修改地方3.2.4.jca401jca401是IBM公司提供的一个java线程分析工具,主要用来分析死锁、锁等待、线程的阻塞情况,该工具通过打开jvm的线程dump文件即可对当前线程状况进行分析。
3.2.4.1. 工具使用1.通过Java –jar 即可运行工具,启动后如下图2.通过file菜单打开dump文件,点击选中的文件,即可看到汇总信息,如下图3.通过Analysis菜单的Monitor detail分析细节信息,可以看到锁信息已经相应的java堆栈3.2.4.2. 分析思路通过观察线程的阻塞的状态已经JAVA 线程调用堆栈,可以定位到具体类的具体方法已经某行代码上,再结合代码的分析可快速定位问题3.2.4.3. 案例1.问题云平台并行发布元数据出现等待超时错误2.分析通过threaddump工具发现出现100多个线程等待,然后通过工具生成线程dump文件,然后通过jca401工具打开文件诊断,工具提示死锁信息,通过锁信息跟调用堆栈发现,多线程调用经常在一个用来做元数据缓存的HashMap 上发现死锁,具体分析图如上面工具使用过程中的三幅图。
3.2.5.ha404ha404是IBM提供的一个内存堆栈分析工具,用来分析大对象创建以及内存泄露等问题特别有用,目前金蝶分析oom主要就是通过此工具。
3.2.5.1. 工具使用1.通过java -jar -Xmx1024m 打开工具,如下图备注:在实际分析的过程中根据dump文件的大小来设置最大需要内存,有时候客户现场的dump文件很大,达到2G,这时候需要到64位的aix机器下打开,打开过程也需要很长时间,所以平时分析OOM问题的时候,我们实例的内存最好不要设置过大2.通过file菜单打开dump文件,这个时候一般需要等待很长时间,打开后如下图3.通过对内存引入堆栈的逐层展开找到主要内存问题点3.2.5.2. 分析思路逐层分析,找到占用内存最多的点紧系分析,内存泄露一般来说主要由于持续累积的分配内存而不释放导致的,我们主要定位到泄露点就能找到解决问题的办法3.2.5.3. 案例1.问题供应链单据只要连续打开几十次客户端就崩溃掉2.分析通过分析dump文件,发现供应链里每次打开一个UI都对其缓存起来,这样打开多了,客户端内存不够用就导致了OOM3.2.6.ga401ga401工具是一个用来分析JVM GC效率的工具,通过GC的次数、全GC的次数以及GC消耗的时间来判断当前应用程序的健康程度。
3.2.7.jconsole3.2.7.1. 工具使用1.在服务器端打开JDK中提供的Jconsole工具,一般在 %JAVA_HOME%/bin下面,打开的窗口如下2.输入访问地址连接服务器的JVM在高级页签中输入访问地址,如下,地址跟端口号视具体情况而定:6912#jmx/rmi/RMIConnectorServer3.分析内存视图4.分析线程视图3.2.7.2. 分析思路用Jconsole工具主要分析内存跟线程,看内存是否够用以及是否能正常回收,以此来判断内存是否设置太小或者存在内存的泄露,线程视图可以用来判断当前的线程是否创建过多或者存在很多等待状态的线程,如果存在大量阻塞状态的线程,则需要分析是否存在死锁或者严重的锁等待性能问题。
3.2.8.TOP SQL3.2.8.1. 工具使用1.在oracle用户下检测em服务是否启动,如果启动就按给定的地址用IE访问,如下图,提示已经启动,那我们可用访问,一般用IP地址访问,将访问地址改为2.用IE登录EM3.切换到performance页签然后到Top Activity,然后查看TOP sql4.查看执行计划3.2.8.2. 分析思路通过oracle OEM的顶层会话观察活跃SQL的情况,对活跃的SQL查看其执行计划,重点分析全表扫描的表,如果表记录超过1万行且进行了全表扫描,则要重点分析3.2.8.3. 分析案例1.问题深圳建滔系统08年9月上线的时候系统非常慢,应用服务器资源消耗不高,数据库IO等待很严重。
2.分析通过分析TOP SQL分析关键SQ语句,发现有一条SQL语句对一个大表进行全表扫描,后面开发通过修改代码优化SQL语句来解决此问题,如下图。