ROI  +353 (1) 272 7725
  GB  +44 (0) 845313 8696
  marketing@capventis.com

Technical

Bespoke Applications and Scripts Vs Workflow for business logic and process automation

Business process automation must be aligned to the business logic and strategy of the business the technology is trying to help

When it comes to the choice between utilising workflow or server script for automating the business processes in your customer relationship management (CRM) system, there are several points to be considered.

To a certain extent, the decision will be based on the personal preference of those who will be designing and maintaining the logic. However, a workflow process does have some restrictions that need to be taken into account.

CRM solutions for all kinds of business have been around since the eighties and are still popular today (though the big-bang all-encompassing IT systems of the nineties are largely accepted as not the best route today). By organising and automating routine business processes, a business can run more smoothly and accelerate growth. The information that we need (data) can be easily accessed and compiled, and most importantly, delivered to the right people at the right time in the right way which in turn leads to the effectiveness of business strategies.

By aligning the right CRM solution (IT) to the business, CRM provides businesses with the ability to spend more time on things other than record keeping and document management.

Objectives can be achieved sooner because data is more readily accessed and better organized, so it is easier to evaluate.

Making the right choices when setting up and implementing a CRM system can make all the difference in the ultimate value to an organisation.

 

Wofklow for business logic and process automation

Different CRM systems provide different options and capabilities with regard to server scripts and workflows. MS Dynamics for example has an extensive workflow engine. As does Oracle CRM On Demand. Sage’s CRM systems (SageCRM and SalesLogix), while they have workflow, are more inclined towards server scripts as the technical solution to business process automation (BPA).

Workflow processes are not as descriptive as script, and so they may require extra steps to complete the same action, which means more time. The complexity of the loop design may also affect the speed of workflow. Workflow is fairly inflexible which makes it less powerful than scripting, and it cannot (typically) perform complex data verification processes.

We are big fans of Orbis TaskCentre a Business Process Automation (BPA) tool which allows us to access information in (more of less) any location or system, run through several steps of business logic and transformation and then output into any number of different ways (including SQL, FTP, HTML, Crystal Reports, Excel etc.). TaskCentre isn’t actually part of any particular CRM system and there are plenty of organisations who use it purely to automate cross-company processes and information requirements.

However…

It’s important to remember that whenever hardware or software is added or upgraded, the workflow(s) may need to be rewritten to take the change in architecture into account, which can be time consuming. That said, with something like TaskCentre, it takes less time to test workflow logic, because the design is done through a tool and is therefore simpler and more user friendly than trying to wade through pages of code.

 

Scripting and bespoke apps for business logic and process automation

Bespoke scripting and apps designed for specific business requirements have the advantage that they are just that : designed with one purpose. This means that there’s minimal overhead in terms of hard drive space, server memory, processor time and indeed pretty much everything.

However, like the mobile phone; single function devices are on the way out. Are scripts and bespoke apps going to follow the same path? Scripts can be more expensive to create and maintain than workflow. Production workflow systems are particularly inexpensive due to being built into the solution, though excellent systems like Orbis TaskCentre can (and we do) be used for cross system workflow and BPA.

Bespoke scripts and apps can very neatly and effectively solve specific business problems, but what happens when the business changes and those problems are no longer problems? The script or app must be re-written or at least decommissioned both of which will cost.

The other big problem with bespoke scripts and apps is the same problem companies implementing “open source” CRM systems face : what happens when the company or personnel that wrote the custom code moves on? They’re left with a solution that is no longer a solution : it’s a problem and now they have to find another company or team to undo or replace it.

There are reasons that workflow can be a good choice for defining the rules and logic for your operational CRM processes. Workflow monitoring and event logging is more useful than instrumentation that has been built in to script which has to be costed and built into a bespoke script further adding to the cost of the initial build.

 

Decision time

The decision to go with workflow over script needs to take into consideration how the system will be used, who is going to maintain it, how often business logic and requirements change and the available technological architecture available to run it.

We have written both bespoke scripts and applications as well as utilising workflow and BPA tools such as TaskCentre for clients across many different requirements and industry sectors.
If you would like a free consultation on your business requirements, please fill in your details and we’ll be in touch to arrange a meeting with you today.

In CapricornVentis, we’ve been delivering great business discovery solutions in QlikView for several years now.  QlikView really helps you build great user interfaces that help people interrogate their data in new ways that they have never thought of before.

Before QlikView, much of my “Dashboard” design work would have been in SalesLogix CRM where we plugged various chart controls into the CRM data to display information such as Sales Pipeline, Performance, etc.  Similar things can be achieved with Oracle CRM On Demand Analytics.

No matter what system you use – BI, CRM, Database, you probably have access to some wonderful tools that allow you to present data to users in lots of different ways.

“What do you want to see on your dashboard”, says the chart designer.  ”Everything”, says the customer.  ”OK”, says the designer.

Stop!  ”Everything” is the wrong answer when it comes to dashboard design.

Think of your car dashboard.  It doesn’t tell you everything that is happening in your car.  It does tell you everything that you need to know, right now, to drive your car.

Think about it.  Many car dashboards don’t include a clock.  A clock is a “nice to have” on a dashboard – it isn’t critical to the running of the vehicle.

A “pure” car dashboard probably needs to have only 3 things – a speedometer, a fuel guage and an oil temperature guage.  Someone might argue that a tachometer is useful because it lets me know if I am over-revving the engine and also lets me know when is the best time to change gear.  We could have the argument but lets just add it in.  So, 4 things.  Everything else is “nice to have” and you don’t need it.

There are other things that I need to know about to run my car.  I need to know that my oil levels are good.  I need to know that my brake fluid is in between min and max.  These are things that I should check every week or so – but I don’t need to know about them right now as I drive this car.

It is the same with the business dashboard.

What do you need to know, right now, to run your business?


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner

I came across a document recently where a date was being loaded from a text field in YYYYMMDD format.  The developer had used left, right and mid functions along with MakeDate to parse the date.

This is something that I might have done myself several years ago – before I knew better.  I wondered to myself if there would be much of a load speed differential between this method and Date# – which is the method that I would use today.  So I did some testing.

This particular machine was running v9 so it could have used some load speed tweaking.  I took a data set of 3 million records and compared both using the two methods.  The left, right, mid method took about 2 minutes (not a fast machine).  The Date# method was under 1:30 – 3/4 the time for the other method.

I wonder if you went back and reviewed some of your old code, if you might speed it up a little by just doing things better, just because you now know better.


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner

This is something that comes up every so often.  A question like, “we have sensitive data (such as salary!) in our system that we only want some users to see”.

This is all very straightforward on SBS where collaboration is not available.  Simply lock down the tab which has the sensitive data displayed using, for example, a condition based on the OSUser() function.

On an Enterprise server, where users can create their own objects, you don’t want them to even see that the field is there.

We can achieve this using the OMIT field in Section Access.  At a simple level, if you only have one field to hide, you can have the OMIT in the main Section Access table.  If you want to perhaps OMIT several fields, then the creation of a group of fields is the thing to do and then just link the user to the group ID.

In the example below, when user1 logs in they will not see Field1 or Field2.  When user2 logs in, they will not see Field2 or Field3.



Section Access;
LOAD * INLINE [
    ACCESS, USERID, OMITGROUP
    ADMIN, admin, 
    USER, user1, group1
    USER, user2, group2
];


LOAD * INLINE [
    OMITGROUP, OMIT
    group1, Field1
    group1, Field2
    group2, Field2
    group2, Field3
];




Section Application;


Fields:
LOAD * INLINE [
    Field1, Field2, Field3, Field4, Field5
    Value1, Value2, Value3, Value4, Value5
];


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner

Anyone who knows me (in the BI world) knows that I have a certain lack of respect for the humble Pie chart.  I am supportive of Stephen Few’s idea that we should, in general, Save the Pies for Desert.

A Pie chart, as it ubiquitously appears in many presentations, used to compare one value against several others, is a very poor choice for the task.  A simple bar chart is by far the better choice for the job.

I have been quite happy, up till now, to reject any use of a pie chart for any purpose.  That was until I came across Robert Kosara’s blog entry, In Defence of Pie Charts.  Robert discusses Spence and Lewandowsky’s study which shows that pie charts were interpreted more accurately than bar charts in some circumstances.


So, perhaps there is a good use for the Pie chart after all – not in comparison of multiple values, but in simple part-to-whole comparison.


Take, for example, the following Pie chart where we are comparing the performance of Germany versus all other countries.

Now, this chart doesn’t give me any numbers but what it does give me is an intuitive feel for how much of the market Germany has.

Now, compare that to an equivalent bar chart.

Here we have a perfectly formed bar chart where we can get a good grasp of the numbers that are involved.  However, if I want to get an idea of what percentage the German total is versus the whole, I have to do a little more work to get the answer – I can’t intuit it.

So, for this specific purpose, a Pie chart might be a better choice than the bar.

These charts are easily achieved in QlikView using implicit set analysis (available since version 9).

The chart has no dimension but has 2 expressions.  In my case, the expressions are:

   Sum({} LineSalesAmount)
and
   Sum({} LineSalesAmount)
When I select one or more countries, the first expression will give me the total for the selected countries.  The second expression gives me the reverse, the total for all the other values.
The labels for these can be achieved using Concat.  For the selected countries:
   =’Selected: ‘ & Concat(DISTINCT Country, ‘, ‘)
For the other countries:
   =’Others: ‘ & Concat({} DISTINCT Country, ‘, ‘)


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner
Apr 142011

I am a great fan of Stephen Few.  Any of his books are worth reading for anyone who works in the data visualization space.

If you can’t get a copy of one of his books right now, then 5 minutes reading his article, “Data Visualization for Human Perception“, is a great introduction.  The commentaries by Ronald Rensink, Naomi Robbins and Robert Kosara are equally worth reading.

My belief is that the study of human perception to create great data visualization is fantastically interesting.  There is some fascinating research going on in the area of pre-attentive processing.

As computers get more powerful and the cognitive psychologists keep going with their ground-breaking research, we really are entering a golden age.  I look forward to being a part of it.

Even so, I have a feeling that we will still be using the humble bar chart for many years to come.  It is such an intuitive and simple visual data display method.  I wonder if the real breakthroughs will, in fact, be in enabling people to work more collaboratively with their data to discover new insights.


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner

Thanks to Colin Hancox, who pointed me to this article on the QlikView Blog by Chris Mabardy, Director of Product Marketing at QlikView.

http://community.qlikview.com/blogs/theqlikviewblog/archive/2011/04/13/best-practices-for-qlikview-ipad-user-interface-design.aspx

The new mobile platform coming out in QV10 SR2 is new to all of us so it is great to have good guidance on building apps.

In general, all your old applications will work on the mobile platform.  The main considerations for iPad are screen real-estate (1024×768) and gestures instead of mouse.  If you expect that users will want access to right-mouse features, you need to turn on the new “Menu” icon in the caption.

After that, you just follow good design principals for screen layout.  If you haven’t already come across it, I recommend Stephen Few’s perceptualedge.com and any of Stephen’s books.


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner
kaushik said…

I would like to learn more about Qlikview Server and AccessPoint.

A brief guide to QlikView Server (QVS).  It is worth noting that the QVS Reference Manual is really good now and explains the specifics of this subject really well.

So, QlikView Server is a version of QlikView that runs on a server!  Simple, eh?  QVS will load documents into memory on the server.  When a client connects, QVS will send enough information to that clients so that they can display the information on their screens.  When the client makes a selection, QVS uses the memory and CPU power of the server to process that selection and then sends the screen updates to the client.  This means that the client doesn’t require to have enough memory and CPU to handle large volumes of data and complex calculations – hence why simple clients such as iPhone and iPad work so well.  The client just needs enough CPU and memory to render the screens.

QVS only loads each document once.  As each client connects, QVS will apportion them a separate area of memory to handle their data requirements (mostly cache of charts).  A “rule of thumb” is that each client will require and additional 10% of the document’s memory requirement.  So if the document loads into 1GB of memory on the server, each client will require approx. 100Mb of additional memory.  As each version of QlikView has been released, their memory handling technology has got better and better and v10 will handle many more clients in the same memory than, say, v8.5.

There are now just 3 main client types (previous versions supported a Java client also).  First, QlikView Desktop can be used as a client to access documents from a server.  When used as a client, you would notice that buttons such as “Save” and “Reload” are disabled because they make no sense for a client – the server will handle all of that.

The second client is the QlikView plugin for IE.  This is an ActiveX plugin that sits inside Internet Explorer.  It shares the same code base as QlikView Desktop so the experience is very similar.  It is still a “thick” client so does require installation – although it comes with an MSI for automated installation.

The third, an easiest to deploy, is the AJAX client.  This doesn’t require any installation because it works within a browser such as IE, Firefox, Chrome, etc.  As of QlikView 10 SR2, it is also supported in mobile devices such as Safari for iPad using HTML5.

The majority of Plugin or AJAX end users will access their documents via AccessPoint.  AccessPoint, by default, takes a user’s Windows Authentication information and will be able to present to them all of the documents that they have access to.  This means users won’t be confused by seeing documents that they won’t be able to open.  Users can also set “favorites” in AccessPoint so that they can default to seeing their most used documents.

Windows security is the default for QlikView server but not the only method available.  By turning on QlikView’s DMS authentication (not available in Small Business Server), the task of authenticating the users can be given to any other type of directory service or even a completely custom form.


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner
Apr 122011

I am training in some QlikView newbies right now and it makes me really aware about the huge number of things that you can learn in QlikView.

Please feel free to comment below and tell me what feature of QlikView you are interested in learning more about and I can use your comments as the basis for future posts.


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner

Another really interesting session that I attended at Qonnections was on scalability. Here, we looked at using the JMeter tool (an open source product from Apache: http://jakarta.apache.org/jmeter/) to first record a set of interactions and then play them back multiple times with multiple sessions.

This is a really powerful tool. Not just for QlikView but for anyone developing web products.

I can’t record all the steps here, but there is a tutorial document and some sample files available from the Community page @ http://community.qlikview.com/groups/qlikview-scalability/forum/default.aspx


Stephen Redmond is CTO of CapricornVentis a QlikView Elite Partner