现在的位置: 首页 > 综合 > 正文

ERP/MIS系统中集成命令行式的功能调用

2012年12月20日 ⁄ 综合 ⁄ 共 1952字 ⁄ 字号 评论关闭

做ERP/MIS的程序,界面常常是做成WinForms和ASP.NET,界面繁杂,内容多。

我常常认为,MIS类型的程序,界面是最复杂的,不可理解的,如下图所示,物料主档的界面

image

这是我见过的,相当复杂的一个界面,你需要学习大量的知识,才能灵活的操作这个功能。

比如,Userd as Product,成品,Userd as Material 物料,这2个同时打勾选中,就是半成品,如果这2个都不选,在MRP运算或是下采购单时,则要去看Item Type物料类型(标准库存,套装).

 

因为参数很多,所以做成UI形式的界面,对于开发人员来说,工作量是最少的。

如果参数不多,或是参数很少的这类型应用,是否可以做成命令行式的调用,以简化ERP的用户操作。

举例说明,下采购单,从供应商FLEX那里购买100个Item为FLEX90183的标准件,因为是常规客户(不需要询价),可以直接下单,确定收货日期,这个采购指令可构造如下的命行来完成
PUPOOE  ‘FLEX’, FLEX90183’,'100’,'2011/8/23’, 'US$’
分析指令,PUPOOE是采购单的功能编码,给它传入几个参数,比如供应商FLEX,物料是FLEX90183’,数量是100,收货日期为2011/8/23,交易的货币是US$

将这个命令输入到ERP系统的命令控制台中,系统于是下采购单,生成采购指令。这个过程不需要的UI界面来操作。

这是一种简化的情况,没有考虑到新客户,因为新客户要确定采购价格才能下单购买。

再举例ERP系统中,不需要操作界面,就可以完成的一些功能
Item Cost Rollup  成本上卷,用于更新物料清单的成本
MRP Computation  物料需求计算
Period-End Process  期末处理,过帐传票,月结,更新记帐期间
Data Initialization/Archiving 数据初始化/存档
Reconciliation(Account,Customer,Item,Vendor) 数据重核算(帐户,客户,物料,供应商)
对于Purchasing/Sales/Production中的每个功能,他们的取消(cancel)功能,都可以做成命令行调用
比如,取消JE000076的工作单(PRPMJC),命令是PRPMJC ‘JE000076’,
取消PO000237的采购单(PUPOOC),命令是PUPOOC ‘PO000237’
由此可见,复于UI表现的MIS/ERP系统,也有大量的地方,可以用命令行来完成的工作。

命令行处理的好处

我能找到的很好的理由,就是命令行式的操作,可以批处理。把各个命令,存入一个预处理文件中,可以在晚上或是系统不忙时,批次处理。比如MRP运算通常都会选在凌晨时计算。等我们早上到公司,结果已经计算好了,报表也通过自动生成模块,发送到我们的邮件中。另外,节省UI资源,节省内存,这是肯定的,因为不需要GDI+来绘制大量的界面元素。

 

如何实现需要的命令行处理程序

功能上的需求

1   命令解析功能,可以解析常见的功能,以及它的命令行调用,比如

命令是PUPOOC ‘PO000237’ ,要能识别功能编码是PUPOOC (Order Cancellation),传入的参数是采购单编号

对于不传入任何参数的PUPOOC 命令,则启动这个功能,等待用户的下一步操作。

2   可以支持外壳命令的调用,常见的CD/MD/CLS命令要能支持。

3   效果上,同CMD窗口的样式,给人的感觉就是来执行命令的

4   支持/help /?这种命令帮助,这样可以减少很多查找手册的时间,让软件使用更加方便

实现效果
image

如图,当前正要执行的命令是PUPOOC ‘PO000237’ ,翻译成文字就是取消PO000237的采购单,它的上面有几行内容,是执行了DIR命令的效果。
这个控件来源于CodeProject上的一篇为ShellControl的文章,请到CodeProject上下载控件源代码,然后添加自己的命令处理解析器。

把这些命令保存成一个文本文件,传入到这个功能中,可以实现批处理的功能,比如有如下的一批命令
PRPMJC ‘JE000076’
PRPMJC ‘JE000079’
PUPOOC ‘PO000237’
PUPOOC ‘PO000239’

……

再来看,PUPOOC ‘PO000239’ 命令的解析。这里,需要写一个定制的命令解析工具,把参数按照约定的顺序,传入到功能中去。还需要有一个定时调度程序,在指定的时间,调用功能,执行外壳命令。
这两者的配合,才会给ERP/MIS系统带来威力巨大的改善。

总结一下,需要做的几个主要组件
1 外壳控件 ShellControl
2 命令解析程序,分两种类型,ERP/MIS的命令,OS的外壳命令
3 调度程序 ,加载批处理命令,在指定时间执行外壳命令

抱歉!评论已关闭.