Как вы используете MYOB в приложении RAILS - PullRequest
0 голосов
/ 06 мая 2010

Кто-нибудь может объяснить, как интегрировать MYOB в рельсы?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2013

Однако вы можете сделать это только с помощью драйвера MYOB ODBC. Этот драйвер работает так, что он использует Myobp.exe в качестве посредника между ODBC и файлом .MYO.

Драйвер MYOB ODBC представляет интерфейс SQL для MYOB, однако есть некоторые предостережения. Это не настоящий интерфейс SQL к MYOB. Данные, которые вы можете получить и получить, точно соответствуют функциям импорта и экспорта, которые 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

Вы также можете найти что-то, что вам поможет:

0 голосов
/ 06 мая 2010

Интеграция в MYOB не так проста, как может показаться.

Для интеграции с MYOB необходимо установить драйверы ODBC, установить приложение MYOB и иметь прямой доступ к файлу компании MYOB.

каковы ваши требования и цель интеграции?

решение, которое мы выбрали, - это создание настольного приложения, которое облегчит интеграцию между веб-приложением и MYOB.

надеюсь, это поможет.

...