Browser JavaScript Function Reference
- 1 Introduction
- 2 Methods
- 2.1 Database
- 2.2 API - REST
- 2.3 API - Legacy
- 2.4 Window
- 2.5 Client
- 2.5.1 String getCompanyName()
- 2.5.2 int getUserId()
- 2.5.3 String getUsername()
- 2.5.4 String getUserEmail()
- 2.5.5 boolean savePluginDataByGroup(String group_name, String data_dictionary)
- 2.5.6 String getPluginData(String group_name, String key)
- 2.5.7 void deletePluginData(String group_name)
- 2.5.8 String getModuleName()
- 2.5.9 boolean reloadObject()
- 2.5.10 int getObjectId()
- 2.5.11 void hyperLink(String module, String param)
- 2.6 File
Introduction
Below is a list of methods grouped by the resource they interact with. These methods are available to the page under the fb_client
object that is injected into the browser window. Unfortunately, we are unable to interact with these methods using native objects. So passing complex data is done by serializing objects into JSON strings, and vice-versa.
Methods
Database
String runQuery(String sql)
Executes a SQL string, and returns an array of records as JSON objects. If there is an error, it returns an object. Note: All result properties will be returned in lowercase.
Examples
Return a basic query with a single row.
var results = fb_client.runQuery("select * from company");
Return a basic query with multiple rows.
var results = fb_client.runQuery("select * from so limit 10");
What happens with a syntax error.
var results = fb_client.runQuery("select *, from so limit 10");
String runQueryParameters(String sql, String json_parameters);
Executes a SQL string like runQuery, but accepts a single object with parameters serialized as JSON. To define a parameter use :name
syntax, and use all lower case parameter names in SQL and in the JSON object.
Examples
Query sales orders by a specific customer id.
API - REST
restApiCall(String method, String path, String body)
Makes an HTTP API call, re-using the Fishbowl Client connection, via the Java networking stack. This is a BETA feature, and is not guaranteed to work correctly or break in the future. You can find REST swagger docs using the Fishbowl Server web port, reference: XXXX.
Example
Get company information
API - Legacy
String runImportCSV(String import_type, String csv_data)
Creates and executes an ImportRequest, given a string of an import_type (Reference: Legacy Fishbowl CSV Import Reference ) and a CSV string. The method returns a JSON object as a string.
Examples
Import a Custom Field Data Import
String runApiJSON(String request_type, String json_payload)
Executes a legacy API call given a request_type, (Reference: Legacy Fishbowl XML/JSON API Call Types ), and a JSON Payload. The internal Fishbowl Legacy API is XML, and Fishbowl will convert our JSON to XML, and on a completed request will convert XML to JSON.
Take note that there are some bugs with the XML<>JSON conversion, namely if an property is intended to be a list but has a single record/object, it will serialize as an object, and not a list. Reference: TBD.
Examples
TBD
Window
boolean dialogClose()
Closes the current browser window. Warning, the page execution will stop once the browser is closed.
Example
void showStatusBar(boolean show)
Hides/Shows the status bar of the browser window, which includes a status label, and a small progress bar.
Examples
Show the status bar.
Image TBD
Hide the status bar.
Image TBD
void dialogStatus(String message)
Displays a short message in the status bar, approx. less than 100 characters.
Example
Image TBD
void pbUpdate(int value)
Controls the Progress Bar component in the status bar. Use whole integers for 0-100, and -1 for indeterminate progress.
Examples
Set progress bar to 100%
Image TBD
Set progress bar to 50%
Image TBD
Set progress bar to indeterminate.
Image TBD
Client
String getCompanyName()
Returns the company name.
Example
Get the company name
int getUserId()
Returns an int of the current user id.
Example
String getUsername()
Returns a string of the current username.
Example
String getUserEmail()
Returns the current user’s email.
Example
boolean savePluginDataByGroup(String group_name, String data_dictionary)
Saves data (JSON or Plain String) to the Fishbowl Plugin data tables (plugindata). The data dictionary is expected to be a JSON object (single level, no hierarchy).
Example
String getPluginData(String group_name, String key)
Retrieves a string, given a group_name, and key.
Example
void deletePluginData(String group_name)
Deletes plugin data by the group_name.
Example
String getModuleName()
Returns the current module’s name, from where it was launched. TEST
Example
boolean reloadObject()
Reloads/refreshes the current modules object.
Example
int getObjectId()
If the page is launched from a Module, like Sales Order module, it will return the current Module’s ID, example, the Sales Order ID that is currently displayed. Returns a -1 if the Page is not launched from a Module.
Example
void hyperLink(String module, String param)
Launches a Fishbowl module by name, and if provided the param should open the record.
Example
Launch the Customer Module, and open Customer ID 5;
File
String getResourceFileString(String filename)
Retrieves a file name from the root of the page folder. Warning: We do check for path traversal.
Example
Read a SQL file as a string.
String getResourceFileAsBase64(String filename)
Retrieves a file name from the root page of the folder, as a Base64 string of bytes. Warning: We do check for path traversal.
Example
Read an image file as Base64 string.
void saveDataToFile(String title, String extension, String extension_description, String base64_data)
Displays a Java JFileChooser dialog so we can influence, control the window, and file filter in the dialog from JavaScript.
Example
Save a CSV.