FileMaker Add-on

Integration: FileMaker Add-on

The easiest way to integrate ABCinvoice.eu with FileMaker is to use the Add-on.

Part 1 – Add-on setup

Notes about this documentation:

  • It is assumed that you already have an invoices table (referred to below as “Invoices”), linked to an invoice lines table (referred to below as “Lines”).
  • If you manage multiple due dates in a separate table, this table will be referred to below as “DueDates”.
  1. Download the add-on and unzip the archive. [Download]
  2. In your solution, switch to layout mode and install the add-on (+ in the Add-ons tab of the left panel). Select the add-on you just unzipped.
  3. Drag the add-on onto a layout.
  4. Create a relationship between your Invoices table and the ABCinvoice_Attachment table using idInvoice as the foreign key. (link the primary key of your Invoices table to ABCinvoice_Attachment::idInvoice)
  5. Create a relationship between your Invoices table and the ABCinvoice_LegalLiteral table using idInvoice as the foreign key. Check the box allowing the creation of related records from Invoices. The ABCinvoice_LegalLiteral table allows you to add legal mentions to your invoices.
  6. Optional: Copy the external table from the ABCinvoice_LegalLiteral_Example layout to your Invoices layout to facilitate entering mandatory mentions.
  7. Optional: Copy the external table from the ABCinvoice_Attachments_Example layout to your Invoices layout.
  8. Field Configuration
    • Copy the fields from the ABCinvoice_invoiceExample table to your Invoices table.
    • Copy the field from the ABCinvoice_invoiceLineExample table to your Lines table.
    • Due dates (if you manage multiple due dates): copy the field from the ABCinvoice_InvoiceDueDateExample table to your DueDates table.
    • Modify the fields of ABCinvoice_JSONrepresentation_{table} in the Invoices, Lines, and, if you manage multiple due dates, the DueDates tables.
      • Notes about the JSONrepresentation field configuration:
        • Dates are passed as numbers to ensure compatibility between all systems (client/server…). For example, the dateAsNumber parameter of ABC_invoice_JSONrepresentation_invoice should be passed as: GetAsNumber ( Invoice::invoiceDate )
        • Linked data arrays must be passed as: ;[ “invoiceLinesAttributes”; JSONMakeArray ( List ( Lines:: ΩABCinvoiceJSONrepresentation_invoiceLine ); ¶ ; JSONObject ); JSONArray ] For the due date(s), you can:
          • If you do not manage multiple due dates, use the dueDateAsNumber parameter.
          • If you manage them in a separate table, use the parameter provided in the example.
  9. Configure the ABCinvoice_Config Script
  10. Settings
    • Create an account on ABCinvoice and obtain an API key.
    • From the interface (the add-on you dragged onto the layout), enter the API key and your country (the country from which invoices will be issued). Update the legal literals library by clicking on Update legal literals.
  11. Delete unused elements, which are only there to help you configure:
    • Tables containing the word Example and their table occurrences (ABCinvoice_InvoiceExample, ABCinvoice_InvoiceLineExample, ABCinvoice_DueDateExample).

Part 2 – Adapting your scripts

Attachments: All documents in the ABCinvoice_Attachment table will be uploaded with your invoice.

WARNING: Once uploaded, an attachment cannot be deleted! You can add attachments as long as the invoice has not been sent.

  • If you want to attach a PDF of your invoice to the electronic invoice, save it as an attachment (ABCinvoice_attachment table) with the script ABCinvoice_sample_AddAttachment with the parameters: idInvoice = the primary key of your Invoices table and isInvoice = True.
  • Save other documents such as Terms and Conditions, balance (customer balance), etc., as attachments (ABCinvoice_attachment table) with the parameters: idInvoice = the primary key of your Invoices table and isInvoice = False.
  • Several example scripts are provided in the “ABCinvoice – integration example” folder, such as the script ABCinvoice_sample_CreateInvoice, which creates an electronic invoice.
  • Simply add, in the section ———– FIND YOUR INVOICE ———–, navigation to the invoice to create, then modify the optional parameters if necessary in the section ———–✏️ DEFINE OPTIONAL VALUES ———–. You can duplicate the example scripts to adapt them to your needs.
  • Do not modify the scripts present in the “ABCinvoice (private)” folder.
  • The add-on comes with value lists to assist you. All these lists are prefixed with ABCinvoice.

Part 3 – Receiving invoices

  • If you already have a table for incoming invoices.
    • Duplicate and adapt the scripts “ABCinvoice_GetReceivedInvoices – Scheduled script”, “ABCinvoice_GetReceivedInvoicesDetails”, “ABCinvoice_Create_RINL (invoice)”, “ABCinvoice_Create_RDUEDATES (invoice)”, and “ABCinvoice_Create_RTAX (invoice)”.
  • The layouts for the list of incoming invoices and displaying their details can be found in the “ReceivedInvoicesLayouts” folder of the add-on. The scripts for retrieving incoming invoices are also included and do not require modification if you do not have an incoming invoices table.

Part 4 – Example layouts

  • Two example layouts are provided with ready-to-use external tables for your own layouts: ABCinvoice_Legal_Example for legal mentions, ABCinvoice_Attachment_Example for attachments. You can copy and modify these external tables if needed.

Hulp of advies nodig?