nc bo-vo-dmo编写规范和注意事项_第1页
nc bo-vo-dmo编写规范和注意事项_第2页
nc bo-vo-dmo编写规范和注意事项_第3页
nc bo-vo-dmo编写规范和注意事项_第4页
nc bo-vo-dmo编写规范和注意事项_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

BO-VO-DMO 编写规范和注意事项 使用的 VO 类说明 GeneratInfoVO private String m_sTableName; private ArrayList m_alColNameVOs; /ArrayList 中的元素为字段名称 vo private ArrayList m_alTableRelVOs;/ArrayList 中元素为表关系 VO private Integer m_iNum;/生成数据数量 private UFBoolean m_isLevelType; /为分级类型 private Integer m_perLevelSubNum;/每级分支数 private Integer m_levelNum; /分级层数 private Integer m_topTypeNum; /初始分类数 private UFBoolean m_isNumEqualSub=new UFBoolean(false); /是否生成数量与子表数量相同 private String m_sSubTableName; /如以子表数量为准,此为子表名称 TableRelVO private String m_sSubTableName; /子表物理名称 private String m_sMainTableKey; /主表关联键值 private String m_sSubTableKey; /子表外键 private Integer m_iSubRowNum; /使用子表数据数量 private String m_sWhereStr; /取值限制条件 ColNameVO private String m_sFieldName; /字段名称 private String m_sDataType; /数据类型 private Integer m_iDataFrom; /当数据类型为数字时,数据范围起始值 private Integer m_iDataTo; /当数据类型为数字时,数据范围结束值 private ArrayList m_alSampleNames; /字段示例名称,字段值从此集合中得到 /如行数超过给出的值的个数,则在其后加 4 为数字序号 /序号从 0001 开始 private UFBoolean m_isMLevel=new UFBoolean(false); /是否为分级编码 private Integer m_perLevelNum; /分级编码每级次使用位数 private Integer m_perLevelSubNum;/每级分支数 private Integer m_levelNum; /分级层数 private Integer m_topTypeNum; /初始分类数 private UFBoolean m_isLevelName; /是否为分级编码名称 private ArrayList m_alResult; /生成数据结果集 使用示例 目前以存货管理档案为例说明使用方法 比如要生成 10000 条存货管理档案的数据 则将 GeneratInfoVO 中的 num 置为 10000,StableName 置为 “bd_invmandoc“ 存货管理档案中引用 bd_invbasdoc 的 id(即需关联子表) new 一个 TableRelVO 在 SmainTableKey 中写入 bd_invmandoc 中对应外键子段名 pk_invbasdoc SsubTableName 中写入表名 bd_invbasdoc SsubTableKey 中写入子表键值子段名 pk_invbasdoc 将 TableRelVO 写入 ArrayList 中 将 ArrayList 写入 GeneratInfoVO 的 AlTableRelVOs 中 如需关联多个表则填写多个 TableRelVO 即可 当前要生成数据的表中字段信息写入 ColNameVO 比如 bd_invmandoc 中字段 planprice 数据类型为 UFDouble 则在 ColNameVO 中 SdataType 字段中写入” SDataType” 要生成 10 到 1000 之间的任意数则在 ColNameVO 中 IdataFrom 写入 10 IdataTo 写入 1000 将 ColNameVO 写入 ArrayList 中,将该 ArrayList 写入 GeneratInfoVO 的 AlColNameVOs 目前的数据类型有 String Integer UFDouble UFBoolean StringFromSub key /生成随机的 20 位编码,当需要生成大批名称或建值时使用 当数据类型为 String 时 如果需要生成的数据在几个字符串中随机选择 可以将这些字符串写入 ArrayList 放入 ColNameVO 的 AlSampleNames 中 当某字段为外键关联其它表时,除在 TableRelVO 中描述关系还要使用 ColNameVO 描述 字段信息,其数据类型要置为 StringFromSub 如果需要生成的数据数量依赖某子表数量 比如一个公司的存货管理档案中引用存货基本档案时不能重复,需在 GeneratInfoVO 中 将 NumEqualSub 置为 true,并且在 SubTableName 中写入存货基本档案的表名。此时 num 中 写入的生成数量不生效 北京用友软件股份有限公司 New Century 管理软件事业部 NC 供应链产品部 规范文档 第 3 页 共 7 页 客户端掉用 nc.ui.scm.datatools.GeneratDataBO_Client.generatData(ArrayList vos) 参数 ArrayList 中为 GeneratInfoVO BO 端调用 nc.bs.scm.datatools.GeneratDataBO.generatData(ArrayList vos) private GeneratInfoVO makeInvMVO(String sPkCorp) GeneratInfoVO vo=new GeneratInfoVO(); vo.setSTableName(“bd_invmandoc“);/要生成的数据表名称 vo.setLevelType(new UFBoolean(false); vo.setNum(new Integer(10000); vo.setNumEqualSub(new UFBoolean(true); vo.setSubTableName(“bd_invbasdoc“); ArrayList alTemp=new ArrayList(); TableRelVO tvo=new TableRelVO(); tvo.setSMainTableKey(“pk_invbasdoc“); tvo.setSSubTableName(“bd_invbasdoc“); tvo.setSSubTableKey(“pk_invbasdoc“); alTemp.add(tvo); vo.setAlTableRelVOs(alTemp); alTemp=new ArrayList(); ArrayList alColNameVOs=new ArrayList(); ColNameVO cvo=new ColNameVO(); cvo.setSFieldName(“pk_invmandoc“); cvo.setSDataType(“key“); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“pk_corp“); cvo.setSDataType(“String“); alTemp.add(sPkCorp); cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“planprice“); cvo.setSDataType(“UFDouble“); cvo.setIDataFrom(new Integer(100); cvo.setIDataTo(new Integer(1000); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“accflag“); cvo.setSDataType(“String“); alTemp=new ArrayList(); alTemp.add(“N“); alTemp.add(“N“); alTemp.add(“Y“); cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“sealflag“); cvo.setSDataType(“String“); alTemp=new ArrayList(); alTemp.add(“N“); cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“sellproxyflag“); cvo.setSDataType(“String“); alTemp=new ArrayList(); alTemp.add(“N“); alTemp.add(“Y“); cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“qualitymanflag“); cvo.setSDataType(“String“); alTemp=new ArrayList(); alTemp.add(“N“); alTemp.add(“Y“); cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“serialmanaflag“); cvo.setSDataType(“String“); alTemp=new ArrayList(); alTemp.add(“N“); alTemp.add(“Y“); 北京用友软件股份有限公司 New Century 管理软件事业部 NC 供应链产品部 规范文档 第 5 页 共 7 页 cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“wholemanaflag“); cvo.setSDataType(“String“); alTemp=new ArrayList(); alTemp.add(“N“); alTemp.add(“Y“); cvo.setAlSampleNames(alTemp); alColNameVOs.add(cvo); cvo=new ColNameVO(); cvo.setSFieldName(“pk_invbasdoc“); cvo.setSDataType(“StringFromSub“); alColNameVOs.add(cvo); vo.setAlColNameVOs(alColNameVOs); return vo; 注意事项 (1) 一个 BO 类中不能有名称相同且参数个数相同的两个方法同时存在。 因为目前中间件生成工具处理此情况存在问题 (2) 对于界面上显示信息,如要在提示框中显示:产品编码 P008 不存在 其中 P008 是随着用户当时操作而显示的,其它的是固定显示的,则应在编程时使用 产品编码 不存在,即将动态变化的部分用标注出来 因为在国际化时将不对此部分进行翻译 (3) 不建议使用可视化进行事件处理,请手工注册事件监听器和处理事件 因为可以减少不必要的代码 (4) 中间件目前已采用 tomcat, 替换原来的 jsdk (5) 所有异常应打印出来,可使用下述语句: e.printStackTrace(System.err); (6) BO 的所有业务方法都必须抛出异常:java.rmi.RemoteException ;否则将不能生成 EJB 辅 助代码 其他注意事项 (7) 所有的业务逻辑处理(参数合法性判断、Sql 语句拼接、多个 VO 之间的处理等) 尽量放在 BO 中处理,DMO 只完成对数据库的访问; (8) 如果在一个 BO 方法中涉及到对多个表的更新操作,需要锁多个表的多个纪录,建议 过程如下: 合法性判断 数据组织 申请业务锁(多个表的业务锁同时申请) 数据库更新(多个表同时更新) 解锁 希望不要如下所示: 数据组织 申请业务锁 数据库更新 解锁 - 数据组织 申请业务锁 数据库更新 解锁 因为如果第二次申请业务锁不成功,将导致事物全部回滚; (9) 对调用的外系统接口或平台的操作,应该捕捉 BusinessException; (10) 希望各位对包的修改增加注释,格式如下: 版本号 修改内容 修改日期 修改人 (11) 对根据一组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论