SmartK2 Rapid Development

Weeks Instead of Months – Days Instead of Weeks

Your sponsors adopted K2 because business users want Rapid Application Development. Now that you have K2, does your team deliver on that promise? Would you like to deliver applications in weeks instead of months, or even days instead of weeks? Read on.

A Better Pattern for K2 Applications

K2 Five BPA applications consist of SmartForms and workflow processes. Typically, a form starts a workflow process and task forms allow humans to interact with the workflow at the steps where human input is needed. You can think of forms and workflow as separate applications that are integrated so that together they operate as one solution. This article compares two means of configuring SmartForms Integration.

  • Integration configured in the workflow designer


  • Integration configured at the SmartObject layer

Information about configuring forms integration in the workflow designer is abundant online, while little is written about coupling workflow and SmartForms at the SmartObject layer. This article describes how you can benefit by using SmartForms that interact with workflow using SmartObjects, and why you may want to think twice about hard coding SmartForms integration in the K2 workflow designer.

Tight Coupling Vs Loose Coupling

  • Tight coupling describes a system in which components are not only linked together but are dependent upon each other.
  • Loose coupling describes a system in which coupled components are not dependent upon each other.

Integration configured in the workflow designer results in tight coupling between workflow and forms, because the workflow and forms for an application have cross dependencies in multiple places. One cannot operate or even be deployed without the other. This matters a lot on all but the most trivial projects for many reasons.

Impacts of tight coupling include:

  • Development of the workflow process cannot be started until the forms are completed. This has the effect of making projects take longer.
  • Workflow task configuration is more complex and time consuming since there are more steps. Care must be taken in the workflow designer to avoid introducing unwanted changes to rules in SmartForms.
  • Forms integration hard coded in the workflow definition forces the use of resource wasting form States. Defining States in a SmartForm is rarely a good idea, because states drastically increase the SmartForm payload, robbing performance and adding unneeded complexity to SmartForm rules.
  • The workflow process cannot be deployed without forms, and forms cannot deployed without the workflow process. A deployment issue with workflow can prevent developers from working on forms, and vice-versa.
  • Workflows cannot be tested without the forms and once integrated, forms cannot be tested without the workflow.
  • Tight coupling defeats re-usability of SmartForms, because once tight coupling is introduced, a form is bound to its workflow and cannot be used with another workflow.
  • It is not practical to copy (Save As) a SmartForm that is configured for SmartForm Integration for use with a different workflow because the hard-coded form States would not apply to a different workflow.
  • SmartForms integration configured in the workflow designer cannot be undone. There is no option to change your mind and use SmartObject layer integration instead. Changing your mind means starting over.

The Good News

Building solutions with SmartObject layer forms Integration is far easier and faster to implement than forms integration that is hard coded in the workflow designer.

SmartObject layer integration results in loose coupling between workflow and forms. This means that the workflow and forms are not dependent on each other. They can operate independently or together. This makes project planning, development, testing, and deployment easier and much, much faster. Consider:

  • Workflow and SmartForms can be developed in parallel. This greatly accelerates completion of projects.
  • Workflows can be tested without SmartForms and SmartForms can be tested without Workflows.
  • Workflows can be deployed without SmartForms and SmartForms can be deployed without Workflows.
  • SmartObject layer integration can be undone if you so desire.
  • The same form can be used with more than one workflow.
  • A workflow can be started using different forms.
  • Total time to build, deploy, test, and debug an application is a fraction of the time taken when tight coupling is used.
  • SmartForms used with SmartObject layer integration can easily be copied (Save As) and reused in other workflow projects.
  • Workflow process definitions that do not use tight coupling can be copied, modified, and re-used.
  • Templates can be used as the starting point for application development, saving time while encouraging the use of standard patterns.

Just How Easy is SmartObject Layer Integration?

You need some SmartObjects that are capable of interacting with the workflow. The SmartK2 Service Broker from Bytezoom provides the SmartObjects that you need.

In the K2 Workflow designer, you completely eliminate tampering with SmartForm rules. Just specify the task form URL and you are done!

On the SmartForm side, there are only three form rules to configure.

  1. Start the workflow

  1. Open the Worklist item

  1. Action the Task

Along with the SmartK2 Service Broker and templates, Bytezoom provides online or classroom learning or one-on-one mentoring that gets K2 developers on the fast track to project completion with these skills:

  • SOLID solution design
  • FAST application development
  • ACCURATE project estimation
  • SKILLED use of K2 design tools

Now your team can deliver on the K2 Rapid Application Development promise!

Now you can finish your projects in weeks instead of months, or even days instead of weeks. We call this “Getting your K2 On.” Its so easy. Just:

  1. Download the Free Trial Version of SmartK2 Service Broker
  2. Download the Free Example Solution
  3. Need help? Contact Bytezoom

Get your K2 On!!! Use 

“Digital Process Automation: Done. Right. Faster


The founder of Bytezoom would love to line up a quick call to answer your questions in person and discuss what it takes to develop your K2 applications that are Done. Right. Faster!  Please use this link to his personal Calendar so that you can schedule a personal conference call.


  1. For the SmartK2 Workflow SmartObject, what’s the syntax for the ProcessVariablesJson parameter? I’m trying to start a workflow, and it starts, but doesn’t receive the json-formatted values

    • For a process having these process variables
      For Each Result
      For Each Index

      the JSON syntax would be:
      [{“Name”:”RequestId”,”Value”:10310},{“Name”:”For Each Result”,”Value”:””},{“Name”:”For Each Index”,”Value”:0},{“Name”:”For Each Result 1″,”Value”:””},{“Name”:”For Each Index 1″,”Value”:0}]

      You don’t need to set all of the process variables. For example if you only wanted to set RequestId, the syntax would be: [{“Name”:”RequestId”,”Value”:10310}]

      The benefit to using a JSON object instead of named process variables is that the same SmartObject method, SmartK2Workflow.Start can be used to start any process. This makes it easy develop reusable SmartForms and Views, and support using form templates that can be used with any workflow process.

Leave a Reply

Your email address will not be published.