Modeling Steps (Protocols)
Goals
Know what Standard and Sample Protocols are and when to use them.
Know how to create new Protocols using:
Protocol details
Custom fields
Key Terms
Term | Definition |
---|---|
Protocol (Step) | Defines the data to collect while processing the Batch. |
Standard Protocol | Associates process data with the Batch. |
Sample Protocol | Creates a child Entity from the Batch (parent). |
What are Protocols?
Protocols (Steps) define the data to collect while processing the Batch. Contiguous fields assigned to the same group represent a Sub-Step.

If the grouping includes two (2) colons followed by text, the fields will be placed in a Sub-Step Table named using the text after the colons.

Note
Discontiguous fields assigned to the same group create separate Sub-Steps.
Fields not assigned to a group create their own Sub-Step.
How to create new Protocols
Go to: L7|Master → Protocols → + New Protocol

Protocol Details

Use in manufacturing – should be set to “Yes” for Protocols that will be used in L7 MES.
Protocol Type – standard or sample.
Pipeline Protocols cannot be used in L7 MES.
Pipelines are executed from Pipeline button fields.
Duration (hours) – the time it takes to complete the Protocol.
This detail is used in L7 Scheduling and is required in order to schedule a batch.
Version – a new version of the Protocol is created each time it is saved.
Pin - locks the Protocol into a previously saved version for explicit use in Workflows.
Group Samples – N/A to L7 MES, only one (1) Batch per Batch Record.
Instructions – plain text or formatted using the rich text editor in the expanded instructions window.
Protocol instructions appear at the beginning of the Step in the Batch Record.
To insert an image, first upload the image file to L7 Data app (gif, jpg, png, or tiff), then return to the rich text editor and select it from the image selector.
See Adding images to instructions to learn more.
OnRender – custom behavior triggered when the Step renders in the Batch Record.
Note
onRender is covered in more detail here and in Client-Side Development.
To register, please visit L7 University.
Fields – Step data collected while processing the Batch.
Flex View Designer and Storage Policy – N/A to L7 MES.
Actions – custom behavior triggered when a condition is satisfied while processing the Step.
Protocol Actions are covered in more detail here.
Standard Protocols
Standard Protocols have the default Complete field displayed as the last field in the Protocol. All fields before Complete are custom fields created to collect process-specific data.

Sample Protocols
Sample Protocols have two (2) key components:

The Parent-Child Relationship must be defined.
The Entity Type must be selected and represents the child Entity that will be created.
Note
While there are three (3) options, only 1-to-1 is supported in L7 MES.
In a 1-to-1 Sample Protocol, each parent creates one (1) child Entity.
In L7 MES, Sample Protocols are used to create an Item from the Batch.
The default fields Parent ID and Note appear at the beginning of every Sample Protocol. L7|ESP sets the Parent ID, User-provided Notes become the description of the newly created Item.

Note
The Sample ID Sequence field defines the ID Sequence that will be assigned to the Item being created. Once an Item Type has been selected, this field will default to the ID Sequence assigned to that Item Type in L7|Master.
When an Item is created, the following default fields will appear ahead of the custom fields attributed to the Item:

Initial Quantity
Lot ID
Serial ID
Status
Vendor
Expiration
Custom Fields
After you enter a Display Name and choose the Protocol Type, you can add custom fields to the Protocol. Over a dozen different field types are available in L7|ESP.

Note
Link and Container location are not supported in L7 MES.
In the Field Details panel, the basic details are generally the same for all field types. They allow you to:

Name the field.
Note
Display Name vs. ID: Display Name is the name that appears in the user interface (UI). ID is a fixed value used to reference the field. This differentiation ensures stability when changing the name of a custom resource field.
L7|ESP will set the Display Name as the ID if the user does not define the ID themselves.
Define the field type.
Assign a default value (static value or Python expression).
Group the fields into Sub-Steps.
Add field-level instructions (plain text or formatted using the rich text editor).
See Adding images to instructions to learn more.
Hide the field if:
It should be conditionally visible.
Make the field read-only if:
It has a computed value and should not be editable (data integrity).
Make the field required if:
A value must be recorded, either as part of the business process or data dependencies in L7|ESP.
Note
The shared toggle is N/A to L7 MES and reportable fields are used in L7|Intelligence.
Exceptions to basic field details:
Approval fields cannot be hidden or made read-only, and are required by default.
Instruction fields cannot have a default value because they do not have any data associated with them.
Custom Editor – not supported in L7 MES.
Custom Renderer – not supported in L7 MES.
Event Handler onChange – custom behavior triggered when a field value changes. This includes entering a value for the first time.
Note
onChange is covered in more detail here and in Client-Side Development.
To register, please visit L7 University.
Field Parameters
Field parameters are dependent on the field type, see the table below for more information:
Field Type | Parameters |
---|---|
Free-form text entry – enter any character (both text and numbers allowed). | Rich Text is not supported in L7 MES. ![]() |
Numbers only allowed – enter any number. | Spec Type - associated with the Specification tab in L7 MES, see Specifications to learn more Unit of Measure - enter the units of measurement (i.e., grams, cells, minutes, %) Format - percentages should be recorded as decimal values. L7|ESP will automatically convert 0.85 to 85%. Precision Type - optionally select decimal places or significant figures; along with the desired Digits. NOTE: Precision only impacts the displayed value. The underlying value is never changed in the database, which means by default calculations referencing this field will use the database value, not the displayed value. Min and Max Limit - set the acceptable range of values Type - soft and hard limits both trigger quality review and are flagged as out of range. Soft limits do NOT prevent users from going forward in the process. Hard limits DO prevent users from going forward and blocks data changes before and after the field when a Hard Limit Signature flow is applied to the Recipe (Workflow Chain). Hard limit violations will require a comment, signature and password entry before users can go forward in the process and automatically adds a deviation comment to the batch record. Notify Group - select a Workgroup to notify immediately when an out of range value is entered (notified via bell icon and toast notification) ![]() |
Picklist – select one (1) or more static or dynamic options. | ![]() |
Date/Time – select a date and/or time in predefined or custom formats. | ![]() |
Checkbox – boolean true or false. | N/A |
Attachment – attach one (1) or more files with predefined or custom extensions. | ![]() |
Barcode – capture data as a barcode (1D, mini data matrix, or QR). | Entity barcode assigns the value as the Entity’s barcode. * This is the Entity being processed when the barcode is collected. ![]() |
Approval – enter an electronic signature. | Only Signature Flows should be used in L7 MES for Step and Batch Sign Off. ![]() |
Pipeline Button – execute a Pipeline (computational task). * Automate manual tasks, data egress and ingress. | Select a Pipeline and define its variables. Pipeline – collection of Tasks (shell scripts) run on compute resources (cluster, cloud, or directly in L7|ESP).
![]() |
Resource link – link to another L7|ESP resource. | Link Type - defines what type of L7|ESP resource the field will link to
![]() |
Inventory item use – track Items and their consumption. | Record used quantity – allows users to record the quantity of the item being used. If deselected, the field will convert to a multi-select picklist, and only the Item name will be recorded in the EBR. Include expired items and Valid item statues - act as default filters applied when users interact with this field in the EBR Item tags - adds a tag to the inventory item being used How to display items - specifies how the item options will be displayed in the Item Usage modal (i.e. picklist of items showing their name or serial #)
Only use items within containers – restrict available inventory to Items stored in a location (e.g., kit); use the picklist to select which kit field to reference ![]() |
Instructions – field-level instructions that do not require data collection. | Parameters are N/A See Adding Images to Instructions for more information. |
Sample Point – create new Samples during production. | See Sample Plans to learn more. ![]() |
Equipment Use – track Equipment usage | Define the type of Equipment being used and filter the available Equipment options by their status. Equipment Type - the type of Equipment being used Show Maintenance Records - if the selected Equipment Type has a Maintenance Schedule(s), then this feature will appear. Allows you to control which, if any, Maintenance Schedules appear under the maintenance records when users select a piece of Equipment Valid Equipment Statuses - filter to only display Equipment with the selected statuses Location fields - if the selected Equipment Type can contain assets, then this feature will appear. Allows you to attribute data to each location in the Equipment See Modeling Equipment Types to learn more. ![]() |
Vector - create a table with a dynamic number or rows. | Add Time Recording Column - if selected, a date/time field named "Time" will be added to the table as the first column ("Time" display name is editable). The Datetime format will follow the format set in the esp configuration file, under the datetime_formats code block. Rows - set the min, max, and default number of rows. Manufacturing operators will be able to add/remove rows within the bounds of the min/max range. ![]() To add columns to the table, expend the Vector field displayed in the main viewing area, then click + Add Vector Columns. Only free-form text entry and numeric data types are supported at this time. Numeric Vector fields can be configured as specifications. ![]() NoteVector fields are only supported in L7 MES at this time and require "Use in manufacturing" to be set to "Yes". onChange event handlers are disabled for Vector fields. |