Bime Documentation





        

  1. 1-Getting Started
    1. a-Bime in plain English
    2. b-Who can use Bime?
    3. c-Bime in technical terms
    4. d-Bime architecture
    5. e-What Bime is not
    6. f-Interface navigation
    7. g-Security & privacy
    8. h-10 minute step-by-step example
  2. 2-Data connection
    1. a-How to connect to data
      1. 1-Quick overview
      2. 2-Bime desktop
      3. 3-Connection Builder
        1. a-specifying the data source
        2. b-autobuilding the connection
        3. c-refining the schema
      4. 4-Déjà Vu
      5. 5-Handling change
        1. a- Data change
        2. b- The structure of the data changes
        3. c- Data source location and parameters changed
    2. b-Type of data sources
      1. 1-Microsoft Excel
      2. 2-Relational databases
        1. a- Choosing between in-memory or Delegated Mode
        2. b- Create an RDBMS connection
      3. 3-OLAP engines
        1. a-Setting up the crossdomain.xml
        2. b- Specificities for each OLAP engine
      4. 4-Flat files & CSV
        1. 1) Choose a file, you can choose any kind of extension
        2. 2) Edit parameters
        3. 3) The preview
        4. 4) Save your data source
      5. 5-SOAP
      6. 6-Salesforce
      7. 7-Google Spreadsheets
      8. 8-Amazon Simple DB
      9. 9-Lighthouse
      10. 10-Google Analytics
      11. 11-Mashup data with composite connections
        1. a-usage
        2. b-create a composite connection
  3. 3-Analysis
    1. a-Principles
      1. 1-Quick overview
      2. 2-Querying and the 4 main axes
      3. 3-Changing measure aggregation
      4. 4-Sorting
      5. 5-Totals and sub totals
      6. 6- Post processing: order of application
      7. 7-Post processing: Top and Bottom
      8. 8-Post processing: Value Filters
      9. 9-Post processing: Part to Whole
      10. 10-Post processing: Running Calculations
      11. 11-Access special capabilities of visualizations
      12. 12-Encoding in color, size and shape
      13. 13-Time elements
      14. 14-Comments
      15. 15-Trend lines
      16. 16-Decompose
      17. 17-Hierarchies
      18. 17-Zoom charts
      19. 18-Row Selectors
      20. 19-Custom display formats
      21. 20-Dynamic count
      22. 21-Display aggregator
    2. b-Visualizations
      1. 1-Grid
      2. 2-Multi
      3. 3-Column
      4. 4-Bar
      5. 5-Line
      6. 6-Area
      7. 7-Bullet
      8. 8-Gauge
      9. 9-Pie
      10. 10-Radar
      11. 11-Geospatial
        1. a- usage
        2. b-first time use
      12. 12-Sparkline
      13. 13-Bubble
      14. 14-Treemap
    3. c-Formulas engine
      1. 1-Quick overview
      2. 2-Create a Calculated Measure
      3. 3-Create a Calculated Attribute
      4. 4-Create a Global Variable & What if Analysis
      5. 5-Create a Basket Attribute
      6. 6-Create a Filtered attribute
      7. 7-Calculated Formula Writing Rules
        1. a-Data types
        2. b-Basic operators
        3. c-Numerical functions
        4. d-Trigonometric functions
        5. e-String functions
        6. f-Date functions
        7. g-Comparison functions
        8. h-Boolean operators
        9. i-Conditional expressions
  4. 4-Dashboard
    1. a-Quick overview
    2. b-Create dashboard
      1. 1-from the pivot table
      2. 2-from the monitor tab
    3. c-Edit dashboard
      1. 1-The blue arrow menu for refreshing, exporting, editing, renaming, publishing and deleting dashboards
      2. 2-Edit mode overview
      3. 3-Sizing visualizations and custom layouts
    4. d-Visual post-processing
    5. e-Dashboard with data filter prompts
  5. 5-Share and collaboration
    1. a-Quick overview
    2. b-Dashboard publishing
    3. c-Share inside bime
  6. 6-Administration
    1. a-Quick overview
    2. b-Manage users
    3. c-Manage dashboard viewers through groups
    4. d-Manage account
    5. e-Manage plan
    6. f-Manage automatic data refresh
    7. g-Manage data security
  7. 7-Server version installation
    1. a-Prerequisites
    2. b-Bime Server Package Content
    3. c-Installation
    4. d-Bime use
 
 

1-Getting Started

 

a-Bime in plain English


Bime is a new kind of rapid-fire BI, combining fast analytics with cutting edge visualizations, but without the heavy technical or financial investment common with more traditional BI models.  Bime is a true software as a service - SaaS - solution, that gives people of all skill levels the power to build and share quantitative data analysis visualizations in minutes, through the latest innovations in cloud computing.  
 
Bime allows you to connect to your existing data and interrogate it.  Bime categorizes your data automatically, allowing you to load the whole range of information into a pivot table to be available for 'queries'.  You create your query by dragging and dropping the relevant data onto the frame, which starts as a simple grid.  Once you are happy that you have included the basic information wanted, you can change the visualization to see, rather than read, your results.  You can then add elements to fine-tune the results visually (using size or color, for example) to a degree that a column of numbers cannot express.
 
Once you have finished your query, you can load it onto a dashboard - a multi-frame display that allows you to share your findings with others.  The benefit of a dashboard is that it can include as few or as many queries as you wish, so can show results from two or more data sources in the same place; there is no flicking between tabs or programmes in Bime.  Thus, financial reports from your accounting package can sit next to client reports from your CRM database, and you can see a coherent picture of your business, with as wide or narrow a focus as you want.  
 
If you share your dashboards with others, you remain in control: you can give them the ability to 'post-process' the data, to filter it to reflect their interest, or you can apply these filters yourself, restricting what your viewers see.  If you have teams based in various countries, a filter can mean that each team can see only its own country results, and the global results - one dashboard can provide this tailored view for all, without the need for replication.    
 
The advantages of the Bime approach are those of the SaaS model, with no capital investment or IT architecture needed, but secure hosting, automatic upgrades, 'always on' functionality, and access wherever there is an internet connection.  Add to this the user-friendly interface and the accessible pricing model, and this is a simple way for all organizations to have advanced BI capability, or add to their existing systems.
 
The benefits of the product are that it is: 
 

b-Who can use Bime?

 
Bime means 'BI for me' - unlike many BI systems which require deep technical knowledge and additional IT resources, our system can be used by anybody.  The ability to create queries is limited to specified individuals, but how and the extent to which you share the results of those queries is entirely up to you.  Also, this sharing is not 'read-only' (unless you want it to be!) as the dashboard post-processing functions can allow your viewers deeper access to the results than 'just' a chart, and our messaging function allows viewers and users alike to start and carry on conversations about what they are looking at.
 
Bime is designed to be accessible at three levels:
 
 
 
Bime can be used by any organisation, of any size, to visualize their data.  The security of the servers and the connection mechanisms we use might be beyond the budget of small and medium-sized enterprises, so this, and the 'pay as you go' approach of SaaS make Bime a very attractive choice for SMEs.  However, as it is able to sit on top of already installed in-house OLAP and other analytic architecture, it is also a valuable tool for larger organisations with an existing BI facility, and evolving BI and business performance needs.
The visualizations possible with Bime have many uses - not just monitoring performance and undertaking analysis 'live', but to boost more traditional ways of presenting results, including in-year reporting such as management accounts, displaying year-end results to your team or the wider public, attracting new business, marketing to potential investors, or keeping existing clients and customers up-to-date.  Whatever your reasons for wanting to see and share your results, Bime can help you. 
 
  

c-Bime in technical terms


Bime is a SaaS - Software as a Service - solution, which means it is much more accessible than traditional BI systems. It is a pay-as-you-go solution, giving immediate access for a monthly fee, with no lock-in, no up-front capital costs, and no roll-out time.  
Bime facilitates data connectivity with a wide range of sources to form a common interface for all an organisation's data and results, and a comprehensive data catalogue. Bime has a unique capability of connecting on-premise data (relationnal databases, Excel Files etc...) and online data sources.
 
At the heart of Bime there is an next-generation In-Memory OLAP Engine. The engine has a rich formula engine to allow you to interrogate data as you wish and modelize complex business calculations. Under the hood, this in-memory engine is used in two ways. If the dataset analyzed holds in memory, Bime will put it in a very compact form in the client computer allowing fast and simple data analysis. This is called in Bime terminology "in memory analysis". The second way of using the Bime OLAP engine, is if you want to tackle "Big Data". Bime can here be seen as generator of both MDX and SQL queries, where it will ask the OLAP or Relational engine for only the minimum data to answer users' questions. This process allows Bime to handle as much data as your database can. In Bime terminology, this is called "Delegated analysis". Details of these two modes are explained in 2a6.

For OLAP connections to Microsoft Analysis Services or Essbase, Bime has the unique feature of being a zero-footprint client. This means: no server installation or client installation. 

Bime is a data analysis tool providing a comon interface to all the entreprise data to business user. With minimal training and without technical skills, a user can ask questions on his own and receive results in an equally wide range of visualization tools, based on the most recent research in human perception. As it receives responses, the user can go further in his analysis by adding variables, decomposing results, switching axes etc. in a very interactive data analysis session. 

Bime is also a dashboard tool. All the analysis made can be tailored in dashboards. Those dashboards are not simple static views but highly interactive views of your business. With advanced features like data filter prompts, 4e, they can even turn into a data analysis tool. Best of all, with those dashboards, you can share very easily: each of them comes with a unique URL that you can safely share with anyone, anywhere and anytime.

Bime wouldn't be complete without a powerful user management mechanism. You can even manage and secure the data that people can see in dashboards.
 
Bime is a cloud computing solution, and although you are not required to host your data in the cloud, this option has many benefits, including security levels (yes, security!) and storage capacity that might be beyond the IT budget of your organization (see section 6g). With its unique "Déjà Vu" feature, Bime can take snapshots of your data, secure it in the cloud, and make it available online for authorized users without any software installation whatsoever.
 
Data can be updated automatically based on a schedule that you choose - which can also be added to with an ad hoc refresh function - whether you have uploaded a snapshot of your source data to the cloud, or a snapshot of a query result based on in-premises sources, both of which are facilitated by Déjà Vu, our distributed cache.  For those in-premises data sources read through MDX or SQL (delegated connections) you can opt to bring up the original data source (delegated aggregation) rather than the existing snapshot of the query (see section 6f).
 
Bime is a truly collaborative system in that it can be shared as you wish; not only can colleagues use the system without needing in-depth technical knowledge, but the results of analysis, whether at the query or dashboard level, can be shared in a number of ways.  Results can of course be captured as static images, but you can also share, publish or embed the 'live' dashboard, with post-processing functionality, sharing not just the headline figures but the ability to drill down to the source data (see section 5).
 
 

d-Bime architecture


 
 

 

e-What Bime is not


Bime is not an ETL (Extract, Transform, Load) tool, and is better for it.  You could say that Bime is an 'EL' process, extracting and loading data, but without altering the source.
 
Bime is also not a vast on-site structure that is the sole province of the IT team - it is fast, collaborative, simultaneous and accessible, involving none of the traditional architecture and warehousing involved in ETL.  It is streamlined to make it usable by your whole team, not just the IT specialists, and it can display results in a flexible way that makes them accessible to all.

f-Interface navigation


There are three main aspects to the application: analysis, monitoring and administration.
When you access Bime, whether through the desktop or your designated URL, you are taken to an 'overview' screen, where you can see your recent activity and take shortcuts to create new or access recent connections or dashboards.  Alternatively, you can move to the main screen for each application using the grey buttons at the top.
 
 
The 'analyze' view enables you to make connections to your existing data, whether web-based or on-premises.  For the kinds of data sources to which Bime can connect, see 2b.  Clicking on this button will take you directly to your library, where you can see lists of connections made, and queries performed, behind the tabs.  You can either load a connection or query to the pivot table, or create a new connection using the 'connections builder' (see section 2a).
 
Once a connection is made, the data can then be loaded into the pivot table and be 'queried' to interrogate the data (see section 3a).  In the pivot table you then choose how to represent this using a full range of visualization tools, from a simple line graph or bar chart, to more sophisticated multi-factor representations like bubble-charts or radars (see section 3b), with numerous options to customise these views for additional factors (see section 3c).  Once completed, your queries are also stored in the library, and can be used to create dashboards.  
 
The 'monitor' view acts as a library for your completed dashboards.  On each dashboard you can edit, reorganize, change views, and can also see the functionality that you allow to your viewers, using the post-processing options on the right.  You can then extract a dashboard to be embedded in a website, captured to a jpeg or other 'locked' formats, or shared as a URL in an email.   
 
The 'admin' view contains the management functions of Bime, including your account settings, specifying new users, how and to what extent you wish to share your data (see section 6c).  Accessibility and collaboration is increased with the messaging function.  This enables users and viewers to comment on, or ask questions about, connections, queries and dashboards, in a series of conversations recorded in a 'Bime inbox', which is behind the message tab.  
 

g-Security & privacy


Your Bime account is password protected and safe from prying eyes. All Bime accounts include 128-bit SSL security – the same used by online banks.

With the simplest options, your data remains on your computer, databases or web service. Most of the time, it is streamed directly from the source, direct to your computer and services, in complete confidentiality. We do not read your data.

For advanced use cases, when Déjà Vu, our distributed cache, is activated, Bime will store a snapshot of the data from your computer directly to Amazon S3 without going through our servers. The transfer is encrypted, the request is signed using a public and private key mechanism and has a lifetime of 60 seconds. Data is stored in a proprietary format, encrypted and anonymized.

All data is backed up daily, written to multiple disks instantly, and stored in multiple locations. You could say our backups have backups. Files that our customers upload are stored on servers that use modern techniques to remove bottlenecks and points of failure.

We rely on Amazon Web Services for our hardware infrastructure. Their state-of-the-art servers are protected by biometric locks and round-the-clock interior and exterior surveillance monitoring. Data center access is limited to only authorized personnel. 24/7/365 onsite staff provide additional protection against unauthorized entry and security breaches.

Your billing information is always completely protected. All credit card transactions are processed using secure encryption with Paypal. We Are Cloud do not have any of your billing information.

Submit a support request if you have any other security questions and we will get back to you as quickly as we can. We may not be able to provide specific details in areas which could compromise our security.

  

h-10 minute step-by-step example


A PDF tutorial where you can learn about Bime in 10 minutes: http://bit.ly/bCBZVj (English) and http://bit.ly/bdclAp (French)

 
 
 

2-Data connection

 

a-How to connect to data

1-Quick overview


Bime can connect both to online data sources and on-premises data sources. 
 
Connection is enabled in two ways:
 


When building your connection, 'select a data store' in the the drop-down list allows you to specify the type of connection you wish to make.  
 

2-Bime Desktop


For certain types of on-premises data sources, such as Excel files and direct RDBMS connections, Bime Desktop is required.  You will be offered the chance to download this when you open your account, or the first time you try to build a connection to an on-premises data source, and can then have a shortcut to it on your desktop / quick launch menu.  
 
Note: If you use the Déjà Vu option, other users and viewers can use the web version to access "cached" copy of Excel and RDBMS data. See the next section about Déjà Vu for more details.
 
Although web-based data sources can be connected to directly from your bimeapp page, most data sources perform better with the Bime Desktop. Bime Desktop is also used for automatic data refresh (see 6f) . 
 
Both the desktop and bimeapp page will give you exactly the same views and navigation options.   

 

3-Connection builder


The connection builder is the first step in using Bime. It can be accessed either through the overview ("Create a Connection", as illustrated in Figure 4.1.a) or through the tabs in the analyze view (Library -> "new connection", or Connection Builder, as illustrated in Figure 4.1.b). Then, you access the Connection Builder Interface as illustrated in Figure 4.2.
 

Fig. 4.1.a In the Overview Interface Navigation, click on "Create Connection" to create a connection.




Fig. 4.1.b. In the analyze Interface Navigation, click on "New Connection" or on "Connection Builder" to create a connection.

 

 
 
Fig 4.2 - The Connection Builder Interface
 
 
Building a connection involves three steps:
 

a-specifying the data source


The connection can be named, described, categorized and have privacy levels set. A drop-down list shows the data sources that Bime can connect to. Choose the appropriate source, add the database or file name, enter any necessary log-in or ID details, and save the connection.


 b-autobuilding the connection 


After selecting and naming your data source, click 'next' and Bime automatically extracts the relevant headings from the data source and arranges these in a schema of measures and attributes (see below).
 

c-refining the schema


You can drag and drop any heading that has ended up in the wrong place (for example, numeric client / product references may be assumed to be measures, when they are more likely to be attributes), or add different dimensions to create hierarchies of measures and attributes.  
 
Before going any further - some terminology:
 
 
The geographic dimension, and geocoding facilitated by Bime, means that location is not only available to be used as a title on traditional views, but also to provide displays using Google maps to give you a real picture of 'where your data is'. 
 
To be a true time-based attribute, the data source must be the full date: less detailed date-based data (for example, '2010') will be categorized in the axis of analysis like a product name or a client reference.
 
You can add your own dimensions - think of them as the folders into which your files (attributes) are placed - in order to have your data organized in the most helpful way, and allow easy breakdown of hierarchies (see 3a17).  The order in which attributes appear in the schema adds speed and simplicity to interrogating data, because each breaks down to the one below it; for example, order category is above subcategory, and when you come to the pivot table, you can break down from the highest order at the click of a mouse.  
 
 
Once the schema is as you wish it, click 'save and quit' and the connection is filed in your library.  From here, it can be loaded to a pivot table for interrogation, or reopened to be edited.  
 
If you need to add extra attributes, move things around, or alter the order of attributes or measures to make hierarchies, this can be done through the edit function at any time.

4-Déjà Vu


It is not necessary to host data in the cloud to be able to use Bime, but there are many advantages to doing so.  Déjà Vu is our mechanism for taking a data snapshot that then allows access to the data online, anytime, anwhere, allowing collaboration by your team whether on-site or off, cutting down on traffic to the original database, and alleviating the load in the production system.  Transferring data to the cloud also allows the data to be updated (on a set schedule or ad hoc), and for additional detail or information to be added to the existing connection through the Autobuild function.
 
Three things can be put into Déjà Vu
 
Enabling Déjà Vu is as easy as checking the box on the connection builder page and setting your desired refresh rate (the default being daily).  Ad hoc refreshes can also be performed through the scheduler function in the admin view (see section 6f for refresh options).  The scheduler also refreshes delegated data sources.  
 
 

5-Handling change

 
Three types of change can occur at this point:

a- Data change


If source data changes (e.g. new rows are added to a spreadsheet) and you have used Déjà Vu to build the initial connection, you will want to update the cached version at some point. This can be done in two ways: 

            
 

b- The structure of the data changes


The columns of the data source can be altered in 3 ways: renamed, removed, added. These changes need to be reflected in the connection so you need to edit your connection in the library.







 

 
             

Click on the dimension where you want to add the attribute, click "Add An Attribute", refresh the datafield listing, and pick the name of the added column. Same thing with measure:



 

c- Data source location and parameters changed




Then change your datasource definition and click "Save / Update" Then:


 
Finally you can click on "Save and Quit"
  

b-Type of data sources

 

1-Microsoft Excel


If you need help building a connection to an Excel spreadsheet, see our step-by-step guide at section 1h.
 
The connection builder will automatically pick up the headings from your spreadsheet and put them into the schema, either as measures or attributes. You can then create new dimensions or attributes if you wish, and move things around to form hierarchies.

By default, Bime will take up the whole sheet, but if you have a title on it or blank space around the active data, you can set the 'start cell' for the data connection with the 'offset' function. The start cell needs to include the header row with the necessary column titles.

How to format Excel Files for Bime

 The Excel File must contain a raw data table and not a formatted report. 


Bad Format: 


                            Bad formated Excel files with repeated headers, empty rows, grand totals

Good Format:


                            Well formated Excel files with raw data



Format check list:
 
 
 
If this happens, you can name (or rename) any measure or attribute using the 'edit connection' button in the connections library.  Click 'edit' once you are back in the connection builder, which brings up the schema.  Select the misnamed attribute, click 'edit' again, and you have the opportunity to rename it. 
 
 
 
 

2-Relational databases


a- Choosing between in-memory or Delegated Mode


Bime can delegate the heavy work of answering a query to the relational database engines. This is called "Delegated" mode. The opposite is the "In Memory" mode, which is limited by the amount of data that can be held in the memory on the client side. With the delegated mode, Bime is only limited by the capacity of your database, as it will do a translation between what the user asks and the language of the database (i.e. Bime generates SQL queries).


The “Delegated” mode is particularly suitable if you have a relational database with a medium to large data volume (e.g. more than several million lines).


There are 3 trade-offs in using delegated mode:

1) you can’t use the “Déjà Vu” technology to take snapshot of your data. Of course, you can still put query results in Déjà Vu for this type of connection.

2) Your relational database will do the heavy work so if it is a production system it can slow it down.

3) You can't use the connection as part of a composite connection.

To enable this mode you just have to check the little check box in connection builder:

BimeDesktop 11 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more! 

b- Create an RDBMS Connection



Clicking on the "Edit" Query will launch this dialog:

            
                "Single Table" lets you select a table or a view

                "Custom SQL" lets you write a complex SQL query.


3-OLAP Engines


If you have already invested in on-premises Business Intelligence and now want to give your users a 'best of breed' user interface on top of that, this is now very easy. Bime gives users an easy-to-use, non-technical, web-based "zero footprint" interface on top of the power of your OLAP engine, which can breathe new life into an existing investment.

 

Bime connects to OLAP engines by using the industry standard XML/A protocol. For this to work, your OLAP engine must be accessible behind a web server. The good news is, most of them are accessible by default. The aim of this section is to ensure that eveything is ready for an XML/A connection and to show you how to handle platform-specific settings.

 

a-Setting up the crossdomain.xml


To access your OLAP database with the web version of Bime (rather than Bime desktop) you will need to download the crossdomain.xml file using the link below and place it at the root of your web server.

 

Image 14 Setup XMLA connection

 

Important: for security reasons, please change the “*” in the file to the address of your bime account, i.e. “*” becomes “myaddress.bimeapp.com”.

The root depends on your web server, with common examples shown below. A good way to test if the operation was successful is to open your browser and enter the URL http://your_webserver_name/crossdomain.xml. If you see your crossdomain.xml file, you have successfully set up and are ready to go.

 

Some possible locations for your crossdomain.xml file:


b- Specificities for each OLAP engines 


Microsoft Analysis Services

A lot has been documented on the subject so please refer to the following:

windows server 2003 + Analysis Services 2005

windows server 2008 + Analysis Services 2008

windows XP

windows7

II7

 

Mondrian

Please refer to this page.


Panoratio
 

There is nothing further to do once the crossdomain.xml file is at the root of your web server.

4-Flat files & CSV


First of all, you have to create a CSV connection. 


Then, just follow these steps:

1) Choose a file, you can choose any kind of extension


The CSV/flat files connector only works with Bime desktop except if you are using the "Déjà Vu" cache and reloading an existing pivot table.



2) Edit parameters


Once you choose a file, just edit the parameters (for instance, decide if you want to process a CSV or a flat file and choose all the specific parameters). 



                                                                           CSV parameters popup 

If your file headers are NOT embedded in the first line, you can easily edit your own headers. If you uncheck the "Line 1 is headers" checkbox, it is possible to specify your own headers. Then, the CSV tab asks you to determine some parameters, such as the recordset delimiter, the separator etc. If you are French and using a French date in your file, please select the "French dates" checkbox. In a same way, if you are using a comma instead of a decimal point for your numbers, change the default value in the "Float separator" field.


The text in your file should look like this if you use the first line as headers.



                                                              Flat file parameters

If you select the "Fixed Width" tab, you will be able to define parameters for a flat file. As you can see on the illustration above, there are two possible formats: a fixed length and a variable fixed length format. If you check the "Columns have Variable Width" box you implicitly choose a variable fixed length format.


3) The preview


In order to validate your choices, you can use the preview button which enables you to see if the connector will correctly parse your data. This ensures accurate processing.



4) Save your data source


As you can see for all other data sources, the final step is the same: save the data source and generate the data schema. You can then modify the schema and save it. Then just load it to the pivot table and begin to manipulate your data. 

 

5-SOAP


First, fill in the SOAP wsdl URL. Bime will connect to this and pick out the available methods, and the parameters for each of these.


Click on the "Methods" button. A list of all the available methods in the web service appears. Select the name of the method you want to use.


For each method, Bime lists the required parameters. Only simple parameter types (not nested parameter definitions) are supported. Set the different parameters of the operation. The header parameters are often used for authentication but you may need to use Basic Authentication. If so check the very last option of the dialog.


If the Bime viewers' names and passwords are synchronized with those of the web service, this can be picked up by the system. If you check "Use Viewer Name" and "Use Viewer Password", Bime will authenticate against the web service by using the current viewer name and password. This way, you can ensure that the people consulting the dashboard can only see what they have the right to see.



6-Salesforce


A connection to a Salesforce account is made in few steps. You have to provide the Salesforce account information to access your data. Please note that your Salesforce plan must accept API call.


Now you have to build your schema. By clicking on the build schema button, a window will allow you to select from the data fields available in your Salesforce account.


First of all, select the main table from which you will take your measures. Then select from the list the other measures and attributes to bring in. Bime will then generate a SOQL (i.e. Salesforce.com Object Query Language) query from the elements you select.


Once you have defined your schema, save to create the connection. Please note that when a schema has been defined for a connection you cannot edit it. You have to create a new connection to be able to change selected fields.


Explanations about the schema

In this example, we selected User.LastName from the Opportunity table. In the schema, this yields three attributes : Opportunity.createdBy.LastNameOpportunity.LastModifiedBy.LastName and Opportunity.Owner.LastName.

Why has Bime created three attributes from one selected field ?

In the Salesforce model, the opportunity table is linked to the user table in three ways (for this example):
    - the opportunity creator user
    - the last modifier user
    - the opportunity owner user



By default, Bime detects all links available and create an attribute for each. You can then delete those you do not want.

Security Token Explanations

The security token is a part of the Salesforce security model and is required to access your Salesforce data from Bime. The security token is available for each user. If you don't know your security token, you can ask your administrator or follow these steps to generate  a new one.

1 Go to the setup panel



2 Reset your security token



3 You will receive an e-mail with your new security token that you can then use in Bime.


 

7-Google Spreadsheets


To connect to a Google spreadsheet, you need to confirm the account where it is stored - the first time you do this you will need to 'register new account' and enter the relevant email address and password.  Once registered, this account will appear in the drop-down list whenever you add another spreadsheet.  You will need to confirm the password each time, for security.
 
 
As with Excel, the connection builder will automatically pick up the headings from your Google spreadsheet and put them into the schema, either as measures or attributes.  You can then create new dimensions or attributes if you wish, and move things around to form hierarchies.  See section 2b1 for a troubleshooting guide on connecting to spreadsheets with Bime.
 
Bime can aggregate spreadsheets that begin with the same pattern, for example, if your spreadsheet beings with 'sales', it can aggregate this with any other spreadsheets beginning with 'sales' in your Google account (sales2008, sales2009 etc).  Alternatively you can connect separately to each spreadsheet as normal.

Google Spreadsheet must follow the format convention used for Excel Spreadsheet. see b1.
 

 

8-Amazon Simple DB


To access simpleDB you'll have to provide an Access Key & Secret Key. 


Bime support SimpleDB semi structured typing
 
*  You can access a dataset that doesn't have the same structure for every rows:

        <item>
                <product>A</product>
                <profit>10</profit>
        </item>
        <item>
                <region>East</product>
                <profit>100</profit>
        </item>

* You can't have nested rows:

        <item>
                <product>
                        <name>A</name>
                        <color>Red</color>
                </product>
                <profit>10</profit>
        </item>
      

9-Lighthouse


You'll need the following information:


Url and Project Id in your lighthouse project page:


Token in the use page:


Page number is the amount of history you want.


10-Google Analytics


BIME provides a Google Analytics connector which allows you to retrieve, analyze and visualize your web analytics data using our computing engine. This connector is somewhat different because all requests in the pivot table use the "delegated mode" (see the dedicated chapter), so it means that everytime you drag something in the pivot table, it will send a dynamic request to the Google Analytics API and retrieve the new result in the datagrid or the chosen vizualisation. This is a very practical mode for this kind of data.

NB: You cannot use more than 7 dimensions in the pivot table (this is a Google Analytics API limit).

First, you just need to create a Google Analytics connection.


Then, you have to fill out your Google account information using your Google login and password.


If the Google authentication is valid, you will be able to see your different accounts (websites) and select one of these.




Finally, you just need to save your data source. You are welcomed to the new world of Web Analytics! You can also create your own calculated attributes and measures, and there are some default calculated measures such as the bounce rate or the average time on page etc. Bime enables you to perform deep crossed analysis for your web analytics data. Here you see the default schema in the pivot table.



11-Mashup data with composite connections

            a-usage


You can use composite connections to mashup two "in memory" connections provided they have a common key. This should be used to enhance a main connection with new information. The second connection should contain only unique records for the common shared key.

Consider the following two connections (note that the Product ID will be used as the common key):

            Table 1: Main Connection with measures
                



            Table 2: 2nd connection with information on the product.



With composite connections, you'll be able to create queries like: What is my profit by product category?



            b-create a composite connection


A composite connection can be made from two existing connections providing they both share a common 'key'.  

You build a composite connection out of 2 individual connections.  Create a connection and choose 'composite' as the data source then specify the two base connections you want to combine.

Then, you'll need to specify the 'join key' or set of common data which you can select from the drop-down list of attributes. 

 We are now going to build a composite connection based on a Google Spreadsheet and an Excel file.

1) Spreadsheet connection

First we create the Google Spreadsheet connection in Bime. For this example we used sample data (and not a large sample), shown below:


Create your spreadsheet connection in Bime. This will look something like this:


2) Create your Excel connection

The second connection will use an Excel file that looks like this:




3) Composite connection

Now that you have your two connections you want to work with, you have to create your composite connection.
Select composite connection in the connection builder drop-down menu and click Next. A window is displayed to help you create your connection.



Select the two previous connections and select the attribute which you want to use to combine them.  In our example, we will take 'Category' in the two connections. These attributes are the fields that will be used by Bime to mix in the data. They will be merged into a single attribute called "join key".


Now, you can save and create your connection.

What does Bime do when it mixes data ?

When you define your join keys for each model, Bime uses them to mix data. For each different value of left join key, it will search each line which has the same value in the right join key and get the line data to calculate results.



In our example, if you ask for SUM(Orders) by Product, Bime gets the Category for each Product and sums the Orders values for each category



P1 and P2 are in the Category C1 ans the SUM(Orders) for C1 equals 50. So, P1 and P2 gets 50 orders.

NB: This mechanism lets users make any query on the composite connection but has some restrictions. You cannot use it on multiple columns; you have to base your join keys on a single column to mix data. Also, you cannot base your composite connection on other composite connections, and cannot use the database aggregation option for RDBMS connections.

NB : If you specify the same column on each connection and these columns store quantitative data, they will be merged. If they are qualitative data, they will be renamed by adding the connection name in the attribute name.


 

3-Analysis

a-Principles

1-Quick overview


Between the connection builder and the library is the heart of the analytical function of Bime: the Pivot Table illustrated in Figure 1. 
 
 
                            Fig. 1. The Pivot Table
 
 
 
When a connection is loaded, all the data it contains is available to you on the pivot table. Loading data into the pivot table and creating a visualization is a 'query' - the result of interrogating your data. To do this, you simply drag and drop measures and attributes onto the layout. The table will tell you if you can't put it there!
 
At first, this will display data in the classical grid view, so you can see that you have included all the relevant data.  This  view can then be changed using the drop-down menu to change 'grid' into a different form (see section 3b for help with deciding what visualization would be best for a particular dataset).  
 
As you change visualizations you can add, move, or remove measures or attributes at any time.  
 
Using the 'options' box available with some visualizations (not in the grid view), you can 'weight' your data so that the representation includes a combination of measures (for example profit and turnover) in same result by resizing or recoloring them (see 3a12).
 
 
You can fine-tune your analysis further still by creating calculated measures and attributes (see section 3c), allowing you to drag and drop the results of complex calculations as a single item.  
 
To the right of the table are your 'post-processing' options, which include rendering your results as percentages, filtering to focus on the best and worst-performing areas, or setting floors or ceillings (see 3a6).  
 
The 'totals' (see 3a5) and 'sort' (3a4) options are further tools to alter and improve the display of your results. 
 
The 'Auto Query' button showing a green spot means that the visualization will automatically update itself as you drag and drop items onto the frame.  This can be very helpful in showing immediate changes as new attributes or measures are factored in, but if you prefer to put all the data onto the frame and then see your visualization only when you are finished, click on the AutoQuery and it will show a red spot - a sort of Bime pause button - until you click it again to see your visualization finished (or, ready for more data to be added to it!).
 
The 'save' button shows you your options for saving a finished query. 
 
You can remove individual measures or attributes from the frame to the dustbin, and the 'clean' button wipes the slate clean of all measures and attributes on the frame so you can start again!   

2-Querying and the 4 main axes


The four main axes of analysis are 
  • measure
  • column
  • row
  • filter
 
Measures are all quantifiable values - sales, costs, profit, unit price, quantities, etc.  By default, the sum of the chosen measure will be shown, but this can be altered (see 3a3).  In addition to the measures drawn from your data source, there is also a dynamic count added to all non-OLAP datasets, and you can add calculated measures as well (see 3c). 
 
Attributes are used to form the rows and/or columns.  You can also apply a filter, to concentrate on or exclude a particular region, or product line, or department.
 
For example, to look at profits over time:
  • Drop 'profits' onto the frame as the relevant measure. 
  • Drop 'ship date' onto the frame to form the columns and you immediately see the total profit per year. 
 
   
  • Drop 'product category' on Rows to form a row and this total profit breaks down by category automatically. 
 
 
 
You can also add a filter by dropping 'Sales Channel' onto the frame, and then choosing which channel you want to use to filter the whole dataset.
 
 


In this example, the data grid displays only data for the Priv.Owned E-shop.

 

3-Changing measure aggregation

 
The default when you drop a measure onto the frame is that it will be the sum of that measure.  Once on the frame, however, a drop-down menu allows you to choose which aggregation you need. 
 
 
The options available to you are:
 
SUM - the total of all the values of the chosen measure
 
AVG - the average of all the values of the chosen measure
 
COUNT - the number of values of the chosen measure (the number of lines on a spreadsheet, for example)
 
D_COUNT - the number of distinct values of the chosen measure
 
MAX - the maximum value of the chosen measure
 
MIN - the minimum value of the chosen measure
 
SUMX - the slightly tricky one - with a measure drawn from your original data source, SUMX acts just like SUM.  However, when you are looking at a calculated measure (see 3c), SUMX makes sure that the right sum gets done.  Using SUM on a calculated measure gives a global result - for example if your calculated measure is SUM(Order Quantity)*SUM(Unit Price), the 'simple' SUM would multiply the total number of units ordered by the total of all the unit prices = not very helpful.  To see what actual turnover is, you need SUMX - this gives you the total based on line-by-line calculations, i.e. for each order, it calculates quantity * unit price = turnover, and then aggregates those line-by-line turnover figures to give you a result for total turnover.
 

4-Sorting


Once a visualization has been created, for example in a bar chart, the results will be displayed in the original order of the defining attribute, often alphabetical.  The visualization can be sorted big-to-small or vice versa using the 'sort' button above the pivot table.
 

 
 

5-Totals and sub totals


Using default totals & sub totals
 
You can obtain standard sub and/or grand totals on rows and/or on columns simply by selecting the check boxes in the “Totals” toolbox illustrated in Figure 1. This can be done in any visualization, but a data grid is easiest for our example.
 

Totals Toolbox

Fig. 5.1 – The Totals toolbox.

 
⇒ Use visual totals for non-additive aggregators on calculated measures
 
Totals cannot be computed correctly when the aggregator on a calculated measure is non-additive, such as AVG (average), COUNT or D_COUNT (distinct count). In this case, an information message is displayed and these totals are left blank in the result, as illustrated in Figure 2.
 
 

Visual totals for non-additive aggregators

Fig. 2 – Totals are left blank (blue shapes) when aggregator is non-additive

If you want values for these non-additive totals, you can toggle the visual totals check box, computed as the sum of the displayed values, illustrated in Figure 3. However, keep in mind that these visual totals do not match the specified aggregator, e.g. are not averages in this case.

 

Visual Totals for non-additive aggregators

Fig. 3 – Visual totals (blue shapes) for a non-additive aggregator on a calculated measure.

⇒ Use visual totals for unifing values of calculated measures
 
 
Sometimes, the definition of a calculated measure (i.e. the associated calculated formula) can cause counterintuitive values for totals. For example, let West Shipping Cost or One be a calculated attribute defined as follows:
 
IF ([Region] = “West”) THEN SUM(Shipping Cost) ELSE 1 ENDIF
 

The semantic of this calculated measure is: if the value of the region attribute is equal to “West” then it returns the SUM(Shipping Cost) measure’s value, otherwise it returns 1. As illustrated in Figure 4, several computed values for totals are counterintuitive, such as the total of the line highlighted in blue. The expected value of this line would be 3 (i.e. the arithmetic sum of the line). However, since the value of the region attribute is not equal to “West”, the return value of the calculated measure is 1 for the total of the line.

 

Visual Totals for counterintuitive values

Fig. 4 – A calculated measure’s definition can cause counterintuitive values for totals.

 

So, if you want to obtain the intuitive values for totals, you can toggle visual-totals, as illustrated in Figure 5.

 

Visual Totals for counterintuitive values

Fig. 5 – Visual totals for intuitive values on a calculated measure.


6- Post processing: order of application


While Bime gives you the opportunity to create calculated measures that can be used as factors in new queries (see section 3c), you do not have to create your own formulas to perform calculations on your chosen measures.  The post-processing menu on the right hand side of the pivot table provides you with a number of options to filter or change how the chosen measure is displayed.
 
These post-processing options can work simultaneously, so can be applied in combination - remember that switching from one to another will keep your initial filter, so if you want to go back to the beginning, you need to reset the filters to 'none'.
 
If you are using a combination of filters, to ensure that they are applied in the right order, click on the '123' button, which allows you to change the order of application by dragging and dropping them as you wish.  The 'sort' function (see section 3a4) can also be applied to post-processed displays. 
 
 
 

7-Post processing: Top and Bottom


The 'TOP' filter allows you to break down a long list to concentrate on the highest (or lowest) values.  Just checking 'Top' with give you the maximum value, but you can choose to show any range at either the higher or lower end, or both.  Thus, you can target your weakest areas and compare them with your strongest, to see what is going on, and develop new strategies to improve performance.
 
 

The filter will automatically choose the most obvious way to apply itself, but if you have a chart rather than a list, you can apply it as you wish, whether across columns or rows.  The dropdown list also allows you to choose which of several measures that might be displayed on a chart you wish to filter, just select the measure you want.

If you want to be able to use the top or bottom of your data range and perform further queries on it, it might be helpful to create a filtered attribute, which would mean that you had that top or bottom range permanently available in the connection, without having to post-process (see section 3c6).
 
 

8-Post processing: Value filters


The 'eye' is the default for the post-processing menu.  This draws the measures from the pivot table and allows you another option to focus on specific ranges within the measure range, but based on value rather than the number of results.  With this, you can ignore 'one-offs' or unusually large orders, and focus on any range of your activities.  Just drag the triangles on the appropriate measure line to the value you want to use as your start- or end-point, and 'zoom in' on the range that interests you.
 
 
 

9-Post processing: Part to Whole


The '%' filter allows automatic calculation of percentages without having to input a formula and create a calculated measure.  Again, the filter will automatically choose the most obvious basis of application, but you can specify which axis you wish to convert.
 
 
 
In terms of order of application, the ability to combine filters can give you added functionality; you can look at your top 20 performing areas, and then apply part-to-whole to see the proportion of your business they make up. 
 
 

10-Post processing: Running calculations

 
 If you need to look at results on a cumulative basis, this is possible for date attributes by picking 'Running Total' from the dropdown menu on the tab for that attribute (see section 3a13).  At its simplest, in the grid view, this changes your figures from those relevant to the stated period (left) to cumulative figures over the whole period shown (right), on a row-by-row basis, but it is available in all visualizations if required.

                         
                                                  How to trigger Running Calculations



             Without running calculation                                                                                                                                                                                                                 
                            
           
             With running calculation


Breaks are automatically managed when you drill down in the time dimension:



 
                                       
  
 

11-Access special capabilities of visualizations

 
Right-clicking on the field of your visualization brings up a menu of options to help you to add extra elements to it.
 
Add comment - available on every visualization, allowing you to add text to the display (see section 3a14)
 
Edit colors - available wherever colors are used!  Re-order the given colors or choose your own by clicking on the color square and selecting from the range shown.
 
                         
 
 
Show value - on line, bar, column, area and pie charts, you have the option to show your results purely visually, or with labels for values attached
 
Show zoomchart - on line, bar, column and area charts, you have the option to 'zoom in' on a particular area of the results (see section 3a17 for more details).
 
Clustered > stacked - on column and bar charts, where several attributes are shown, you have the option to show these separately (clustered) or as a single result (stacked).  Just click on this to change from one visualization to the other, as shown below.
 
                   
 
Segment > Curve - on line and area charts, you can opt for straight lines between data points (segment) or for the display to 'round off' into a curve.
 
                                 
 
 
Linear axis > log axis - on line and area charts, you have the option to change the usual linear axis to a log axis, which allows you to display two ranges of data far apart in numeric terms as close physically, so both can be examined on the same graphic.  This is not meant for use when you need to compare the two ranges against each other, rather to see variations or trends in related but separate data.  In the examples below showing cost components, the chart on the left uses a linear axis, and you can barely see the smaller value; the chart on the right uses the log axis, and in this both cost components can be seen easily, enabling one to see that the lower value has stayed very stable over time, while it is the higher that is subject to fluctuations.  Thus, the values themselves represented by each color are not compared, but the trends represented can be.
 
                                   
 
 
No base at zero - in area and line charts, it is possible to alter the y-axis to start somewhere other than at zero.  If chosen, the chart will automatically resize to start just below the lowest value, thus making variations more pronounced and enabling a more detailed look at a number of datasets that are all numerically close together.  Note that this option can only apply if all values on the display are positive, and is not available if you have switched to a log axis view.
 
                                       
 
 
Standard > explode - an option for pie charts, which changes the traditional view to show white space between the segments.
 
Callout > inside with callout - a further option for pie charts when you have chosen to 'show value', so these are placed either outside or inside the pie.
 
                              
                            A 'standard' pie with values as 'callouts'                                                           An 'exploded' pie with values shown 'inside'
 
 
Transparency 100 / 80 / 50 - on area and bubble charts, where different data ranges may overlap, you can alter the transparency of the display so that you can 'see through' to each range.  The current setting for strength of color will be shown on the menu in square brackets, i.e. [100] - transparency is increased by reducing the strength of color.  In the following examples of an area chart, you can see how two previous hidden data ranges emerge as transparency is increased.
 
 
                                 
 
 
The final option available is on heatmaps, where right-clicking allows you to hide the control menu.
 

12-Encoding in color, size and shape


If you have more than one measure to reflect in a single graphic, this can be difficult to achieve with traditional visualizations.  Bime offers you three interesting visual ways to distinguish between different data sets on a chart, or to 'weight' your results to display two or three measures simultaneously.  The available options for each type of chart are displayed automatically.   


Drop the first measure onto the frame and a bar chart will display that in a single color.  Your options here are to change the color, or the size, of the bars.  Drop the second relevant measure onto one of these options and your chart is transformed to show both of the aspects you want to know about.
 
 
 
Changing the shape of data points is enabled on bubble-charts, so you can easily differentiate different datasets being shown on the same chart. 
 
4 styles of color coding can now be applied on top of your data.

Default Style 1 is a gradient style that will show the value of the result on a sliding color scale across the dataset. The color coding below shows you how customer states perform against each other in terms of shipping cost. 

To switch to a different color style, you just have to right click on the color legend of the chart.


Image 21 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Style 2 is not a gradient style. You specify a value above which the color will be red. Everything below this value will be green. In the example below, you see all the customer states that have shipping costs above $3000 in red.


Image 22 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!


Style 3 is a divergence gradient style. You see a strong red when the value goes far above the median and a strong green when the value goes far below the median of the result. Anything close to the median is shown by a sliding scale of grey.


Image 23 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!


Style 4 is a divergence non gradient style. All the states in grey are as close to the median as you want, and all the states in red and green are at the extremes of the dataset.


Image 241 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

13-Time elements


Date attributes, which must be actual dates, are automatically formed into hierarchies by Year, Month and Day.   You will start with 'Year', which you can then break down to the next step in the hierarchy simply by clicking on the '+' button on that tab, and you can 'close' a lower level and return to 'Year' by clicking on the '-' button on the one you want to close.
 
 

 

The drop-down menu from each date tab allows you to select specific years, months etc. to focus on a particular period. 
 
In addition, you have ability to 'change time level' to show different periods from those automatically assigned, including half-years, quarters, weekdays, even hours, minutes and seconds!
 
The running total function is also accessed from here.  This allows you to undertake calculations on a cumulative basis (see section 3a10).
 
 

14-Comments


Right-click on the active frame of your query to add a comment, which will be taken through when the query is saved to the dashboard.  This gives some space for the creator to give some context to the query, point out an interesting variation, or pose a question to his or her viewers.  While all viewers can pose questions about dashboards or queries using the messaging function in Bime (see section ___), only the creator of a query, or another user with access, can add text to the final presentation.  
 

15-Trend lines


On column, bar, line, area and bubble charts, a 'Trend Line' button will appear above the frame, giving you a range of options to insert a reference line onto the chart.
 
 
You can set a 'constant' at whatever value you wish, for example to emphasize zero, or show a target. 
 
A 'linear' trend line is a straight line showing the overall trend of the chart.  If there is more than one line of data on the chart, there will be a separate trendline for each data set.
 
Polynomial trend lines are not straight but reflect variations over time, growing closer to a curve the more datapoints there are to deal with.  'n=2' will usually give a slight arc to the trend line, 'n=5' will fluctuate more to indicate the general pattern.
 
 
                                    
 
 
Additionally, on column, bar, area and line charts you have the option to add more reference lines based on other measures; these do not track the trend of the main measure shown, but allow you to keep an eye on those additional measures.  Thus, if the main consideration is how unit price changes over time, this is the main measure to drop onto the frame as normal; but if you also want to bear order quantity in mind, add this to the 'trend' box to have a reference line added to your visualization. 
 
 
Once you have added a reference line to your visualization, this stays 'live' as you switch between different visualizations, until you click 'remove' (for a trend line) or discard the additional measure from the trend box.  Even if you click away to one of the visualizations that does not support such reference lines (such as treemap) and then back to one that does, your reference remains in place. 
 
On all x / y-axis charts, gridlines will appear when you hover the cursor over the field of view, whether on the pivot table itself, or on the published dashboard.  If you wish to show a permanent line, use the 'constant' trend as above.
 
 

16-Decompose


The cartesian and pie charts allow you to 'decompose' your visualization, both on queries and on dashboards.  Hover over a data range and a pop-up appears, offering you this option.  Click, and you can select to which attribute you want to dig down into.

 


 

 

For example, this pie chart shows results based on one attribute (here, 'Year(Ship Date)') - but you can focus in on one element of that (here '2009') by using decompose. 
 
 
Having opted to decompose using 'Sales Channel', the chart changes to show results only by the chosen Year, which has been moved to be a filter
 


You can continue to 'pivot' your data by altering the filter.  Alternatively, decompose another segment of the pie and each new view adds that segment's attribute to 'filters', enabling it to focus in on that segment, and uses the new chosen attribute in 'columns'. 
 
Thus, decompose allows you either to drill down into the detail, or 'flip' the visualization from being defined by one attribute to another.

17-Hierarchies

Image 15 300x259 Bime 1.75: Hierarchy Support & Drill Down, Connectors for major OLAP Engines, Animated Data Effects and loads more!

A hierarchy is a path though different attributes of a dimension. A typical example would be the dimension “product” with attributes that would be organized as Product Category > Sub Category > Product Name.

 

What is the point in such organization?

 
First, you can easily navigate through your data in a way that make sense from a business perspective. It is highly desirable to analyze product categories and then drill down on into the details of sub-categories. While this was possible before, it is now much easier and Bime does all the hard work for you. 
 

Secondly, it helps to organize attributes in logical blocks. All your product-related attributes will be in one dimension, all your customer-related attributes in another, and so on.  In the end you will have a naturally organized analysis canvas, allowing even those with minimal knowledge of the business or technical skill to a) understand the model, b) ask deep business questions, c) see what details are important, and d) drill down and explore those details.



    Drag and Drop Product Category                                    It created a new Dimension of Product                                It added a new attribute in the dimension.                        below Dimensions                                                       Category. Now Drag & Drop Sub category.                             Drag & Drop Product into the dimension.
 

You now have defined a dimension with 3 attributes ordered as: Product Category > Product Sub-Category > Product. 

The last thing to do is to rename it:



This means that the level of analysis in your query can be changed up and down simply by clicking on the + or - signs on the attributes you have placed on the frame.

 


How does this change how I use Bime?

 
As with any feature, this would be useless if it were hard to use. Creating a hierarchy is done by simply dragging and dropping elements. The most popular new feature using this will be the “decompose” feature on the cartesian and pie charts. This feature allows you to click on any data point of a chart and ask Bime to decompose it by any attributes available (see section 3a16).

17-Zoom charts


Right-click on the data field of a cartesian chart and you get the option to show a 'zoom chart' - this allows you to focus on a particular range of the data, without applying a filter or post-processing.  For example, having sorted results by value, to focus on the worst performing areas, just drag the 'zoom' over the range that you want to cover up; the chart automatically resizes to focus on the range that is left.  If this is a visualization that you wish to keep, you can then right-click and opt to 'hide zoom chart', or you can remove the zoom to return to the original global visualization.
 

  

18-Row Selectors


On the cartesian charts, when an attribute is dropped onto rows, a little grey box pops up in the display frame.  This allows you to use the same visualization to look either at the global results for that attribute, or focus in on one element of that.  In the example below, the column chart is showing results by sales channel - click on a category to limit the visualization to the relevant figures, or back on the header 'sales channel' to return to the global view.
 
                        Dropping attributes in rows  (here: "Sales Channel")  gives a row selector in many of the Bime's charts.

                            Selecting a different "sales channel" in the row selector change the data provider of the chart. Please note that scales are maintained between elements in the selector for easy comparisons.


            You can select multiple elements in the row selector either by maintaining shift + select on the different element or by clicking on the title of the row selector.

 
  

19-Custom display formats


Until now Measure display formats were Bime ones. We have given you the ability to apply the display format of your choice: including decimal point precision, choosing decimal and 'thousands' separators, currency indicators, prefixes and suffixes.  Opt for 'custom' display format and make whatever changes you need.

BimeDesktop 8 Bime 1.85: Data filters, dynamic count, custom display formats

 
BimeDesktop 9 Bime 1.85: Data filters, dynamic count, custom display formats 



20-Dynamic count


Sometimes, you just want to…count things. Every non-OLAP connection comes now with a new dynamic calculated measure called “Dynamic count” that allows you to count the number of rows in the orginal datasource that match your current query. 

21-Display aggregator

 
You can use the "display aggregator" check-box if you want to hide the measure aggregator ( like "SUM, COUNT etc...).




            With aggregator



            Without aggregator

Note: In the monitor, we recommend that you do not mix widgets with an aggregator with those widgets without an aggregator.

b-visualizations

 

1-Grid


The grid view is the default starting point for your visualization.  It is a simple numeric grid, organising the attributes and measures you wish to show, like a traditional pivot table.  Thus, it supports looking up individual values precisely, and to highlight individual values, without giving a 'shape' to the numbers.  You can of course stop here, if this meets your needs, or add visualization by using graphs instead.
 
Just drag and drop the headings you want for the rows and columns, and 'fill' the grid by adding the appropriate measure to the frame.
 

 

2-Multi


The 'multi chart' option uses automatic configuration to provide a visualization using several different charts in the same query, so these do not have to be prepared individually.  This chart explosion allows for easy data comparison. 
 
For example, if you want to compare results over time determined by an attribute, for example performance by region, or department, or product category, you could show the results for those attributes grouped together in a simple bar or column chart, or as lines on a line chart.  With the multi chart function, you can also break the results out into separate charts for each period.  For example, in the below example, switching the visualization to 'multi' automatically moves the measure across to 'columns', and shows a bar chart for each year of the period in question.
 
 
 
 
 Drag the measure across to 'rows' and the chart will automatically re-form as a series of line graphs for each region.
 
 
Drag the attribute from 'rows' to 'columns', and the chart again re-forms, this time to show a series of column charts.
 
 
In each incarnation of the same data, you can see the principles behind how the multi chart is formed - more than one item in 'columns' and you will see your charts next to each other; more than one in 'rows', and they will be stacked on top of each other.  More than one in both and the charts will spread out further!  In each case, the items dropped onto 'columns' determine the x-axis (or x-axes) of the display and the 'rows' determine the y-axis/axes. 
 
The real beauty of the multi chart option is when additional attributes are dropped onto the frame, as the chart explosion simplifies what could be a confusing mix of elements on a single chart.  A single 'line' of charts as above can be exploded into separate charts for each primary attribute, showing results for the secondary attribute. 
 
 
 
Note that with the added functionality of a multi-chart, the additional capabilities accessible through right-clicking on the field of display (see section 3a11) is limited to adding a comment and editing the colors used.  The ability to 'weight' results using options for encoding in size and color (see section 3a12) remains, as do your options to apply a filter, sort the data (see 3a4), or post-process (see 3a6).
 
 

3-Column


How do the items in your data set stack up ? A column chart is a classic method for numerical comparisons. It emphasizes data at a specific point.
 
When to use it:
* To compare values
* When data is discrete
When not to use it:
* When there are a lot of columns (i.e. categories of data to be shown) it may be difficult to read the labels
* While this chart may be useful to look at results over time, for example annual results over a number of years, or monthly management accounts figures, where your data is tracking something that is continously changing, it may be best to use a line-graph, as trends can be easier to see in a linear format.
 
To use this visualization, drop the primary attribute (in this example, the year) onto 'columns' - there are two ways to add on a second attribute (in this example 'product category'): you can simply add it to 'column', but then all the columns are the same color and equally spaced, which may not be helpful.  A much better approach is to add that secondary attribute to 'rows', so that you can either see the global results (as below), grouped by year but distinguished by color, or click on one category in the on-frame box (the row selector - see section 3a18) to see only the results for that category.
 
 
 

4-Bar


How do the items in your data set stack up ? A bar chart is a classic method for numerical comparisons. It emphasizes individual data at a given time.
 
When to use it:
* To compare values
* When data is discrete
When not to use it:
* When there are a lot of bars (i.e. categories of data to be shown) it may be difficult to read the labels
* While this chart may be useful to look at results over time, for example annual results over a number of years, or monthly management accounts figures, where your data is tracking something that is continously changing, it may be best to use a line-graph, as trends can be easier to see in a linear format.
 
Using this visualization is as easy as using a column chart - put the primary attribute (here, 'Product') on 'columns', and any secondary attribute (here, 'Sales Channel') onto rows, not forgetting to 'fill' the chart with the necessary measure (here, 'profits'), to show your results in bar format.
 

 

 
 
 

5-Line


Put the value you are measuring on the y-axis and draw lines to watch items change over time. A line graph is a classic method for visualizing continuous change, from one value to the next, throughout the entire series.
 
When to use it:
* To track rises and falls over time 
* To reveal patterns in the data: trends, fluctuations, cycles, rates of change
* When the labels on the x-axis have a natural ordering (2005, 2006, 2007...)
When not to use it:
* If your data is categorized without a natural ordering, for example by country, or department, or activity, a bar or column chart  works better.
 
To use this visualization is again very simple.  Drop your x-axis attribute onto 'columns' - and note here that this shows results by month, an automatic hierarchy available to you on a date-based attribute, accessible by just clicking the '+' button next to 'Year' - your measure will form the y-axis, and then any attribute placed in 'rows' will add lines to the graph.  Again, you can click on the row selector to look only at one Sales Channel, or on its header to show all three lines at once.
 


  

6-Area


An area chart tracks the changing values of items that add together to make a whole. It is a classic method for visualizing change in a set of items: the sum of the values is as important as the individual items.
 
 
When to use it: 
 
  • To track rises and falls of a set of items over time
  • When the labels on the x-axis have a natural ordering only (for example, months or years, not results from different countries or departments)
  • Only for positive values, otherwise it suffers an 'occlusion' problem
  • Only for meaningful data series that add up: if the series cannot be added, it is best to use a line graph instead
  • If detailed comparisons are not of primary importance, otherwise it is best to use a line graph instead.
 
To use this visualization, you have several options.  You can look only at measures, and how they change over time - in the first example below, it is clear that it is changing unit price, not shipping cost, that is leading to cost fluctuations for the business.  Alternatively, you can look at measures with reference to another attribute by adding this to 'rows'.
 
            
 

7-Bullet


Have targets?  Everyone has targets - and the 'bullet' visualization allows you to show performance against target in a very easy way.  Drop your chosen measure onto 'value' and your chosen attribute onto 'rows'.  If you wish, you can add in extra elements such as team or year to 'columns' to compare performance across your organisation, or over time.
 
Then, set your target - this can either be a number that you specify on the frame, or another measure.  As with all the other visualizations, you can sort, or post-process, to focus on your best (or worst) performing areas, or, using the value filter, any range at all.
 
 
 

8-Gauge


A gauge is another fun way of visualising targets; again, drop your selected measure on 'value' and set your target.  Here, by adding a date attribute to 'columns', we can see performance over time.  The target has been set at 250,000, so the gauges show how well each activity has performed towards the target. 
 
 
 
 

9-Pie


This classic and popular chart shows proportions: each component is a slice of the big pie. Each slice or area corresponds to a percentage of the whole. The pie visualization puts the numbers in percentage form automatically.
 
When to use it:
*To see the parts of a whole, not to communicate numbers exactly: (for which, consider a bar graph instead)
*To represent the + or - 50% of one item in a whole 
*If you have positive values only
 
To use this visualization, your chosen attribute needs to be put in 'columns'.  Again, you can add in more information using color-encoding or changing the size of your slices - or you can right-click to access options for the display, add value labels (which include 'part to whole' detail automatically), put them where you want them, explode your diagram, etc.  Also, hover over each slice and you have the option to decompose your figures (see 3a16).
 

 
 

10-Radar


When color encoding or weighting by size is not sufficient to visualize a complex combination of factors, a radar view may be the answer.  This shows results around three or four axes determined by the measures chosen.  The axes are ordered anti-clockwise from the right-hand side, so order them as you wish.  Drag the attribute you want to look at onto 'columns', and the radar will split that attribute down like a line-graph, only the lines circle a central point to give a multidimensional display.  Here, you can see the 'shape' of your business sectors, comparing lots of different factors simultaneously.
 
 
 
 

11-Geospatial


a-Usage


Bime's geo visualization allows you to see where you are in the real world, quite literally, using Bime functionality on top of Google Maps.  With this, you can visualize where your staff, clients, suppliers, or any other facet of your business is concentrated. 
 
To use the geo visualization, you will need to log in to Google Maps.  The attributes determining location are dropped onto the 'geographic' axis that is, as in most Bime visualization, in columns. The more detail you include here, the more accurate the visualization will be (remember that there are many towns and cities with the same name in different countries!). To ensure precision, just drop the different columns that represent your geographic points. For example begin with "countries" then add "cities", which will be much more precise than if you only drop "cities".
 
 
       
 
The great thing about the heatmap is that it is not simply a pretty picture - hover over the heatpoints and you can bring up the detailed data lying behind them by clicking on it.  This is particularly helpful when different areas of focus are close together. 

Also, when you click on an individual point, you can regeocode it:


Careful, as your regeocoded point can move outside the current Google Maps tile.

There are 2 rendering modes for geo visualization:


1) Heatmap that show "hotspots" of data. Heatmap is particularly useful when you have a lot of points as heatmap doesn't suffer from occlusion of points: Every point displayed participate to give you the big picture.


However you can only show one measure at a time with this rendering mode and it is not suitable if you have very few points. 

2) Graduated Circle shows each point as a circle. You can use up to 3 measures with this rendering: one in the size of the circle, one in the color of the circle and finally one in the text inside.


 
As ever, you can choose the visualization that is right for you, using the options at the foot of the heatmap.  You can change the size, color and opacity of the data points.  You can zoom in or out on the map, to focus on particular areas, and if you are not yet working worldwide, or wish simply to focus on a particular area on the dashboard you are creating, you can lock the view so that only the specific region you want will be displayed.
 
 
 

b-first time use


Bime will ask you to enter your Google Maps API key the first time you use the geo visualization. 



 

12-Sparkline


A sparkline shows linear progression, but without stated values (other than the low-, high- and end-points).  It therefore shows trends and variations in a direct and memorable way, condensing really intense data sets into something very simple to understand.
 
To use this visualization, the progression of the diagram is based on columns (here, a date attribute), the data to be tracked in the chosen measure, and more sparklines can be added by adding further attributes to 'rows'.
 
 
 
 

13-Bubble


The 'bubble chart' allows you to see at a glance how numeric variables relate to each other.
 
When to use it:
 
  • To see relationships among data points
  • To display several variables per data point: one variable across the x-axis, another one up the y-axis and the third one represented through the size of the point
A bubble-map is another way of showing results against two measures, and is a particularly good way of seeing many data points at once.  Choose your axes (measures), put your chosen attribute(s) in 'columns', and then differentiate between the resulting data-points by adding other attributes to change the color, size or shape of the points as you wish.
 
If your data points are all clustered in one area of the chart, you can right-click and select 'no base at zero' - the chart will then resize to new axes that will include all the data points with the minimum of blank space, allowing the differences between them to be shown to their best effect.
 
Below is a bubble chart that uses all the encoding options: color, shape and size


 
 

14-Treemap


Treemaps also use area to show relative size of activity, with the ability to add on color encoding to represent more than one measure at once.  These are meant to give a general snapshot of activity, and work best when there are large disparities in size or the color-encoded measure.  However, hovering over each square on the map gives you a pop-up look at the underlying figures, so you can still tell the difference between areas apparently similar in size.
 
To use this visualization, you need your chosen attribute(s) to be in 'columns', your priority measure on 'surface', and any additional measure you wish to factor in on 'color'.  Use more than one attribute, for example customer country and customer state, and you can choose either the classic view, with each area displaying both its attributes and ordered purely by its order in a 'global' list, or a hierarchical view.  This orders the attributes first by the primary attribute, and then by the second, so your treemap is made up of many individual branches - you can then click on the '+' to enlarge each section to concentrate on, for example, a particular country.
 
 
 
 
 

c-Formulas engine

1-Quick overview

 
The Bime Formula Engine, also named BiFe, has been designed in order to allow you to deepen and enrich your analyzes through defining calculated members. Calculated members allow you to combine several attributes and measures of a datasource and thus extract more information from your data. For instance, you can create a calculated measure, 'Margin', by dividing the Revenue measure by the Cost measure. 
The Bime Formula Engine is an additional tool available if the original attributes and measures of the datasource are not sufficiently detailed directly to express the information you want to show.
 
This chapter describes the main concepts of the Bime Formula Engine.

2-Create a calculated measure


In this section, we describe how to create a calculated measure in Bime. For this, consider a very simple financial datasource, with two measures of this being Revenues and CostThese two measures are interesting, but they do not directly express the realized profits. Therefore, we will create a calculated measure named Profit, which will be defined as the simple numeric difference between the two previous measures Revenues and Cost.

    First, start by clicking on the descending arrow on the right of the Measures field. Then click on "Create a calculated Measure", as illustrated in figure 1.


                            Fig. 1 - Click on Create a calculated Measure in order to start its creation.
 
 
 Now, define your calculated Measure by setting the several fields of the Calculated Measure Definition's dialog box. 

                            Fig. 2 - The Calculated Measure Definition's dialog box.
 
 
As illustrated in figure 2, we have first to name the calculated measure we want to create. In our trial example, we put Profit in the Name field. Note that the new name must be different from the existing measures and the attributes in the connection. 
 
We have now to express the syntax of the calculated measure, i.e. how the calculated measure has to be computed. In our trial example, we set SUM(revenues) - SUM(cost) which expresses the numeric difference between Revenues and Cost. 

Note that the definition's dialog box shows the many attributes, measures and the functions you can use in order to express more complex calculated measures. Please refer to Section 4 "Define a BiFe Formula" for more information about the definition of a calculated measure in Bime.

Once set, we check the syntax of the chosen formula by clicking on "Check Formula" to ensure that it will compute.
 
As illustrated in figure 3, we can now click on "save" and get back to the Pivot table. 

 
                            Fig. 3 - Click on save in order to create the defined calculated measure.
 
 
Once created, the calculated measure Profit appears in the measures area. On the one hand, and as expected, our calculated measure matches exactly with the numeric difference between the Revenues measure and the Cost measure, as illustrated in figure 4. On the other hand, note that a calculated measure can itself be dragged-and-dropped in Bime, like the other measures, but independently of the original measure(s), as illustrated in figure 5.


Fig 4 - Our calculated measure Profit computes as expected the numeric difference between Revenues and Cost
 
 
           Fig 5 - Once created, a calculated measure can be dragged-and-dropped exactly like other measures.




3-Create a Calculated Attribute


As with calculated measures, a calculated attribute allows you to combine several attributes and measures from your connection in order to extract more information. For this, let us consider a connection that lists the top 500 fortunes in the world. To create a calculated attribute, click first on the descending arrow of the Axis of Analysis field and then click on "Create a Calculated Attribute", as illustrated in figure 3.1.

                       Fig 3.1 - Click on Create a Calculated Attribute in order to start its creation.


Let us imagine that you want to determine the most profitable countries. For this, you have to define your calculated Measure by setting the several fields of the Calculated Measure Definition's dialog box.

As illustrated in figure 3.2, you first have to name the calculated attribute you want to create. In our trial example, we set "Profitable Country" in the Name field. Note that the new name must be different from the existing measures and attributes in the connection.

The second field of the definition's dialog box allows you to define if the calculated attribute will have to be systematically computed (i.e. depending of the values of attributes for each query), or if it has to be computed from one of the attributes of the connection (in this case, your calculated attribute will compute the first time it will appear in a query, and will be kept in memory as long as its definition remains the same). In our example, we want to be able to distinguish countries. Consequently, we select the Country attribute for the Computed from field.

We have now to express the syntax of our calculated attribute. In our example, let us imagine that we want distinguish two categories of countries, depending of the value of the generated profits: When a country has a profit greater than $50 000, we consider it to be a "Profitable Country", otherwise it is a "Non Profitable Country".  The corresponding calculated formula is consequently:
 IF (SUM(profits) > 50000) THEN "Profitable Country" ELSE "Non Profitable Country" ENDIF
as illustrated in figure 3.2 (see subsection 7.i for more details on conditional statements).
Like for calculated measures, please note that the definition's dialog box shows the many attributes, measures and the functions you can use in order to express more complex calculated attributes. Please refer to Section 4 "Define a BiFe Formula" for more information about the definition of a calculated formula in Bime.

Once set, you click on "Check Formula" in order to validate the syntax of the formula.
 
You can now click on "save" and get back to the Pivot table.



                       Fig. 3.2 - The Calculated Attribute Definition's dialog box.


Once created, the calculated attribute Profitable Country appears in the Calculated Attributes area. As illustrated in figure 3.3, you can now drag-and-drop it on the surface, with, or independently of other attributes. In addition, note that you can reference each defined calculated attribute in other calculated measures and calculated attributes.

                        Fig 3.3 - Once created, a calculated attribute can be dragged-and-dropped exactly like other attributes.



4-Create a Global Variable & What If Analysis


In Bime, a global variable has an initial value, a maximum value and a minimum value, and can be referenced in all calculated attributes and calculated measures. The great thing about a variable is that it comes with a slider control in the user interface that allows you to change the value of the variable on the fly and thus all dependent calculations. Then, all kinds of predictive/budgeting scenarios are possible, for example “what happens if I change my unit price by 20% and decrease my units sold by 10%”?


To describe how to create a global variable, let us consider a datasource that holds the activity of a delivery company, which delivers packages using different types of transport. As illustrated in figure 4.1, there are four types of transport, and two measures which indicate respectively the turnover and the amount of fuel consumed for each transport type.

                          Fig. 4.1 - A very simple delivery company connexion to illustrate What-If analysis.

A predictive scenario could be "What will happen if the fuel price goes up?". For this, you will start by defining a Global Variable that holds the fuel price. For this, click on the arrow on the right of the Axis of Analysis field and then click on "Create a Global Variable", as illustrated in figure 4.2.

                        Fig. 4.2 - Click on Create a Global Variable in order to start its creation.

 
 Now, define your Global Variable by setting the fields of the dialog box. Click then on Save ; The Global Variable named "Fuel Price" is now defined and available for analysis.

                       Fig. 4.3 - The Calculated Measure Definition's dialog box.

For our predictive analysis, we will now define two different calculated measures (see section 3c2 for more details on defining Calculated Measures). The first one will hold the Shipping Cost, defined as the fuel consumption multiplied by the fuel price (i.e. our Global Variable). The second one will hold the Margin, defined as the difference between the turnover and the Shipping Cost.



                        Fig. 4.4.a - Definition of the Shipping Cost calculated measure.

                        Fig. 4.4.b - Definition of the Margin calculated measure.

As illustrated in figure 4.5, our calculated measures are now defined and available for the What-If analysis.

                        Fig. 4.5 - The Fuel Price Global Variable, the Shipping Cost & the Margin calculated measures for the What-If analysis.


As illustrated in figure 4.6, you can visualize the profit that the company is making today through dropping the Margin calculated measure on the surface of the Pivot Table. However, because this calculated measure uses another calculated measure (i.e. Shipping Cost) that references the Fuel Price Global Variable, you can use the slider on the right of the Pivot Table to modify its value. If you want to set your global variable precisely, you can click on the displayed value (under the slider), and manually set the wanted value (i.e. using your keyboard).

                        Fig. 4.6 - The slider you can use to modify the value of the Fuel Price.


If you modify the value of the Global Variable, you can see that if the Fuel Price goes beyond a certain threshold, the Margin becomes negative (see Figure 4.7) : 1.25 is threshold where you begin to lose money. As illustrated in figure 4.8, if you drop the Transport Type attribute on the surface, you can then learn that if the Fuel Price goes up, you would prefer to be using cars and small trucks to make deliveries.

             Fig. 4.7 - Depending on the value of the Fuel Price Global Variable, your Margin is positive or         negative.             
                        Fig. 4.8 - If the Fuel Price goes up, prefer the use of cars and small trucks.




5-Create a Basket Attribute



basket Now out: Bime 1.5 including scheduled data refresh and more
In this section, we describe how to create a Basket Attribute. In technical terms, a basket attribute allows you to discretize a measure; less technically, it means breaking down a data range into smaller chunks.

Let's consider a very simple datasource that holds the activity of an online shopping compagny where each line represents a sales order. You want to know what proportion of turnover comes from what type of orders, for example orders for 1 to 10 dollars, 11 to 20 dollars etc...



First, start by clicking
on the descending arrow on the right of the Attributes field, and then click on "Create a Basket Attribute", as illustrated in the following figure.




First, to define your basket you have to give it a name, choose the measure you want to analyze and finally the size of each basket. 


Click on save. You now have a new attribute in the dimension explorer that you can drop on the layout along with your measure:


Now you can see at a glance that you achieve most of your turnover with order amounts in the ranges of $10-20 and $90-100. 


6-Create a filtered attribute


Filtered attributes are another weapon in your calculated formulas arsenal. The aim of this one is to restrict the number of values contained in one attribute (i.e.: a column of your data source). With it you can request things like “give me the top 10 products for Sum of Profit” or “give me the bottom 10 products for Sum of Profit”, or both.

Image 14 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Click on one of black arrows in the dimensions explorer and choose “create a filtered attribute”.

Image 15 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Then just choose a measure and an attribute from the range you want to use and you are done.

Image 16 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Now let’s talk a bit about when you should use filtered attributes. You already have the ability to 'top' elements using the post processing filters:

Image 18 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

However, there are 2 advantages to using filtered attributes:

First, performance. Filtered attributes are executed in our engine on the raw data, which performs much better than filtering a result using post processing. Another performance advantage is that it is only calculated once and can then be reused in other queries.

Second, expressivity. As well as giving you the ability to use a filtered data-set as an attribute like any other, you can create filtered attributes from other calculated attributes, so you are able to express really complex logic in the way you filter elements.

7-Calculated Formula Writing Rules


This appendix describes the data types, the operators and the functions you can use in the Bime Formula Engine, when you define a calculated formula.
 
This appendix is organized as follows:
- Section a describes the Ddata types supported by BiFe,
- Section b describes the basic operators available in BiFe,
- Section c describes the numerical functions,
- Section d describes the trigonometric functions,
- Section e describes the string functions,
- Section f describes the date functions,
- Section g describes the comparison functions,
- Section h describes the boolean operators.
- Section i describes the conditional expressions,
 
 
 

a-Data types

 
The Bime Formula Engine can handle the following data types:
- number, 
- string, 
- date,
- boolean.

    Each data type is described bellow.
 
    Number (see also subsections 7.b, 7.c, 7.d & 7.g)
    A number is an integer, such as 15 or -63, or a real number, such as 23.014 or -8.2. In Bime, the following elements take their values as 'number':
        - Numeric literals, such as -19.80 or 24.07, which are defined as you usually write numbers,
        - The several values of a measure of a data source, such as SUM(Revenue),
        - The result of a calculated measure, such as SUM(Profit) defined with the following BiFe formula: SUM(Revenue) - SUM(Cost).
 
 
    String (see also subsections 7.b and 7.e)
    A string is a sequence of one or more characters, prefixed and postfixed with double quotes; for instance, "France", "San Francisco" and "A-380" are all strings. In Bime, the following elements take their values as string:
        - The string literals, such as " ",
        - The several values of an attribute, such as [Region] or [Product Category],
        - The result of a calculated attribute, such as
Shipping Cost Category defined with the following BiFe formula: IF (SUM(Shipping Cost) > 1000) THEN "High Cost" ELSE '"Low Cost" ENDIF.
 
 
    Date (see also subsection 7.f)
    In Bime, dates can be directly loaded from your datasource (i.e. if your datasource contains dates) or can be defined as calculated attributes (see subsection 7.f for more details).
    The following instances indicates some of valid formats:
        "Tue Feb 9 00:00:00 GMT-0800 2010",
        "Tue Feb 9 2010 12:00:00 AM",
        "Tue Feb 9 2010",
        "07/24/1980",
        "1980-07-24T06:23:00+0200".
 
    Otherwise, please note that a date must be defined, at least, by a year, a month and a day (i.e. hours & seconds are optional).

 
    Boolean (see also subsections 7.g, 7.h & 7.i)
    A boolean is either the TRUE logical value, or the FALSE logical value. In Bime, the following elements take their values as boolean:
        - The boolean literals TRUE and FALSE
        - The result of a comparison, such as (SUM(Sales) > 100),
        - The result of a boolean expression, such as ((AVG(Revenue) > 100) OR (AVG(Cost) < 25)).
 
 
    NaN and NULL special constant values
    NaN and Null are two special values in Bime. The constant NaN ('Not a Number') is used for all un-valuated numeric elements. The constant NULL is used for all un-valuated string and date elements. 
 

b-Basic operators


    + (addition)
    When appplied to numbers, this operator refers to the classic numeric addition. When applied to strings, it refers to concatenation (the combination of two strings to form a phrase or composite word).
    Note that the two operands of the addition must be of the same data type (number or string).
 
    Examples:
        SUM(Cost) + 10 adds 10 to the value of the SUM(Cost) measure, as both are numeric, (although '10' is a numeric literal and 'SUM(Cost)' the value of a measure)
        "Paris" + " : " + "France" returns "Paris : France", as each are strings.
           
 
    - (subtraction) 
    This refers to the classic numeric subtraction.
 
    Example:
        SUM(Profit) - SUM(Costs) to get a figure for turnover.
 
 
    * (multiplication)
    This refers to the classic numeric multiplication. 
 
    Examples:
        SUM(Sales) * 2.5
        SUM(Sales) * SUM(Unit Price)
 
 
     / (division)
    This refers to the classic numeric division.
    Note that if the divisor (or denominator in a fraction) is equal to 0.0, zero or is NaN, the result of the division is set to NaN.
 
    Example:
        SUM(Revenue) / SUM(Cost) allows to compute the Margin ratio.
 
 
    % (modulo)
    This refers to the classic numeric modulo, which finds the remainder after division of one number by another.
 
    Examples:
        If SUM(Unit Cost) = 5 then SUM(Unit Cost) % 3 returns 2
        If SUM(Unit Cost) = 9 then SUM(Unit Cost) % 3 returns 0 (i.e. there is no remainder as 3 is a divisor of 9)
 

c-Numerical functions

 
    This section presents all standard numerical functions you can use in a BiFe formula. 
 
    ABS(Number)    
    Returns the absolute value of the given parameter (i.e. its numeric value, ignoring any sign).
 
    Examples:
        ABS(SUM(Profit)) will return the absolute value of each value of the 'SUM(Profit)' measure.
        If SUM(Profit) = -539.23 then ABS(SUM(Profit)) returns 539.23
        If SUM(Profit) = 1012.124  then ABS(SUM(Profit)) returns 1012.124
         
 
    CEIL(Number)
    Returns the ceiling of the number specified in the parameter. The ceiling of a number is the closest integer that is greater than or equal to the number.
    
    Examples:
        CEIL(SUM(Profit)) will return the 'upper' value for each value of the 'SUM(Profit)' measure. 
        If SUM(Profit) = 4.25 then CEIL(SUM(Profit)) returns 5
        If SUM(Profit) = -4.89 then CEIL(SUM(Profit)) returns -4     
 
    EXP(Number)
    Returns the value of the base of the natural logarithm (e), to the power of the exponent specified in the parameter.
 
    Example: 
        EXP(SUM(Unit Price)) will return the natural logarithm of each value of the SUM(Unit Price) measure.
         
 
    FLOOR(Number)
    Returns the floor of the number specified in the parameter. The floor of a number is the closest integer that is less than or equal to the specified number.
 
    Examples: 
        FLOOR(SUM(Profit)) will return the 'lower' value for each value of the 'SUM(Profit)' measure.  
        If SUM(Profit) = 4750.82 then FLOOR(SUM(Profit)) returns 4750
        If SUM(Profit) = -623.125 then FLOOR(SUM(Profit)) returns -624


    GROWTH_RATE(Number,Number)
    Returns the growth rate corresponding to the two specified parameters.
    Let be x & y the given parameters for the GROWTH_RATE function. GROWTH_RATE(x,y) will return the value of (y - x) divide by the absolute value of x.

    Example:
        If SUM(Profit 2008) = 1000 & SUM(Profit 2009) = 1250 then GROWTH_RATE(SUM(Profit 2008), SUM(Profit 2009)) will return 0.25
       

    INTEGER(param)
    Returns the integer representation of the given parameter.

    Example:
         INTEGER(1.56) will return 1
         INTEGER(-2.625) will return -2
         INTEGER("4.78") will return 4
         If SUM(Profit) = 539.23 then INTEGER(SUM(Profit)) returns 539
            
 
    MAXIMUM(Number,Number) 
    Evaluates two parameters and returns the biggest value.
    Remember that you can find the maximum value within a given measure by choosing MAX from the drop-down list of options for data aggregation.
   
    Example: 
    
        MAXIMUM(SUM(Revenues),SUM(Expenses)) will return the largest value of the 'Revenues' measure and the 'Expenses' measure.

 

    MINIMUM(Number,Number) 
    Evaluates two parameters and returns the smallest value.
    Remember that you can find the minimum value within a given measure by choosing MIN from the drop-down list of options for data aggregation.
   
    Examples:
        MINIMUM(SUM(Revenues),SUM(Expenses)) will return the smallest value of the 'Revenues' measure and the 'Expenses' measure.


    NUMBER(param)

     Returns the number representation of the given parameter. Returns NaN when the given parameter could not be displayed as Number.
     When the given parameter is a Date, the NUMBER function returns the number of milliseconds between 0:00:00 GMT January 1, 1970 and the given Date.

     Example:
          NUMBER("3.14116") will return 3.14116
          NUMBER("   215.2  ") will return 215.2
          NUMBER([Box Category]) will return the number representation of the current value of the 'Box Category' attribute.       

  
    PI()
    Returns the mathematical constant for the ratio of the circumference of a circle to its diameter, expressed as PI, with a value of 3.141592653589793.
 
 
    POWER(Number,Number)
    Computes and returns the first specified number to the power of second specified number.
 
    Examples:
        POWER(SUM(Unit Price),3) will return each value of the 'SUM(Unit Price)' measure to the power of 3.
        IF SUM(Unit Price) = 2 then POWER(SUM(Unit Price),3) returns 8
         
 
    RANDOM()
   Returns a pseudo-random number n, where 0 <= n < 1.     
         
 
    ROUND(Number)
    Rounds the value of the number specified in the parameter up or down to the nearest integer and returns the value. If the number is equidistant from its two nearest integers, the value is rounded up to the next higher integer.
 
    Examples:
        ROUND(SUM(Profit)) will return the rounded value for each value of the 'SUM(Profit)' measure.
        If SUM(Profit) = 15067.78 then ROUND(SUM(Profit)) returns 15068 
        If SUM(Profit) = 12250.500 then ROUND(SUM(Profit)) returns 12251
         
 
    SIGN(Number)
    Returns -1 if the number is negative, 0 if the number is zero, or 1 if the number is positive.
     
    Examples: 
        SIGN(SUM(Profit)) will allow to determine if the profit is profit-making, loss-making or null.
        If SUM(Profit) = -156.78 then SIGN(SUM(Profit)) returns -1
        If SUM(Profit) = 0 then SIGN(SUM(Profit)) returns 0
        If SUM(Profit) = 25673.4 then SIGN(SUM(Profit)) returns +1
 
 
    SQRT(Number)
    Computes and returns the square root of the specified number.
 
    Examples: 
        SQRT(SUM(Box Capacity)) will return the square root of each value of the SUM(Box Capacity) measure.  
        If SUM(Box Capacity) = 16 then SQRT(SUM(Box Capacity)) returns 4
         
     
    SQUARE(Number)
    Returns the square of the number specified in the parameter.
 
    Examples: 
        SQUARE(SUM(Unit Price)) will return the square of each value of the SUM(Unit Price) measure. 
        If SUM(Unit Price) = 6 then SQUARE(SUM(Unit Price)) returns 36
 
 


d-Trigonometric functions

 
    This section describes all the trigonometric functions you can use to define a calculated member.
 
    ACOS(Number)
    Returns the arc cosine of the number specified in the parameter, in radians.
         
    ASIN(Number)
    Returns the arc sine for the number specified in the parameter, in radians.
     
    ATAN(Number)
    Returns the value, in radians, of the angle whose tangent is specified in the parameter. The return value is between negative PI divided by 2 and positive PI divided by 2. 
         
    ATAN2(Number y,Number x)
    Returns the angle of the point y/x in radians, when measured counterclockwise from a circle's x axis (where 0,0 represents the center of the circle). The return value is between positive PI and negative PI. Note that the first parameter to atan2 is always the y coordinate.
         
    COS(Number)
    Returns the cosine of the specified angle in radians.
         
    DEGREES(Number)
    Converts a given number in radians to degrees. 
         
    RADIANS(Number)
    Converts the number specified in the paratemer from degrees to radians.
         
    SIN(Number)
    Returns the sine of the specified angle in radians.
         
    TAN(Number)
    Returns the tangent of the specified angle.
 
 
 

e-String functions

 
    This section describes all functions you can apply on strings. 
 
    CONTAINS(Text,Text_to_search)
    Returns TRUE if the first specified parameter contains the second one as a substring
 
    Examples:
        CONTAINS([Ship Mode],"Truck") will return TRUE for each value of the 'Ship Mode' attribute which contains "Truck".
        If [Ship Mode] = " Regular Truck " then CONTAINS([Ship Mode],"Truck") returns TRUE.
        If [Ship Mode] = " Regular Mail " then CONTAINS([Ship Mode],"Truck") returns FALSE.
 
 
    ENDSWITH(Text,Text_to_search)
    Returns TRUE if the first specified parameter ends with the second one.
 
    Examples:
        ENDSWITH([US State],"nsas") will return TRUE for all US States included in the measure which end with "nsas".
        If [US State] = "Arkansas" then ENDSWITH([US State],"nsas") returns TRUE.
        If [US State] = "Virginia" then ENDSWITH([US State],"nsas") returns FALSE.
         
 
    FIND(Text,Text_to_find,Number_start_index)
    Returns the index, in the first specified text, of the first instance of the second specified text, from the specified startIndex. Returns -1 if the second specified text is not found. 
    Note that the index of the first character of a string is 0.
 
    Examples:
        FIND([Ship Mode],"Norm",0) will return the index of the first occurence of "Norm" in each value of the 'Ship Mode' attribute.
        If [Ship Mode] = "Urgent" then FIND([Ship Mode],"Norm",0) returns -1.
        If [Ship Mode] = "Normal" then FIND([Ship Mode],"ma",0) returns 4.
        If [Ship Mode] = "Urgent" then FIND([Ship Mode],"ge",2) returns 0.
 
 
    LEFTPART(Text,Number)
    Returns the left-most number of characters in the specified text.
 
    Examples:
        LEFTPART([Department],6) will return the six first characters of each value of the 'Department' attribute. 
        If [Department] = "Marketing" then LEFTPART([Department],6) returns "Market".
        If [Department] = "Sale" then LEFTPART([Department],6) returns "Sale".
         
 
    LENGTH(Text)
    Returns the length of the specified text.
 
    Examples:
        LENGTH([Product Category]) will return the length of each value of the 'Product Category' attribute.
        If [Product Category] = "Book" then LENGTH([Product Category]) returns 4
                 
 
    LOWERCASE(Text)
    Returns the lower case version of the specified text.
 
    Examples:
        LOWERCASE([Category]) will return the lower case of each value of the 'Category' attribute.
        If [Category] = "Scientific Book" then UPPERCASE([Category]) returns "scientific book".
         
     
    LTRIM(Text)
    Returns a copy of the specified text in which all left-whitespaces have been removed.
 
    Examples:
        LTRIM([Ship Mode]) will return a copy of each value of the 'Ship Mode' attribute, in which all left-whitespaces will be removed.
        If [Ship Mode] = "   Regular Truck   " then LTRIM([Ship Mode]) returns "Regular Truck   "
         
 
    REPLACE(Text,Text_to_replace,Text_to_replace_with)
    Returns a copy of the first specified text in which all instances of the second specified text have been replaced with the third one.
 
    Examples:
        REPLACE([US State],"s","SS") will replace, for each value of the 'US State' attribute, all occurences of "s" with "SS".
        If [US State] = "Missouri" then REPLACE([US State],"s","SS") returns "MiSSSSouri"
         
 
    RIGHTPART(Text,Number)
    Returns the right-most number of characters in the specified text.
 
    Examples:
        RIGHTPART([Department],6) will return the six last characters of each value of the 'Department' attribute.
        If [Department] = "Marketing" then RIGHTPART([Department],6) returns "keting".
        If [Department] = "Sale" then RIGHTPART([Department],6) returns "Sale".        
 
   RTRIM(Text)
    Returns a copy of the specified text in which all right-whitespaces have been removed.
 
    Examples:
        RTRIM([Ship Mode]) will return a copy of each value of the 'Ship Mode' attribute, in which all right-whitespaces will be removed.
        If [Ship Mode] = "    Regular Truck   " then RTRIM([Ship Mode]) returns "   Regular Truck"
         
 
    STARTSWITH(Text,Text_to_search)
    Returns TRUE if the first specified text starts with the second one.
 
    Examples:
        STARTSWITH([US State],"Miss") returns TRUE for all US States which start with "Miss".
        If [US State] = "Mississip" then STARTSWITH([US State],"Miss") returns TRUE.
        If [US State] = "Texas" then STARTSWITH([US State],"Miss") returns FALSE.
         
 
    SUBSTRING(Text,Number_begin_index,Number_end_index)
    Returns a text consisting of the character specified by startIndex (the first specified integer) and all characters up to endIndex - 1 (the second specified integer). 
 
    Example:
        SUBSTRING([Dept],2,10) will return, for each value the 'Dept' attribute, the seven characters which are between indexes 2 and 10.
        If [Dept] = "Web Marketing" then SUBSTRING([Dept],2,10) returns "b Market".
 
 
    TRIM(Text)
    Returns a copy of the specified text in which all left and right whitespaces have been removed.
 
    Examples:
        TRIM([Ship Mode]) will return a copy of each value of the 'Ship Mode' attribute, in which all left and right whitespaces will be removed.
        If [Ship Mode] = "   Regular Truck   " then TRIM([Ship Mode]) returns "Regular Truck"
         
 
    UPPERCASE(Text)
    Returns the upper case version of the specified text.
 
    Examples:
        UPPERCASE([Category]) will return the upper case of each value of the 'Category' attribute.
        If [Category] = "Science" then UPPERCASE([Category]) returns "SCIENCE"
 

f-Date functions


    This section describes the several functions you can use to handle dates.

    DATE(Text)
    Returns a new date that holds the specified text.
    The specified text can be in a variety of formats, but must at least include the month, the date and the year.

    The following instances indicates some of valid formats:
        "Tue Feb 9 00:00:00 GMT-0800 2010",
        "Tue Feb 9 2010 12:00:00 AM",
        "Tue Feb 9 2010",
        "07/24/1980",
        "1980-07-24T06:23:00+0200".
                                                                           

    DATE(year, month, day, hour, minute, second)
    Returns a new date that holds the specified parameters.
    All parameters must be numbers: 'year', 'month' & 'day' are needed, whereas the others are optional.
        

    DATE_EQUAL(date, date)
    Returns TRUE if the two specified dates are equal.
        

    DATE_NOT_EQUAL(date, date)
    Returns TRUE if the two specified dates are different.
        

    DATE_LESS(date, date)
    Returns TRUE if the first specified date is longer ago than the second specified date.
        

    DATE_LESS_OR_EQUAL(date, date)
    Returns TRUE if the first specified date is longer ago or equal to the second specified date.
        

    DATE_GREATER(date, date)
    Returns TRUE if the first specified date is more recent than the second specified date.
        

    DATE_GREATER_OR_EQUAL(date, date)
    Returns TRUE if the first specified date is more recent or equal to the second specified date.


    DATE_ADD(date, date_part, increment)
    Returns the given date, such that the specified part of the date is updated by the specified increment.
    The date_part parameter could have the following values: "year", "half_year", "quarter", "month", "day", "day_of_year", "hour", "minute" or "second".
    The specified increment must be an integer value.
        

    DATE_DIFF(date, date, date_part)
    Returns the difference between the two specified dates, calculated on the specified date_part.
    The date_part parameter could have the following values: "year", "half_year", "quarter", "month", "day", "day_of_year", "hour", "minute" or "second".
        

    CURRENT_YEAR()
    Returns the current year.

    Example:
        CURRENT_YEAR() returns 2009 if the current date is the 23th October 2009.
        

    CURRENT_HALFYEAR()
    Returns the current semester as text (i.e. "H1" or "H2").

    Example:
        CURRENT_HALFYEAR() returns "H1" if the current date is the 22th March 2010.
        

    CURRENT_QUARTER()
    Returns the current quarter as text (i.e. "Q1", "Q2", "Q3" or "Q4").

    Example:
        CURRENT_QUARTER() returns "Q3" if the current date is the 14th July 2010.
                

    CURRENT_MONTH()
    Returns the current month as text (i.e. January, February, and so on).

    Example:
        CURRENT_MONTH() returns "July" if the current date is the 24th July 2010.
        

    CURRENT_MONTH_NUMERIC()
    Returns the current month as number (i.e. 1 for January, 2 for February, and so on).

    Example:
        CURRENT_MONTH_NUMERIC() returns 8 if the current date is the 31th August 2010.
        

    CURRENT_DAY()
    Returns the current day as number.

    Example:
        CURRENT_DAY() returns 6 if current date is the 6th January 2010.;
        

    CURRENT_WEEKDAY()
    Returns the current weekday as text (i.e. Monday, Tuesday, and so on).

    Example:
        CURRENT_WEEKDAY() returns "Sunday" if the current date is the 4th April 2010.
        

    CURRENT_WEEKDAY_NUMERIC()
    Returns the current weekday as number: 0 for Sunday, 1 for Monday, and so on.

    Example:
        CURRENT_WEEKDAY_NUMERIC() returns 0 if the current date is the 7th November 2010.
        

    CURRENT_HOUR()
    Returns the current hour as number.
        

    CURRENT_MINUTE()
    Returns the current minute as number.
        

    CURRENT_SECOND()
    Returns the current second as number.
        

    YEAR(date)
    Returns the year of the specified date.
        

    MONTH(date)
    Returns the month of the specified date as string (i.e. January, February, and so on).
        

    MONTH_NUMERIC(date)
    Returns the month of the specified date as Number (i.e. 1 for January, 2 for February, and so on).
       

    DAY(date)
    Returns the day of the specified date.


    WEEKDAY(date)
    Returns the day of the specified date as string (i.e. Monday, Tuesday, and so on).

       
    WEEKDAY_NUMERIC(date)
    Returns the day of the specified date as number: 0 for Sunday, 1 for Monday, and so on.

       
    HOURS(date)
    Returns the hour of the specified date.

       
    MINUTES(date)
    Returns the minute of the specified date.

       
    SECONDS(date)
    Returns the second of the specified date.
 
 

g-Comparison functions


    This section describes the several functions you can use to compare elements.

    = (equal)
    Allows you to test if two elements are equal (i.e. if the two elements have the same value).
    Please note that the compared elements of the function must have the same type (e.g. number or text).

    Examples:
        2.56 = 2.56 will return TRUE,
        SUM(Shipping Cost) = 1568.78 will return TRUE if the value of the Shipping Cost measure is equal to 1568.78, else it will return FALSE,
        [Region] = "South" will return TRUE only if the current value of the Region attribute is "South", else it will return FALSE,
        [Delivery Address] = [Billing Address] will return TRUE only if the values of the Delivery Address and the Billing Address attributes are equal.
           
 
    != (not equal)
    Allows you to test if two elements are different (i.e. if the two elements have different values).
    Please note that the compared elements of the function must have the same type.

    Examples:
        78.67 != -55.02 will return TRUE,
        SUM(Order Quantity) != 0 will return TRUE if the value of the Order Quantity measure is different from 0,
        [Delivery State] != [Production State] will return TRUE if the values of the Delivery State and the Production State attributes are different.
 

    < (less than)
    Allows you to test if a numeric element is strictly less than another one.

    Examples:
        0 < 1000 will return TRUE,
        SUM(Shipping Cost) < 856.89 will return TRUE only if the value of the Shipping Cost measure is strictly less than 856.89, else it will return FALSE.
 

    <= (less than or equal to)
    Allows you to test if a numeric element is less or equal another one.

    Example:
        SUM(Unit Price) <= 100 will return TRUE if the value of the Unit Price measure is less or equal to 100, else it will return FALSE.

 
    >= (greater than or equal to)
    Allows you to test if a numeric element is greater or equal to another one.

    Example:
        SUM(Shipping Cost) >= 150 will return TRUE if the value of the Shipping Cost measure is greater or equal to 150.


    > (greater than)
    Allows you to test if a numeric element is strictly greater than another one.

    Example:
        SUM(Profit) > 25000 will return TRUE if the value of the Profit measure is strictly greater than 25000.

 

h-Boolean operators


    This section describes the boolean operators you can use to define a calculated member.
 
    AND
    This refers to the logical conjunction. A boolean, a comparison or a boolean expression must appear on either side of the AND operator. If these two expressions are TRUE, then the AND operator will return TRUE. Otherwise, the AND operator returns FALSE.

    Examples:
        ([First Name] = "John") AND ([Last Name] = "Smith") will return TRUE if the value of the First Name attribute is equal to "John" and if the value of the Last Name attribute is equal to "Smith",
        ([Product Category] = "Technology") AND (SUM(Order Quantity) > 500) will return TRUE if the value of the Product Category attribute is "Technology" and if the value of the Order Quantity measure is greater than 500.
 

    OR
    This refers to the logical disjunction. A boolean, a comparison or a boolean expression must appear on either side of the OR operator. At least one of these two expressions must be TRUE in order for the OR operator to return TRUE.

    Examples:
        ([Region] = "South") OR ([Region] = "North") will return TRUE if the value of the Region attribute is equal to "South" or "North".
        ([Ship Mode] = "Regular Truck") OR ([Delivery Priority] != "High") will return TRUE if the value of the Ship Mode attribute is equal to "Regular Truck" or if the value of the Delivery Priority attribute is different from "High".
        (SUM(Order Quantity) < 10) OR ([Product Category] = "Luxury articles") will return TRUE if the value of the Order Quantity measure is less than 10 or if the value of the Product Category attribute is "Luxury articles".         

 

    NOT
    This refers to the logical negation. The NOT operator returns FALSE when the specified argument is TRUE, and returns TRUE when the specified argument is FALSE.

    Example:
        NOT(CONTAINS([Ship Mode], "Air")) will return TRUE if the value of the Ship Mode attribute does not contain "Air".


i-Conditional Expressions


        This section describes the conditional expressions you can use to define a calculated member.

        IF THEN ELSE ENDIF and IF THEN ENDIF conditional expressions
        These allow you to specify a logical test to evaluate.

        You can define a conditional expression in one of two ways:

            IF (boolean condition) THEN
                consequent
            ELSE
                alternative
            ENDIF
    
        or

            IF (boolean condition) THEN
                consequent
            
ENDIF

        A conditional expression is interpreted as follows: If the specified boolean condition is true, the return value is computed through executing the statement defined the 'THEN' block. Otherwise, the return value depends on the structure of the conditional expresion. If the conditional expression contains an 'ELSE' block, then the return value is computed through executing the statement defined in the 'ELSE' block. If there is no 'ELSE' block, NULL is returned.

        Example:
            IF (SUM(Profits) > 10000) THEN SUM(Profits)*2 ELSE SUM(Profits)*1.5 ENDIF specifies to return SUM(Profits)*2 if the current value of the SUM(Profits) measure is greater than 10000, and to return SUM(Profits)*1.5 in other cases.
            IF ([Region] = "South") THEN SUM(Profits) ENDIF allows to return the value of the SUM(Profits) measure only when the Region attribute is equal to "South".



        SWITCH
        The SWITCH conditional expression provides a convenient alternative to the IF-THEN-ELSE conditional expression when dealing with a multi-way branch.
       
        The syntax of the SWITCH expression follows:

            SWITCH testedElement {
                CASE value1: returnValue if testedElement = value1
                CASE value2: returnValue if testedElement = value2
                ...
                DEFAULT : defaultReturnValue
            }

        The evaluation of SWITCH conditional expression works as follows: 'CASE' values are checked in turn for the one that matches the value of 'testedElement'. If a matching label is found, execution returns the corresponding 'returnValue'. If none matches, and the optional DEFAULT label exists, execution returns 'defaultReturnValue'. If there is no default return and no values match, then the NULL value is returned.
 
       The tested element could be an attribute, a measure, a calculated attribute, a calculated measure or the result of a function. The 'case' and 'returns' values could be text, number or date.

        Example:
            SWITCH [Country] {
                CASE "England" : "Fish & Chips"
                CASE "France" : "Cheese & Wine"
                CASE "Italy" : "Pasta & Pizza"
                CASE "Mexico" : "Tortillas, Guacamole & Enchiladas"
                DEFAULT : "Speciality not filled"
            }
            This SWITCH conditional espression returns "Pasta & Pizza" when the current value of the Country attribute is "Italy", and returns "Speciality not filled" when the current value of the Country attribute is "Australia".




 

4-Dashboard

a-Quick overview


A dashboard is the product that results from the connections built and queries made.  The dashboard is where queries, potentially from numerous data sources, are displayed.  They are not, however, static displays, but still contain analytical functionality in the post-processing menu on the right of the dashboard (see section d) or through the use of data filter prompts.



 

b-Create dashboard


There are 2 ways of creating dashboards:

1-from the pivot table


Once a query is complete, you have the option to save it to one or more new or existing dashboards.  A dashboard displaying only one query will simply show a large version of the query as saved from the pivot table.  As more queries are added, the dashboard resizes automatically to accommodate the newcomers; you can resize the frames, or reorganize them, to create the display you want.



2-from the Monitor Tab

 
Add a new dashbord directly from the Monitor section.




 
 

c-Edit dashboard



The blue triangle on the title tab for each dashboard provides a drop-down menu of options.  Choose 'edit' to have access to the pop-up edit menu, which you can use to change the visualization for the dashboard and each query shown, and to options for each query (to rename, delete, change, or send back to the pivot table for further interrogation).    

 1-The blue arrow menu for refreshing, exporting, editing, renaming, publishing and deleting dashbords.



              

 2-Edit mode overview


One of the most important options of "Blue Arrow menu" is the "Edit" one that triggers the dashbord in edit mode:




3-Sizing visualizations and custom layouts


Bime allows almost any type of layout for dashboards. The way you position and resize things on the dashboard is done through the use of blank windows. Think of the dashboard as if it is divided by columns and rows. Adding empty windows will define the number of columns and rows of the dashboard. When you have the correct layout, Drag & Drop your visualizations on the final row destination and remove the unnecessary blank windows. Finally size your visualization.



A final resize of your visualization will give:



 

d-Visual post-processing


Picking the right post-processing option with the right application strategy allows you to look deeper into your data and arrive at the right conclusions more quickly.

 

Using filters is easiest to explain using an example, so we’ll have a look at the filter “top”Top filters out all but the greatest value in a data set, but the principles are the same for all filters. Top can be extended to include more than one value, so for example top 2 zooms in on the two greatest values.

 

So here is our example pivot table without any filters :

 

screen capture thumb Bime Tips: Using Filters to See More in Your Data

 

This table can be saved to a dashboard and made public. Any filters then applied by users in the dashboard (called global filters) will be applied to the complete data set and to all queries in that dashboard.

If top 2 is applied to the query before saving to the dashboard, the following result is shown on the dashboard :

 

screen capture 1 thumb Bime Tips: Using Filters to See More in Your Data

 

Say now the user applies a top 3 global filter (on the dashboard). This filter overrides the query specific top 2 filter and so three values will be seen. When the global filter is removed, the original top 2 filter becomes dominant again so only the highest two values are shown. The two queries below have top 2 applied; try changing this to top 3 by selecting the Top tab (on the far right) and changing the value from 2 to 3. You will see the results change for both queries :

 

If you then remove this global filter by unchecking the Top box, both queries revert to their original filters (both top 2).

 

If our top 2 filtered query is included in a dashboard where the other queries have the same filter (as in the example above), we see the top 2 option selected on the global filter panel. This is because top 2 is essentially a global filter in this case. If it is saved in a dashboard that contains queries with other filters or no filter, each keeps its own filters and no global filter toggle is checked.

 

The dashboard below contains a query with a top 3 filter, and one without a filter. Observe, no global filter toggle is checked.

 

So, you can see that it is important to apply filters at the right time to achieve the required result. Applying the filters strategically allows users of your dashboards to see the important results found during data exploration, but also to override the filters and explore all of the data. It also allows users to compare like with like in dashboards once they have evaluated each visualization independantly.

 

There are lots of different filters available in Bime, allowing you to zoom in and analyze any cross-section of your data. Log in now to try them out.

e-Dashboard with data filter prompts


Bime 1.85: Data filters, dynamic count, custom display formats
 

This feature gives you a whole new level of interactivity in your dashboards. The ability to examine data from multiple perspectives in a single place allows you to discover even more of the meaningful relationships that exist in your data. The good news is that analysts can pursue an unlimited set of questions directly from the dashboard, leading to comprehensive and free-flowing exploration.

 

Data visualization guru Stephen Few writes: “Comparison is the fundamental activity of analysis. Something powerful happens when we are able to see data simultaneously from several perspectives. We are able to spot connections and discern relationships that would otherwise remain hidden. If we were to look at these same views of the data independently, one at a time, we would never gain the same insights, largely due to the limits of short-term memory. Once one of these views is no longer in front of our eyes, we remember little, if anything, of what we saw, so we cannot compare it to what we’re looking at now. We can hold about four chunks of information at one time in short-term memory. One of the best ways to work around this limitation is to place everything that you wish to compare within eye span.” Enter Bime’s Data Filter Prompt.

 

How does it work?

 When you create a dashboard (Pivot Table > Save to New Dashboard, “New” button in monitor) you now have three options:

 Image 15 Bime 1 Bime 1.85: Data filters, dynamic count, custom display formats
 

Note that you can amend your options at any time once a dashboard is created by clicking on the blue arrow on the dashboard title and selecting 'preferences' from the drop-down list.

Use query filter as prompt
 

This looks at every level in the pivot table filters dropbox to create prompts in the dashboard.

 

BimeDesktop 6 e1274788346659 Bime 1.85: Data filters, dynamic count, custom display formats

 
Example:

 Query 1 from connection 1 has “Product” in the filters with no member selected

 Query 2 from connection 1 has “Product” in the filters with P1 member selected. Query 2 has also “Year” in the filter.

If we send these queries to a dashboard, we will get three prompts for data filtering: Product with nothing selected, Product with P1 selected and Year. Changing these filters will affect only the original query of the prompt. A color legend is used to convey the link between the visualization and the prompt.

 BimeDesktop 6 1 e1274789220697 Bime 1.85: Data filters, dynamic count, custom display formats
 
Share filters between same connection queries
 

If option 2) is checked filters from queries originating from a common connection will be mingled.

The same example as before will now give two prompts in the dashboard: “Product” with P1 selected by default and Year with nothing selected. Changing either of these prompts will modify query 1 & 2 in the dashboard.

BimeDesktop 7 e1274789302772 Bime 1.85: Data filters, dynamic count, custom display formats
 

 

5-Share and collaboration

a-Quick overview


Having built a connection, formulated a really interesting query, and created an attractive and interesting dashboard, the final thing is to decide how to share your new-found knowledge!  Sharing your results with Bime is just as easy and flexible as finding them in the first place, and as secure. 

You can simply share by publishing a dashboard to viewers, or you can get your colleagues involved on a collaborative level by 'sharing' the dashboard itself.
 

b-Dashboard publishing


If you click on the blue arrow on the title tab for your dashboard, an option to 'publish' is included in the dropdown list.  This brings up all your options for publishing the dashboard.
 
 
 
Click to 'make this tab public', and then decide how to proceed.  You can make the dashboard available 'where it is' using a URL to the relevant dashboard in your bimeapp account, which you can send by email or include in mailshots or on your website.  Alternatively, you can embed the dashboard itself in your website or blog.  In both cases, you can password protect the dashboard, or restrict access to a specified group of viewers (see section 6c).  You can also set an expiration date for access under either route, and customise the view for embedded dashboards.
 
 

c-Share inside bime


If you click on the blue arrow on the title tab for your dashboard, an option to 'share' it is included in the dropdown list.  This brings up a box which enables you to share access to the dashboard and underlying queries with other users registered to your account with Bime.  Choose which of your fellow users you wish to share with from the dropdown list, using the '+' button to add more names.
 
 
 
 

6-Administration

a-Quick overview


There are 4 types of Profile in Bime:

1- Dashboard viewers belonging to viewer groups
2- Analysts that create connections, queries and dashboards
3- Admin. They can do all that the analysts can do and have access to everything in the application. By everything we mean access to the Account Administration and to all the objects (queries, dashboards etc.) in the application.
4- Account Owner. Only one per account. It is admin but they are the only one that can access the scheduler and the plan and billing information.
 
The 'Admin' in the main tab navigation gives access to all your account settings, both internal (specifying users, keeping track of your payment plan) and external (privacy and sharing settings).  There are five sections to the Admin area.
 
 

b-Manage users


The 'Users' area allows you to specify who will be a user (a person who can create connections, queries and dashboards) on your account.  A counter shows you how many more users you can add - and gives you the opportunity to upgrade your account to add capacity.  Click on a user in the left-hand list to see their details, and edit as necessary.

Also note the "Admin" check box is checked if the user is an Admin.
 
 
 
 
 

c-Manage dashboard viewers through groups


The 'Publish' option on your dashboards gives you the option to 'select groups', to limit the people who can see the dashboard.  Instead of having to specify everyone by name, you can create groups in the pop-up, adding or removing specified individuals as appropriate.  These groups can also be managed through the 'Manage Dashboard Viewers Groups' button in the Account area. 
 
 
 
 
 

d-Manage account


The Account area includes the settings for the visual display, including the order in which colors are used on queries, and how you want 'weighting' by color to be expressed.  This also gives you access to the groups that have been set up to manage who can view completed dashboards.
 
 
 
 
 

e-Manage plan

 
Account owner can go to Admin > Plan & Billing. 


 

f-Manage automatic data refresh


In order to guarantee that only one person can automatically refresh data (and thus avoid conflict), one person per account can access the "scheduler" option: the account owner.

The Scheduler area is where a record of the refresh settings for your connections library is kept, allowing you to override the scheduled refresh with an ad hoc 'update' as necessary.  Double-click on a connections record and you can alter the scheduled refresh rate.
 
 
 

How does it work ?

The scheduler checks every 60 seconds if data or queries (and dashboards) have to be updated from the datasource to Déjà Vu. In Déjà Vu, data and queries represent a snapshot of the datasource at a specific time. This gives a 'lifetime' for the data within which the data is accepted to be up-to-date.  When this expires, the scheduler updates it by going back to the datasource, re-casting the corresponding queries and uploading the new snapshot to Déjà Vu.

This mechanism ensures that data in Déjà Vu is no more than 60 seconds out of date.

To activate the scheduler, you need to use BimeDesktop (or data cannot be updated for RDBMS, CSV and Excel connections) and be the account owner. Then, you can configure Bime to perform its checks regularly or deactivate the scheduler.

The scheduler will only check the connections that have been selected in the update model column and will only update queries for the connection if the update queries column checkbox has been checked.

This gives you more flexibility with the data update, enabling you to keep queries that give a picture of the situation at any given time, while still updating the connection so that the data available to you is right up-to-the-minute.

The scheduler requires that BimeDesktop is active all the time. On Windows OS, the close window button will not close BimeDesktop if the scheduler is on but will reduce it to the system tray. This means BimeDesktop is running in the background and can update data as needed. On Mac OS, BimeDesktop is reduced in the dock.

What about the check now and update buttons?

When you click on the check now button, Bime will perform a check immediately and update data and queries if needed. It is the equivalent of the check done every 60 seconds. This option can be used if you deactivate the scheduler but want to update data at a particular moment.



On each connection an update button is available. This option allows you to force an update for a specific connection. It will update data and queries even if the data have not expired.


For technical reasons, the update process does not allow you to use BimeDesktop at the same time. At this time, Bime shows you a window where the progress of this process is displayed.



If you click on a connection, you can change the connection's update frequency. This information is used by the scheduler to determine if the connection (and therefore the queries)  must be updated or not.



Finally, the scheduler tab gives you lots of information relating to the connections and the last known update status. This is a simple way to see if a problem has occurred for a specific connection.

 


 

g-Manage data security


Data filter prompts in dashboards combined with named viewers and groups are used to secure data published in dashboards. 

Data security is used to permit or deny access to members of an attribute (read the column in the datasource) and any data associated with those members.

For example, consider the example of a connection containing a customer state attribute and a measure called Profit.


Image 3 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Let’s say you want to secure this data and allow the regional sales group only to have access to the data on California.  This is what the data will look like for the exact same query when a member of this group looks at it:

Image 4 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

To enable this feature, in the pivot table, click on the attribute you want to secure, and click on “secure”:

Image 91 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Then enter the configuration of the data security:

BimeDesktop 10 Bime release 1.90: Data Security, Delegated Aggregations, Filtered Attributes, Advanced Color Coding and more!

Then save and that’s it! Your attribute is now secured and every person belonging to the “Regional Sales” group will only see “California” data in the dashboards that use it.



 

7-Server version installation 

a-Prerequisites

 
We assume that JBoss (v4.x) is properly installed on the system and accessible. The JVM running it must be version 1.5 or higher.
 
We assume that Mysql 5.1 is installed on the system.
 
Every Bime user must have Flash Player 10.x installed on their browser.
 

b-Bime Server Package Content

 
The distributed Bime.zip contains the following files:
    - bime.war which corresponds to the entire Bime application to be deployed on the JBoss server
    - mysql-connector-X.X.jar connector for MySQL database engine
 
    - crossdomain.xml to enable Déjà Vu features
    - INSTALL.txt
 

c-Installation

 
By following these steps, you will be able to perform an install of the Bime server and create an up and running default environment.  
 
0) Create a database for Bime in a mysql instance
1) Unzip bime.zip 
2) Copy bime.war to <jboss install dir>/server/default/deploy
3) Copy the mysql-connector-X.X.jar to <jboss install dir>/server/default/lib
 
4) Edit bime.war/WEB-INF/config/database.yml and provide informations about the database you created in 0)
    For instance:
        server:
        adapter: jdbcmysql
        database: bime_server
        username: root
        password: rootpwd
        host: 127.0.0.1
    WARNING: Prefer to use notepad++ for editing the yml file.
 
 
5) [Optional]  If you want to enable Déjà Vu features, you have to edit bime.war/WEB_INF/config/config.yml.
    Uncomment (remove "#") and provide AWS public and secret key and enter a bucket name for your bime server. You must use
 
    a bucket name that does not exist in Amazon cloud so you can use the following convention : enterprisename-bime-caches.
 
 
    Then you need to create the specified bucket in your Amazon S3 account and put the crossdomain.xml provided in the package. For security purposes, you may want to change the * in the crossdomain.xml with the domain where bime server is installed. You must change the ACL for this file in S3 to put it readable for everyone. 
   
 
6) Bime Server needs a license file to be able to run. You just have to copy your license file (keep its original name "license.lic")
and paste it in bime root directory: <jboss install dir>/server/default/deploy/bime.war
 
NB: If you don't have a valid license file, please contact support at : contact@wearecloud.com
 
7) Launch your JBoss server. Bime is configured by default in the root path. i.e. when a user connects to http://localhost:8080/ , he or she will be redirected to bime. 
 
8) Go to http://localhost:8080/server/install
    If you correctly entered your database's information, the bime server install script will confirm that the installation is done after a few seconds.
 
 
9) By default, the install script creates an account and an user. To log in to Bime, go to http://example.com:8080/
    The default credentials are:
        login: admin
 
        password: bimeadmin.
 
 
    In the admin section, you can manage all the users that need access to Bime server.
 
 

d-Bime use


Bime users can log in at http://example.com:8080