You are here

Introduction to BananaApps

BananaApps are JavaScript programs that extend the Banana Accounting functionalities. Other therminologies are extension, add-ins, add-on, scripts, apps.

BananaApps file format

BananaApps can be packed in different format:

  • Embedded in the accounting file: the BananaApp is saved in the Documents table of the accounting file.
  • Included in a JavaScript plain text file: the BananaApp is saved within a file that is stored on the local disk. Banana reads the file and executes it.
  • Included in a packaged file: a packaged file can contain different JavaScript files and also other files, like images.

BananaApps file structure

BananaApps files have two parts:

  • Apps Attributes
    Apps Attributes are special formatted JavaScript comment lines, at the beginning of the file. The apps attributes have a left part (name of the attribute) and right part, with the value. Attributes give information about the script, like its purpose, description and so on. For more information, see Apps Attributes documentation.
  • JavaScript code
    The code must be included within functions. Functions are diveded in startup functions, settings functions and normal functions.
    • Startup functions
      Are called by Banana software when the script is executed.
      The name of the function called depend on the type of the App.
      • exec() for following types:
        • app.command
        • export.file
        • export.rows
        • export.transactions
        • import.transactions
        • import.rows
        • import.accounts
        • import.categories
        • import.exchangerates
        • import.vatcodes
        • report.general
      • printDocument() for the following types:
        • report.customer.invoice
        • report.customer.statement
        • report.customer.reminder
    • settingsDialog() function 
      It is called by the Banana Software when the user click on the Setting button, relative to the specific app.
      The setting data is saved within the Accounting file.
    • Other JavaScript functions
      You can write any functions that is necessary.

BananaApps types, startup functions and how to run them

The BananaApp type is defined within the attribute @task.
There are many types, and some of them are started in different ways.

app.command

Is a general application. It can contain any command.

  • Types: app.command, export.file, export.rows, export.transactions, report.general
  • Startup function: exec()
  • How to run it: 
    • File based Apps are started from the menu App.
    • Embedded Apps are run with the button within the Document table

import

The purpose is to translate the content of a file to a Banana Compatible format.
It is used in Import to Accounting.

  • import.transactions
    • Type: import.transactions
    • Startup function: exce(fileContent) with the content of the file as parameter. The function should return a comma separated file.
    • How to run it:
      • Select from the menu Account1 the command Import to accounting...
      • As Import type select Transactions
      • Select an import app from the list
      • Click Browse to select the file with the data to import in Banana
  • import.rows
  • import.accounts
  • import.categories
  • import.exchangerates
  • import.vatcodes

report

The purpose of this app is to create a report.
The report is run by the specific function in Banana, for example the print invoice function.
The result is displayed on the preview windows.
The function should return a Banana.Report document.

  • report.customer.invoice
    • Type: report.customer.invoice
    • Startup function printDocument(jsonInvoice, repDocObj, repStyleObj)
    • How to run it:
      • Select from the menu Account2 > Customers the command Print invoices...
  • report.customer.statement
    • Type: report.customer.statement
    • Startup function printDocument(jsonInvoice, repDocObj, repStyleObj)
    • How to run it:
      • Select from the menu Account2 > Customers the command Print statements...
  • report.customer.reminder
    • Type: report.customer.reminder
    • Startup function printDocument(jsonInvoice, repDocObj, repStyleObj)
    • How to run it:
      • Select from the menu Account2 > Customers the command Print reminders...

Installing file based BananaApps

Before using a BananaApps you need to install it through the ManageApps menu.

If you develop a new app, you have to Install the BananaApp from a local file.

 

 

 

Share this article: Twitter | Facebook | Email


Help us improve the documentation

We welcome feedback on how to improve this page.
Tell us what theme needs a better explanation or how to clarify a topic.