一. 需求

        在商品管理页面,商品编码由商品名称和种类名构成。比如,商品名为orange,分类名为fruit,那么商品编码自动变成orange_fruit。如何实现商品名,或者分类名变化的时候,商品编码跟着变,是本文要介绍的内容。

        二. 步骤

        1. 新建一个模块

         点击Application dictionary->module,打开模块管理页面,点击新建。下面设置的参数是举例,你们可以自己设置成其他的或者直接按照我说的设置。表头java package: org.openbravo.lws.howtos    name:lwstest  type: module   description: for test callout  version:1.0.0。表体,dependency页签:新建一行记录dependent module选择User Interface Application。DBPrefix页签新建一条记录,录入LWS321. Data Package页签新建一条记录,name录入lwstest data package,java package录入org.openbravo.lws.howtos.data.

        2. 编写后台代码

        项目src目录下面新建一个类ProductConstructSearchKey,包名为:org.openbravo.lws.howtos.ad_callouts内容如下:

// the package name corresponds to the module's manual code folder
// created above
package org.openbravo.lws.howtos.ad_callouts;import javax.servlet.ServletException;import org.openbravo.base.secureApp.VariablesSecureApp;
import org.openbravo.dal.service.OBDal;
import org.openbravo.erpCommon.ad_callouts.SimpleCallout;
import org.openbravo.model.common.plm.ProductCategory;
import org.openbravo.utils.FormatUtilities;public class ProductConstructSearchKey extends SimpleCallout {private static final long serialVersionUID = 1L;@Overrideprotected void execute(CalloutInfo info) throws ServletException {String strProductName = info.getStringParameter("inpname", null);String strProductCategoryId = info.getStringParameter("inpmProductCategoryId", null);info.addResult("inpvalue", getConstructedKey(info.vars, strProductName,strProductCategoryId));}protected String getConstructedKey(VariablesSecureApp vars,String strProductName, String strProductCategoryId) {final ProductCategory productCategory = OBDal.getInstance().get(ProductCategory.class, strProductCategoryId);String strProductCategoryName = productCategory.getName();String generatedSearchKey = FormatUtilities.replaceJS(strProductName.replaceAll(" ", ""))+ "_" + strProductCategoryName.replaceAll(" ", "");return generatedSearchKey;}
}

3. 将调用注册到数据字典

点击  Application Dictionary || Setup || Callout 新建一条记录,module选择我们刚刚新建的module,name填写product_Construct_Searchkey,表体java class name填写刚刚新建的那个类org.openbravo.lws.howtos.ad_callouts.ProductConstructSearchKey。

4. 将调用跟数据库列对应起来

点击 Application Dictionary || Tables and Columns ,找到m_product表,切到表体column页签找到name列和Product Category列。将里面的Callout字段值设置为刚刚新建的callout:product_construct_searchkey。

5. 导出数据与编译

运行项目openbravo目录下面的export.database.launch文件,也就是运行ant export.database命令。

然后运行eclipse.compile.launch文件,弹出框输入需要重新编译的窗口也就是Product。重启tomcat应该就可以看到效果了。

Openbravo如何新建一个调用相关推荐

  1. (测试)Openbravo如何编写一个测试用例

    一. 目标 这一篇文章的目标在openbravo里面建立一个测试用例,用来单元验证一段代码的正确性.比如我们写了一个后台持久化方法,需要验证是否写得正确,而前台又没有写好,无法测试.这个时候,我们可以 ...

  2. java web service_怎样新建一个Java的Web Service

    展开全部 1.web  service分客户端和服务端. 2.新建服务端:在这里我教你用MyEclipse自带的工具62616964757a686964616fe4b893e5b19e31333337 ...

  3. eclipse新建一个java_Eclipse中新建一个java源文件的步骤

    [简答题]请根据第六次讨论题目进行讨论.并将你的讨论回答的ppt传到此处. [简答题]P152页,习题9 一.二(2,3).请将回答的word文档上传到此处. [简答题]第五次讨论:讨论题目参见课程网 ...

  4. VS2005下如何新建一个WINCE设备的DLL工程

    一.       动态链接库简介 1.1 DLL概述 动态链接库(Dynamic Link Library, j简称DLL)是一些编译过的可执行的程序模块,可以在应用程序中或其他DLL中被调用.DLL ...

  5. Java中怎样新建一个list并给其赋值

    场景 在Java中新建对象并赋值的方法一般是 int a = 1; String b="公众号:霸道的程序猿"; 即使是数组,在新建时并赋值 int[] x={1,2,3,4}; ...

  6. Intellij IDEA 新建一个EJB工程(三)

    之前都是用IDEA启动JBoss服务器,并在启动的同时将EJB项目部署上去.在构建 artifacts 时遇到很多问题,明明是EJB项目却不能用EJB导出,真是奇怪~~ 后来用Web Applicat ...

  7. 如何用python新建文件夹_用Python编写一个每天都在系统下新建一个文件夹的脚本...

    这个程序的功能非常的简单,就是每天在系统中新建一个文件夹.文件夹即当前的时间.此代码是在同事那边看到的,为了锻炼下自己薄弱的Python能力,所以花时间重新写了一个.具体代码如下: import ti ...

  8. django新建一个项目_如何使用Django创建项目

    django新建一个项目 Now that we know how to create virtual environments and use pip, we can begin building ...

  9. Android:新建一个Activity(隐式/显式),并携带数据

    新建一个Activity(隐式/显式),并携带数据 目录 新建一个Activity(隐式/显式),并携带数据 一.项目结构 二.隐式Activity 三.显式Activity 四.效果图(三个界面) ...

  10. ad 新建一个componen的类_Glyphs智能母件:字体设计师的好帮手 Glyphs smart Component: a good helper font designer...

    http://www.ad518.com/article/2017/11/12536 我们将为大家介绍Glyphs最受人瞩目的一项功能:智能母件(Smart Component) 字体是大家每天都在接 ...

最新文章

  1. 适用于WIFI Hacking的无线网卡推荐
  2. python 读下一行-Python-将前一行和下一行绑定到当前行。
  3. c语言中的运算符和表达式试卷答案,c语言试卷和答案1
  4. mysql 批量增加字段命令_sql使用命令批量给一个表添加字段
  5. C++文件流操作备忘录
  6. python咖啡名称提取_(转)Python中文全攻略
  7. Lucene组件概述
  8. Android【报错】Description Resource Path Location Type Call requires API level 9 (current min is 8):
  9. 2022年网络工程师考试知识点:网络攻击
  10. 十六、react UI组件库
  11. 智汇上海:微软在中国的AI人工智能布局
  12. mysql analyze_MySQL数据库执行analyze采集信息
  13. 大数据入门最全组件思维导图
  14. java lowpoly低多边形风格图片生成
  15. The server is invalid. Error occurred reading server credential. Required file or directory ‘serverO
  16. 向量点积衡量相似度_点积相似度、余弦相似度、欧几里得相似度
  17. 一文读懂ADAS系统
  18. 淘宝封杀selenium的ua算法分析
  19. python 获取当前网页_你好,想知道python scrapy 如何获取当前页面url?
  20. 医院医生护士都不愿说的医学小常识

热门文章

  1. HYSBZ 3991 寻宝游戏
  2. DVD驱动器打开拒绝访问
  3. Sun Jan 29 14:34:06 格林尼治标准时间+0800 2012”解析
  4. 高兴就好,简单就好,明白就好
  5. 01 牛刀小试【PAT B1012】数字分类
  6. Git正解 脱水版 【10. 内部机制】
  7. MTK6577+Android烧录
  8. 服务器数据恢复案例:FreeNAS数据恢复过程记录
  9. 跨境贸易EDM邮件使用指南
  10. Quora cqa问题抓取