码迷,mamicode.com
首页 > 系统相关 > 详细

iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署

时间:2014-12-12 11:39:22      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/
iDempiere官方中文wiki主页 http://wiki.idempiere.org/zh
iDempiere 中文社区www.idempiere.org.cn
iDempiere 中文社区QQ群 65713012

本文说明如何给iDempiere创建一个Process,包括如何定义一个插件工程,建立Process,并在系统中进行调用。

本文参考的youtube视频为:https://www.youtube.com/user/evenosconsulting/videos视频下载地址(百度网盘):http://pan.baidu.com/s/1vqLRo

Process表示一段运行的程序,他的输出可以是报表,也可以不输出任何东西。

Process可以在运行过程中对其他对象进行改变,比如销售订单界面上面的Process Order就是一个Process,他将销售订单进行了Complete或者Close操作。又比如MRP运算的process,在运行的过程中生成了采购申请。

Process 也可以用来执行一系列的检查,将结果在运行的过程中输出到文件中或者直接存入数据库。

Process可以设定成为按时、按计划运行,比如每天晚上凌晨3点做MRP运算。

该文档主要分为两个大步骤
1. 在iDempiere系统中定义Process,包括使用到的参数,调用的菜单等
2. 使用eclipse开发该Process的OSGI插件,并部署到iDempiere上

 

下面为开发process的详细操作

  1. 使用System账户登录系统,进入Report & Process
    bubuko.com,布布扣
  2. 建立一个新的process
    bubuko.com,布布扣
  3. 给该process添加几个参数,String, Boolean, Timedate
    bubuko.com,布布扣
    bubuko.com,布布扣
    bubuko.com,布布扣
    bubuko.com,布布扣
  4. 创建一个Menu,对该process进行调用
    bubuko.com,布布扣
  5. 创建Menu,同时将该menu指向刚建立好的Process
    bubuko.com,布布扣
  6. 保存以后,退出登录,重新以GardenAdmin用户进行登录,查看菜单,发现该功能已经显示在菜单里面了
    bubuko.com,布布扣
  7. 打开该功能,已经能够正常录入参数,说明我们的Process和Menu的系统配置正常完成。下一步可以进行Process的实际开发。
    bubuko.com,布布扣
  8. 开发部分,开发部分使用eclipse进行开发,具体的eclipse配置请查看前面的博客:http://www.cnblogs.com/zzyan/p/4124087.html
  9. 在eclipse中创建一个plugin project
    bubuko.com,布布扣
  10. 提供一个工程名字,同时选中Target to run with "Equinox"。建议将工程建立在单独的文件夹而不是workspace文件夹,这样可以将自己的代码和系统标准代码分离开来。
  11. 选中java6,确保使用java6的用户能够正常使用
    bubuko.com,布布扣
  12. 新的插件创建完成以后,打开项目文件,设置项目的Manifest文件。
    为其添加两个Dependencies:
    org.adempiere.base和org.adempiere.plugins.utils
    bubuko.com,布布扣
    bubuko.com,布布扣
  13. 创建对应的包以及process的java class文件,注意,包名和java class名字组合必须和process系统设置中的名字一样
    bubuko.com,布布扣
  14. 更改java文件,iDempiere的process必须继承SvrProcess
    process有两个函数
    prepare() – 主要用于参数设置
    doIt() – process的主函数,进行该process的主任务
    bubuko.com,布布扣
  15. 具体的process实现我们后续添加
  16. Process建立好了以后,我们需要新建一个factory类,并将其进行注册,这样我们的插件工程在启用的时候,iDempiere的OSGI服务能够通过该注册找到我们提供的service。
    新建一个package,并添加一个factory类
    在这里我建立org.zzya.factories.MyProcessFactory类
    bubuko.com,布布扣
  17. Factory类必须继承IProcessFactory。
    我们同时重写其函数newProcessInstance如下
    bubuko.com,布布扣
  18. 我们需要创建一个component definition,来告诉OSGI我们提供了这个服务
    注意,eclipse需要是J2EE版本的indigo,之前我的eclipse版本为java普通版本,导致没有这个wizard,请重新下载一下开发环境,eclipse文件夹名称为eclipse-jee
    bubuko.com,布布扣
  19. 创建一个component definition
    bubuko.com,布布扣
  20. 设置component definition的参数
    其中,service.ranking为每个plugin必须设置的一个参数
    bubuko.com,布布扣
    bubuko.com,布布扣
  21. 现在我们可以回去更改MyProcess的定义,执行实际的编程操作
    下面的函数中:
    getParameter为继承的函数,用于获取process调用时候传入的参数
    log为继承的对象,用于输出日志
    addLog用于输出结果到process的结果报表
    bubuko.com,布布扣
  22. 编写完毕以后,我们重新启动服务,并尝试调用该process
    在运行时,在run -> run configuration中,选中该plugin,同时将auto-start设置为true
    bubuko.com,布布扣
  23. 运行process,设置参数
    bubuko.com,布布扣
  24. 运行结果如下
    bubuko.com,布布扣
  25. 查看eclipse中的log,发现log已经正常打印,说明该process插件已经正常运行
    bubuko.com,布布扣
  26. Process运行完了以后,可以在process audit中进行查看该运行的历史记录
    bubuko.com,布布扣
  27. Process audit中可以看到传入的参数值,以及使用addlog输出的log信息
    bubuko.com,布布扣
    bubuko.com,布布扣
  28. 下面我们进行一下扩展,看一下怎样能够在报表里面打印出料号信息,同时从报表中导航到料号界面。
    更改MyProcess.java文件中的doIt(),同时添加一个getProducts函数,如下
    bubuko.com,布布扣
  29. 重新运行,查看报表,发现报表结果显示了产品信息
    bubuko.com,布布扣
  30. 点击超链接,可以看到界面导航到了产品product 界面
    bubuko.com,布布扣

 

以上文档说明了怎样对idempiere系统开发及调用一个Process

iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/zzyan/p/4159117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!