广东移动CRM技术笔记

上传人:飞*** 文档编号:42768426 上传时间:2018-06-03 格式:DOCX 页数:27 大小:1.24MB
返回 下载 相关 举报
广东移动CRM技术笔记_第1页
第1页 / 共27页
广东移动CRM技术笔记_第2页
第2页 / 共27页
广东移动CRM技术笔记_第3页
第3页 / 共27页
广东移动CRM技术笔记_第4页
第4页 / 共27页
广东移动CRM技术笔记_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《广东移动CRM技术笔记》由会员分享,可在线阅读,更多相关《广东移动CRM技术笔记(27页珍藏版)》请在金锄头文库上搜索。

1、新新 CRM 技术笔记技术笔记1.1. 部署新系统部署新系统1.1.准备准备源代码 贵州版本:http:/10.3.3.233/svn/products/openboss/newcrm_gz 拷贝.classpath、.project 两个文件至工程根目录; 创建目录 htmlWEB-INFlib;将 newcrm_gzlib 下各个子目录中的 jar 拷贝至 htmlWEB- INFlib; 把 defaults.xml 拷贝至 config/system/service/defaults.xml; TNS 准备#贵州 CRM 测试库 base/base#123 GZCRM225_TEST=

2、 (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.3.3.225)(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = gzcrm)1.2.导入导入 Eclipseimport选择 exitsing projects into workspace 选中工程右键进入 config build path libraries 中检查 jre 设置是否正确,建议这里设置为 1.6 或 1.6 以上 java compiler 中 Compiler compliance level 设

3、置为 1.61.3.编译编译project-build project 或者 clean 编译之后工程存在 error,不要紧,只要不是致命的导致整个工程未全编的 error 可忽 略1.4.设置设置 tomcat 设置设置window-preferences-tomcat 选择 version6.x window-preferences-tomcat-JVM Settings,jre 选择 1.6 设置启动内存:-Xms256m -Xmx512m -Xss16M -XX:MaxPermSize=512m tomcat 下面外链工程:参考 server.xml 修改 tomcatconf 下的

4、 server.xml = 930 and t.district_id actionservicedaobean 注意,Js 尽量从 jsp 中抽离出来,这样可只加载一次。3.2.快速跟踪快速跟踪地址: http:/localhost:8080/gz/crm/support/party/CmSupportTypeList.jsp?funcId=30011013var condi = “;condi += “condi += “condi += “condi += “getTable().refresh(condi); 新 CRM 使用多个数据源,如资源库使用的数据源是 res,营业库使用的是

5、socenter,公共 库使用的数据源是 base。调用数据源时会根据 dao 的包名设置其对应的数据源(原理就是 动态代理) ,这个关系配置是在 defaults.xml 的元素下定义。 Dao 的三种实现方式: 1.BO*Engine(使用 ConfigTools 工具生成,建议使用) 2.使用 DataStore(无事务控制) Conn = ServiceManager.getSession().getConnection(); DataStore dataStore = ServiceManager.getDataStore();3.使用 jdbc Notice:尽量少用:尽量少用 S

6、erviceManager.getSession().getNewConnection(),因为这样获取的链接,因为这样获取的链接 不受事务控制,如果使用了必须手动关闭链接。不受事务控制,如果使用了必须手动关闭链接。 访问 Action 时,如果对分中心有要求,需要加上:“commonSV.saveOrdSoLogDataInfo();比如:so1 只能写 so1 的数据,so2 只能写 so2 的数据。但是有个公共中心,可写 so1 和 so2,可通过 getcrosscenterservice 获得。getCrossCenterService 方法在服务内部禁止使用,必须在接口、服务内部禁

7、止使用,必须在接口、web 段或进程主程序中调用段或进程主程序中调用,使用方式如下:boolean flag = CrossCenterStoreHelper.isSameCenter(); /判断是否同一个中心 if(flag) getService(); 5.3.与其他层的交互规则与其他层的交互规则ACTION 层: 1、不能调用 DAO 类,只能调用本 package 下的 sv 类 2、禁止连接数据库做任何操作 3、禁止调用 BO 类 set、get、transfer 外方法5.4.业务模块间调用业务模块间调用原则上 2 个目录的 sv 不能互相调用,假设 res 要提供接口给 so

8、调用,需要在 res 的 teaminvoke 目录的 out.service 去定义接口做实现。然后 so 在 teaminvoke 里的 in.service 中 引起来,in 中引用的接口要确保是其他 out 中的接口。接口命名是务必按照规范命名,否 则 serviceFactory 无法获取到服务。所有的服务接口类必须抛出 java.rmi.RemoteException 异常。5.5.其他注意事项其他注意事项业务逻辑层开发时,所有的服务接口类必须抛出 java.rmi.RemoteException,因为在发布后,sv 会发布成 EJB 服务,根据 EJB 规范要求,必须抛出 Rem

9、oteException 异常。import java.rmi.RemoteException;public interface IUserInfoFSV public IInsProdValue getInsProdByBillId(String BillId) throws Exception, RemoteException;需要注意的是,采用获取数据库连接方式,数据存取层在通过平台提供的方法获取到数据库连接后,禁止对数据库进行禁止对数据库进行 Commit 和和 Rollback 操作操作,另外,对于数据库连接及通过数据库连接创建的 PreparedStatement 和 Result

10、Set,必须在使用完毕后进行关闭,关闭在finally 进行,按照 ResultSet、Statement、Connection 次序进行关闭,关闭时,需要进行对关闭时,需要进行对象是否为空以及是否已关闭的判断象是否为空以及是否已关闭的判断,对象不为空且未关闭的情况下才可执行。5.6.Sequence在 base.cfg_id_generator 中配置步长,如果在 cfg_id_generator 中配置了历史表 (HIS_TABLE_NAME) ,在修改当前表的时候会自动将数据同步到历史表中去。配置的目的 是放置 ID 浪费和冲突。5.7.命名规范命名规范Dao接口类名:*.dao.int

11、erfaces.I*DAO 实现类名:*.dao.impl.*DAOImpl Service接口类名:*.service.interfaces.I*SV, 实现类名:*.service.impl.*SVImpl *的内容必须对应一致! Action命名:*.*Action继承:BaseAction 方法声明必须满足格式(返回 void,2 个固定参数,抛出异常,methodname 任意): public void downLoadImsiFile(HttpServletRequest request, HttpServletResponse response) throws Exceptio

12、n;调用: 一般是在 jsp 页面上调用 js 方法 PostAction(url,xml) url 字符串格式:context/business/Action 全限定名?action=action_method 如果对分中心有要求,还要加上“ 5.9.设置分中心设置分中心在发送请求时设置中心 在调用 PostInfo(url),aitable.refresh(cond)方法时,在 url,cond 上添加请求参数 “2.在 service 层手动设置中心 CenterFactory.setCenterInfoByTypeAndValue(CenterConst.REGION_ID, “852

13、“); CenterFactory.setCenterInfoByTypeAndValue(CenterConst.BILL_ID, “13688888888“); CenterFactory.setCenterInfoByTypeAndValue(CenterConst.ACC_ID, “accout id“); CenterFactory.setCenterInfoByTypeAndValue(CenterConst.USER_ID, “user id“);这种方法有个前提,必须在 Action 层调用以下方法来获取 service 的代理对象: com.ai.appframe2.serv

14、ice.ServiceFactory.getCrossCenterService(Class)5.10. 进程开发进程开发进程的实现类必须实现接口 com.asiainfo.appframe.ext.exeframe.task.interfaces.Itask 进程的配置表: SELECT t.* FROM base.cfg_task t ;5.11. 权限管理权限管理在权限管理模块中,权限控制的主要有三个对象:菜单、实体、行为。而开发人员只需要 关注菜单和实体就可以了。 1.菜单配置表 SELECT t.* FROM sec.sec_function t; 2.实体配置表 SELECT t.

15、* FROM sec.sec_entity t; 在页面添加权限控制: 5.12. 国际化国际化国际化配置表 :SELECT t.* FROM base.bs_i18n_resource t; 国际化调用方式 : 页面标签的方式: Js 方式: crm_i18n_msg(“SOC2001541“)Java 方式: CrmLocaleFactory.getResource(“RSS0008053“) mon.util.ExceptionUtil.throwBusinessException(String key, Object params)5.13. 开发流程开发流程需求接收:SCCB新 CR

16、M 项目使用的是 SVN 版本控制,共有 3 个代码分支: 开发分支: http:/10.3.3.233/svn/products/openboss/newcrm_gz RM 分支: http:/10.3.3.233/svn/products/ob20_rm/openboss/newcrm_gz Release 分支: http:/10.3.3.233/svn/products/release/openboss/release_gz/开发分支提供给开发人员代码共享、协同合作的环境,RM 分支主要用于联调环境的 发布。 每月上线前 12 个礼拜会对开发分支和 RM 分支封码,在此期间提交代码需要发送申 请邮件。在封码的时候,会把 RM 分支的代码全量更新到 release 分支,release 分支 主要用于发布 UAT 环境和生产环境。 5.14. 其他其他1.BCE(Business Cre

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号