Yellowfin Evaluation Guide
Yellowfin is used for both enterprise analytics and embedded analytics use cases and for building bespoke analytical applications. Use this guide to ensure Yellowfin is the right technical fit for your requirements.
Code Extensions
-
In this section
Updated 15 October 2024 -
How can I extend the functionality of the Yellowfin Platform?
Yellowfin supports extensions in several areas:
- Analytical Functions
- Third-Party Data source access
- Data Converters / Custom Formatters
- Data Transformation Steps
- JavaScript Charts
- Canvas Widgets
Extensions can be implemented as Plugins that can be loaded dynamically via Yellowfin’s Plugin Manager.
Do I need to learn a proprietary language?
Yellowfin has no proprietary languages. Yellowfin Code-Mode utilises html, JavaScript and CSS.
Yellowfin code extensions can be coded in the Java programming language.
-
Overview
How can I extend the functionality of the Yellowfin Platform?
Yellowfin supports extensions in several areas:
- Analytical Functions
- Third-Party Data source access
- Data Converters / Custom Formatters
- Data Transformation Steps
- JavaScript Charts
- Canvas Widgets
Extensions can be implemented as Plugins that can be loaded dynamically via Yellowfin’s Plugin Manager.
Do I need to learn a proprietary language?
Yellowfin has no proprietary languages. Yellowfin Code-Mode utilises HTML, JavaScript and CSS. Yellowfin code extensions can be coded in the Java programming language.
-
Dashboard Widgets
What widgets do I get out of the box?
Yellowfin ships with a Signal List and Custom HTML widgets out of the box. More widgets will be added to the product in the future. The Signal List widget will show a stylized list of your signals, this widget allows you to configure the signals shown by using a series of filters. You can filter on time period, Analysis job, Signal type and View. The Custom HTML widget allows you to add in your own custom HTML code and allows you to visualise your HTML in design mode and manage attributes such as size, location, background formatting and others.
Can I create my own custom UI elements?
Custom UI elements such as buttons, selection menus, or input forms can be introduced in the dashboard’s code-mode and are most often contained in the context of an HTML widget. However, there are several use cases where it may be advantageous to create a custom widget instead:
- Templatize your code mode features – Rather than coding it every time, package the code up in a widget and expose it to the drag and drop builder. This is a great way to provide non-technical dashboard builders with advanced custom functionality.
- Make secure API calls – In standard code-mode, we enable you to customize the client-side features of the dashboard (html, js, and css). Code Widgets enable us to do server-side processing as well (java), allowing you to incorporate advanced authentication protocols such as Oauth2, with client-side actions such as clicking a button.
What can my custom widgets do?
Custom widgets can do anything from applying filters to making workflow enabling API calls, based on user interaction with the dashboard. Custom widgets have access to both the client-side rendering layer of the dashboard and the backend of the Yellowfin application. Having the ability to change client-side rendering allows you to alter the user experience within the dashboard, from simple responsive color and text changes to interacting with the reports contained on the canvas (driving filters).
Access to the backend allows you to create complex actions upon the front end processes, such as writing back to a database or making authenticated API calls to other applications.How do I build custom widgets?
Custom widgets are coded outside of the application using a combination of Java (required for basic widget definitions), as well as the JavaScript, HTML and CSS that would be available in standard code mode. This project is compiled as a jar file and uploaded through the Yellowfin plugin manager.
Can I share widgets I build across instances or applications?
Yes, once built, widgets can be imported into any Yellowfin 9 instance via the plugin manager.
Can I create Custom Dashboard Navigation?
Yellowfin provides several alternative means by which to navigate users through the various dashboards and reports that make up their day to day analysis experience.
Action buttons – Yellowfin provides built-in “action” buttons that provide a list of pre-built actions for users to choose from.
This can also be done manually in the dashboard’s code mode, or at a global level by using a custom header or URL redirection.
-
JavaScript Charts
Can I use custom JavaScript charts in Yellowfin?
In addition to the out of the box charts, Yellowfin provides, we also provide the ability to build your own utilizing your favorite JavaScript charting libraries such as d3, hicharts, and threejs with a feature called “JavaScript charts”.
What JavaScript charting libraries does Yellowfin support?
c3.js, chart.js, Google Charts and Highcharts
How do I integrate a custom chart into Yellowfin?
Javascript charts are created in the same core interface as standard charts, however, rather than providing a drag and drop interface, we provide an in-tool IDE, and expose the reports resultset as a JSON object, along with other contextual information relating to the chart such as the default color palette.
JavaScript Charts are disabled by default and can be enabled on a user by user basis with “Role Permissions”.
Further Reading:
Read about integrating JS charts.
Why would I use a custom chart instead of a Yellowfin chart?
Although Yellowfin comes with a very wide variety of chart choices that satisfy the analytical needs of most users there will be cases where a completely bespoke visualization is required – such as a 3d interactive human body showing injury sites. In such cases, you can extend Yellowfin with your own custom charts.
-
Data Transformation Steps
How can I code custom transformation steps?
Custom data transformation steps can be coded in your IDE using java and imported into your Yellowfin instance using the plugin manager. Once imported, the steps appear in the step menu when building data transformation flows. This is described in detail here.
What types of transformations could I create?
You can build a transformation step to do literally anything. This could include custom formatting of the incoming data, through to invoking a third-party API to enhance data with information from another application, for example calling a geo-coding service, adding weather information to location data, through to calling a predictive model hosted on a Machine Learning Platform.
Are custom transformation steps shareable across multiple jobs?
As ETL processes can be highly specific to the individual business’s needs, Yellowfin provides an API to allow you to add your own custom transformation steps to the Data Transformation tool. These steps can serve a variety of purposes and be applied at all stages of the flow.
Custom data transformation steps are coded in Java, packaged as a jar file, and uploaded through the Yellowfin plugin manager. Once loaded into the application, the step becomes available to all transformation flows.
Read a full explanation of how to code these.
-
Data Convertors
I have data in a very specific custom format, can I create a custom converter for that data?
Data converters allow you to alter the field type after the primary report query has been run. The field type can be quite important in Yellowfin post-processing, as certain charts and advanced functions require data in specific formats. One example of this in action is the WKT converter in the Yellowfin view, that converts a string such as POINT(lat, long) to a geographic data type, allowing Yellowfin to leverage that field in the GIS map.
Read a full explanation of how to code these.
What data convertors ship with Yellowfin?
String->Geometry, String->Date, String-Numeric, Numeric->text, numeric->date, date->text, date(System Timezone)<->date(Local User Timezone)
-
Data Connectors
How can I build a custom connector to a third-party application or REST service?
The Data connector API provides an interface to connect to and report on data stored in external APIs, such as Jira, Google Analytics, and Salesforce.
Custom data connectors can be employed in one of two ways:
- Direct Connection to the API – Each time a report is run, the API call is made. This is great for live data but can be difficult to perform more advanced queries on.
- Data Stored and Refreshed in Yellowfin – Yellowfin queries the API on a schedule and refreshes the dataset stored in its configuration database. By storing several datasets, you can create a full view of the data, allowing greater reporting.
Read a full explanation of how to code these.
-
Advanced Functions
Can I create custom functions to be applied to my data, such as an advanced prediction?
Advanced functions allow you to perform operations on top of report data after the primary SQL query has been run, unlike a calculated field, which is added to the report’s SQL statement. Functions can range from simple mathematical calculations and text manipulation to more complex API calls with user input parameters. Users can create their own advanced functions and incorporate these into Yellowfin via the plug-in manager.
How do I create advanced functions?
Advanced functions, allow you to alter the data within a column after the primary report query has been run. Within an advanced function, you have the ability to reference other report columns, create user input parameters, and remove rows. This allows you to perform advanced custom calculations, ranging from anywhere from a simple cumulative total to referencing an external API to obtain predictions based on the dataset <H2O>.
Custom advanced functions are coded in Java, packaged as a jar file, and uploaded through the Yellowfin plugin manager. Once loaded into the application, the function becomes available to all reports.
Read a full explanation of how to code these.
What types of advanced functions ship with Yellowfin?
Yellowfin ships with a large set of advanced functions out of the box. The full list can be found here.
These include a wide variety of statistical functions (Mean, Median, Mode and more advanced functions such as variance, standard deviation, linear regression, exponential smoothing); Date and Time functions (for example, to perform calculations between dates and times); Analysis functions (ranking, percentage of total) and many many more.
-
Custom Formatters
While analytical functions can alter the data itself, formatters control how the data is displayed to the end-user. The Custom formatter API allows you to provide your own functions in this process. One example of this is the ability to change how a phone number looks, based on its country code: in the US: (123) 456-7890 vs AUS (12) 3456 7890.
As Yellowfin tables are rendered with HTML, custom formatters also allow you to return your data in HTML format. This can be used to create more visual displays such as images, icons, and even sparklines.
Custom formatters are coded in Java, packaged as a jar file, and uploaded through the Yellowfin plugin manager. Once loaded into the application, the function becomes available to all reports.
Read a full explanation of how to code these.