This article is from the Orbis Knowledgebase:
TaskCentre has the ability to interact with multiple systems effectively linking them together. Because of this, there exists a need to treat all of the steps within a task as a single transaction. For example, a task that reads data from Database A, writes that data to Database B and sends an email notification to Mail Server C would ideally be handled as a single transaction.
In practice treating this as a single transaction would be difficult to achieve. (Think about it, if the email notification to Mail Server C failed we would have to roll back the update to Database B - not an easy task to accomplish when we don’t have access to the database transactions statements; BEGIN TRANSACTION, COMMIT and ABORT.
This article is intended to provide information how to make tasks resilient by employing a retry mechanism to reprocess failed transactions.
Let’s take as an example a TaskCentre task which monitors a sales order system and emails a report containing details of a newly placed order. The ‘Process Orders’ task contains the following four steps.
SQL Trigger Event - Maps the OrderID to a task variable.
Database Query - Extracts additional details relating to the OrderID such as the OrderDate, CustomerName, and OrderAmount
Format HTML Report - Creates a HTML formatted report from the query data.
Send Message - Emails out the report.
Screenshot of the ‘Process Orders’ task
The problem with this task is that it is not resilient to failure. The following two failures could occur after the SQL Trigger event step has fired
1. The Database Query step times out because the database server is busy.
2. The Send Message step fails because the SMTP server is unreachable.
Either of these issues will cause the trigger event to be ‘lost’ because no report will ever be sent for that order. To manage this we will build a retry mechanism which will have the following two features:
1. Events Queue - Places the event to be processed in a queue.
2. Recovery - Retry when a failure has occurred.
1. Creating the Events Queue
The principal here is that an event will be written to the EVENTS table at the start of the task run. The status flag will initially be set to a status of ‘Unprocessed’. Only if all the steps succeed and it gets to the final step is the entry updated with a status of ‘processed’
1. 1 Create an Events table to queue events
1. On the TaskCentre server machine install a local SQL Server Express instance.
2. Create a table called EVENTS and add the following columns.
||Set the data type to match that of the external system’s primary key
||Primary key of our EVENTS table. Populated by the primary key from the external system.
||The task id
||bit, NOT NULL
||Unprocessed = 0, Processed = 1
CREATE TABLE [EVENTS]
-- Assumes the external system’s primary key is char(20)
EVENT_ID char(20) NOT NULL,
-- The Task ID is found under the ‘Advanced’ tab of ‘Task Options’.
TASK_ID int NULL,
-- Unprocessed = 0, Processed = 1
TASK_STATUS bit NOT NULL
CONSTRAINT PK_EVENTS PRIMARY KEY CLUSTERED (EVENT_ID)
1.2 Task design changes
Edit the task to add an 'OLEDB Call Procedure' step named ‘INSERT_EVENT’ that inserts a row into the EVENTS table and sets the TASK_STATUS field as unprocessed.
Screenshot of the INSERT_EVENT step parameter mapping pane.
The Procedure that the INSERT_EVENT step calls is as follows:
CREATE PROCEDURE INSERT_EVENT
INSERT INTO [Events]
(PRIMARY_KEY, TASK_ID, TASK_STATUS)
@PRIMARY_KEY, @TASK_ID, 0 -- Initial state is always ‘Unprocessed’
2. Processing the Events Queue
2.1 Task design changes
Edit the task further with the addition of an OLEDB Call Procedure step named ‘UPDATE_EVENT’ that updates the TASK_STATUS field in the EVENTS table to mark it as processed.
Screenshot of the UPDATE_EVENT step parameter mapping pane
The Procedure that the UPDATE_EVENT step calls is as follows:
CREATE PROCEDURE UPDATE_EVENT
-- If we’re calling this procedure it means that all
-- of the preceding task steps have completed
-- and the status can be set to ‘Processed’
SET TASK_STATUS = 1 –- ‘Processed’
WHERE PRIMARY_KEY = @PRIMARY_KEY
Screenshot of the final task design. (Note the additional INSERT_EVENT and UPDATE_EVENT steps compared to the non-resilient task in the first section.
Lets assume that a failed transaction has occurred. How do we recover from it.
The sceenshot below of SQL management studio shows TaskID 1138 has run five times. The fourth time it ran (EventID 23) one of the steps has failed.
3.1 Reprocess failed transactions
To recover from the failure we build a new scheduled task ‘Reprocess Orders’ . This task is the same as the original ‘Process Orders’ task but with the following differences.
1. The SQL event step has been replaced by a schedule event step set to a regular interval one hour.
2. The SQL in the query step has been amended to JOIN the Orders table to our Events table with a WHERE clause of ‘TASK_STATUS = 0 so that it only picks up the unprocessed transactions.
TestDB.dbo.SalesOrders INNER JOIN TestDB.dbo.[EVENTS]
TestDB.dbo.SalesOrders.OrderID = TestDB.dbo.[EVENTS].EVENT_ID
-- Filter on ‘Unrocessed’ rows
TestDB.dbo.[EVENTS].TASK_STATUS = 0
3. OLEDB Call Procedure step that updates the TASK_STATUS field in the EVENTS table to mark it as processed.
Screenshot of the ‘Reprocess Orders’ task
Please note this article is taken from the Orbis Software Knowledgebase.
How to synchronize MailChimp unsubscribes with a CRM system by making use of the TaskCentre Web Service Connector.
SummaryMailChimp ( http://mailchimp.com ) is an email marketing solution which helps you create and monitor email marketing campaigns. When a user decides they no longer wish to receive campaign emails they can unsubscribe from the mailing list by clicking a link marked “unsubscribe” at the bottom of an email. MailChimp then sets a flag to change their status from “subscribed” to “unsubscribed”. Using TaskCentre you can query users with the “unsubscribed” status and update a CRM system to flag these contacts as no longer requiring inclusion in an email marketing campaign.
- TaskCentre build 4.5.1171
- TaskCentre Web Service connector tool 1.0.482
- MailChimp API version 1.3
· Sign up for a MailChimp account by visiting the link below and following the sign up instructions http://mailchimp.com/
· Within the MailChimp dashboard under Account > API Keys & Authorized Apps create an API key.
· Create a list for example, “Newsletter” and add some subscribers to the list. MailChimp automatically generates a unique id for the list. You will find the list id under Lists > Settings > List settings and unique id.
· Create a new campaign for example “Introducing our new product”
· Send the campaign.
You will need to enter the API Key and List ID you got from the steps above when you create the web service in TaskCentre so make a note of these now.
Web Service Configuration
1. Download the MailChimp API v1.3 web service configuration file from here:
2. From the main menu within TaskCentre select Manage > Tools > Execute > Web Service Connector to open the Web Service Configurations screen.
3. Click Import and browse to the MailChimp API v1.3 web service configuration file you downloaded earlier.
4. During import of the web service configuration file you will be prompted to enter the MailChimp API Key and the List ID parameter values. See the Prerequisites section above for how to get your API Key and the List ID.
4. Click OK to save the changes and then close the Web Service Configurations screen.
You have now successfully created a web service that connects to the MailChimp web service API.
The next section shows how this can be used within the Web Service Connector Tool in TaskCentre to query users who have unsubscribed from a MailChimp mailing list.
Web Service Connector Tool
1. Create a new task
2. Under the Design tab, right click anywhere in the designer and select New > Execute > Web Service Connector
3. Under the Web service tab, select MailChimpAPI from the Web service drop down and select ListUnsubscribedMembers from the Operation drop down.
4. Under the Mapping tab, from the Functions pane drag two Fixed/Dynamic functions onto the Transformation mapping pane
5. From the Tool Input pane drag from apikey onto one of the Fixed/Dynamic functions and the listid onto the other. If successful you will see a green dotted line between the tool inputs and the functions.
6. Double-click the function that is linked to the apikey input and select the Value tab.
7. Within the task Browser under the Constants section drag MailchimpAPI_API_KEY onto the Output Text of the function and click OK.
8. Repeat the above steps for the listid input.
At this stage the output of the Web Service Connector tool is now available for use within other task steps to update your CRM system with unsubscribed users.
Learn more about the benefits of synchronizing MailChimp with your Customer Relationship Management system in our brochure:
I recently found a survey that asked about the top business challenges that companies experienced that drove them to purchase a new Enterprise Resource Management System (ERP).
Below are two answer choices that scored extremely well in the survey results.
Get better insight on your business and operations and make better-informed decisions -78%
Reduce Operation costs through a better integration and automation of your process - 59%
It goes without saying that a business cannot run effectively without key personnel knowing crucial trading information such as: what are the current buying trends, what is in the sales pipeline and cash flow projections.
With the advent of software solutions to improve the smooth running of operations at an organization - some of the business visibility became hidden and now organizations are faced with finding ways to track their information and ensure that they know what is going on.
Additionally in many Companies having so many disparate software solutions has added another layer of complexity and has reduced efficiency, many employees are finding that they are spending the entire day re-entering information from one system to another. Not only is this in-efficient practice but it is also error prone and costly.
So it makes sense that these organizational pains are driving Companies to search for new Enterprise Resource Systems that will alleviate these problems. In many cases a new ERP will not be enough. Though many of these systems are very comprehensive it is often necessary to purchase additional third party software solutions to fulfill all the business requirements and connect all the disparate solutions.
These types of projects are complex and there are many options and applications that need to be researched to find the best solution and ensure that they play nicely together.
For the past 7 years we have been advocating and implementing automated process and integration and our customers are reaping the benefits.
Rick Moore, IT Director of Hatch said:
“TaskCentre is a mission critical application that continues
to save the organization time and money. It is fundamental
to every aspect of our business.”
Does your organization suffer from these types of pains. Have you selected a new ERP but are still not getting the corporate visibility you need? Contact us to learn more how TaskCentre can assist your business.
The Question is 'What do you want to automate?'
Note to reader: This article was originally published on Orbis-Software.com as a KnowledgeBase Article on December 20th 2012.
As most people know TaskCentre has an inbound and outbound SMTP capability and traditionally this has worked in conjunction with the company on-premise Exchange SMTP mail server. With more customers now moving over to hosted services in the cloud the inevitable question is “Can TaskCentre provide the same functionality using hosted SMTP services?”
This knowledge article addresses that question and discusses both inbound SMTP triggers and outbound SMTP email delivery with mail relay enabled.
EMAIL OUTBOUND FROM TASKCENTRE
We begin with outbound SMTP flow where TaskCentre is required to send email though Office 365 hosted facilities.
Outbound SMTP from TaskCentre to Office 365 is relatively straightforward.
Microsoft KB article refers http://support.microsoft.com/kb/2600912
TLS authentication is required and is directed to port 587 instead of port 25 used when Exchange is hosted on-premise. Open the SMTP output configuration in Tools/Output. Take note of the configuration in the screenshots. We have used an account called “TaskCentre” to provide the TLS authentication. Note Domain name is not required.
There is a relay restriction of 1500 emails per day imposed on TaskCentre by Office 365. If your requirement is likely to exceed that quantity then you should look at deploying a local SMTP server using IIS for delivery.
EMAIL INBOUND TO TASKCENTRE
In the past using on-premise Exchange SMTP services if a user wished to trigger a task based on the content of an inbound email then a email routing would be set up using a contact name and a specific address space. This would have the effect of forwarding a subset of email onto the TaskCentre server machine which hosted a MS SMTP virtual server running under IIS.
The following article refers
Similar principles apply when using hosted SMTP services the administrator must configure an outbound connector which identifies a specific address space and routes email onto the TaskCentre server. In order to use this connector you must first:
1. Set up a DNS MX record that identifies the domain name that you require and maps this to the external IP address that will be used by the IIS SMTP virtual server machine.
2. Register a sub domain name in order to filter mail destined for TaskCentre server away from email destined for Office 365 mailboxes.
Once the sub domain name has been established together with registration of the IP address then the administrator can commence work on configuring the outbound connector.
1. In the office 365 Management Console under Exchange online click Manage.
2. Click on Mail Control in the left side navigation pane:
3. Under Microsoft Forefront Online Protection for Exchange, click on Configure IP safe listing, perimeter message tracing and email policies:
4. In the FOPE Administration Centre, click the Administration tab, and then click the Company tab
5. In the Connectors section, for the Outbound Connectors, click Add to open the Outbound Connector dialog
6. In the Name field, enter a descriptive name for the outbound connector
7. In the Description field, enter descriptive information about the outbound connector
8. In the Recipient Domains field (under Connector Scope
9. Select the Deliver all messages to the following destination check box, then select the Fully Qualified sub Domain Name option
10. The Transport Layer Security (TLS) Settings section allows you to configure whether emails will be sent securely or not. Orbis Software recommends setting up opportunistic TLS initially to ensure the TLS does not impact your outbound email flow. This means that an encrypted connection will always be attempted first, but if this cannot be established, the connection falls back to unencrypted communication.
This completes the configuration of the Office 365 outbound connector. We should now consider configuration of IIS on the TaskCentre server.
IIS Virtual SMTP server.
11. Set up IIS SMTP virtual server on Windows 2008 TaskCentre Server machine using the reference article http://msdn.microsoft.com/en-us/library/8b83ac7t(v=vs.100).aspx
12. Ensure the DNS record identifies this machine by its registered external IP address.
13. Ensure that the TaskCentre SMTP agent has been installed and configured correctly on the TaskCentre server machine.
14. It should now be possible to send an email through Office 365 addressed to your sub domain in our case taskcentre.mydomain.com and for this to be routed to the TaskCentre server using the MX record triggering a task to run where the email filter criteria equates to true.
15. Administrators may decide to use the TaskCentre File Management tool to purge emails that remain in the drop folder under IIS after the trigger opportunity has been met. This is in cases where the email is not delivered to a final destination and is used solely to trigger a task runtime opportunity.
Note to reader: This article was originally published on Orbis-Software.com as a KnowledgeBase Article on December 20th 2012.
Workflow means different things to different people. In our world of business process management our definition of workflow is a process that involves a human interaction for the process to complete.
A typical example would be if you need to get management approval for purchasing stock over a set financial limit. A workflow would be created to inform an authorizer that they need to approve a purchase, the authorizer responds and the process then completes according to business rules that you set when creating the workflow.
Many Customer Relationship Management (CRM) and Enterprise Resource Management (ERP) software applications have some type of workflow built in, so you may wonder why it would be worth looking at a third party that has the same functionality.
Consider this, if your CRM or ERP has workflow does it:
. allow non users of the system to benefit from the workflow?
. allow you to configure the workflow according to your business rules?
. enable you to integrate your disparate systems so that you don't have to manually re-key data?
Can you see where I am going with the title of this blog Beyond the existing Workflow?
When you are looking at your systems that already have workflow consider these points. Yes your software may already have some workflow capabilities but it may well be limited and restrict the efficiencies that you can realize from using a more flexible tool that has been specifically designed to enable you to automate workflow in a flexible way, according to your business rules and can work with many different platforms.
If any of the questions posed above resonate for your business, what you need to consider is your business being disadvantaged with just using the workflow that comes as standard with your software. Would you like to be able to do more? Maybe it is time for you to consider a third party add on such as TaskCentre?
Let us know your thoughts in the comment box below. Alternatively you can
Most everyone has heard of Black Friday the busiest retail shopping day of the year and many of us are now becoming familiar with Cyber Monday the ECommerce equivalent.
Over the past few years since the advent of Internet shopping the dynamic of Black Friday has changed. No longer do you have to camp out all night in the cold and damp to get the best bargain from your favorite store. Now you have the luxury of being tucked up under your cozy duvet whilst you surf the net for the best deals from your favorite on-line retailer.
Because of this shift Cyber Monday has become as important for on-line retailers as Black Friday is to traditional store owners. However, this sudden increase in trading can cause headaches for these businesses if they don't have good processes and integration in place to manage this surge in demand.
On-line retailers need to be confident that their store is offering better deals than their competitors. That they are responding quickly to orders and notifying their customers that shipments have been made. That they have sufficient stock to cover the orders and when it has run out that their site reflects that they have sold out. Key to the smooth running of their internal systems is to ensure that all the customers ordering information is entered into an accounting system, as well as keeping track of what inventory has been purchased, ensuring that re-ordering can be done in a timely fashion and that there is no delay in fulfilling orders.
On-line retailers who handle these processes manually on an ordinary day invariably have learned to cope with the repetitive manual process and double entries these sytems require, and they think that Cyber Monday is just a crazy blip in the annual calendar.
It doesn't have to be this way. By integrating ECommerce applications to back end accounting systems these stores are run more efficiently and staff time is freed up to concentrate on building the business not maintaining the status quo. On-line retaillers need to remember that there are other busy shopping periods, Christmas, Valentine's Day etc.
Do you want Cyber Monday to be your ECommerce stores worst nightmare or would you like your busiest day to run smoothly and have the added benefit of not having to worry about your store standing alone on any given day of the year?
Integration and process automation are the answer to this problem. Let us help you make your business run smoothly and ensure your processes are automated and efficient.
The question is 'What do you want to automate?
This is a guest blog by Gary Feldman, President, I-Business Network
The America’s SAP Users Group (ASUG) is holding its third annual SAP Business One Summit at the Plano Center outside Dallas Texas November 14-16. This event is gaining tremendous momentum in its third year with more training and learning activities than ever!
Spearheaded by ASUG Business One Special Interest Group this conference is different than many as it is not sponsored by SAP or an individual SAP Partner organization, but by the ASUG and sponsored by the entire SAP Business One community.
Members of the leadership team for keynote sessions
Technical experts for hands on training sessions
Development managers for sessions on what is new and what is coming in future releases.
Real world experience sessions on how they implemented and use SAP Business One.
Solution Partners provide:
Hands on training sessions for their generic and industry specific enhancements
Sessions on industry and technology trends such as cloud computing
Sponsorship for area culture and sporting outings as well as through the solution provider fair.
For example, this year I-Business Network is sponsoring a session on Efficient Use of the Cloud where we will provide tips and techniques for deriving more than just IT Outsourcing from cloud computing. Together with Fisher Technology, I-BN will demonstrate real life examples of extending SAP Business One to customers, vendors and employees through the cloud with Task Centre as a Service.
If you are a current or prospective SAP Business One customer, we encourage you to attend this FREE event! For more information contact your SAP Business One partner and/or view the links below:
2012 ASUG SAP Business One Summit AGENDA (draft)
"Integration with Flexibility and added functionality that's the difference TaskCentre Makes!"
So what do I mean by that statement? One of the recent sales challenges I have encountered was finding a way to explain the benefits that the web service connector tool offered.
The tool opens up so many exciting avenues of integration using web services and we are receiving numerous inbound inquiries relating to this.
So where is the challenge you may ask. Well here's the rub. Marketing has produced some glossy brochures describing an integration solution. So these potential customers read these brochures believe that the solution is pre-built out of the box and some quite frankly are put of that it's not.
I am finding that the best way of explaining why the solution is not out of the box is as follows. I tell them to imagine that TaskCentre is a toolbox, and that toolbox will enable the integration between their systems and in addition it will enable them to create workflow, alerts and reporting according to business rules.
This explanation works as the customers realize that an out of the box solution could have limitations. Once they understand the concept that they will get a tool that offers them flexibility and more functionality they want to learn more.
There are of course custom coded alternatives, and often I am asked to explain why that is not a better solution for them. Apart from cost (which can be as much as triple the amount of a TaskCentre implementation) I point out that a custom coded integration will offer their exact requirements when designed, however, the downside is that any changes would have to be custom coded by the developer and sometimes re-written from scratch.
Whereas with our TaskCentre toolbox, process design is flexible and changes can easily be made by the customer. Admittedly they will need some training but the costs involved in training are easily re-couped as customers become self sufficient.
So bottom line is, the challenge of offering a toolbox and not a complete solution becomes a benefit and our prospects seem to agree with me on this one.
What is your experience. Let us know in the comments box below.
We have just returned from Sage Summit in Nashville. At the Trade Show, we played the slideshow that you can see above. This slide show gives an overview of TaskCentre, what it does, who uses it and the benefits it delivers.
We hope you found the presentation useful. If you want more information or would like to set up a demonstration:
There was an interesting question posed in the LinkedIn TaskCentre group asking how people handle documenting Tasks that have been built so that if the designer leaves an organization there is a trail of the work that has been done.
The following suggestions were made.
1)Within TaskCentre by using the description field on the General tab you can give an overview of what the task does and you can give the steps descriptive names. The downside of this approach is that the information is held within TaskCentre and not externally.
2) Build a simple task that query's the TaskCentre API to generate a HTML document containing basic information regarding TaskCentre. This document includes a summary of:
- Total amount of tasks
- Amount of enabled tasks
- Amount of disabled tasks
- Folder-sorted task documentation containing:
-- Folder the task is present in
-- Name of the task
-- Taskcentre task ID
-- Description of the task (The description filled in the description field of the general tab)
-- If the task is enabled or disabled
-- Owner of the task.
The basic HTML design can of course be modified, and it is possible to use basic HTML in the task description (For example for bolding, italics and so on). As with any task the HTML can be saved to a file or mailed, and has the advantage that it just requires a "Queue now" of the task to be regenerated after changes in tasks or descriptions.
3) Use a series of screen shots (copied and pasted into Word) to document up the tasks. The challenge you have is that tasks can be changed "too easily" and the documentation can quickly get out of date. You should consider putting in some kind of release management practice that uses TaskCentre User Security to protect live tasks.
4) Produce UML Process Maps to document tasks; usually as part of the proposal and requirements specification. They help as you can easily describe the logic you have built and any data being passed between task steps. Its much simpler to facilitate change in these documents (providing its not a major amendment) as you simply replace/rename/create the UML elements you are using.
This little gem is quite useful if you want to go down that route: http://www.gliffy.com/
If you want more information on TaskCentre best practices join the TaskCentre LinkedIn group.