【问题标题】:How yo use MYOB in RAILS Application如何在 RAILS 应用程序中使用 MYOB
【发布时间】:2010-05-06 05:01:00
【问题描述】:

谁能解释将MYOB集成到rails应用程序中

【问题讨论】:

    标签: ruby-on-rails myob


    【解决方案1】:

    与 MYOB 的集成并不像看起来那么简单。

    为了集成到 MYOB,您必须安装 ODBC 驱动程序,安装 MYOB 应用程序并直接访问 MYOB 公司文件。

    您的集成要求和目的是什么?

    我们选择的解决方案是构建一个桌面应用程序,以促进网络应用程序和 MYOB 之间的集成。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以,但真正做到这一点的唯一方法是使用 MYOB ODBC 驱动程序。该驱动程序的工作方式是使用 Myobp.exe 作为 ODBC 和 .MYO 文件之间的中间人。

      MYOB ODBC 驱动程序为 MYOB 提供了一个 SQL 接口,但是有一些注意事项。它不是 MYOB 的真正的 SQL 接口。您可以进出的数据与 MYOB 在程序本身中呈现的导入和导出功能紧密匹配。

      为了获取数据,您可以使用 ODBC 接口编写 SQL 查询,甚至一些 SQL 类型的函数可以在这些查询中,但您可能偶尔会遇到一些让您抓狂的事情。

      为了获取数据,ODBC 驱动程序使用带有前缀“Import_”的表模式,使用这些表,您可以做的只是导入数据,它们不会返回您刚刚导入的发票编号之类的内容。这也意味着您无法像使用真实 SQL 接口所期望的那样更新现有条目。

      但是,如果某些字段匹配,某些数据导入将导致现有数据的更新。我在 MYOB 及其 ODBC 接口方面的经验主要处理从我编写的输入到 MYOB 的系统中获取销售订单,因此可以完成某些事情。

      我确实在 Rails 中编写了这个系统的第一个版本,但是你不能在不调整它们的工作方式的情况下使用标准 Rails 模型,因为 Rails 对它期望数据库的行为非常固执己见。

      最近我用 Clojure 重写了它并使用了手写查询。

      对于多行插入(例如发票的行),MYOB 使用事务作为包装器来指示一张发票上应该包含哪些行。

      因此,如果您想使用 Rails,最好的选择是避免使用 Rails 模型,并可能编写直接 SQL 查询并与控制器和视图进行接口。

      我现在无法访问我的旧代码,但大致如下:

      def create_myob_invoice( iso )
        # We can assume we have the job
        # Now, for each iso line, we add an invoice
        latest_invoice_number = Sale.find( :first, :order => 'InvoiceNumber DESC' ).InvoiceNumber.to_i
        if latest_invoice_number
          # We need to wrap it all in a transaction so MYOB knows they're all the one invoice
          MyobDatabase.transaction do
            iso.lines.each do |line|
              new_service_line = ImportServiceSale.new
              # Map iso fields to MYOB service sale fields
              # e.g. suff like:
              new_service_line.Description = "#{line.sDescription}"
              new_service_line.save
            end
          end
        end
      end
      

      您也可以通过以下方式找到帮助:http://freelancing-gods.com/posts/talking_to_myob_with_ruby

      【讨论】:

        猜你喜欢
        • 2010-10-02
        • 1970-01-01
        • 2010-11-07
        • 2012-10-11
        • 2010-10-22
        • 2011-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多