- Resource Central
- Material Properties
Material Properties
When performing transactions on materials (e.g. Pick, Put) Power Pick Global (PPG) can handle materials differently based on their Material Property.
Materials Properties offers PPG a way to use controls and to record attributes for materials as they are stored in PPG or retrieved from PPG.
Some examples (depending on the license options):
- FIFO (First-in, first-out)
- Permanent Location setting
- Dates (Expiry Date, Production Date, Release Date)
- Lot & Qualification Tracking
- Serial Number Tracking
- Bar code validations
- Count cycles
- Storage Zones (for Puts)
The property specifies which attributes (Lot, Qualification, Expiry Date, Serial Number, etc.) should be recorded when doing a Pick or Put on certain materials.
- unused — The attribute is not required, and must not be in the import file
- essential to create a storage request — The attribute must be included in the import file or specified at the beginning of the manual request.
- optional if not provided introduced during confirmation — The attribute is required, but optional whether in the import file (or manual request) or at confirmation. If it's not provided up-front, then it must be entered at confirmation.
- always introduced during confirmation — Must not be in the import file. Will be prompted for, and must be entered in the Task Processor.
You can create your own Material Properties and assign them to materials a couple of ways:
- In the Material Management, set the Property from the drop-down of available properties that were created in Material Property Management.
- Integration The import needs to include Materialbase.Materialname (i.e. Part Number), and MaterialProperty.Propertyname (Property). Refer to separate guides on integration of data into PPG.
By applying a property to a material, the material will take on all the settings of the property.
Each material needs to have a property assigned to it so that PPG knows how to handle it.
Setting Multiple Attributes
A material can have only 1 property. So if you need materials to have multiple settings, you need to make a new property to set those requirements -- in some cases with compound attributes or controls (e.g. LOT_SERIAL_EXPIRY).
Attributes
-
name
string
LIMIT:
50
Name of the material property. This should indicate the rule being applied to the material.
-
id
uuid
Unique identifier of the material property.
-
countingCycle
integer
The number of days before a material needs to be counted.
-
countingThreshold
float
How many items are needed before triggering a count.
-
dangerClass
string
LIMIT:
50
The danger class assigned to the material.
-
description
string
LIMIT:
80
Description of the material property and how it applies to the material.
- expiryDatePickType integer
- expiryDatePutType integer
- expiryDays integer
-
fifoType
integer
First-in, first-out types.
Possible values:
0 = No Fifo
1 = Fifo by put date
2 = Fifo by product
3 = Fifo by production date
4 = Fifo by expiry date - isExpiryDateMixed boolean
- isLocalInventory boolean
- isLotMixed boolean
- isProductionDateMixed boolean
- isQualificationMixed boolean
- isReleaseDateMixed boolean
- isSerialNumberMixed boolean
- isStrictFifo boolean
- isUncontrolledInventory boolean
- locContentType integer
- lotPickType integer
- lotPutType integer
- maxDriveSpeed float
- productionDatePickType integer
- productionDatePutType integer
- putDateResolutionType integer
- qualificationPickType integer
- qualificationPutType integer
- releaseDatePickType integer
- releaseDatePutType integer
- serialNumberPickType integer
- serialNumberPutType integer
- type integer
Endpoints
Get a list of material properties from the PPG database. View the guide on adding filters to List API calls.
Body Parameters
-
countingCycle
integer
The number of days before a material needs to be counted.
-
countingThreshold
floar
How many items are needed before triggering a count.
-
dangerClass
string
The danger class assigned to the material.
-
description
string
Only return material properties that include the given description.
- expiryDatePickType integer
- expiryDatePutType integer
- expiryDays integer
-
fifoType
integer
First-in, first-out types.
Possible values:
0 = No Fifo
1 = Fifo by put date
2 = Fifo by product
3 = Fifo by production date
4 = Fifo by expiry date - isExpiryDateMixed boolean
- isLocalInventory boolean
- isLotMixed boolean
- isProductionDateMixed boolean
- isQualificationMixed boolean
- isReleaseDateMixed boolean
- isSerialNumberMixed boolean
- isStrictFifo boolean
- isUncontrolledInventory boolean
- lotPickType integer
- lotPutType integer
- maxDriveSpeed float
-
name
string
Name of the material property. This should indicate the rule being applied to the material.
- productionDatePickType integer
- productionDatePutType integer
- putDateResolutionType integer
- qualificationPickType integer
- qualificationPutType integer
- releaseDatePickType integer
- releaseDatePutType integer
- serialNumberPickType integer
- serialNumberPutType integer
- type integer
-
countOnly
boolean
When "true", will only return a count of the amount of items in the query.
Default value:
false -
limit
integer
A limit on the number of objects to be returned.
Default value:
1000 -
page
integer
Page numbering is zero-based and uses the value of the "limit" argument. (For example, if limit=20, then page=0 will display the hits from 1 to 20.)
-
orderBy
string, array
Order the response by the selected field. Multiple values can be passed, separated by a comma.
-d 'curl "http://[subdomain.itempath.com or IP]/api/material_properties?name=basic" \ -X get \ -H "Content-Type: application/json" \ -H "Authorization: Bearer [Your JWT Access Token]"'
{ "material_properties": [ { "expiryDays": null, "isUncontrolledInventory": 0, "productionDatePickType": 0, "isReleaseDateMixed": 1, "productionDatePutType": 0, "serialNumberPutType": 0, "id": "F687AB5F-E6F6-48A2-B748-10CE0A6E2C29", "isLotMixed": 1, "name": "BASIC", "qualificationPutType": 0, "qualificationPickType": 0, "lotPickType": 0, "countingThreshold": null, "releaseDatePickType": 0, "isExpiryDateMixed": 1, "isSerialNumberMixed": 1, "fifoType": 0, "expiryDatePutType": 0, "description": "Test", "serialNumberPickType": 0, "type": 1, "countingCycle": 1, "releaseDatePutType": 0, "expiryDatePickType": 0, "isStrictFifo": 0, "lotPutType": 0, "isProductionDateMixed": 1, "isQualificationMixed": 1, "putDateResolutionType": 1, "isLocalInventory": 0, "dangerClass": null } ] }
Add a new material property to the PPG database and return a response.
Body Parameters
-
name
string
REQUIRED
Name of the material property.
-
description
string
Description of the material property.
- type integer
- dangerClass integer
-
countingCycle
integer
How many items are needed before triggering a count.
-
countingThreshold
float
How many items are needed before triggering a count.
- locContentType integer
- maxDriveSpeed float
-
fifoType
integer
First-in-first-out. Value 0 for no, or 1 for yes.
-
isStrictFifo
integer
Value 0 for no, or 1 for yes.
-
isLocalInventory
integer
Value 0 for no, or 1 for yes.
-
isUncontrolledInventory
integer
Value 0 for no, or 1 for yes.
- expiryDays
-
putDateResolutionType
integer
Value 0 for not allowed, or 1 for required.
-
lotPutType
integer
Lot Numbers: Puts. Value 0 for not allowed, or 1 for required.
-
lotPickType
integer
Lot Numbers: Picks. Value 0 for not allowed, or 1 for required.
-
isLotMixed
integer
Value 0 for no, or 1 for yes.
-
serialNumberPutType
integer
Serial Numbers: Puts. Value 0 for not allowed, or 1 for required.
-
serialNumberPickType
integer
Serial Numbers: Picks. Value 0 for not allowed, or 1 for required.
-
isSerialNumberMixed
integer
Value 0 for no, or 1 for yes.
-
expiryDatePutType
integer
Expiry Date: Puts. Value 0 for not allowed, or 1 for required.
-
expiryDatePickType
integer
Expiry Date: Picks. Value 0 for not allowed, or 1 for required.
-
isExpiryDateMixed
Value 0 for no, or 1 for yes.
-
productionDatePutType
integer
Production Date: Puts. Value 0 for not allowed, or 1 for required.
-
productionDatePickType
integer
Production Date: Picks. Value 0 for not allowed, or 1 for required.
-
isProductionDateMixed
integer
Value 0 for no, or 1 for yes.
-
releaseDatePutType
integer
Release Date: Puts. Value 0 for not allowed, or 1 for required.
-
releaseDatePickType
integer
Release Date: Picks. Value 0 for not allowed, or 1 for required.
-
isReleaseDateMixed
integer
Value 0 for no, or 1 for yes.
-
qualificationPutType
integer
Qualification: Puts. Value 0 for not allowed, or 1 for required.
-
qualificationPickType
integer
Qualification: Picks. Value 0 for not allowed, or 1 for required.
-
isQualificationMixed
integer
Value 0 for no, or 1 for yes.
-d '{ "name": "Sample Material Property", "description": "Example", "qualificationPutType": 0, "countingCycle": 1, "lotPickType": 0, "expiryDatePutType": 0, "qualificationPickType": 0, "isUncontrolledInventory": 0, "releaseDatePickType": 0, "type": 1, "productionDatePutType": 0, "expiryDatePickType": 0, "isQualificationMixed": 1, "isSerialNumberMixed": 1, "fifoType": 0, "isProductionDateMixed": 1, "lotPutType": 0, "releaseDatePutType": 0, "isLocalInventory": 0, "isStrictFifo": 0, "serialNumberPickType": 0, "serialNumberPutType": 0, "isReleaseDateMixed": 1, "putDateResolutionType": 1, "isLotMixed": 1, "productionDatePickType": 0, "isExpiryDateMixed": 1 }'
{ "material_property": { "qualificationPutType": 0, "countingCycle": 1, "lotPickType": 0, "expiryDatePutType": 0, "qualificationPickType": 0, "isUncontrolledInventory": 0, "releaseDatePickType": 0, "type": 1, "productionDatePutType": 0, "expiryDatePickType": 0, "name": "Sample Material Property", "isQualificationMixed": 1, "isSerialNumberMixed": 1, "dangerClass": null, "fifoType": 0, "isProductionDateMixed": 1, "description": "Example", "lotPutType": 0, "releaseDatePutType": 0, "isLocalInventory": 0, "isStrictFifo": 0, "countingThreshold": null, "serialNumberPickType": 0, "serialNumberPutType": 0, "isReleaseDateMixed": 1, "putDateResolutionType": 1, "isLotMixed": 1, "productionDatePickType": 0, "id": "F687AB5F-E6F6-48A2-B748-10CE0A6E2C29", "expiryDays": null, "isExpiryDateMixed": 1 } }
Get a specific material property from the PPG database and return a JSON response.
Body Parameters
{ "material_property": { "qualificationPutType": 0, "countingCycle": 1, "lotPickType": 0, "expiryDatePutType": 0, "qualificationPickType": 0, "isUncontrolledInventory": 0, "releaseDatePickType": 0, "type": 1, "productionDatePutType": 0, "expiryDatePickType": 0, "name": "BASIC", "isQualificationMixed": 1, "isSerialNumberMixed": 1, "dangerClass": null, "fifoType": 0, "isProductionDateMixed": 1, "description": "Test", "lotPutType": 0, "releaseDatePutType": 0, "isLocalInventory": 0, "isStrictFifo": 0, "countingThreshold": null, "serialNumberPickType": 0, "serialNumberPutType": 0, "isReleaseDateMixed": 1, "putDateResolutionType": 1, "isLotMixed": 1, "productionDatePickType": 0, "id": "F687AB5F-E6F6-48A2-B748-10CE0A6E2C29", "expiryDays": null, "isExpiryDateMixed": 1 } }
Update a material property in the PPG database and return a response.
Body Parameters
-
name
string
REQUIRED
Name of the material property.
-
description
string
Description of the material property.
- type integer
- dangerClass integer
-
countingCycle
integer
How many items are needed before triggering a count.
-
countingThreshold
float
How many items are needed before triggering a count.
- locContentType integer
- maxDriveSpeed float
-
fifoType
integer
First-in-first-out. Value 0 for no, or 1 for yes.
-
isStrictFifo
integer
Value 0 for no, or 1 for yes.
-
isLocalInventory
integer
Value 0 for no, or 1 for yes.
-
isUncontrolledInventory
integer
Value 0 for no, or 1 for yes.
- expiryDays
-
putDateResolutionType
integer
Value 0 for not allowed, or 1 for required.
-
lotPutType
integer
Lot Numbers: Puts. Value 0 for not allowed, or 1 for required.
-
lotPickType
integer
Lot Numbers: Picks. Value 0 for not allowed, or 1 for required.
-
isLotMixed
integer
Value 0 for no, or 1 for yes.
-
serialNumberPutType
integer
Serial Numbers: Puts. Value 0 for not allowed, or 1 for required.
-
serialNumberPickType
integer
Serial Numbers: Picks. Value 0 for not allowed, or 1 for required.
-
isSerialNumberMixed
integer
Value 0 for no, or 1 for yes.
-
expiryDatePutType
integer
Expiry Date: Puts. Value 0 for not allowed, or 1 for required.
-
expiryDatePickType
integer
Expiry Date: Picks. Value 0 for not allowed, or 1 for required.
-
isExpiryDateMixed
Value 0 for no, or 1 for yes.
-
productionDatePutType
integer
Production Date: Puts. Value 0 for not allowed, or 1 for required.
-
productionDatePickType
integer
Production Date: Picks. Value 0 for not allowed, or 1 for required.
-
isProductionDateMixed
integer
Value 0 for no, or 1 for yes.
-
releaseDatePutType
integer
Release Date: Puts. Value 0 for not allowed, or 1 for required.
-
releaseDatePickType
integer
Release Date: Picks. Value 0 for not allowed, or 1 for required.
-
isReleaseDateMixed
integer
Value 0 for no, or 1 for yes.
-
qualificationPutType
integer
Qualification: Puts. Value 0 for not allowed, or 1 for required.
-
qualificationPickType
integer
Qualification: Picks. Value 0 for not allowed, or 1 for required.
-
isQualificationMixed
integer
Value 0 for no, or 1 for yes.
-d '{ "name": "Updated Material Property", "description": "Example", "fifoType": 1, "isLocalInventory": 1, "isStrictFifo": 1, }'
{ "material_property": { "qualificationPutType": 0, "countingCycle": 1, "lotPickType": 2, "expiryDatePutType": 0, "qualificationPickType": 0, "isUncontrolledInventory": 0, "releaseDatePickType": 0, "type": 1, "productionDatePutType": 0, "expiryDatePickType": 0, "name": "Updated Material Property", "isQualificationMixed": 1, "isSerialNumberMixed": 1, "dangerClass": null, "fifoType": 1, "isProductionDateMixed": 1, "description": null, "lotPutType": 3, "releaseDatePutType": 0, "isLocalInventory": 1, "isStrictFifo": 1, "countingThreshold": null, "serialNumberPickType": 0, "serialNumberPutType": 0, "isReleaseDateMixed": 1, "putDateResolutionType": 1, "isLotMixed": 1, "productionDatePickType": 0, "id": "BE0D281F-8388-4297-8D70-2BC30284AA9A", "expiryDays": null, "isExpiryDateMixed": 1 } }
Delete a material property from the PPG database.