[1]janice.paganiniTatiana, because of the various issues cited, I would like to see this topic again, if possible.2023/08/3117:46:16-04:00Workflow-Identifying Fields of the Second Level: General Information

[2]janice.paganini1. Here, too, we need to add a sentence after the first sentence clarifying what we mean by workflow identifiers *of the second level*. (We can phrase it slightly differently here than in the mapref topic, but it's important in both places: There to set the stage for the chapter, and here because the text that follows all assumes that this has been explained already, which is not the case.) 2. It is problematic that the title refers to workflow-identifying fields of the second level, while the text refers to "workflow identifiers" instead. It would be okay if we at least equated them in this paragraph: "workflow identifiers." This is why I made the change that I did.dwf_f5k_syb2023/08/3115:17:12-04:00Tatiana.DavydovaTBD2dwf_f5k_syb22023/09/0814:03:57+03:00

This topic provides information about workflow identifiers (that is, workflow-identifying fields, which are fields whose values determine the workflow to be used) of the second level. You will also learn how to create different workflows that use these identifiers.

Learning Objectives

In this chapter, you will learn how to create separate workflows for various workflow identifiers of the second level.

Applicable Scenarios

You use workflow identifiers of the second level when you have multiple types of entities on a form, and you need to create separate workflows for each of these entity types.

Example of Workflow Identifiers of the Second Level

In MYOB Acumatica, the workflows for the Sales Orders (SO30100) form are based on the predefined automation behavior, which can be one of the following:

  • Sales Order
  • Transfer Order
  • Invoice
  • Quote
  • Credit Memo
  • RMA Order
  • Blanket Order
  • Mixed Order
Tip: You cannot create custom automation behaviors.

[3]janice.paganiniI know I have made this point before, but it is problematic that we did not define what the second-level identifiers are, and we are just getting around to illustrating it--but even here, we are doing so only through an example. This would be sufficient if we had already explained what workflow identifiers of the second level are, but we had not.lfy_h5k_syb2023/08/3117:16:05-04:00Tatiana.DavydovaTBD4lfy_h5k_syb42023/09/0814:04:45+03:00On the Order Types (SO201000) form, you can create multiple order types that are based on the same automation behavior. Without the use of workflow identifiers of the second level, on the Workflows page, you cannot create separate workflows for these custom order types, because for a particular order type, the system uses the workflow of the automation behavior this order type is based on.

If for a form, a developer has specified a type identifier for a workflow in the code (by using Workflow API), then you can select a workflow-identifying field of the second level for this form. [4]janice.paganiniIs this the sort of phrasing we might use in our definition of second-level identifiers?2023/08/3117:18:49-04:00As a result, you can create a workflow for each pair of the type identifier value and the subtype identifier value. This functionality provides greater flexibility for the creation of workflows.

Forms with Subtype Identifiers

In an out-of-the-box system, you can create workflows that use the subtype identifier for the following forms:

  • Sales Orders (SO30100)
  • Purchase Orders ([5]Tatiana.DavydovaPurchase order types: Normal, Standard, Blanket, Drop-Ship, Project Drop-Ship2023/08/1420:12:30+03:00PO301000)
  • Purchase Receipts ([6]Tatiana.DavydovaTypes: Receipt, Return, Transfer Receipt2023/08/1420:14:21+03:00PO302000)
  • Landed Costs ([7]Tatiana.DavydovaTypes: Landed Cost only2023/08/1420:14:39+03:00PO303000)
  • Subcontracts (SC301000)
  • Service Orders ([8]Tatiana.DavydovaService order types: Consulting Services Staff development Installation and maintenance of target equipment Installation Services Maintenance, repair and operations Quotes Routes Route services Customer Training Services2023/08/1420:21:28+03:00FS300100)
  • Appointments ([9]Tatiana.DavydovaThe same order types as for service orders (except for Quotes--not used).2023/08/1420:23:47+03:00FS300200)

On other forms of MYOB Acumatica, you can implement multiple workflows first by using the type identifier; if needed, you can use the subtype identifier.

Creation of Separate Workflows for Identifiers of the Second Level

On the Workflows page of the Customization Project Editor, you can define workflow selection to be based on the value of a type identifier and then further based on the value of the subtype identifier. A workflow defined for the subtype identifier value inherits its configuration from the workflow defined for the value of the type identifier. The following diagram shows the types and subtypes of workflows based on their workflow-identifier field values.

Figure 1. Types and subtypes of workflows


Suppose that on the Order Types (SO201000) form, you have created two custom order types (T1 and T2) that are based on the Sales Order automation behavior. For each form that has a workflow-identifying field specified in the predefined system workflow, as is the case with the Sales Orders (SO303000) form, the system displays a workflow-identifying field of the second level on the Workflows page (the Order Type field in the following screenshot).

Figure 2. Selection of the workflow's subtype identifier


Tip: For the Sales Orders form, the value of the subtype identifier is specified in the code[10]janice.paganiniBut there's not really any context for this because we never introduced the page. This topic should ideally be reworked to have an earlier section that introduces this page within the context of introducing the ability to set up a workflow by using a second-level identifier. (Perhaps it doesn't need to be its own section; maybe you can work it into an existing section. All I know is that right now, due to the absence of mentioning the page in most of the topic, this is all very hard to comprehend unless you already are familiar with the functionality, but I don't think we should assume that the reader is. I would love to see this again once those mentions are implemented.wbw_p5k_syb2023/08/3117:41:28-04:00Tatiana.DavydovaTBD12wbw_p5k_syb122023/09/0814:07:04+03:00, and the Subtype Identifier box of the Workflows page is read-only. For other forms, this box is available for editing.

Then in the Add Workflow dialog box, which opens when you click the Add Workflow button on the page toolbar of the Workflows page, you can select one of the created order types (T1 or T2) as a workflow subtype (see the following screenshot).

Figure 3. Selection of the workflow subtype


Important: Only one workflow per order type is supported.

You then can define both created workflows as active by selecting the Active check box (see the following screenshot). Note that the base workflow (SO Workflow in this case) remains active as well. The system will use this workflow for sales orders that are based on other order types and that have the Sales Order automation behavior—that is, sales orders of the eCommerce Order, [11]Tatiana.DavydovaSO automation behavior but SA order type2023/08/1418:29:11+03:00Sales Order with Allocation, and Sales Order types.

Figure 4. Two separate workflows for different order types


After you create a separate workflow for each custom order type, you can perform the usual operations with these workflows by using the Workflow (Tree View) or Workflow (Diagram View) pages: add, remove, or modify states, actions, fields, and transitions.

If you do not need to create separate workflows for each of the order types, you can keep the workflow with the Default subtype active. The system will use this workflow for sales orders that meet the following criteria:

  • The behavior used for the sales orders is the same as the workflow type (for example, the behavior is SO and the workflow type is SO).
  • Separate workflows have not been defined with this type and with a subtype that is the same as the order type.