Upgrading to fmAccounting Link (MYOB AccountRight Edition) v2
- fmAccounting Link (MYOB AccountRight Edition) v2 was rewritten to use native FileMaker functions and script steps which were first introduced in the FileMaker 16 platform, so you must be running FileMaker 16 or higher to use fmAccounting Link (MYOB AccountRight Edition) v2.
- It no longer requires a FileMaker plug-in which makes integrating with FileMaker Go, FileMaker WebDirect and FileMaker Server clients much easier.
If you are using fmAccounting Link (MYOB AccountRight Edition) v1.4 or later with FileMaker Pro v16 or later you already have the same native version that doesn't require a FileMaker plug-in. We've essentially removed the branch from the FileMaker scripts that ran under FileMaker Pro v15 or earlier and required a plug-in and removed all plug-in references.
Authentication
We’ve made a number of changes to the authenticating with both the Cloud and Desktop versions of MYOB AccountRight to reduce the number of times you need to authenticate and enter credentials. As the fmAccounting Link file is unlocked you can always modify the authentication process to suit your requirements.
We’ve replaced the use of global variables for authenticating with MYOB with direct field references. For the MYOB Cloud the OAuth 2.0 Token expiry timestamp is now set using the Get (CurrentHostTimestamp) function instead of the Get ( CurrentTimestamp ) function to better handle users in different timezones. The tokens are now stored in regular fields so they persist between sessions. If you are using Single Sign On with a linked my.MYOB login for the MYOB Cloud the company file username/password is no longer required.
We've also removed the need to click the Authenticate button each FileMaker session - you will now only need to authenticate once. If there are any issues with making API requests you might need to authenticate again, or when your refresh token has expired and cannot be used to update the access token for the MYOB Cloud.
Primary Keys
We’ve taken this opportunity to update our primary key system. Previously we were using 2 fields that combined to generate the primary key in each table. For example in the Contacts table we had:
_kp_ContactID zz_Serial#
which combined to produce a value like ‘CT1670’. We’ve changed all the ‘_kp_xxxx’ fields to use the Get (UUID) function. So the calculation has a changed from this format:
"CT" & zz_Serial#
to just:
Get (UUID)
We have also removed the UUID fields in each table as these are now redundant.
We have retained the human readable numbers where MYOB allow you to set the value, e.g for Invoice Numbers and the Contact Display ID. These are just for display purposes and also for linking to specific MYOB fields where they allow the you to populate a number, such as the Contact Display ID, Invoice Number, Product Code and Purchase Order Number. We are no longer displaying the primary key fields on the layouts but they are on the “DEV” layouts, and you can always add these back if you need access to them.
See below for details about specific changes to certain tables.
Contacts
We’ve created a new field to store the MYOB Contact Display ID value:
DisplayID
This is an auto-enter serial number but you can modify this to suit your requirements here.
Items
We’ve created a new field to store the MYOB Item Number value:
Number
This is an auto-enter serial number but you can modify this to suit your requirements here.
We have also renamed the field:
PrimarySupplierUID
to
_kf_PrimarySupplierMYOBContactID
Invoices
We’ve created a new field to store the MYOB Invoice Number value:
InvoiceNumber
This is an auto-enter serial number but you can modify this to suit your requirements here. As we are no longer using the MYOB Invoice Number as the FileMaker Invoices table primary key you can have duplicate Invoice Numbers in MYOB without it affecting the corresponding FileMaker record.
If you want to have MYOB create the Invoice Number instead of passing this value from FileMaker just comment out this line:
["Number" ; Invoices::InvoiceNumber; JSONString];
in the Create Invoice in MYOB script when it sets the $json variable with this value. We are storing the MYOB Invoice Number when creating Invoices/downloading Invoices in the MYOBInvoiceNumber field regardless of which option you have set for setting the value of the Invoice Number when uploading from FileMaker.
Orders
We’ve created a new field to store the MYOB Order Number value:
OrderNumber
This is an auto-enter serial number but you can modify this to suit your requirements here. As we are no longer using the MYOB Order Number as the FileMaker Orders table primary key you can have duplicate Order Numbers in MYOB without it affecting the corresponding FileMaker record.
If you want to have MYOB create the Order Number instead of passing this value from FileMaker just comment out this line:
["Number" ; Orders::OrderNumber; JSONString];
in the Create Order in MYOB script when it sets the $json variable with this value. We are storing the MYOB Order Number when creating Orders/downloading Orders in the MYOBOrderNumber field regardless of which option you have set for setting the value of the Order Number when uploading from FileMaker.
Bills
We’ve created a new field to store the MYOB Bill Number value:
BillNumber
This is an auto-enter serial number but you can modify this to suit your requirements here. As we are no longer using the MYOB Bill Number as the FileMaker Bills table primary key you can have duplicate Bills Numbers in MYOB without it affecting the corresponding FileMaker record.
If you want to have MYOB create the Bills Number instead of passing this value from FileMaker just comment out this line:
["Number" ; Bills::BillNumber; JSONString];
in the Create Bill in MYOB script when it sets the $json variable with this value. We are storing the MYOB Bill Number when creating Bills/downloading Bills in the MYOBBillNumber field regardless of which option you have set for setting the value of the Bill Number when uploading from FileMaker.
Purchase Orders
We’ve created a new field to store the MYOB Purchase Order Number value:
PurchaseOrderNumber
This is an auto-enter serial number but you can modify this to suit your requirements here. As we are no longer using the MYOB Purchase Order Number as the FileMaker Purchase Orders table primary key you can have duplicate Purchase Order Numbers in MYOB without it affecting the corresponding FileMaker record.
If you want to have MYOB create the Purchase Order Number instead of passing this value from FileMaker just comment out this line:
["Number" ; PurchaseOrders::PurchaseOrderNumber; JSONString];
in the Create Purchase Order in MYOB script when it sets the $json variable with this value. We are storing the MYOB Purchase Order Number when creating Purchase Orders/downloading Purchase Orders in the MYOBPurchaseOrderNumber field regardless of which option you have set for setting the value of the Purchase Order Number when uploading from FileMaker.
Jobs
We’ve created a new field to store the MYOB Job Number value:
JobNumber
This is an auto-enter serial number but you can modify this to suit your requirements here.
We have also renamed the field:
JobUID
to
_kf_MYOBJobID
Payments (Customer Payments)
We’ve created a new field to store the MYOB Receipt Number value:
ReceiptNumber
This is an auto-enter serial number but you can modify this to suit your requirements here.
SupplierPayments
We’ve created a new field to store the MYOB Supplier Payment Number value:
PaymentNumber
This is an auto-enter serial number but you can modify this to suit your requirements here.
Employees
We’ve created a new field to store the MYOB Employee Display ID value:
EmployeeNumber
This is an auto-enter serial number but you can modify this to suit your requirements here.
Get All Scripts
We’ve removed any duplicated script that performed similar functions when downloading bulk records from MYOB. We now have one script for each endpoint that passes parameters if it could perform different types of downloading, such as a date range download or a ‘all records’ download. See the version history for the full details of these.
Navigation
We’ve changed the navigation header bar to use a native FileMaker Navigation button bar.
Unreferenced Scripts, Custom Functions and Fields
We’ve taken this opportunity to do a behind the scenes cleanup and have removed fields, layouts, custom functions, value lists and scripts that are not referenced or no longer required.
Script Parameters
We’ve replaced the DeclareVariables custom function with JSON functions for passing script parameters.
Popup Windows
We’ve updated all popup windows to Card windows