X3开发问题收集

 
X3开发问题收集
 
   我们采用X3进行广西电网公司的生产MIS系统开发,目前已进入后期准备投运阶段,但是碰上了不少较棘手的问题,希望起步公司能给与技术支持,协助我们解决。我们使用的X3版本是:2617
1、 每次系统有更新,客户端都要下载 17M的缓存,我们的客户机器、网络环境高低不一,偏远地方很难下载。对此,有什么好的解决办法吗?目前我们是把服务器端配置中的“使用缓存”的勾去掉,虽然不下载缓存了,但是这样做有什么坏处吗?另外,这个缓存下载具体下载了些什么内容?我们现在用的2617版本是采用了新的缓存下载机制吗?
另外使用服务端和客户端的缓存有什么区别?
 
答:以下解释是基于2625版本的
图一下载的缓存包括业务模型资源和组织模型资源。也就是我们在studio中新建数据表、信息、功能、流程以及组织机构等资源。X3平台是在客户端运行这些业务逻辑的。如果在启动时取消下载,系统会在运行每一个功能时临时去下载需要的资源,这会导致运行各个功能时速度变慢。
    使用服务器配置:在服务器端可以配置是否使用缓存,选择此项表示客户端使用服务器的配置
    使用客户端配置:表示由客户端自己配置是否使用缓存,以及使用哪些缓存。
    保持我的应用最新:启动平台时检查当前客户端的文件(如:*.bpl,*.exe等)是否与服务器版本一致,如果不一致自动下载最新文件。
 
2、 集中部署。我们有个子系统需要集中式部署,也就是需要在一台服务器上独立跑13个应用。目前我们测试了同时跑3套程序,采用的是oracle建立3套用户空间(sys、app),启动3个tomcat服务器,启动3套X3应用,虽然这样能达到目的,但是耗费资源较多。有什么更好的方法能达到这个目的吗?
答:为什么13个应用要分成13个独立的X3系统来部署?
    如果可以,请把这些应用都发布到一个x3系统中,在这个系统中以权限控制的方式来区分13个应用的用户。
 
3、流程处理问题。
(1)当流程有分支时,需要选择另外一个分支时,必须先删除当前分支的人,然后选择另外一个分支,再选择这个分支的流转人,这个过程比较复杂,不够人性化。现在我们希望能随意选择某个分支,并且选定某个分支时,就能把该分支的处理人默认选上,不需要再让用户去选择。
答:需要自己修改“系统空间/用户界面基础/界面库/系统接口/流转窗体”,把你们自己的逻辑加进去。
 
(2)记录执行者问题。比如一个请假流程,所有的人都能申请请假单,比如软件部的张三申请请假后,提交给本部门的经理李四审批,当另外一个销售部的王五申请请假时,他需要提交给他们部门的经理审批,但是现在系统自动记录了软件部的经理李四为处理人,那么王五就需要先删除李四,再选择销售部经理为审批人。这个过程太麻烦,有没有好的解决办法?我们觉得2611版本没有记录前一执行者更好用,2617这一改动不符合常规做法。
答:需要用代码来控制
2617 增加了一个新特性,自动记录前一个流程的执行人。
如果要取消,那么屏蔽 “业务模型/系统管理/简洁风格/界面库/窗体库/标准风格主窗体”这个窗体上的代码,具体如下:(把下面这些过程中的这些代码屏蔽就可以了)
procedure TSTANDARDSTYLEMAINFORM.ReloadDocRelevancyNavBar;  
...
   //  FDocRelevancyNavBar.RelevancyPopupMenu := pmDoc;
  //   FDocRelevancyNavBar.OnRelevancyPopuMenuPopup := DoRelevancyPopuMenuPopup;
...

constructor TStandardStyleMainForm.Create(AContext: TContext);  
...
   //只有一个岗位时,采用自动登录模式 if (FDefaultPosition = nil) and
  //  (TSystemCore.Operator.PositionCount = 1) then
   // FDefaultPosition := TSystemCore.Operator.Positions[0];}
...

procedure TSTANDARDSTYLEMAINFORM.DoRelevancyPopuMenuPopup(Sender: TObject);  
...
//  FDocRelevancyNavBar.FixPopupMenu(Sender as TPopupMenu, miNew); 
 
constructor TStandardStyleMainForm.Create(AContext: TContext);  
....
 {  TSystemCore.FlowManager.OnCreateFlowTasks := DoOnCreateFlowTasks;
  TSystemCore.FlowManager.AfterFlowCommand := DoAfterFlowCommand;}
....
 
(3)动态分配人员问题。我们需要在执行者候选人那里根据某个业务字段去筛选候选人。比如所有变电站值班员都有许可工作票的权限,共有几十个变电站,我们需要根据某个业务字段,比如这个字段存储了变电站的名字,去筛选下一步骤的执行人只是这个站的人而不是所有站的人。注意,这里是根据业务表里的某个字段,不是根据什么当前登录人所在部门ID之类的信息。怎么实现呢?
答:可以在流程的OnCreateFlowOutTasks事件中控制Command.FlowTasks[0]. Executors属性来实现
具体的例子在论坛中可以搜索到。
 
3、 待办列表的改造。目前X3提供的待办列表不适合生产类业务系统,生产类业务系统不仅是按照环节来显示状态,需要更细的业务状态,比如执行这个环节,还细分为进行中、已执行,未执行等状态,我们需要显示详细的业务状态在待办列表中,也就是说我们需要从业务表取部分数据,再结合流程表重新自己开发一个待办列表,这个待办列表还要具有查询的功能。我们想知道,要做的这样涉及到系统中哪几个表?我们打算结合这几个表,建成一个视图,重新开发适合我们的待办列表。请给我们指明是哪几个系统流程表了?
答:流程涉及的表主要是流程表、流程ID表、任务表、任务消息表、任务业务数据表。
    抽取待办信息时,主要是用任务表和任务消息表
 
4、 IE退出报错问题。我们有些机器退出IE时会报错,而且报的错不一定一样,莫名奇妙的,有些机器安装不上客户端,或者安装客户端时报错。但有的机器又很正常,这个是不是和客户端机器里安装的某些软件有冲突或是被杀毒软件拦截之类的呢?或者有的机器用网页访问不了。
 
图-莫名奇妙的错误
答:关于上图的错误,请以“灾难性故障”在论坛中搜索,有很多帖子都讨论过。
IE 退出报错问题:如果是报指针错误,大多数情况与浏览器中插件有关,请使用我们最新发布的OCX来解决,http://bbs.justep.com/showthread.php?s=&threadid=16852
有些机器安装不上客户端,或者安装客户端时报错:需要具体分析原因
有的机器用网页访问不了:需要具体分析原因
 
5、 多套X3开发的应用系统都使用同一个缓存文件夹,客户端可以安装不同目录,可以避免,可是用网页访问就不行了,怎么解决?
答:可以为每一个应用分别创建一个windows帐号,在切换其他应用前,先注销使用相应的windows帐号重新登录操作系统。不过这样很麻烦,建议把这些应用都部署到同一个系统上
 
6、 我们的开发的系统应用需要普及到县级,而县级的网络条件比较差,带宽不到1M,甚至更小,那么在这种条件下X3开发出来的系统能否满足性能要求?(比如客户一般要求响应不能大于3秒)。
答:只要使用了缓存,并且在开发过程中注意了效率问题(如:尽量减少客户端和服务器交互的次数、数据量,客户端的表现界面尽量简洁),网络带宽对x3系统性能的影响是很小的。我们做过专业的测试,发现只有网络延时和丢包对系统的速度影响比较明显。
 
7、 我们曾在一些地方测试过,发现当大量客户端在下载缓存时,网络非常拥挤,而且可能导致堵塞,并且这种情况目前似乎很难避免,毕竟用户上班时间比较集中,有什么办法避免这种情况?如果新版本用了新的下载机制,是否考虑到大量用户集中时段下载的问题?
答:在2625版本中,缓存机制有所变化,可以避免大量客户并发下载缓存的现象。在新版中,客户端启动时如果发现缓存有变化,首先会判断重新下载全部缓存的时间是否小于5秒,如果小于就下载全部缓存;否则,会把本地缓存中与服务器缓存有差异的部分(修改过的模型资源)删除,直到客户端需要用这些内容时,再重新下载。
 
8、 我方在技术细节上还有很多疑点,未能一一详细列举,希望能得到厂商的鼎力支持,派人到我方现场协助开发工作。至于详细合作方式,可以和博联市场部联系详谈。
答:我们会有相关人员在今明两天与贵司联系现场支持的事情。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值