• For validation


Financial Systems Consultant

Your new job

Our team of consultants helps our clients solve their issues, create value, support capability and growth, and improve their performance. You will build your industry experience and business skills to identify, clarify and confirm a problem before helping create and implement a solution relevant to the client’s needs. In addition to providing objective advice, expertise and specialist skills in accounting and business.

Why should you be interested

Your key position will see you engage with clients, focusing on their core business needs and delivering business benefits that exceed expectations. You will be consulting in the areas of Accounting and Enterprise Resources Planning (ERP) processes ensuring business and technical objectives are met. Above all, you will have the chance to build lasting relationships and see your clients flourish through the advice and support you are able to provide.

What is in it for you?

  • A dynamic team environment working with inspiring colleagues
  • Personal growth and development opportunities
  • Occasional interstate travel
  • Free parking at our central Canberra office in Deakin

If you would like more information download the detailed Financial Systems Consultant position description and submit a cover letter with your resume using the form below.

Your Name (required)

Your Email (required)

Your Introduction

Your Cover Letter

Your Resume (required)

Sage CRM 7.2 : Shuffle that Workflow!

Workflows are an integral part of Sage CRM, and we all know how crucial they are to any business that relies on them to perform their daily processes.

In my experience as a consultant, there have been many times when users from client sites have contacted us to say that they have mistakenly progressed a workflow to an incorrect state and want to move it back to the previous state.

In today’s blog, I’ll be giving you step-by-step instructions on how you can ‘shuffle’ any workflow to the state your client user wants.

I’ll be taking an example of the Opportunity workflow and show how you can move it back from its current state to the previous one. We’ll assume a scenario where a lead is incorrectly set to “qualified” in the workflow; which means the workflow is in the ‘qualified state’, and we want to bring it back to the ‘lead state’.

So, let’s begin!

Step 1:

Let’s pick an opportunity in the Qualified state from a list of opportunities in Sage CRM. Now, when you hover your mouse on this opportunity, you will see a URL at the bottom of the screen that will tell you the Opportunity Id (Oppo_opportunityId – highlighted in green) for this particular opportunity. In this case, it is 22.


Step 2:

Having found the correct opportunity, it is time to look into the Opportunity table in your CRM database and find out its corresponding ‘workflow id’ (oppo_workflowid). In case you ever wondered what a ‘workflow instance’ was, this is it! You can find the workflow instance of an opportunity by executing the following SQL command.

SELECT  oppo_workflowid

FROM     Opportunity

WHERE  oppo_opportunityid = 22

The above SQL command returns the value of oppo_workflowid as 3165. With that information, we will now go to the WorkflowInstance table to get some more information about this workflow instance record in step 3.

Step 3:

There are two things that I always check in the WorkflowInstance table for a given workflow instance record

1. wkin_currentstateid, and

2. wkin_workflowid fields.

WkIn_currentstateid, is used to find out what current state the workflow under consideration is in, and WkIn_WorkflowId  helps me to figure out the right workflow, which in turn helps me to list down all the states for that workflow. You can find the wkin_currentstateid and wkin_workflowid by executing the following SQL command.

SELECT wkin_currentstateid, wkin_workflowid

FROM   WorkflowInstance

WHERE  WkIn_InstanceID = 3165

The above SQL command returns the values of wkin_currentstateid and wkin_workflowid as 11 and 2 respectively.

Step 4:

Now we will use the wkin_workflowid value, which is 2 in this case, from the above step, to list down all the states for this particular workflow from the WorkflowState table. You can execute the following SQL command for that.


FROM  WorkflowState

WHERE WkSt_WorkflowId = 2

Below is a snapshot of the result generated by the query above. As you can see, the table in the snapshot has got all the standard opportunity workflow states that comes with the vanilla Sage CRM install.

Step 5:

So as we know, this lead was incorrectly progressed to the qualified state, as you can see in the image below. We now have to bring it back to the lead state.

We can do so, by updating the current state field (wkin_currentstateid) for workflow instance 3165, which is 11 (Qualified state) at the moment, to 10 (Lead state). If you see in step 4, the state id (WkSt_StateId) for Lead is 10. Let’s write this in SQL

UPDATE WorkflowInstance

SET    WkIn_CurrentStateId = 10

WHERE  WkIn_InstanceID = 3165

Warning : It is extremely important to be certain of the workflow instance you will updating as a final step in the process, as updating the current state id of an incorrect workflow instance will progress another workflow created by someone else!

Now just right click on your browser and reload the frame, and you will see that this opportunity workflow is brought back one step to Lead state again as seen in the image below.

Similarly, you can ‘shuffle’ any workflow to any state you want by simply following the above 5 steps. I recommend you try this out on a test environment first to get a firm conceptual grasp of the steps above.

Let me know how you go. Questions, welcome!

Until next time…happy consulting!  🙂

Project Infinity – CRM Just Got Better

I have been working with Sage CRM for many years with a multitude of clients across various industries. One thing that all of them have in common is the requirement to provide a user interface that helps achieve business objectives. It makes perfect sense, that if the user interface is easy to use and has intuitive controls, then it will lead to increased user acceptance and data quality.

The new buzz word for this is UX, or user experience.

I believe that the keys to creating a good user experience are:

  • Simplicity – Give the user the information they need and nothing they don’t (e.g. do users need to see the reports section?)
  • Responsiveness – Both in speed and user feedback (e.g. clicking a button provides obvious feedback to indicate that it was clicked)
  • Timeliness – Provide functionality only where it is useful (e.g. pre-populate an address form, based on a selected suburb)

Customisation of Sage CRM
It is possible to create customised pages for CRM, which allows for the display and editing of multiple records from multiple tables. It takes a bit of coding, but it is completely doable with plenty of examples available on the web.

Over the years we’ve developed many custom pages, some very simple and some very complicated. There was some pretty cool code written, a lot of which was designed to be re-used over and over. We wanted to create a method that would allow our consultants to quickly develop new CRM pages, using the code that had already been written. This was the beginning of the Accsys Framework (which has recently been renamed Project Infinity).

Over time, this has evolved into something bigger than we ever imagined. We now have a fully working User Interface along with a Webservices Application to facilitate communication between the end user and the database. We are now focusing entirely on providing an unparalleled user experience with little or no training required for the end user. I’m not going to get into how it all works at the moment, other than to say that is built on AngularJS along with a custom built WebService. There will be more details on this in the coming months, but for the time being, just assume that it is all really cool stuff.

Building around a search engine
First and foremost is the search function. It is something people do every day and it has become a natural way to get things done. It goes without saying that CRM systems are a huge repository of data, but this is all but useless if it can’t be found easily and in a format that is useful to the end user.

So we replaced the search screens in CRM with one simple screen.

Wizards for Creating Records
Most processes in a business where data is being created involve multiple processes. For example, booking in a meeting with a new prospect can include:

  • Creating the organisation
  • Creating the key contact
  • Creating the Opportunity
  • Creating the Meeting

This can be reasonably straight forward in Sage CRM, all the user has to do is go through a few screens, then the workflow takes over and guides them.
What we have done by focusing on the end user, is to come up with a wizard driven process that is not only quicker but is also aimed at improving data quality / collection at the same time.

The current dashboards in CRM are useful, particularly the dynamic dashboards. We have recreated this mainly to keep it inline with our new UI. We are basing on Kendo reports and it allows some really cool reporting features.

Try it out
So after the big spiel above we would welcome you to take a look at what we have to offer. This is only the first cut of the new UX and was recently used as a demo for a potential client. We are very excited about what we have achieved to date, but even more so with what we plan to do with this project in the future.

If you would like a login please email me at and I’ll set it up for you.

Accsys Consulting – Project Infinity

You can also view the framework in a separate window, by clicking here “Sage CRM Infinity“.


Sage CRM 7.2 Client-Side API

Recently I was asked to hide the continue button on the ‘Case’ summary screen for one of our clients. As you can see in the image below, it is located on the top right corner of the screen.

'Continue' button on the top right corner of the screen.

Case summary screen with ‘Continue’ button

Since it was a client side customization, I was aware that it could be achieved by one of the many easy to use APIs released with the launch of Sage CRM 7.2. These new APIs can be accessed from

Sage CRM 7.2 client-side API

Sage CRM 7.2 client-side API

Coming back to our client’s requirement, I went to the above link, and found the ‘hideButton’ API to achieve the goal.

Having found the right API, following are the steps to plug it in Sage CRM 7.2

1.  Go to Administration -> Customisation -> Cases -> Screens

2. Select the correct screen you want the API to trigger for when it loads. Remember you can enable ‘inline customisation’ to find out the right screen.

3. Once you are sure of the screen name, select it from the list of screens in the Case entity (in my case it was ‘CaseWebPicker’). This will give you an access to the ‘Custom Content’ area where in you can type the following javascript code that uses the above API.

4. Code:







Click update and save the changes.

And voila! The continue button has disappeared!

Case summary screen without the 'Continue' button.

Case summary screen without the ‘Continue’ button.

Similarly, you can use many of the client side APIs with Sage CRM 7.2 to achieve your customisation requirements. The other benefit of using the new APIs is that they are browser independent, and you can use them across IE, Chrome or Firefox without any issues.

I would like to hear about you’ve leveraged Sage CRM 7.2 client side API. Feel free to drop in a line or two about your experience.

Happy Customising!


How to install Nagios XI ?

It’s time to check your IT infrastructure’s performance again!

Today’s blog is the second blog post in the infrastructure performance monitoring series. To recap, in my first blog we looked in brief about how businesses can harness the capabilities of a cool open-source performance monitoring tool – Nagios XI. For those who haven’t read my first blog post in this series can find it here.

In this blog, I’ll be walking you through the installation of Nagios XI step-by-step.  Nagios XI is available under GNU license. A lot of plugins are available and its sizeable community makes Nagios XI the biggest open source performance monitoring tool.

Before we dive into the installation process, it is mandatory you have the latest version of the Linux distribution, CentOS, running on your machine. For those who don’t, you will have to download it from here, and then set it up on your machine before following the steps to install Nagios XI. Setting up CentOS on your machine is beyond the scope of this blog and demands a little space of its own. You can find a detailed instruction manual on installing CentOS server here.

After you have CentOS up and running on your machine, you can start working your way through the steps below to install Nagios XI. So, let’s get going!

If you follow the instructions correctly, you will end up with the following information.

  • Nagios XI and its plugins will be installed under /usr/local/nagios directory.
  • Nagios XI will be configured to monitor a few services of your local machine (Disk usage, CPU load etc)
  • Nagios web interface will be available at http://localhost/nagios

To start with, we need to install required dependencies like Apache, PHP, and libraries like gcc, glibc, glibc-common, GD and its development libraries before installing Nagios XI 4.0.6. To do so, we can use yum package installer.

# yum install httpd gd gd-devel php gcc glibc glibc-common

Create a directory

# mkdir /root/nagios

Navigate to the ‘nagios’ directory you created above

# cd /root/nagios

Download nagios-core & plugin

# wget

# wget

Untar Nagios core

tar xvf nagios-4.0.6.tar.gz

Go to the nagios-4.0.6 directory

# cd nagios-4.0.6

Check all your Nagios XI core configuration settings

# ./configure

If the above configuration settings are as desired, then compile and install all necessary binary files for Nagios XI

# make all

Install all needed libraries in your machine

# make install

Install init scripts for Nagios XI

# make install-init

Install Nagios XI command line. This will enable you to operate Nagios XI from the command prompt.

# make install-commandmode

Install sample Nagios XI files

# make install-config

Install the cool web interface for Nagios XI. The following command will also create a web admin user- “nagiosadmin”

# make install-webconf

After this, we will create a new password for the newly created web admin user. You need to enter the admin password twice and also store it securely in a place for future reference as you will need it to login to the Nagios XI web interface.

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Start the service and start it on boot

# chkconfig nagios on

# service nagios start

Now, compile and install Nagios XI plugins. We downloaded Nagios XI plugins in /root/nagios, so we will go to that location and install and configure it as below.

# cd /root/nagios

# cd nagios-plugins-2.0

# ./configure

# make

# make install

Start apache service and enable it on boot

# chkconfig httpd on

# service httpd start

That’s it! Now open your new Nagios XI web interface by typing http://localhost/nagios and provide the username “nagiosadmin” along with the password you created earlier in this process.

In my next blog, I’ll show you how you can use ‘bash-shell’ scripting to automate the rotation of performance logs from the CentOS server to your file server. Until then you can explore Nagios XI further and understand its basic configuration settings for start.

Let me know how you go with the Nagios XI installation. See you in my next blog!







Sage CRM and SSRS

In my last post I spoke about being able to use Crystal Reports through browsers other than IE. That got me thinking about the reporting options that are available in Sage CRM and the reasons that each of the different reporting options would be used. As I see it there are 3 different options:

  1. Standard CRM Reporting
  2. Crystal Reports
  3. Other reporting application

Today I will be discussing point 3 as not everyone has experience or access to develop Crystal Reports. The first reporting application that came to mind is SQL Server Reporting Services, or SSRS. The reason I will demonstrate how to use this one is because it is available for most installations utilising MS-SQL as the database engine. The advantages of using SSRS over other application reporting tools are as follows:

  1. Easy to deploy
  2. Easy export to various formats
  3. Reports can be run using report subscriptions
  4. Interactive sorting
  5. Drill down reporting
  6. Browser Based Interface

A lot of these functions are already available through the standard CRM reports or through Crystal Reports, however the decision to use SSRS over other reporting tools will be based on the end user requirements. To generate the report I will make use of the ability of Sage CRM to run ASP pages when they are stored in the reports directory. Jeff Richards wrote about this back in 2009, see here. This is done by saving the file in {CRM Install Director}/wwwroot/reports/{Report Category Name}.

To generate a report, I only need to create one asp page, which will contain 1 line which simply redirects to the report server. I won’t be going into how to create the SSRS report in the first place as there are plenty of resources on the web on how to do this and I would only be wasting my time trying to replicate what other users have already written. Microsoft has a useful guide on how to create the SSRS reports, so if you are new to SSRS then this may be a good place to start. This blog post also assumes that you have SSRS installed and working correctly. For this example I will simply be using the localhost installation.

To get started with a report you only need to create an asp page. This bit is actually really straight forward and can be done with 1 line of code. In this example I created an asp page called Sample Report.asp. The file contains the following:

<% Response.Redirect("http://localhost/ReportServer/Pages/ReportViewer.aspx?%2fOpportunity+Summary&rs:Command=Render") %>

This simply redirects to the report server making and displays the report. You should see something like this:

Step 1 - Sample Report

This report is based on the same report that I did in Crystal in a previous post, although that one was formatted a little bit better than this one. This sample works fine when there are no parameters, if I were to add parameters to the report the following would be displayed first.

Step 1 - Sample Report With Param

Then you can view the report by clicking on the View Report field. Using this reporting method adds a lot of functionality over the standard reporting in CRM, such as:

  1. Ability to sort the data
  2. Export the data into a variety of formats including
    1. XML
    2. CSV
    3. PDF
    4. MHTML (Web Archive)
    5. Excel
    6. Tiff
    7. Word
  3. Refresh the data
  4. Change the parameters used to run the report

So this bit is straight forward, however this is only the tip of the iceberg on what can be done. The next example will show a method on how to replace the Company Summary report that is generated out of CRM. The steps I went through were as follows:

  1. Create my SSRS report to mimic what is currently generated out of CRM. In this case I have done a very limited version of what can be done in SSRS, however it will illustrate the purpose.
  2. Create an asp page as follows:
<!-- #include file ="../eWare.js" --> 
<% var Id = new String(Request.Querystring("Key1")); 
  1. I saved the asp page in wwwroot\custompages\reports.
  2. Created a button group for the Company summary screen
  3. Added a link to the custom asp page that I created in step 2

As you can see it is quite a straight forward exercise adding in additional reports into CRM, regardless of the reporting tool that is being used.

Crystal Reports and Sage CRM

With Sage CRM now supporting browsers other than Internet Explorer, then can be issues when trying to run Crystal Reports. The issues stems from the fact that Sage CRM uses an ActiveX component to display the report. This ActiveX component is quite powerful giving you access to export the report to multiple formats, search for text, change the display, etc. Only problem is that it is limited to Internet Explorer only.

I personally have a problem with using IE and use Chrome on a daily basis. My main issue with IE is with the limited support for HTML5, particularly in older version of IE. I will concede that there has been an improvement in the latest version and I probably could use it without any problems, but I’ve now moved to Chrome and haven’t come up with a good reason to not to use it. There is a cool little website at which outlines which features of HTML5 and CSS3 have been implemented in the main stream browsers. Speed is also another consideration and I think the image below sums it up perfectly.


Now that I have had my little rant, I will move on to what can be done with Crystal and Sage CRM. In this blog post I will show how to generate a Crystal Report while using Chrome. Unfortunately we do have to forgo some of the functionality that is available through the ActiveX control, however I believe that being able to generate the report in the first place is a real plus.

When trying to run the report in Chrome you should see something like this appear.

Image 1
This is not really all that useful. As I mentioned before this is a problem with Chrome not being able to use the ActiveX components, or at least cannot use it when using a vanilla installation. There are a couple of options available here to get it working:

  1. Use an add in to allow ActiveX components to run, for example you can use IE Tab or ActiveX for Chrome
  2. You can change the way the report is generated and presented to screen.

Both options are valid solutions to the problem; however point 1 requires that software is installed on the workstations for it to work correctly. This blog post will go through point 2 and the changes that are required for a system wide solution.
To make this work you will need to edit the standard Crystal Report asp files that are provided with an installation of Sage CRM. These files will be found in {installation directory}\crm\wwwroot\reports\CrystalReportViewer. In this directory you will see the following files:

  1. Cleanup.asp
  2. RDCrptserver11.asp
  3. RunReport.asp

The only file that needs to be modified to work is the RunReport.asp. The modifications are reasonably straight forward and are documented below.

  1. Backup the RunReport.asp
  2. Find the linesession("oRpt").EnableParameterPrompting = False

    Add the following code:dim CrystalExportOptions
    set CrystalExportOptions = session("oRpt").ExportOptions
    FileNameExport = year(date())&"-"&month(date()) & "-" & day(Date()) & "-" & hour(Time()) & "-" & minute(Time()) & "-" & second(Time())
    FileName = Server.MapPath("../../") + "\Temp\" + FileNameExport + ".pdf"
    CrystalExportOptions.DiskFileName = Server.MapPath("../../") + "\Temp\" + FileNameExport + ".pdf"
    CrystalExportOptions.FormatType = CInt(31)
    CrystalExportOptions.DestinationType = CInt(1)
    session("oRpt").Export False
  3. Find the linesset session("oPageEngine") = session("oRpt").PageEngine
    End If
  4. Add the following code at the endResponse.Redirect("../../Temp/" + FileNameExport + ".pdf")

    dim fs
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    if fs.FileExists(FileName) then
    end if
    set fs=nothing
  5. This step is optional as it will run with the code still there, however it is no longer needed. To clean it up remove the script:<script language="javascript">
    function getQueryParam( name )

    Leave the script that contains the function CallDestroy()

This will now produce a report below.

Image 2

Now because coding can be loads of fun, I have provided the modified file RunReport available for download. Feel free to use it at your own site(s), the only thing I ask is that if you come up with any cool features let me know so I can share it around.

This method does make use of the Temp directory that is within the Sage CRM website, however the files are immediately deleted after they are returned to the client. This method means that the reports are never stored in the CRM library, however the method for producing reports that are stored against the company or other entities will be investigated in future blog posts.

Some things that I have noticed when doing this is that you don’t need to have the Crystal Report Server on the CRM server itself, it will run using the Crystal Runtime files. This works really well in the situation where you have Sage CRM integrated with Sage ERP 300 as they are provided as part of the workstation installation. One other benefit that I have noticed is the speed at which the report is generated, it is surprisingly quick. I wish I could say that this was by design, but unfortunately it was just one of those items that was just plain good luck.

Please note that the change to these files won’t be supported by Sage, however we do have this running live at a lot of our sites with no issues. These files have been tested with Sage 7.1 and 7.2.

The next post will concentrate on how to generate a Crystal Report from the various screens within Sage CRM. This will concentrate mainly on using button groups for the standard entities and using the CRM.AddButton function for asp pages.

Accsys Framework Series: Sage CRM a New Look!

Welcome to our new series on the Accsys Framework. This is a new add on product that is currently in development by Accsys Consulting and we are giving you a sneak peak on what is coming up.

Sage CRM is a tool that can enhance an organizations business processes by handling the menial and tedious tasks that is necessary for a business to run smoothly by getting the data in order and organised. Accsys Consulting views Sage CRM as one of the most flexible business applications available in the market. This flexibility allows a business to customize Sage CRM to fit the needs of the organisation.

At its very core Sage CRM is an application with three different layers, the user interface, application logic, and the database engine. Making the application adhere to specific business processes requires customization of the three different layers. This customization is done through a variety of means, but most commonly through:

  • HTML
  • Javascript or JQuery
  • SQL Stored Procedures

One of the key advantages that Sage CRM has is the extensibility of the application, allowing businesses to do what they do best without having to change to fit the capabilities of the application.

Technically – extensibility is a system design principle where the system is made to grow and designed so that other components can added on to increase functionality. But if you’re a business partner like us, then you already know that Sage CRM can do that already and that this is nothing new. You can customize Sage CRM by adding new entities, new .asp pages to suit your needs, you can even have CSS to give it a fresher look, use different plugins and many other customization techniques.

Accsys Consulting has decided to take it a step further.

But before I go on with this ‘next step’ let me say why Accsys Consulting decided that we wanted to go down this path. It started as an idea to improve the UI in general of Sage CRM, to make it more up to date on the programming side of the spectrum we wanted to make use of HTML5, to allow business partners to deploy customisations quicker, easier, with more flexibility. In addition to improving the customization component, we were also aiming to improve the end user experience by speeding up data entry and making it as intuitive as possible.

The Framework isn’t a replacement for Sage CRM, instead we see it as an enhancement that builds on an award winning application by adding additional functionality. Our key goal is to provide a system that provides speed, scalability, and usability while taking advantage of the powerful features provided by Sage CRM.



Just to get you started, here is a taste of some of the features that we have implemented so far.

Logon Screen

We started with the login screen and made it possible to customize it so that the client can customize it to make it fit their needs. This is possible through the current login page, however we wanted to be able to add new features such as a new s feed for the organization.




We have changed the dashboard so it is more intuitive, in the same fashion as the Dynamic Dashboard in Sage CRM. When a user logs in the Accsys Framework they are presented with the cases that they need to address. To access these cases there are the buttons at the top that indicate how many cases is assigned to the user. By clicking on this button it will point you to an ordered list of your cases



The first entity we put through the framework was Case Management. We needed this internally to help manage our own clients. We had attempted this a few occasions before, however we did have user adoption issues. When developing the case management screens our approach was to ask the technical consultants what they needed and designed the screens around these requirements. The result was a simple to use interface with as much information as possible on the same screen.



Cases Comparison

In comparison with Sage CRM we have migrated a lot of the standard features to our framework, but added some little touches on the way through. For example, the workflow now shows where you have been and where you can go from the current state.


Sage CRM with Accsys Framework




Find/Search – we have implemented a global search in the framework that searches through all the records in CRM (item 1)




Workflow actions – Changed the look and feel of the workflow, this shows visibility with what steps have been taken and that the next steps can be done (item 2)


Case menu Items – changed the menu items to be icons with tool-tips that shows the name of the tab when hovered (item 3)


Notes tab – These tabs were designed in such a way so that the page itself doesn’t refresh every time a user clicks on the other tabs. This is due to the structure of the page altogether as the whole web page and the whole of the Accsys Framework is following the design pattern of MVC or Model-View-Controller. For each page in the framework we have separated parts to follow a certain model. So for instance in the Case Summary screen there are a number of different models with different controllers attached to different views. (item 4)

Default/Accsys Framework – a button to return back to the Default CRM or to go to the Accsys Framework. (item 4)



This is just a taste of the Accsys Framework and we are currently working towards having a full version released that will be available to other Sage Business Partners. In future articles we will discuss some of the key advantages of using the Accsys Framework and how the Accsys Framework works in conjunction with Sage CRM