农产品收购系统ProposalwenkaiWord文档格式.docx
《农产品收购系统ProposalwenkaiWord文档格式.docx》由会员分享,可在线阅读,更多相关《农产品收购系统ProposalwenkaiWord文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
功能描绘
数据
类型
接口
方向
交换频率
建议的实现方式
备注
物料主数据
获取SAP/EAS系统物料编码、描绘、工厂代码等信息
主数据
IN
每天、定时
1〕程序
2〕数据库直连
供给商
获取SAP/EAS系统供给商编码、描绘、采购组织等信息
税码
获取SAP/EAS对应税码描绘
组织构造数据(SAPCompany、库存地、采购组织等)
获取SAP/EAS对应组织构造数据。
组织构造数据的详细范围待明晰。
新建结算单
收买系统审核结算单后,SAP/EAS系统中创立PO、GR〔收货单〕
业务数据
OUT
实时
程序
新建、冲销、修改的详细实现逻辑待定。
冲销结算单
收买系统反审核结算单时,那么冲销SAP/EAS中对应PO、GR
修改结算单
收买系统修改结算单且重新审核后,那么对SAP相应PO进展修改、创立GR
1.1.1.2.结算单接口功能实现逻辑
建议的实现逻辑如下:
1.建立结算单接口表,SAP、EAS分别建立。
先根据主数据的对应关系对结算单数据进展转换,并插入结算单接口表;
2.接口程序从结算单接口表读取数据,并插入SAP/EAS系统。
与第一步放在一个数据库事务中。
3.问题:
假如SAP、EAS中PO或GR〔收货单〕已进展后续处理,这时冲销或更新结算单数据如何处理?
1.1.1.3.SAP系统接口实现技术
NCS公司已在多个Java工程中使用SAPRFC技术实现与SAP系统的接口功能。
1.SAPRFC技术
RFC(RemoteFunctionCall,远程功能调用)是SAP系统之间以及SAP与外部系统之间程序通信的根本接口技术,诸多其他更高层的SAP接口和通信技术,如BAPI,ALE等,都是基于RFC实现的。
2.SAP与Java程序的接口实现技术
SAPJCo(SAPJavaConnector).即SAPJava连接器,是SAP组件和Java应用程序之间的中间件和接口实现机制。
JCo基于JNI(JavaNativeInterface)建立在RFC协议根底之上,支持SAP效劳器端的入站(Java调用SAP)及出站(SAP调用Java)数据通信。
1.1.1.4.EAS系统接口实现技术
EAS系统接口实现技术有如下几种:
1.WebService方式
2.通过Excel导入方式
3.数据库直连方式
对收买系统而言,“通过Excel导入方式〞不可取。
其它两种方式分析如下:
通用的方式,PO数据封装成XML格式。
如采购订单的接口为:
●采购订单导入接口:
●采购订单扩展接口:
问题:
主数据等是否都有相应的webservice?
2.数据库直连方式
该方式简单、方便。
但假如EAS使用MSSQLserver数据库,收买系统使用Oracle数据库,那么存在异构数据库直连问题,不过NCS在这方面有经历,已在其它工程中使用过Oracle与MSSQLserver的直连技术。
1.1.2.设备接口
通过与IC卡、地磅、短信平台的集成,系统可以很大程度上减轻司磅人员、库管人员、质检人员、财务结算人员的统计工作量,进步工作效率,并一定程度上堵住流程中的跑冒滴漏现象。
1.1.2.1.接口功能根底数据
●收买系统的收买点主数据中定义该收买点是否使用IC卡系统〔有使用/不使用两种设置〕。
使用IC卡系统时:
创立送货单时同步写IC卡,后续环节刷IC卡带出送货单的单号等内容。
创立送货单时不需要进展多联打印。
不使用IC卡系统时:
创立送货单时必须进展多联打印。
1.1.2.2.IC卡接口
1.IC卡业务流程:
参考前面的总体业务流程,IC卡业务流程为:
货车进场,门卫发IC卡—?
称重、质检、结算环节刷IC卡—?
货车出场,门卫收IC卡
2.IC卡根底知识
1)普通IC卡
●分为存储卡和智能卡:
带有存储器的IC卡称为记忆卡或存储卡,带有微处理器的IC卡称为智能卡或智慧卡。
记忆卡可以存储大量信息;
智能卡那么不仅具有记忆才能,而且还具有处理信息的功能。
●分为非接触式IC卡和接触式IC卡
●IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD(InterfaceDevice)。
IC卡读写器要能读写符合ISO7816标准的IC卡。
●IC卡读写器与计算机的接口方式:
一般PC可以通过RS232串口,USB接口,PCMCIA接口,软盘接口,并口,红外线口等与读卡器获得联络。
PC通过这些接口向读卡器发出ISO指令,读卡器收到指令后即对卡进展指令命令的读写,当卡完成这次读写操作后,回给读卡器一个指令成功与否的响应,而读卡器收到卡的响应后即告诉PC,PC这时根据相应的结果进展下一个ISO指令的操作。
2)Java卡
Java卡除遵循ISO7816的标准外,它还遵循JAVA卡的一些标准,如:
JavaCard
Java卡内有JVM,可以运行Applet,应用更加灵敏。
不过本钱比拟高。
3.IC卡选型建议
1)IC卡:
非接触式、存储IC卡即可。
2)IC卡读写器:
支持RS232串口、USB接口即可。
3)IC卡读写器供给商:
最好只有一两家
4.IC卡读写实现技术
因为B/S系统的客户端〔阅读器〕一般不能直接访问本地的资源〔串口、USB口、文件等〕,所以IC卡读写实现技术需要描绘一下。
1)假如读写器是用C、C++、VB等开发的,可以把读写器原来的dll重新封装城ocx控件,然后在webpage中通过js调用。
甚至供给商就有这样的ocx控件可以直接使用;
2)在webpage中通过js调用通用的OCX控件。
1.1.2.3.地磅接口
1.地磅根底知识
电子地磅具有RS232/RS485串行数据接口,能与大屏幕显示器或计算机相连接。
2.读地磅数据实现技术
只需要读串口数据即可,可采用读IC卡的同样技术,即在webpage中通过js调用OCX控件。
3.可能存在的问题
大多数地磅的传输数据格式根本一样,如为:
10位:
1位起始位、8位数据位〔ASCⅡ编码〕、1位停顿位,但数据帧的格式是否一样?
一般是不尽一样,那如今各地使用的地磅,收买系统都要支持,程序都要做分支处理;
并且有些是可以直接读,有些还要先发指令再读。
处理这些差异性,程序工作量会比拟大。
1.1.2.4.短信平台接口
1.短信平台选型
●短信猫〔Modem〕方式:
需要硬件、短信猫软件、有效的挪动卡。
简单,但性能差,发出的短信数量受限。
●直接访问挪动、电信、联通的短信网关:
收买系统通过Internet发送HTTP恳求到挪动、电信、联通的短信网关,然后由该网关发短信。
●企业内部使用挪动、电信、联通的短信网关:
收买系统通过企业自己的挪动、电信、联通的短信网关发送短信。
2.发短信功能实现简介
1)收买系统从IC卡或送货单获得送货人的手机号。
2)当某个流程环节完毕后,系统根据预设的流程数据查询得到下一个环节的信息,在公共的短信表中插入数据〔当前环节的结果数据及下一个环节是什么的指示信息〕;
短信接口功能循环读取短信表的数据并调用短信平台进展发送〔或短信平台主动直接读取数据并发送〕;
发送后更新短信表的记录状态。
3.短信规模及性能要求
短信规模〔每天〕:
100〔收买点〕*100(送货车次)*5(每车平均5个短信)=50000条
性能要求:
实时性要高
数据清理或备份:
短信的数据增长很快,需要定期清理或备份。
1.2.技术架构方案
我们建议农产品收买系统采用基于J2EE的B/S构造。
1.2.1.系统网络拓扑图
1.2.2.技术架构图
我们建议如下的基于J2EE的技术架构图,图中的各种技术NCS都在多个工程中使用过,有很强的积累。
说明:
在业务量大的情况下可以使用Weblogic集群和OracleRAC数据库形式。
1.2.3.系统设计理念
●采用J2EE技术来开发系统,使得系统可以部署到不同的数据库、不同的应用效劳器、不同的OS上,满足海量数据和系统将来扩展性的要求。
●使用流行的N-tier系统开发形式和MVC形式,开发Web层、业务逻辑层、数据访问层功能。
●在系统功能开发中,采用SOA设计思想和J2EE设计形式实现对象级的优化设计,采用OOP的开发思想。
●采用ORM的设计思想,通过统一的POJO(或TO)对象存取不同的数据库。
即系统效劳器端程序采用NCSAppFrame框架〔基于Spring+Hibernate+Struts〕来开发。
●Web前台采用Struts+JSP+AJAX+EXT技术,实现友好、灵敏的UI界面。
前台和后台的数据交换格式为JSON。
●使用NCS工作流平台来定义业务流程,将使得系统在将来有很高的柔性,能快速适应需求的变化。
●通过java任务调度框架Quartz定义定时运行的任务〔batchjob〕,实现接口数据抽取、传送等。
1.2.4.NCS开发框架简介
1.NCSAppFrame框架基于Spring+Hibernate+Struts,并定义了多层次的基类,使用继承机制使得开发更有效率。
2.NCSAppFrame框架同时有代码生成器,能快速生成前后台的代码框架,极大进步开发效率。
1.2.5.NCS工作流平台简介
NCS的工作流平台是个成熟产品,它基于J2EE,已在多个工程中使用,性能稳定,且具有很好的可扩展性。
NCS的工作流平台基于OSWorkflow。
OSWorkflow是opensymphony组织开发的一个工作流引擎,目前的版本是2.8。
OSWorkflow用纯Java语言编写,并且开放源代码。
它最大的特点就是极其的灵敏。
它面向的人群是具有技术背景的软件开发人员。
OSWorkflow不提倡用可视化工具定义流程。
用户可以根据自己的实际需求,来设计出完全符合自身业务逻辑的系统,而并不需要使用复杂的代码去实现。
换句话说OSWorkflow让我们真正解放了,使得我们从底层的代码堆中爬了出来,轻松地用一套通用的引擎机制去实现各种业务流程。
OSWorkflow提供我们所有工作流中可能用到的元素例如:
步骤〔step〕、条件〔conditions〕、循环〔loops〕、分支〔spilts〕、合并〔joins〕、角色〔roles〕、函数〔function〕等等。
1.2.5.1.OSWorkflow的核心概念:
OSWorkFlow基于有限状态机〔FiniteStateMachine〕理论。
Step
大致相当于流程所在的位置。
譬如企业年检,年检报告书在企业端算一个step,在工商局算第二个step,在复核窗口算第三个step。
每个step可以有多种状态〔status〕和多个动作〔action〕,用Workflow.getCurrentSteps()可以获得所有当前的step〔假如有并列流程,那么可能同时有多个step,例如一次年检可能同时位于“初审〞step和“广告经营资格审查〞step〕。
Status
流程在某个step中的状态。
很容易理解,譬如“待认领〞、“审核不通过〞之类的。
OSWorkflow中的状态完全是由开发者自定义的,状态判别纯粹是字符串比对,灵敏性相当强,而且可以把定义文件做得很好看。
Action
导致流程状态变迁的动作。
一个action典型地由两局部组成:
可以执行此动作的条件〔conditions〕,以及执行此动作的结果〔results〕。
条件可以用BeanShell脚本来判断,因此具有很大的灵敏性,几乎任何与流程相关的东西都可以用来做判断。
Result
执行动作后的结果。
这是个比拟重要的概念。
result分为两种,conditional-result和unconditional-result。
执行一个动作之后,首先判断所有conditional-result的条件是否满足,满足那么使用该结果;
假如没有任何contidional-result满足条件,那么使用unconditional-result。
unconditional-result需要指定两局部信息:
old-status,表示“当前step的状态变成什么〞;
后续状态,可能是用step+status指定一个新状态,也可能进入split或者join。
conditional-result非常有用。
还是以年检为例,同样是提交年检报告书,“未提交〞和“被退回〞是不同的状态,在这两个状态根底上执行“提交〞动作,结果分别是“初次提交〞和“退回之后再次提交〞。
这时可以考虑在“提交〞动作上用conditional-result。
Split/Join
流程的切分和交融。
很简单的概念,split提供多个result;
join那么判断多个currentstep的状态,提供一个result。
1.3.权限管理
农产品收买系统基于RBAC〔RoleBasedAccessControl〕来进展权限管理。
1.资源管理
资源控制到按钮级,如结算单的审核、反审核按钮。
2.用户管理
分三级用户:
总公司用户、收储公司用户、收买点用户。
用户的信息中设置收储公司代码〔假如用户是收储公司级别或收买点级别,那么必填〕,设置收买点代码〔假如用户是收买点级别,那么必填〕。
收储公司级别用户:
只能看到本公司的业务数据、维护本公司的主数据。
收买点级别用户:
只能维护本收买点的业务数据和主数据。
总公司级别用户:
只能维护全局的主数据。
系统自动根据用户的收储公司代码或收买点代码来过滤数据。
3.角色管理
4.角色资源关系管理
角色、资源关系是全局级。
5.用户角色关系管理
1.4.通用功能
1.单据打印功能
先导出Excel文件再打印。
2.导出Excel文件解决方案
1)基于Excel模板文件来处理单据、报表生成。
每个单据、报表都定义单独的Excel模板文件,程序动态填充数据形成最终的单据、报表文件。
2)支持批量生成报表文件的操作。
批量操作时将文件打包成RAR文件下载给用户。
3.单据编码规那么
后台定义单据编码规那么配置信息,开发通用功能解析配置,生成单号。
4.IC卡相关UI设计