Workflow

Overview

The Workflow function allows users to create logic/rules to automatically stage, flag, or move documents through the system, based on business needs. Workflow Setup allows users to create a sequence of queues (equivalent to batches in Microsoft Dynamics GP) for different document types to move through, allowing for different types of orders to be processed differently, and making it easy for users to manage documents, keeping track of a document’s status and taking action based on its position.

A collection of rule conditions, such as evaluation of a customer's credit or aging, item availability, or the total margin on the sales document, can be applied at each step as needed. Custom workflow rules to meet more specific business needs can also be created.

Security

In order to set up Workflow, both Workflow Setup and Workflow Rule Setup must be enabled in the Security Editor (Modules > Security Editor):

Save any changes. You must log out and log back in to SalesPad for Security changes to take effect.

Setup
Add Workflow Queues

Note: Queues created in SalesPad automatically create batches with the same name in Dynamics GP if the batch does not already exist (the new batch is created in GP once a document is placed in the queue). However, existing GP batches do not automatically display as queues in SalesPad; queues must be created in SalesPad.

  • Go to Modules > Workflow Setup
  • From the left column, select the Sales Document Type (predefined in Dynamics™ GP) that you will create queues for (you will repeat the process for each document type that will have a workflow applied)

  • Click the New Queue button under Workflow Queues. A new line will appear.
    • Best Practice: Start with a “New Order” or “Pending” queue as a temporary queue that new documents will be placed. This gives new documents a place where they can continue to be modified before moving to a queue where actions will be taken on them.
  • Enter the following information in the new fields:
    • Sequence
      • A sequence is automatically generated when you click New Queue and represents the sequence order in which the queues are displayed on the Sales Monitor (Refer to: the SalesPad Sales Monitor document).
      • It is recommended that the sequence be the same order as the actual movement-order of the queues.
      • If you have renumbered the sequences to 1, 2, 3, etc., the “Resequence Queues” button will set the numbers back to Base 10, allowing available space to adjust.
    • Queue
      • The name of the new queue.
      • Note: Use a name that is 15 characters or less; a longer queue name will truncate to 15 characters once saved.
    • Button Caption
      • On the sales document, the name of the button that releases the document to the next queue.
      • If you add “&” before a letter in the button caption, Alt+ the next letter will be a hotkey to move the document to the next queue (Example: “&Release”, Alt+R forwards the document; “Rel&ease”, Alt+E forwards the document).
      • Note: You must enter a button caption or the button will not appear on a sales document. Without a button, documents in the queue cannot be manually forwarded. Only leave this field

blank for an Auto-Forwarding queue (see the Auto-Forwarding Workflow Queues section at the end of this document) or for the final queue in a workflow sequence.

    • Next Queue(s)
      • The name of the queue to follow the new queue.
      • If you add more than one queue name here, separated by semi-colons, the user will be prompted upon release to choose a Queue to move the document into (if it passes rule evaluations).
      • Once the first queue is completed, you should enter this Queue name or names into a new line to create that Queue.
      • For the final queue in a sequence, you will not need to enter a name under Next Queue(s).
    • Plugin (Optional)
      • Will trigger built-in plugin functionality when a specific plugin is selected from the drop-down list. For more information, refer to SalesPad’s individual documents on each plugin.
      • One plugin can be triggered per queue—to trigger more than one plugin with a single manual- forward, use an Auto-Forwarding Queue (see the Auto-Forwarding Workflow Queues section at the end of this document).
    • Print
  • If checked, documents will be printed after reaching the specified queue. A print dialogue will pop up for the user at this stage in the workflow.
  • Note: To print automatically, use the Smart Printing plugin.
    • Evaluation

o If checked, any Workflow Rules will be evaluated and applied as needed when the document reaches the specified queue (See “Add Workflow Rules” below to configure Workflow Rules).

    • Force
  • Allows a previously removed Dynamics GP hold to be reapplied.
  • Dynamics GP alone does not allow placing a hold on a document that has previously had a hold applied and then removed. SalesPad’s Force option forces the reapplication of a hold on such an item, so rules can be reevaluated. If the conditions are still met, the appropriate person can reassess the document.
    • R/O

o Documents in queues with the R/O box checked will be Read Only.

  • Click “Save” to save your changes and repeat the process for additional queues.

Note: The order that functions are executed is as follows: “Print,” “Plugin,” “Evaluation,” “Force.”

For example, if a queue applies the plugin “Split Sales Document” (Refer to: Splitting a Sales Document) and the Print box is also checked, the document will print before being split. It is possible to set up workflow so a print will occur after the split without manually forwarding to another queue, by using an auto-forwarding queue (see the “Auto-Forwarding Workflow Queues” section at the end of this document).

Important Note: Do NOT leave blank lines under “Workflow Queues,” and do not create duplicate queues. Errors will occur if blank lines and/or duplicates exist.

Add Workflow Rules

In Modules > Workflow Setup,

  1. From the left column, select the “Sales Document Type” to apply the rule to
  2. Click the “New Rule” button under Workflow Rules. A new field will appear.
  3. Double-click the new field under Description. The Workflow Rule Setup screen appears:

  1. Enter the following information on the screen:
    • Description – A brief description of the new rule.
    • Evaluate When – A queue or list of queues (separated by semicolons) where documents will be evaluated for the rule. This information transfers to the “Eval When In Queue” field under Workflow Rules on the Workflow Setup main screen.
    • Rule Sequence – A sequence is automatically generated, but can be changed. This information transfers to the “Seq” field.
      • If more than one rule applies, the rule with the lowest sequence number will be used.
      • On the main screen, the “Resequence Rules” button can be used to set the numbers back to Base 10, allowing available space to adjust order.
    • Apply Hold – Allows a Dynamics GP hold to be applied; select a hold to apply from the drop-down.
      • Use the “X” button to remove a hold.
    • Move to Queue – The queue to move the document to if the rule applies; select an existing queue from the drop-down.
    • Rule Conditions – Select “New” to choose when the rule will be applied.
      • Select a “Condition ID” from the drop-down.
      • When you tab off or click the Description field, the description of the rule condition will appear.
      • Some rule conditions require “Parameters.” These will either say something in curly brackets in the description:

Example

  • Condition ID: EXPENSIVE ITEM
  • Description: “When any line on the order is at least {dollars}.”
  • In this case, enter the dollar amount in the Parameters field.

Example

  • Condition ID: LINE MARGIN%
  • Description: “When any line on the document has a Margin % between {low pct} and {high pct}”
  • In this case, enter the low percent and the high percent, separated by a comma (ex: 0.10)
  • Multiple parameters can be entered using a semi-colon (ex: -9,999,25;200,300 applies where line margin percent is between -9999 and 25 percent -or- between 200 and 300 percent)

OR

Example

  • Condition ID: CUSTOMER FIELD=
  • Description: “Build a where condition for any field on the Customer for the current Sales Document. Use the syntax c.FIELD_NAME=VALUE”
  • In this case, enter the field name and value with the instructed syntax in the Parameters field. The rule condition will apply if, on the document, the entered field has the entered value. (ex: For c.Customer_Name=”Aaron Fitz Electrical,’”the rule condition will apply if the Customer Name field says Aaron Fitz Electrical.)

For more examples, see the “Workflow Rule Examples” section of this document.

Note: If you place more than one condition in a rule, they are treated as being joined by the "AND" operator (both conditions must be matched or the rule will not be effective). To get the equivalent of an "OR" operator, you must create more than one rule.

Example Rule Setup:

  1. When all needed fields are completed, click “OK.” You will return to the Workflow Setup screen, where the new rule will appear in the “Workflow Rules” grid.
  2. To enable the newly created rule, make sure the “Enabled” box under Workflow Rules is checked. A rule with this box unchecked will not be evaluated
  3. Click “Save” to save your changes

Some fields can be edited from the main screen, or click on a Rule description hyperlink to re-open the Workflow Rule Setup screen for editing.

Important Note: Do NOT leave blank lines under Workflow Rules, and do not create duplicate rules. Errors will occur if blank lines and/or duplicates exist.

Custom Workflow Rules Conditions

Users can add custom rule conditions to their workflow to further fit their needs. There are two components that must be added for every custom rule added to the system. The first is a condition added to the "spcpEvalWfRuleCondition" SQL stored procedure and the second is an entry in the "spWorkflowCondition" table.

To setup:

  1. Create a condition to add to the “IF” statement in the “spcpEvalWfRuleCondition” procedure. This will essentially be an additional condition that will set the @conditionWasMatched parameter.

Example

end else if (@wfConditionID = 'ZERO QUANTITY LINE') begin

if ( (select count(*) from SOP10200 as sd (nolock) where SOPNUMBE = @sopnumbe and SOPTYPE=@soptype and sd.QUANTITY<=0) > 0) begin

set @conditionWasMatched=1 end

The above condition will set the “@conditionWasMatched” parameter if there is a line on the order with 0 or less quantity.

  1. Once the condition is created, insert it into the “spcpEvalWfRuleCondition” procedure.

After the new condition is applied to the procedure, add a corresponding record to the “spWorkflowCondition” table. This entry will contain the name of the new condition, description, parameter type (string, int…), and sample parameters.

Example

select 'ZERO QUANTITY LINE', 'IF ANY LINE HAS A QUANTITY OF ZERO OR LESS THEN RULE EVALUATES TRUE', 'NONE', null

After inserting this line, you should see the rule condition in the drop-down under Condition ID on the Workflow Rule Setup screen:

Using Workflow

To use the Workflow you have set up:

  1. Create a new sales document (of a type that Workflow has been set up for).
  2. Save the document when it is completed.
  3. To move the document to the next queue, click the button associated with the workflow in the upper right corner of the Order screen (Example: “Next”):

Note: Manually changing the queue from the Additional Properties section on a sales document does not trigger workflow actions. (See the “Document Transfer” section of the document “Editable/Read-Only Queues.”)

  1. A window will appear, confirming that you want to move the document. Click “Yes.”
  2. Another screen will appear, stating the queue the document will be moved to, and, if a workflow rule applies, the action being taken.

  1. Click “OK.” The sales document will close and move to the next queue.

Note: A sales document’s current queue is always visible under “Additional Properties” in the Batch/Q field:

Workflow can also be used with Sales Batch Processing. Refer to SalesPad’s Sales Batch Processing or Sales Batch Line Processing documentation for more information.

Note: When you transfer a document to an invoice in Sales Batch Processing, the workflow will skip the first step automatically, allowing it to auto-run a rule. If a document is transferred using the “Ship” button on a single document, it will go to the first expected batch/queue.

Workflow Rule Examples
Rule for User Defined Fields (UDF)s

Use this SQL query to get a list of fields available on your setup. The parameters should use the field name, not the display name.

select Field_Name, Label, Sql_Data_Type from spUserField

Example: Create Two Rules Evaluating a User Defined Field for Printing or Emailing an Invoice

  1. Create a True/False (check box) user field (field name “uf_EmailInvoice” for this example) on both the Customer Business Object and the Sales Document Business Object, to indicate whether the customer’s invoices should be emailed to them rather than printed.

Note: Refer to SalesPad’s User Defined Fields document for information on creating user defined fields.

On the Customer Card and sales documents, the user defined field will look like this:

When the box is checked on the Customer Card, the check will copy to the matching user field on all of the customer’s future sales documents.

  1. Then create two workflow rules on the Invoice queue (or other existing queue where invoices or other documents that should be printed/emailed are sent) – one rule that will send documents with the Email Invoice box checked to an Email queue, and one rule that will send documents with the Email Invoice box unchecked to a Print queue, as shown below:

Email Rule

Print Rule

When the document is moved to, or saved to, the “Invoice” queue, the workflow rule will evaluate the “uf_EmailInvoice” sales document user defined field, and if “True” (checked) will move the document to the EMAIL queue to be emailed, and if “False” (unchecked), will move the document to the “Print” queue to be printed.

  1. Users overseeing those queues can either print or email the documents manually, or these queues can be set up to print/email automatically with Smart Printing, as configured below:

With this Smart Printing setup, invoices in the “Print” queue will automatically be printed to the specified printer. Invoices in the “Email” queue will automatically be emailed to the email specified on the customer’s shipping address. For more information on setting up Smart Printing, refer to SalesPad’s Smart Printing document.

Rule for Document Fields

Available Sales Document Fields:

Sales_Doc_Type

Sales_Person_ID

USRTAB09

Discount

ReadOnly

Sales_Doc_ID

Payment_Terms

USERDEF1

On_Account

Message

Actual_Ship_Date

Comments

USRDEF03

Shipping_Method

USRDAT01

Source

User_Def_Date1

USRDEF05

Warehouse_Code

USRTAB01

Customer_Num

User_Def_List1

Sales_Doc_Num

Sales_Territory

USRTAB03

Bill_To_Address_Code

User_Def_List3

Doc_Date

Master_Num

USERDEF2

Ship_To_Name

User_Def_2

Fulfillment_Date

Notes

USRDEF04

Address_Line_1

User_Def_4

Sales_Batch

User_Def_Date2

 

Address_Line_3

Prev_Sales_Doc_Type

Customer_Name

User_Def_List2

 

State

Quote_Num

Ship_To_Address_Code

User_Def_1

 

Country

Currency_ID

Contact_Person

User_Def_3

 

Phone_2

Packingslip_Num

Address_Line_2

User_Def_5

 

Fax

Ship_Complete

City

Prev_Sales_Doc_Num

 

Customer_PO_Num

Currency_Dec

Zip

Invoice_Num

 

Req_Ship_Date

Created_By

Phone_1

Pickticket_Num

 

Freight

EnteredBatch

Phone_3

Blind_Ship

 

Misc_Charge

Alert

Price_Level

Auto_Calc_Freight

 

Total

Forwardable

Status

Created_On

 

Deposits

Comment_ID

Subtotal

Email

 

Tax_Schedule

USRDAT02

Tax

BatchHours

 
Rule for Customer Field

Available Customer Fields:

Customer_Num

Comment_1

Year_Avg_Days

Customer_Name

Comment_2

Total_Amt_NSF_Checks_YTD

Customer_Class

IntegrationSource

Num_NSF_Checks_YTD

Corporate_Customer_Num

Inactive

Tax_Schedule

Short_Name

On_Hold

Ship_Complete

Statement_Name

Customer_Note

Email_To

Primary_Addr_Code

Currency_ID

Email_CC

Primary_Bill_To_Addr_Code

Currency_Dec

Email_BCC

Primary_Ship_To_Addr_Code

Last_Aged

Message

Statement_To_Addr_Code

Balance

 

Sales_Person_ID

Unapplied_Amount

 

Sales_Territory

Customer_Credit_Limit

 

Payment_Terms

Last_Pay_Date

 

Shipping_Method

Last_Pay_Amt

 

Price_Level

First_Invoice_Date

 

User_Def_1

Last_Invoice_Date

 

User_Def_2

Last_Invoice_Amt

 

Tax_Exempt_1

Last_Stmt_Date

 

Tax_Exempt_2

Last_Stmt_Amt

 

Tax_Registration_Num

Life_Avg_Days

 
Rule for Item Field

Available Field Items

ABC_Code

Item_Type

USCATVLS_4

Allow_Backorders

List_Price

USCATVLS_5

Alternate_Item1

Location

USCATVLS_6

Alternate_Item2

Lot_Type

Valuation_Method

Country_Origin

Modified_date

Warranty_Days

Created_Date

Note

 

Current_Cost

Note_Index

 

Item_Class_Code

Price_Group

 

Item_Code

Price_Level

 

Item_Curr_Dec

Price_Method

 

Item_Description

Purchase_item_Tax_Schedu

 

Item_Generic_Description

Purchase_Tax_Option

 

Item_Number

Selling_U_of_M

 

Item_Planning_Type

Standard_Cost

 

Item_Qty_Dec

Tax_Commodity_Code

 

Item_Shipping_Weight

UOfM_Schedule

 

Item_Short_Name

USCATVLS_1

 

Item_Tax_Schedule_ID

USCATVLS_2

 

Item_Tracking_Option

USCATVLS_3

 
Autoforwarding Workflow Queues
Overview

Note: Auto-forwarding workflow queues are considered advanced functionality.

Auto-forwarding workflow queues can be added as a step in a workflow, an additional stopping point for documents that can be used to check additional workflow rules or open more process plugins without another manual-forwarding step (otherwise, only one of each of these could be applied).

Setup

To set up an auto-forwarding queue, rename an existing queue, or set up a new queue, named to include a + at the end. Examples include “Print+” and “Release+.”

Example Usage

The most common auto-forwarding scenario involves inserting an auto-forwarding queue between two regular queues. The “Print+” example is frequently used to invoke the Print dialog as a document makes its way through workflow. In the image below, the “Print+” queue is between the “Pending” and “Warehouse” queues:

As documents are released from the “Pending” queue, they are first evaluated based on applicable rules. If none of the rules apply, that would route the documents to queues such as “Backorder” or “Mgmt Review,” the documents will be forwarded to the “Print+” queue to be printed. Once printed, the documents will move automatically to “Warehouse” without requiring user intervention. If rules block the documents from moving further in the workflow, they will not be printed and will move to the designated queues.

Important Note: If the user cancels out of the print dialog, this also cancels the auto-forward process, so the document will remain in the “Print+” queue. The easiest solution is to add a button caption for each auto forwarding queue which will allow users to forward the document even if the print is canceled.

Another function of auto-forwarding queues is to use a series of auto-forwarding queues to launch multiple release plugins in sequence, such as Sales Fulfillment, Attach Sales Line to PO, and Document Release. The series of auto-forwarding queues could be used in conjunction with rules that apply only to certain queues to create branching workflow logic without burdening the user with manual steps.


Back to Setup

Have a question or request?

Leave Feedback