Skip to main content

Desktop: Workflow - Knowledgebase / SalesPad / Sales - Cavallo Technical Support

Desktop: Workflow

Authors list
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.

Helpful Unhelpful