Author: Eric Pias

The Nightmare before “Workflow”

halloween-1

That’s the start of one of the best Halloween movies ever made … or was it a Christmas movie? We changed it a bit.

We’re hoping you have a ‘spooktacular’ Halloween with costumes, treats and games galore. This time around, try our Halloween Quiz (click the image below) and discover how ready you are for workflow automation this Halloween and throughout the next year.

StartQuiz.png

No matter your expertise level, frevvo has a bunch of great resources for all your forms and workflow needs. So, click the button to take the quiz and find your Halloween treat.

And, if you have some time on your hands this Halloween, you could always watch The Nightmare before Christmas.

Happy Halloween!

 

Get people to actually use your shiny new workflows

infopath-replacement.png

Hint: It’s all about Usability!

You’ve invested in workflow automation. Looks great but sometimes getting people to actually use it can itself be a Sisyphean task. People resist change and will quickly fall back to bad habits like emailing PDFs and Excel spreadsheets around to manage key information.

So, how do you onboard your users?

1. Involve them from the beginning

This is a pretty obvious one. The earlier you get stakeholders into the process the more likely they are to adopt it. People are naturally more invested in a solution that they’ve had a chance to impact. Soliciting feedback and actually implementing suggestions are critical elements.

When we work with customers on a new project, we go to great lengths to set this up. We spend time upfront to make sure we’re building something users want and make sure there are at least a couple of UAT-Change Request Implementation cycles. That way, the people who have to actually use the new system can affect it.

2. Usability, Usability, Usability!

if_seo_web-34_1046124.pngI can’t stress this enough. It does not matter how robust and awesome your system is. If it’s hard to use, it will not be adopted. If it looks good and is easy to use, people will forgive other shortcomings.

Usability (for end users) should probably be your #1 criterion in selecting a workflow automation system. Some tips:

  • Great Looks: Employees are also consumers. They use slick apps everyday and get used to a fantastic UX. If work apps have old-fashioned, clunky UIs they’ll never catch on.
  • Sensible Terminology: Make sure your buttons, labels, messages are familiar and helpful. For example, if the workflow will route to the CFO for secondary approval the button should say “Route to CFO” rather than the generic “Continue”.
  • Help Text: Some fields require further explanation. The Label is not always enough. Take the time to add help and it can make a huge difference. Tooltips and placeholders are other options.
  • Mobile friendly: It has to work naturally on all devices. Buttons might need to be slightly larger on mobile so they’re easier to click using your finger. Forms may need to be broken up into multiple pages to avoid overwhelming smaller screens.
  • Speed: Don’t underestimate the value of performance. People love systems where they don’t have to wait around.
  • Consistency: A big part of great UX is consistency. Buttons should be in the same place, labels should follow consistent conventions, the look & feel should not vary dramatically from one process to the next.

3. Training / Feedback

1492276951_seo_web_3-01.pngEnd user training should be part of every rollout. But, it’s just the first step. Once people have used the new system for a period of time, they’ll have feedback for you. It’s worth going back and actually talking to stakeholders – is this helping you? Are you doing less manual work? Do you genuinely have more time for things that matter? What can we improve?

4. Iterative improvement

Once people tell you what you can improve, it’s important to go back and actually address issues as quickly as possible. Nothing’s more frustrating than getting it 90% right only to see users abandon your system because you overlooked a couple of things.

5. Communicate success

Share meaningful success stories with everyone involved in the system. Recognizing people’s efforts (company meeting, spot awards) in bringing change to the organization will always be appreciated as long as you don’t overdo it and the recognition is for real measurable gains.

Ultimately, though, we’d advise you to focus hardest on Usability. If they find it hard to use the new workflows, the rest doesn’t matter.

 

Visual Rule Builder: business rules without the JavaScript

I9-02.png
Federal I-9 in Designer

In recent articles, we’ve discussed how frevvo and other low-code platforms are making it easier for citizen developers who aren’t coders-by-trade to create effective, high-quality apps.

Here at frevvo, we’re constantly working on improving our product to reduce the need to write code. Our customers are organizations (companies, Universities etc.) that use frevvo for real-world business forms like Purchase Orders and Employee On-Boarding. These forms usually have dynamic behavior – in frevvo, that means business rules. One of the most common business rules is where you want to show or hide certain parts of the form (a Section or Tab or any control) depending on data that’s been entered into the form elsewhere.

Show/Hide Alien Authorization Numbers in Federal I-9

Let’s take a look at an example – an employee on-boarding workflow where the user has to fill in a Federal I-9. The Federal form asks for Eligibility Status and for one of those statuses – an alien authorized to work until a certain date – the employee has to provide additional information. In earlier versions of frevvo, you’d have to write a business rule in JavaScript. Something like:

if (CitizenStatus === ‘WorkAlien’) {
AlienNumbers.visible = true;
} else {
AlienNumbers.visible = false;
}

Seems simple enough but these JavaScript rules and their interactions with each other can quickly get very complex and difficult to understand. Dynamic behavior then becomes much harder for citizen developers to implement effectively.

Enter the Visual Rule Builder

When you create the above rule, you can use visual wizards as shown below:

rb-01
What’s the condition that causes this rule to fire?
rb-02
What action(s) should be taken when the condition is true?

rb-02b
[Optionally] What action(s) should be taken when the condition is false?
You can specify multiple conditions and a logic expression to evaluate them e.g. “A and (B or C)”. You can also specify multiple actions e.g. Show Alien Numbers AND Hide Citizen Information when the condition is true and vice versa when false. The Visual Rule Builder will generate a rule as shown below:

rb-03

If you need to edit the generated code, you can click Rule Code and make changes manually to the generated JavaScript. And, of course, the existing JavaScript-based rules continue to

um-01
Show/Hide Section

be available – some things are impossible to do using wizards e.g. connecting to an HTTP URL and parsing the result in specific ways.

When you run the form, it works as expected. Choose the appropriate option (alien authorized to work …) and the required Section shows up. For any other option, the Section in question is not visible exactly as desired. As with all frevvo forms and workflows, it’ll just work automatically on mobile devices.

Simple and easy. Now, of course, this is the first iteration of the Visual Rule Builder (it’ll be released shortly with V7.2) and it can currently generate a subset of rules. For the others, you’ll have to use the existing Rule Editor. However, like everything in frevvo, we’ll keep improving it with every version so your citizen developers will be able to do more and more with it.

JPMorgan Software Does in Seconds What Took Lawyers 360,000 Hours

legal-1.jpgI came across this article yesterday and was amazed by the numbers. JP Morgan Chase uses software to perform a routine task in seconds instead of 360,000 hours. Imagine the ROI on this automation?

“The push to automate mundane tasks and create new tools for bankers and clients — a growing part of the firm’s $9.6 billion technology budget — is a core theme as the company hosts its annual investor day on Tuesday.”

Not everyone is as big as JP Morgan Chase. Automating your routine day-to-day tasks isn’t likely to save you that much but investing in technology, especially to automate routine tasks is an absolute must in today’s world. It’s amazing how much this waste actually costs you. Automation brings huge benefits and return on investment.

If your people are wasting their time on routine stuff like moving information from Point A to Point B, your company should be investing in automation. As we’ve said many times: is it better for your employees to focus on customers or chasing down an approval for that purchase order? Should teachers and faculty focus on students or on getting signatures for that conference travel authorization?

“People always talk about this stuff as displacement. I talk about it as freeing people to work on higher-value things, which is why it’s such a terrific opportunity for the firm.”

Like JP Morgan, which spends 9% of revenue on technology (double the industry average), you can’t sit around and wait to know what the endgame looks like. The environment is simply moving too fast.

frevvo + SQL: Part 5. Create/Update records

DBConnectorPrevious articles in this series (Create dynamic pick lists initialized from SQLMaster-detail views from SQL and Handling multiple results from a Query) have focused on reading information from the database and dynamically initializing fields on your form.

But, many business problems require creating new records or updating existing records in the database. Today, we’ll take a look at these scenarios and see how you can create complex forms without programming using frevvo’s Database (DB) Connector. Fair Warning: this is a fairly technical article so we’ve only touched upon the highlights here. You can explore in detail by reading the DB Connector Tutorial in the documentation.

As before, you’ll need to install and configure the DB Connector one-time so it can connect to your SQL database. After that, the steps are very similar to the previous articles:

1. Define the SQL Queries

This time, there are multiple SQL queries.

<queryset name=”BIRT” …>
  <query name=”createOrder”>
    <retrieve>
      <statement>SELECT orderNumber as onum, customerNumber as cnum from Orders WHERE orderNumber=10100
      …
    </retrieve>

<create>

      <statement>INSERT into Orders (orderNumber,orderDate, requiredDate, status,customerNumber) VALUES ({onum}, Now(), Now(), ‘In Process’, {cnum})

      …

2. Generate an XML Schema

The first query is used to generate an XML schema and form controls bound to that schema. There will be two (onum and cnum). In this case, you’ll have to modify the XML a bit due to a current limitation in the DB Connector. See the documentation for detailed instructions.

3. Create the form

Generate the form using the above XML schema as a data source.

4. Link to the database

Connect it to the DB query defined above. We use Doc URI wizards with the only change being that we configure a Write URL using HTTP POST (create) instead of a Read URL.

That’s it. When the form is submitted, frevvo will generate an XML document with values for onum and cnum and send the XML to the DB Connector. The Connector will extract onum and cnum from the XML and execute the INSERT operation.

Insert Multiple Records

It’s easy to build upon this to satisfy far more complex business requirements. For example, in this case, you want to insert an Order but there will also be multiple Order Line Items. This means running an INSERT for the Order itself + multiple INSERTs for the line items with different data. Fortunately, with frevvo you can create forms with multiple Data Sources. Each one generates its own XML document and each one can have its own Doc URI.

dbconnector-post
A single frevvo form can process multiple documents and execute multiple SQL queries when the form is submitted.

Update Existing Records

You can equally easily update an existing record with the DB Connector. The process is almost identical. The only difference is that you will use an <update> query instead of a <create> query and the document is sent using HTTP PUT instead of POST.

<queryset name=”BIRT” …>
  <query name=”customerCreditLimit”>
  <update>

      <statement>UPDATE Customers SET creditLimit = {creditLimit} WHERE customerNumber={cnum}

      …

The rest is identical. Generate the form using an XML schema, connect the resulting document to this query and frevvo + the DB Connector take care of the rest.

Auto Create Rows

You can also setup the queries so that they will first try an update and if it fails, create a new record.

<query name=”customers” autocreate=”true”>

The autocreate feature is particularly useful when working with Repeat Controls or Tables. With these controls, your forms can work with dynamic collections, for instance: customers, cars, addresses, dependents and others. When the user loads the form, the form may be initialized with some items. If the user adds new items to the collection, updates a couple and submits the form, the items will be automatically added to the database and the existing ones will be updated if autocreate=true.

Auto Delete Rows

Auto-creation raises the obvious question. What if the user deletes a row from the repeating collection described above. If you want the DB Connector to delete the corresponding records from the database, you can simply set the autodelete property and provide a key.

<query name=”customers” autocreate=”true” autodelete=”true” deleteKey=”customerId”>

Behind the scenes, the connector compares the items in the database with what is submitted in the form. That comparison is based on a key that you define with the attribute deleteKey (required). The deleteKey value is normally the name of the primary key in the table that contains the repeat items.

Interested in learning more? The Database Connector Tutorial explains this in great detail. Register for an upcoming webinar and visit our website to view examples, watch videos, sign up for a free 30-day trial or contact us for more information.

frevvo + SQL: Part 4. Multiple Results

db-multiple-results
Multiple Rows from SQL

Everyday business activities (Customer Service, HR etc.) are simply more useful if they can access information from internal SQL databases when it’s needed. In Part 2 of this series we saw how to create dynamic pick lists initialized from SQL and Part 3 explored how to create master-detail views from SQL.

Today, we’ll take a look at queries that return multiple results. It’s another very common scenario in real applications e.g. look up order line items for a particular order. With frevvo’s Database Connector, complex forms like this can be created without programming.

As before, you’ll need to install and configure the DB Connector one-time so it can connect to your SQL database. After that, the steps are as follows:

1. Define the SQL Query

<queryset name=”BIRT” …>
  <query name=”orderDetailsByOrder”>
    <retrieve>
      <statement>SELECT p.productName as product, o.quantityOrdered as quantity, o.priceEach as price, p.productDescription as description, p.MSRP FROM OrderDetails o, Products p WHEREo.productCode=p.productCode and o.orderNumber={onum} ORDER by o.orderLineNumber
      …

 

This is a straightforward query that simply retrieves order details for a particular order number. It can be accessed via a URL: http://<server>/database/BIRT/orderDetailsByOrder?onum=10100. As before, the {onum} in curly braces is a variable whose value should be passed in the URL. Try it now in your browser. You’ll get back an XML document with order details.

Now, we need to connect this to the form. As before, we will use Live Forms’s built-in XML features to generate controls and populate them from the database.

2. Generate an XML Schema

The DB connector can generate an XML schema from any query’s <retrieve> operation. This schema can then be used to generate a Live Forms form. Try it now in your browser, save the resulting XML schema file to disk and upload it to Live Forms. See the documentation for detailed instructions. Note that we need to pass in a known order number so that the query can successfully execute.

dbconnector-multiple-items
Automatically populate multiple rows in a form Table from a SQL query

3. Create the form

We’ll use a copy of the form from the previous article. It already has a dynamic pick list which lists the customers in the format value=label (e.g. 242=Alpha Cognac). Edit the form and:

  1. Create a new data source from the Schema uploaded above in Step 2.
  2. Add controls to the form and rearrange them as desired.

4. Link to the database

Now, we connect to the DB query defined above. We use Doc URI wizards to do this. In a nutshell, this means configuring the form so that the data source is bound to the URL for the query that we saw in Step 1.

Try it now using our example form.

Interested in learning more? The Database Connector Tutorial explains this in great detail. Register for an upcoming webinar and visit our website to view examples, watch videos, sign up for a free 30-day trial or contact us for more information.

frevvo + SQL: Part 3. Master-Detail Views

db-master-detail
Master-detail from SQL

Everyday business activities (Customer Service, HR etc.) are simply more useful if they can access information from internal SQL databases when it’s needed. In Part 2 of this series we saw how to create dynamic pick lists initialized from SQL.

Today, we’ll take a look at master-detail views. It’s another very common scenario in real applications – look up details for a customer or a student or a part number. With frevvo’s Database Connector, complex forms like this can be created without programming.

As before, you’ll need to install and configure the DB Connector one-time so it can connect to your SQL database. After that, the steps are as follows:

1. Define the SQL Query

<queryset name=”BIRT” …>
  <query name=”customerByNumber”>
    <retrieve>
      <statement>SELECT * from Customers where customerNumber={cnum}
      …

This is a straightforward query that simply retrieves customer details. It can be accessed via a URL: http://<server>/database/BIRT/customerByNumber?cnum=242.

In this query, notice the {cnum} in curly braces. That’s a variable. When frevvo asks the DB connector to run this query, it will provide a value for cnum in the URL. Try it now in your browser. You’ll get back an XML document with customer details for Alpha Cognac.

Now, we need to connect this to the form. Since customer details is a complex structure (first name, last name, phone etc.) we will use Live Forms’s built-in XML features to generate controls and populate them from the database.

2. Generate an XML Schema

The DB connector can generate an XML schema from any query’s <retrieve> operation. This schema can then be used to generate a Live Forms form. Try it now in your browser. You’ll get back an XML schema. Save the resulting XML schema file to disk and upload it to Live Forms. See the documentation for detailed instructions. Note that we need to pass in a known customer number so that the query can successfully execute.

dbconnector-master-detail
Automatically populate master-detail view from SQL

3. Create the form

We’ll use a copy of the form from the previous article. It already has a dynamic pick list which lists the customers in the format value=label (e.g. 242=Alpha Cognac). Edit the form and:

  1. Create a new data source from the Schema uploaded above in Step 2.
  2. Add controls to the form and rearrange them as desired.

4. Link to the database

Now, we connect to the DB query defined above. We use Doc URI wizards to do this. In a nutshell, this means configuring the form so that the data source is bound to the URL for the query that we saw in Step 1.

Try it now using our example form.

Interested in learning more?The Database Connector Tutorial explains this in great detail. Register for an upcoming webinar and visit our website to view examples, watch videos, sign up for a free 30-day trial or contact us for more information.