EAI项目实施当中的痛苦

   我现在正在实施某公司的EAI平台管理系统。
   一端是PDM系统,一端是ERP系统,我是中间的数据交换的平台管理。
   PDM使用SMARTEAM
   ERP使用SAP的BONE
   EAI系统使用SSH框架编写的WEB应用程序,主要是按照一个规则对PDM输出的数据重新编排后,再导入到ERP系统当中,其中主要通过JMS和XML文件进行数据交换。
   最重要的是其数据的连续性,因为其公司为边设计边生产,类似于一个科研单位。设计人员想到哪儿就着手设计,设计完以后就要发布新设计的版本,并通知采购、生产,而每一次的采购和生产有重叠的数据,也就是这一次比上一次 再采购多少再生产多少的问题。
   呵呵,我们的平台可以做什么?
   1、定义业务规则
   2、定义数据转换规则
   3、定义传输方式,XML、JMS、直接DATABASE
   4、平台传输日志、传输结果及每一个版本的历史记录
   5、与前一个版本的物料BOM比较,并输出差异数据(物料基本信息、物料BOM、采购信息)
   6、平台审计日志
   其中,第5项是最艰苦的工作,让我给你细细道来:
   物料BOM一般由父项编码和子项编码组成,但是我们从PDM系统当中只能够取到父项编码和子项编码,并且可能有相同的父项编码、子项编码的记录,也就是相同的装配体问题。还有一个装配体下面挂接相同的物料号,这就是我们的已知条件。
   我们把刚才哪两个特殊的记录暂且叫是特殊结构吧,也就是现在有:
   A 、具有相同结构的装配体,其组成结构一样,组成数量也一样。
   B 、一个装配体下面可能挂接相同的两个物料,物料编码相同,其它属性不同,包括其组成数量。
   所以我们在程序的入口处要对其进行识别,呵呵,如何识别是一个大的难题:
   因为物料父子编码有相同的记录,所以必须引用第三个可以识别的编码才可以。但是我从PDM自动导出的数据当中有一个规律,就是每一次导出的结果都是按照一个装配体从根到最末梢顺序导出,而不是一层一层的导出,所以我就把顺序当做一个标识了,如下:
   IF 如果有特殊结构 THEN
      for(int i=0;i<N个特殊结构(包括特殊装配体);i++){
      第N次特殊结构=第N次特殊结构+"_N"
      }
   END IF
   如此这样,好象觉得能够过了关,但是跟前一个版本做比较的时候就出错了,
   因为 前一个版本的顺序不一定和当前的版本顺序相同,那么就出现了一些阴差阳错的结果,真是让人头疼。

   用什么办法好呢?我真是头疼的要死,我们的 部门经理支了一招,还算管用。我很恨我们的 项目经理,下面会说到。
   且看:
   项目
     |--->D
     |  |-->A
     |    |--->B
     |--->E
        |-->A
          |--->B
   变换:
   项目
     |--->D               ------->项目D
     |  |-->A             ------->项目DA
     |    |--->B          ------->项目DAB
     |--->E               ------->项目E
        |-->A             ------->项目EA
          |--->B          ------->项目EAB
    呵呵,是不是可以呢?还需要多多测试才好。
    不过,这样又带到了相应的难题
    新转换后的编码占用编码太长,而让计算减慢,尤其用户在传输5000条记录时,头痛死了。
    项目现在就到此。
    _____________________________________________________________________________________
    说说我们的项目实施。
    先说说我们的项目组成结构关系
                      A总经理(项目组长)      B副总经理(大部门经理)
                          |   |___________________________|
                          |                 |             |
                    销售D -------     项目经理C       ---------部门经理E
                                           |
                                           我
    操,就这样的一个结构,如下是职能分配
                          A总经理(签字监督)      B副总经理(今天的事情不能明天做、工期压缩者)
                          |   |___________________________|
                          |                 |             |
                    销售D(老好人)---项目经理C (P也不懂的传风筒) ---部门经理E(管日出日落生老病死)
                                           |
                                   我->调研、设计、开发、DEMO、编码、测试、部署、实施...n多
    最可恨的是哪个客户,这个客户很会玩“优先级”游戏:一旦有问题出现,他会:
    1、第一时间通知我,问清问题出现原因。
    2、5分钟后通知项目经理C
    3、5分钟后通知销售
    4、于是销售和部门经理说出现问题了。
    5、项目经理召集所有项目组成员开会,近一个小时,
    6、我来做修改、测试。
    其中1-4步骤可能最多用30分钟。
    本山的一席话吧:这个世界太疯狂了!
    而我的项目工期从来都是打折的,7天的工作三天干完,包括周六和周日。真是想离开这个鬼公司,但又不能够行,因为我们的合同有很多的违约责任,如果加一下,估计有近1W元,很累呀。
    _____________________________________________________________________________________
    说说我学习到东西:
    1、TOMCAT可以长时间、不间断运行在WINNT平台上,包括数据库服务器长时间连接(说起来简单)。
    2、SSH+JMS组合可以一次运算近万条的记录而不出错。
    3、由父子键组成物料BOM样数据库记录的开发技巧,和递归算法的优化。
    4、近万条的傻瓜功能编码实现,及严谨的逻辑思维。
    5、MYSQL4和TOMCAT4的BUG及其解决方法。
    针对我说的第2条说明一下,如果数据库有限不能够处理大数据量(还有分布式使用),则一个方法就是先把这些数据写到一个XML文件当中,等到服务器有空闲时再写进去。当然了,IF =大数据量时发生。
    呵呵,我的故事讲完了。在项目实施当中,这是我遇到最头疼的一个项目,哪位大侠能够对项目实施指导一二呀!!
                           
   
  
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值