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.

Logic & Workflows

  • In this section

    Updated 15 June 2020
  • Overview

    Yellowfin enables you to add your own logic to dashboards and to create workflows into the application so that you can take action from simple workflows – opening new reports or dashboard tabs to more advanced writeback actions that allow end-users to pre-populate forms that update 3rd party applications.

    What are some use cases for adding logic and workflows into a dashboard or report?

    There are a number of possible use cases for adding logic or workflows these include:

    • Navigation within the Yellowfin application – open Yellowfin content such as new dashboards reports etc.  In this context, you may want to build custom navigation that allows your users to open more detailed dashboards or reports based on the current data they are looking at.  You can pass filters through these actions to dynamically filter the target so that context is maintained.
    • Navigation external to Yellowfin using a simple URL – open a website external to Yellowfin with a simple URL.
    • Navigation external to Yellowfin that opens a specific record – with link formatters or action buttons you can open applications external to yellowfin and pass in variables to navigate to specific records.  For example, open up a specific CRM record based on a row of data in your Yellowfin report that references that record.
    • Create a specific User Experience – if you want to build dashboards with specific functionality, not supported by Yellowfin out of the box, you can use code mode to enable these.  This could include dynamically showing and hiding content based on a user’s selections or creating custom filter objects.
    • Write back to an application – in this use case you can build a form within Yellowfin that allows the user to write back and update a 3rd party application.  You can pass through one or more parameters from a yellowfin report to pre-populate the form.  The user completes the action and submits the form.  This type of action can be used for creating closed-loop analytics and operational workflows.  Like acting on the predictions of a data science model that a customer is likely to buy more product and allowing a salesperson to contact and then update an order right from within the dashboard.

    How can I add logic to my dashboard or analytic app?

    There are a number of ways to achieve this in Yellowfin.

    Action buttons can be added to a Yellowfin tabular report. These buttons can be configured to launch a URL when clicked – data from the report can be inserted as variables into the URL prior to it being called. Logic can be added to disable to the button based on data appearing in the report.

    Logic can be added directly to a dashboard using Code Mode.  Code Mode provides access to some of the underlying code of Yellowfin objects – allowing the behaviour to be modified, or for custom UI objects to be created. This allows, for example, a custom button to be added that executes custom code.

    Code widgets can also be created – these allow for server-side execution of code and for reuse across the Yellowfin application.

    Developers have complete control of this code, this includes the ability to connect to third-party APIs.

    Using these capabilities, Developers can build Dashboard experiences that connect workflows across applications. For example, a developer could code a custom button that updates a third-party application using the context of data selected from a chart or a report table. This could create a new lead record for a prospect in a CRM database for example. Alternatively, Code Mode can be used to create custom navigation experiences, such as buttons to toggle between different reports or custom filter logic.

    How can I add custom code to my dashboard or analytic app?

    There are two ways to do this.

    When building a Dashboard, a user can toggle between Visual Mode (drag and drop) and Code Mode. Code Mode provides three tabs – HTML, JavaScript and CSS. Code can be edited or entered directly into these tabs, and the resultant outcome viewed instantly by toggling back to Visual mode. Code created in this way is linked to the specific Dashboard it was created on.

    Reusable objects can be created by creating a Code-Widget. These widgets are created using your standard developer IDE and imported into Yellowfin using the Plug-in Manager. Code widgets appear as objects in the Dashboard tool-palette, and as such can be reused across multiple Dashboards. Code-widgets can be coded to run on the server and can provide greater security, for example when connecting to an external API.

    How can I reuse logic?

    Objects that are created as code-widgets can be shared across a Yellowfin instance.    You can use code mode to create and test your logic and then package these up into re-usable code-widgets that can be dropped onto any dashboard.

  • User Experience

    What type of unique user experiences can I create?

    Developers can create complex user-experiences – either by embedding Yellowfin content into a custom application, or by using Code-Mode from within Yellowfin. In both cases, the behaviour of Yellowfin objects can be controlled using the JavaScript API – and Custom objects can be integrated – directly into a Yellowfin Dashboard using Code Mode, or as a reusable Code Widget that can be shared across multiple Dashboards.

    These capabilities can be used to create custom navigation experiences (buttons and links that navigate the user to other reports, dashboards or pages), make calls to external applications via their API, create highly custom UI experiences (for example, custom filters implemented by clicking on images).

    Can I use report data in my logic?

    Using the JSAPI, it is possible to get access to the underlying data set that sits behind a report or chart. This data can then be used to perform custom calculations or can be accessed and passed as a parameter in a call to another application.

    Can I call internal Yellowfin functions?

    Yes – through the JS API, a number of internal Yellowfin functions can be called. This enables the developer to have fine-grained control over the behaviour of the user interface.

  • Workflows

    What types of workflows are supported by Yellowfin?

    There are a number of actions and workflows that are supported within Yellowfin these include:

    • Simple links from a table or chart.  Use column formatters, custom parameters, to create URLs that enable you to open another app by passing in values into a URL string.
    • Simple buttons and navigation within the app.  You can use the canvas and button widgets to add buttons to a dashboard or report and using the GUI create simple navigation actions within the app; or use code mode to enable more custom actions to be enabled from these buttons.
    • Actions buttons in a column via custom formatters.  Use the out of the box custom formatters to create and configure action buttons.  These actions can be simple and set up via the GUI or custom javascript can be applied for more advanced interactions.
    • Actions via code mode.  For full control of the actions you want to create, use code mode to enable sophisticated workflows such as creating forms and writing back to 3rd party applications.

    Can I navigate to a specific record in my application from a Yellowfin report?

    Yes, this can be done with Action Button and URL link formatters.  Using either of these you can pass parameters into a URL to open a specific record in your application.

    Can I build my own custom navigation between dashboard tabs and report content?

    There are two ways you can do this:

    • Via simple buttons and using the GUI you can create and configure buttons that navigate you to content; or
    • Within code mode, you can create a custom navigation that can navigate to a different dashboard tab or open up any other Yellowfin content.
  • Write Backs and Transactions

    Can I create actions that write back to my transactional application?

    Yes. The best way to do this is writing a code-widget that is then added to code mode which handles the request to your application

    How can I integrate actions onto a dashboard?

    There are a number of ways to achieve this in Yellowfin.

    Action buttons can be added to a Yellowfin tabular report. These buttons can be configured to launch a URL when clicked – data from the report can be inserted as variables into the URL prior to it being called. Logic can be added to disable to the button based on data appearing in the report.

    Logic can be added directly to a dashboard using Code Mode.  Code Mode provides access to some of the underlying code of Yellowfin objects – allowing the behaviour to be modified, or for custom UI objects to be created. This allows, for example, a custom button to be added that executes custom code.

    Code widgets can also be created – these allow for server-side execution of code and for reuse across the Yellowfin application.

    Developers have complete control of this code, this includes the ability to connect to third-party APIs.

    Using these capabilities, Developers can build Dashboard experiences that connect workflows across applications. For example, a developer could code a custom button that updates a third-party application using the context of data selected from a chart or a report table. This could create a new lead record for a prospect in a CRM database for example. Alternatively, Code Mode can be used to create custom navigation experiences, such as buttons to toggle between different reports or custom filter logic.

    How do I keep my data warehouse and application in sync?

    ETL jobs can be scheduled to run on a regular basis, or be triggered by external schedulers using a Yellowfin Web service. ETL jobs can be created to fully refresh data from an application source to a Data Warehouse, or can be set up to perform incremental refreshes. ETL logic, for example, could be written to implement the principles of slowly changing dimensions – and implement complex versioning logic based on the selected principle.

    How do I confirm an action has taken place?

    There are two ways to do this:

    1. You can update the UI immediately with a change to the action button whilst writing back to your source systems at the same time, so that your report does not need to be refreshed.
    2. Actions that are initiated in the Yellowfin Application should ultimately write back rows to the database. Evidence of an action should be visible when a report is refreshed to show the new altered data.
  • Debugging & Error Handling

    How do I debug in Yellowfin?

    As code mode allows developers to write JS in the application, you can debug the code within your browsers dev tools. Debugger statements are the easiest way to achieve this.

    What error handling options does Yellowfin Offer?

    Yellowfin doesn’t currently offer any error handling in code mode. Generally, Yellowfin errors will be handled by the components themselves, in some instances events will be triggered from those components when an error occurs. Any 3rd party code errors should be handled within their code.