Server Access Programmer's Guide:
Using Approval Processes

What Is an Approval Process

An approval process is a kind of eRoom database that prescribes a workflow consisting of steps that must occur in a given order. Steps are items that can only exist in an approval process's container. All entries in an approval process must belong to one and only one step. When viewed in the UI, steps look just like any other database. The difference is that a step is considered a subset of the whole approval process. Entries move through the steps of the approval process to reflect its movement through different stages of a project. Examples of an approval process database can be found in the eRoom samples. The "Manufacturing: Demand Collaboration" eRoom has an approval process in every row of its Demand Supply Collaboration database. The "Issues Tracker" database in the "Manufacturing: Supplier Management" eRoom is also an approval process.

By default, newly-created approval processes use eRoom's automatic but simple routing logic. Approval process databases have an approval column that is specially designated as the step approval column. The value in the step approval column dictates whether an entry moves to the next step or not. When an entry's step approval column has been marked approved, eRoom automatically moves the entry to the next step in the approval process. Approvers in the subsequent step have the ability to either approve the entry, thus moving it along to the next step, or to reject an entry, which clears the entry's approval field and moves the entry back to the previous step. In this way, an entry can move back and forth through an approval process. The order in which the steps appear in the approval process is the order in which an entry moves through the steps.

Approval Processes and Custom Routing

You can create approval processes that use custom routing rather than eRoom’s automatic routing. Custom routing enables you to create routing schemes that are more complicated than eRoom’s. Custom routing uses SAAPI's Synchronous Events functionality to invoke a COM DLL that you have written, which is referred to as a custom processor. The custom processor must be registered to handle the "Row Changed After" event. To apply this custom processor to an approval process, set the SynchronousEventHandlerID property on IERUDatabase to be the progID of the custom processor. At this point, every time a row in that approval process is modified, your custom processor will be called. Your custom processor can then move rows to any step, based on changes in any of the row's fields.

Approval Processes and Manual Routing

Manual routing is an option that is available with either default or custom routing. Manual routing allows users to cut and paste rows between steps, thus bypassing the approval process logic. This can be useful in a specific situation if an entry needs to go forward or backward more than one step.

Creating an Approval Process

When creating an approval process database through SAAPI, you must do the following:

  • Create a database of type approval process, by calling CreateDatabasePage.

  • Create the steps of the approval process, by calling CreateProcessStep.

  • Create the columns of the approval process, by calling CreateColumn.

  • Designate a step approval column, by calling SetProcessStepApprovalColumn. (Required only if you want to use default routing.)

  • Write a custom processor and register it with the eRoom Server. Register the custom processor with the approval process by setting the SynchronousEventHandlerID property. (Required for custom routing only.)

It is the eRoom convention to place the PhaseID column of an approval process database in the last column position. When creating approval processes through SAAPI, remember to put the PhaseID column last so that it looks consistent with approval processes created through the UI.

Process Properties and Step Properties

The columns of an approval process are defined at the time that the approval process is created. Every step of the approval process displays the schema that was defined for the approval process. In general, steps inherit their database and column properties from the approval process. However, certain properties can be overridden in a step. All other properties can only be modified at the approval process level, and when they are modified, the change affects all of the steps. The properties that can be overridden in the steps are:

  • access control

  • all options for approval fields

  • all options for choice list fields

  • all options for members fields

  • color scheme

  • display options for the summary page

  • icon

  • welcome and instruction messages