【问题标题】:Integration of OpenERP (Odoo) with external systemsOpenERP (Odoo) 与外部系统的集成
【发布时间】:2014-08-30 22:19:25
【问题描述】:

是否有一种简单的方法可以将 OpenERP (oodo) 中的新自定义字段(在客户记录或订单项目中)与外部链接(即描述或 iframe)相关联,以便它可以链接到不同的系统?

在创建记录时,是否有一种简单的方法可以使用(新)GUID 初始化此链接?

有没有一种将客户端 JavaScript 注入标准 OpenERP 页面的简单方法?

我需要为此创建一个新模块吗?

【问题讨论】:

    标签: openerp odoo


    【解决方案1】:

    对于 OpenERP 7.0+

    1. 您可以为指向任何对象(如 sale.order/purchase.order/任何其他对象)的链接添加额外的 field of type text/char。这对于每个模块或网络客户端都是可能的(如果您拥有技术权利)。

    2. 创建记录时创建 GUID 的最简单方法是扩展该记录并覆盖构造函数:

      class extended_sale_order(osv.osv):
        _name = 'sale.order'    # override current sale.order by replacing it (same name)
        _inherit = 'sale.order' # inherit from "original" sale.order
        _columns = {
                    'GUID': field.text('GUID') # add GUID textfield
        }
      
        def create(self, cr, uid, vals, context=None):
           '''
             On sale.order construction create a GUID and replace the GUID field in
             sale.order with the generated value.
           '''
           guid = generate_guid() # implement this or use oerp sequences
           vals['GUID'] = guid
           result = super(extended_sale_order,self).create(cr,uid,vals,context)
           return result
      
    3. 是的,您可以像 OpenERP Bay 博客上描述的那样直接将 script/html 添加到视图中(我不能添加超过 2 个链接.. 可能是垃圾邮件保护,您可以使用大多数搜索引擎轻松找到该块)。可以使用 Web 客户端和 UI 部分中的技术权限或使用修改视图的模块来完成修改 - 或使用小部件或其他扩展点来进行可以使用 JS 的视图相关修改。

      李>
    4. 关键部分是将 GUID 创建放在记录创建逻辑上的位置。如果你可以在 JS 中做到这一点——例如,通过创建一个新的 GUID 并将其放在字段中,每当使用表单创建新记录时——并且你知道对象总是根据 Web 客户端表单创建的,那就没问题了。对于一个黑客。 编写一个模块并将逻辑放入业务对象中是干净的解决方案。 OERP 模块的开发文档就足够了,there are good Tutorials 在网上解决小问题,比如只添加一个额外的字段。 一个 OpenERP 模块程序员可能只是

      • 创建一个模块
      • 继承应该修改的模型/对象
      • 添加一个包含 guid/链接的字段
      • 可选择创建一个计算字段,该字段从 guid 字段构建链接,因此您只需保存 guid 或创建应插入视图的任意 html
      • 在构造函数中添加一些逻辑来创建和保存 guid
      • 继承应放置链接的视图
      • 添加应显示的字段/内容。使用 xpath 表达式将新的视图部分/字段/内容放在其他字段后面
      • 安装并测试它
        • 更改 python 代码时重新启动服务器
        • 每当 xml 更改时更新模块

    简而言之,是的,如果您对 OpenERP 的技术部分有足够的了解,这些修改很简单,是的,您应该将其放入一个模块中以保持简洁。

    【讨论】:

      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 2012-05-19
      • 2014-05-30
      相关资源
      最近更新 更多