Workflow Activities
Workflows consist of different Activities the determine the behavior of the Workflow. The following is a listing of each Activity available for use in Footprint.
For information about customizing Workflows in Footprint, see the Workflow guide.
AssignShipmentToOrdersActivity
This activity will assign shipments to a given order.
AssignsShipmentToOrderLinesActivity
This activity will assign shipments to a set of order lines.
CancelLicensePlatePickTaskActivity
This activity is used to cancel a license plate pick task
ChangeInventoryStatusActivity
The will change the status of a inventory type to that of a status id the user chooses and set reason code along with it.
CreateAccessorialCharge
This will create and optionally confirm an accessorial charge given its operation code identifier
CreateAndConfirmBlindReceiveTaskActivity
This function will create and/or updates the shipment lines for a shipment and create a receiving for a given shipment and create the inventory.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
WarehouseId |
In |
Int32 |
The expected warehouse |
TargetLocationId |
In |
Int32 |
|
ShipmentId |
In |
Int32 |
|
PackageId |
In |
Int32 |
|
PackageAmount |
In |
Decimal |
|
LotId |
In |
Int32 |
|
LicensePlateRequest |
In |
LicensePlateRequest |
|
CreateBlindInboundOrderActivity
This function will create a specific inbound order.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
ProjectId |
In |
Int32 |
The Project Identifier for a owner |
Order |
Out |
Order |
The created order |
CreateInboundShipmentActivity
This function will create a shipment for a given order.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
ExpectedWarehouseId |
In |
Int32 |
The expected warehouse |
OrderId |
In |
Int32 |
|
Notes |
In |
String |
|
Shipment |
Out |
Shipment |
The created Shipment |
CreateInspectionRequestActivity
This function creates the specific type of Task for Inspections. All fields are required to be filled with the exception of the notes field.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
InspectionType |
In |
InspectionTypeEnum |
The type of inspection |
LotId |
In |
Int32 |
The lot Identifier to inspect |
OperationCodeId |
In |
Int32 |
The operation Identifier to perform |
WarehouseId |
In |
Int32 |
The warehouse Identifier |
Notes |
In |
String |
Additional information |
Request |
Out |
InspectionRequest |
Created inspection request |
CreateInventoryStatusChangeRequestActivity
This function is used to change the status either a Lot, Material, License plate or Location based of the input context of InventoryType. Based on context some fields are required while others are ignored. As an example InventoryType=Lot then the Lotid is required but the others LicensePlateId, MaterialId, and LocationId are ignored and thus can be left Null. The DesiredStatusId is the value of the database id for the Inventory Statuses. Note the value 0 is always considered Active, and id = 1 is InActive. These are default in the FootPrint database. For the other value one most consult the database tables directly. The Reason Codes to add or Remove must be a list of ids that are taken from this specific ReasonCodes database table. The value in the Notes field will be applied to the task that is generated when the status is changed. The Request object outputted it the object required by Inventory Status Change Request workflow.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
InventoryType |
In |
InventoryTypeEnum |
The type of inventory to change status |
LicensePlateId |
In |
Int32 |
The license plate Identifier |
LotId |
In |
Int32 |
The lot Identifier |
MaterialId |
In |
Int32 |
The material Identifier |
LocationId |
In |
Int32 |
The location Identifier |
DesiredStatusId |
In |
Int32 |
The desired status identifier |
ReasonCodesToAdd |
In |
List<Int32> |
The reason codes to add |
ReasonCodesToRemove |
In |
List<Int32> |
The reason codes to remove |
ClearAllReasonCodes |
In |
Boolean |
Clear all reason codes |
Notes |
In |
String |
Additional information |
Request |
Out |
InventoryStatusChangeRequest |
The status change request |
CreateOutboundShipmentActivity
This activity will create a new outbound shipment given a set of input properties. It retruns the Shipment object.
CreatePutawayTaskActivity
This activity will create putaway task given
GetAccountsActivity
This activity will get account objects base of a set of input filters
GetBarcodeParsersActivity
This activity will get barcode parser objects base of a set of input filters
GetLicensePlateActivity
This function will get a list of License Plate based on the input filter criteria. The Loading of the license Plate also loads the expected content.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
LicensePlateId |
In |
Int32 |
The license plate Identifier |
StatusId |
In |
Int32 |
The license plate status Identifier |
PackagedId |
In |
Int32 |
The license plate package Identifier |
LicensePlates |
Out |
List< LicensePlate> |
List of License Plates matching the filters |
GetLocationContainingMaterialTagsActivity
This activity will a list of locations given a list on material tags that the location match with
GetLocationsActivity
This function loads a List of locations given a series of filter criteria. Important note here is that the filters sometimes contain the list of object and a list of ids for the same input variable. For example Materials and MaterialIds, then this is encounter the function take the object list as precedence over the ids, and therefore the Ids are ignored and not appended or the union to the object set. Therefore one most choose one or the other approach. Superscript has be used to denote the paired variables in this manner.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
LocationIds |
In |
List<Int32> |
The Locations Identifier |
ZoneIds |
In |
List<Int32> |
The Zone Identifier |
IsEmpty |
In |
Boolean |
True=Find location that are empty, False=Find location that are not empty, Nothing=Find both location that are empty and not empty |
Materials 1 |
In |
List<Material> |
List of Materials |
MaterialIds 1 |
In |
List<Int32> |
List of Material Identifier |
ContainAllSpecifiedMaterials |
In |
Boolean |
True=Find location containing all specified materials, False=Find location containing at least one of the specified materials |
ReplenishmentMaterials 2 |
In |
List<Material> |
List of Materials |
ReplenishmentMaterialIds 2 |
In |
List<Int32> |
List of Material Identifier |
ContainAllSpecifiedMaterialAsReplenishment |
In |
Boolean |
True=Find location containing all specified materials as replenishment, False=Find location containing at least one of the specified materials as replenishment |
TagIds 3 |
In |
List<Int32> |
List of Tag identifiers |
Tags 3 |
In |
List<Tag> |
List of Tags |
ContainAllSpecifiedTags |
In |
Boolean |
True=Find location containing all specified tags, False=Find location containing at least one of the specified tags |
Enabled |
In |
Boolean |
True=Find enabled locations, False=Find disabled locations, Nothing=no filter |
EligibleForAllocation |
In |
Boolean |
True=Find eligible locations for allocation, False=Find locations not eligible for allocation, Nothing=no filter |
PurgeAddedInventory |
In |
Boolean |
True=Find purge locations, False=Find not purge locations, Nothing=no filter |
TemperatureCategoryIds 4 |
In |
List<Int32> |
List of Temperature category Identifiers |
TemperatureCategories 4 |
In |
List< TemperatureCategory> |
List of Temperature categories |
WarehouseIds |
In |
List<Int32> |
List of warehouse Identifiers |
StatusIds |
In |
List<Int32> |
List of status Identifiers |
AllowInactiveInventory |
In |
Boolean |
True=Find locations that allows inactive inventory, False=Find locations that doesn't allow inactive inventory, Nothing=no filter |
IsManufacturingStagingLocation |
In |
Boolean |
True=Find locations that is set asmanufacturing staging location, False=Find locations that is not set as manufacturing staginglocation, Nothing=no filter |
IsManufacturingLine |
In |
Boolean |
True=Find locations that is set as manufacturing line location, False=Find locations that is not set as manufacturing line location, Nothing=no filter |
IsPrimaryPick |
In |
Boolean |
True=Find locations that is set as primary pick location, False=Find locations that is not set as primary pick location, Nothing=no filter |
Locations |
Out |
List<Location> |
List of Locations matching the filters |
GetLotsActivity
This function returns a list of lot objects based on the input filter criteria.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
LotId |
In |
Int32 |
The Lot Identifier |
LicensePlateId |
In |
Int32 |
The License Plate Identifier |
StatusId |
In |
Int32 |
The Lot status Identifier |
LookupCode |
In |
String |
The Lot lookup code |
VendorLotId |
In |
Int32 |
The vendor lot Identifier |
MaterialId |
In |
Boolean |
The material Identifier |
Lots |
Out |
List<Lot> |
List of Lots matching the filters |
GetMaterialActivity
This function returns a list of material objects based on the input filter criteria.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
Parameter |
Direction |
Variable type |
Description |
MaterialId |
In |
Int32 |
The Material Identifier |
LicensePlateId |
In |
Int32 |
The License Plate Identifier |
LotId |
In |
Int32 |
The Lot Identifier |
MaterialStatusId |
In |
Int32 |
The Material status Identifier |
MaterialGroupId |
In |
Int32 |
The Material group Identifier |
ContainAllSpecifiedTags |
In |
Boolean |
True=Find materials containing all specified tags, False=Find materials containing at least one of the specified tags |
TagIds 1 |
In |
List<Int32> |
List of Tag Identifier |
Tags 1 |
In |
List<Tag> |
List of Tags |
Materials |
Out |
List<Material> |
List of Materials matching the filters |
GetMaterialTagsForLocationActivity
Given a location this will return the list of tags applied to the location
GetMaterialTemperatureActivity
This function will load all the temperature category rules given a list of materials and a warehouse.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
MaterialIds 1 |
In |
List<Int32> |
The List of material Identifier |
Materials 1 |
In |
List<Material> |
The List of materials |
WarehouseId |
In |
Int32 |
The List of material Identifier |
Temperature |
Out |
List<TemperatureCategoryRuleLine> |
The List of temperature ordered by priority |
GetOrderLinesActivity
This activity will get a list of order line objects given a series of input filters
GetOrderActivity
This function loads a list of order objects that correspond to the list of Orderids provided as input. For example in a Inspection Task workflow, Orderids = New List(Of Int32) From {InputTask.OrderId.Value} can be used to load the order details for the inputted receiving task.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
OrderIds |
In |
List<Int32> |
The List of order Identifier |
MaxCreationDate |
In |
DateTime |
The start date of a range filter |
MinCreateDate |
In |
DateTime |
The end date of a range filter |
OrderClassTypeId |
In |
Int32 |
Get only order of a specific type |
ProjectId |
In |
Int32 |
Get order with a specific owner |
StatusId |
In |
List<Int32> |
Get order in a specific state |
Orders |
Out |
List<Order> |
List of orders |
GetPackagesActivity
This activity will get material packages objects based of a set of input filters
GetProjectsActivity
This activity will get project objects based of a set of input filters
GetReasonCodesActivity
This activity will get reason code objects based of a set of input filters
GetShipmentLineActivity
This function will load all shipment lines based on the filter criteria provided.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
ShipmentId |
In |
Int32 |
|
StatusIds |
In |
List<Int32> |
|
MaterialGroupId |
In |
Int32 |
|
ShipmentLines |
Out |
List<ShipmentLine> |
|
GetShipmentActivity
This function will load all shipment based on the filter criteria provided.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
ShipmentIds |
In |
List<Int32> |
The List of shipment Identifier |
TypeId |
In |
Int32 |
|
StatusIds |
In |
List<Int32> |
|
ActualWarehouseIds |
In |
List<Int32?> |
|
OrderId |
In |
Int32 |
The order Identifier |
Shipments |
Out |
List< Shipment> |
The List of shipment |
GetShippingContainersActivity
This activity will get shipping container objects based of a set of input filters
GetShippingItegrationMappingsActivity
This activity will get shipping iteration mapping objects base of a set of input filters
GetShippingManifestsActivity
This activity will get shipping manifest objects based of a set of input filters
GetTagsActivity
This function will return the list of Tags that are checked for a particular object like Material, Location, Lot, or License Plate given the id of the entity in the OwnerIds field.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
OwnerIds |
In |
List<Int32> |
The List of owner Identifier |
Entity |
In |
EntityTypeEnum |
The Entity type |
Tags |
Out |
List<Tags> |
List of Tags |
GetTasksActivity
This activity will get tasks objects based of a set of input filters
GetTemperaturesReadingsActivity
This activity will get temperature reading objects based of a set of input filters
GetUdfActivity
This activity will get user define field objects for a type of object like shipment or orderline and so on based of a set of input filters
GetVendorLotsActivity
This function will load all the vendor Lots that match the input criteria.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
VendorLotId |
In |
Int32 |
|
LookupCode |
In |
String |
|
LotId |
In |
Int32 |
|
MaterialId |
In |
Int32 |
The List of material Identifier |
VendorLots |
Out |
List< VendorLot> |
The List of temperature ordered by priority |
LicensePlatePickTaskManualReallocationActivity
This activity will perform a pick task cancel and then reallocate to manual
LicensePlatePickTaskSystemReallocationActivity
This activity will perform a system reallocation
LoadLocationInventoryActivity
This function will load the Location.LicensePlate field in the given object. Normally, this field in Null and the function GetLocationActivity would not load the license plates in order to be efficient. However sometimes we need to load all the inventory of a Location(s). Important note, this can be a heavy functions and delay the workflow execution due to number of plate and inventory. It is recommend to use this function with care.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
Locations |
In/Out |
List<Location> |
The locations to load |
NewLabelPrintItemActivity
This activity will create the label item to be handled in the event queue of FootPrint
NewReportPrintItemActivity
This activity will create the print item to be handled in the event queue of FootPrint
PrintActivity
This activity will handle a print item to be handled in the event queue of FootPrint
SortLocationsActivity
This function will sort the inputted location list in line based of the sort criteria provided.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
LocationtoSort |
In/Out |
List<Location> |
The Locations to sort |
Sort |
In |
LocationSortEnum {GlobalPutawaySequence, Name} |
The lot Identifier to inspect |
SortOrder |
In |
LocationSortOrderEnum {Ascending, Descending} |
The operation Identifier to perform |
SortPackagingsActivity
Given a list of packaging object this will sort the list in the order we are given
ValidateInventoryMoveActivity
This function will validate whether inventory can be moved into the given list of locations. The output is a reduced set of the input locations given. This can result in an empty set and ValidLocation should check to see if its count is 0. The Validation of inventory against the location will check:
- Temperature category is assigned to a material in the location and the location itself and the location category and location warehouse are not included in any material's list of assigned temperature categories.
- Mix Lots is false and the number of lots in the location is greater than 1.
- Mix Vendor Lots is false and the number of vendor lots in the location is greater than 1.
- Mix Materials is false and the number of materials in the location is greater than 1.
- Mix Projects is false and the number of projects in the location is greater than 1.
- Mix Owners is false and the number of owners in the location is greater than 1.
- Restrict to Replenishment Materials is true, the location has a replenishment material assigned, and the location contains a different material.
- Restrict to Replenishment Materials is true, the location has a replenishment material tag assigned, and the location contains a material not assigned to that tag.
- Length, Width, and Height are defined and the location length x width x height is less than the sum of the packaged amount times package length times width times height.
- Volume Capacity is defined and is less than the sum of the packaged amount times the package volume.
- Weight Capacity is defined and is less than the sum of the packaged amount times the package weight.
- Footprint and stack height are defined and footprint times stack height is less than the number of license plates in the location.
- Do Not Allow Inactive Inventory Statuses and the license plates that contains inactive amount greater than zero.
- Enabled is false and the inventory operation confirmed was anything other than a LP move or inventory move out of the location into another location.
- The number of locations in the current warehouse where Primary Pick Location is true is greater than the material's Primary Pick Locations Allowed Per Warehouse value, if not NULL.

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
LotToMove |
In |
Lot |
The lot to move from the license plate |
PackageToMove |
In |
Package |
The Package to move from the license plate |
PackageAmount |
In |
Decimal |
The package amount to move from the license plate |
DestinationLocations |
In |
List<Location> |
The destination location to validate |
ValidLocations |
Out |
List<Location> |
True if can move the inventory to the destination location |
ValidateLicensePlateMoveActivity
This function will validate whether the license can be moved into the given list of locations. The output is a reduced set of the input locations given. This can result in an empty set and ValidLocation should check to see if its count is 0. The Validation of license plate against the location will check the conditions outline in the ValidateInventoryMoveActivity

Parameter |
Direction |
Variable type |
Description |
---|---|---|---|
LicensePlate |
In |
LicensePlate |
The License Plate to move |
DestinationLocations |
In |
List<Location> |
The destinations location to validate |
ValidLocations |
Out |
List<Location> |
List of valid locations |
WeightConvertActivity
This activity will convert a weight to another using standard table conversions, eg. Pound to Kilos
LogMessageActivity
This activity insert a log message in to the FootPrint logging queue. It is a way to debug workflows and well as outputting metrics
IsInRangeActivity
This activity is used to determine if a decimal value falls within a given range of values
GetConnectShipPrintOutputsActivity
This activity gets information from a ConnectShip product, specifically the list of print output formats the third party product is connect to on it server.
GetConnectShipLocalPortsActivity
This activity gets information from a ConnectShip product, specifically the list of ports the third party product is connect to on it server.
GetConnectShipDocumentsActivity
This activity gets information from a ConnectShip product, specifically the document e.g manifest document the third party product is connect to on it server.
GetConnectShipDocumentFormatsActivitiy
This activity gets information from a ConnectShip product, specifically the list of document formats (type) the third party product is connect to on it server.
GetConnectShipWindowsPrintersActivity
This activity gets information from a ConnectShip product, specifically the list of windows printer the third party product is connect to on it server.
Last Updated: |
06/06/2025 |