Category Archives: Download

MYOB ODBC Bridge to Linux

Distributed as Open Source Software under the Artistic License 2.0.

Note:  Little Systems historical from 2009.  MYOB has since released a new API, with information in their developer area.

Overview

The bridge migrates the MYOB database to a Linux SQL server.
(Because MYOB ODBC is slow, Windows only, and has limited SQL syntax.)

The bridge consists of:

  • Server (on Windows)
    • Reads the Data Dictionary
    • Reads MYOB via ODBC
    • Outputs XML
  • Client (on Linux)
    • Gets XML from server
    • Recreates MYOB database on an SQL server*

* Presently supported database(s): PostgreSQL

Screenshots

Server
Connected to the MYOB Clearwater sample file
Rendering the XML schema
XML data
Client
Reading XML and creating the database on Linux
The database on Linux with MYOB tables
MYOB data from the Clearwater sample file

Requirements

MYOB company file must be enabled for ODBC access.  Visit MYOB for further information.

In general, the installation requires basic system administration experience in Windows, Linux and networking.

The server needs MYOB ODBC driver and PHP.  The client needs Perl and PostgreSQL.

Download

Server Client
Language Download Language Download
PHP bridge-server.1.0.zip

(View sample code as HTML)

Perl bridge-client.1.0.tar.gz

(View sample code as HTML)

Little Systems may soon provide a full XML schema of the MYOB database based on the MYOB data dictionary.

Installation

Server

(Assumes the MYOB company file is configured for ODBC.)
(Assumes the Windows ODBC Data Source Administrator is configured accordingly.)

  • Unzip the bridge-server.zip file.
  • Move the “bridge” directory to the web server (under the document tree as appropriate).
  • Grant the necessary file permissions to the script(s).  (Not doing so may cause ODBC errors).
  • Edit ./config_global.php to set the DSN, username and password.  (By default, it is configured for the Clearwater sample file).
  • Edit ./config_myob.php to define the tables and fields to be recreated on Linux.  (Included are selected fields from the Address, Cards, Customers and Items tables.  To define additional tables, consult the MYOB data dictionary included with the ODBC drivers.)
  • Load ./index.php in your web browser, and you should see the “MYOB ODBC Bridge to Linux” page as shown above in Screen Shots.
  • Click on the “Schema” and “Data” links and you should see valid XML.  This means that the server is working.
Client

(Assumes PostgreSQL is installed and duly configured for access)

  • Login as root
  • Chmod to postgres (su postgres)
  • Change to the postgres home directory (cd ~)
  • Untar the bridge-client.tar.gz file (tar xvfz bride-client.tar.1.0.tar.gz)
  • Change to the bridge directory (cd bridge)
  • Note down the working directory (pwd)
  • Edit refresh.pl to set the “Primary configuration variables” towards the top of the file, particularly:
    • set $bridgeURL to the URL of the bridge directory on the web server, then append the xml directory.  For example, http://your.server.com/bridge/xml
    • set $bridgeLocalRoot to the working directory (noted just above) where the bridge client (refresh.pl) is installed
  • Exit your editor
  • Run psql (psql)
    • Note: You should not be prompted for a password if you are logged on as postgres.  Otherwise, you may need to adjust PostgreSQL configuration/security files accordingly.
    • Create an appropriate user, for example “myob” (as set by default in the refresh.pl “Primary configuration variables”) (CREATE USER myob WITH PASSWORD myob)
  • Run refresh.pl (always as user postgres) and troubleshoot as necessary
    • Note: Several additional files will be created and maintained in the directory, including log files.
  • To set Linux to run refresh.pl at regular interval adjust the postgres cronfile accordingly (crontab -e)

Questions, Discussion or Feedback

Questions, discussion or feedback are welcome.  Contact Little Systems.

Consulting

Contact Little Systems for conversation or a quote.