0

誰でもMYOBをレールアプリケーションに統合することを説明できますか

4

2 に答える 2

0

MYOBへの統合は、見た目ほど単純ではありません。

MYOBに統合するには、ODBCドライバーをインストールし、MYOBアプリケーションをインストールして、MYOB会社のファイルに直接アクセスできるようにする必要があります。

統合の要件と目的は何ですか?

私たちが選択するソリューションは、WebアプリとMYOBの統合を容易にするデスクトップアプリを構築することです。

お役に立てれば。

于 2010-05-06T11:19:19.427 に答える
0

可能ですが、実際にこれを行う唯一の方法は、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 はトランザクションをラッパーとして使用して、1 つの請求書にどの行を含めるかを示します。

したがって、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

また、次の URLで役立つ情報を見つけることができるかもしれません: http://freelancing-gods.com/posts/talking_to_myob_with_ruby

于 2013-04-11T11:49:47.123 に答える