Service - Unit Standard: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 7: Line 7:
https://bitbucket.org/izara-supply-units/izara-supply-units-unit-standard
https://bitbucket.org/izara-supply-units/izara-supply-units-unit-standard


= DynamoDB tables =
= Units that contain quantity properties =
 
== [[Standard Config Table Per Service]] ==
 
=== Configuration tags ===
 
<syntaxhighlight lang="JavaScript">
{
configTag: "SupplyGraphServiceName"
configKey: "SupplyGraphServiceName"
configValue: xxx // eg: "SupplyGraph"
}
</syntaxhighlight>
 
<syntaxhighlight lang="JavaScript">
{
configTag: "UnitManagerServiceName"
configKey: "UnitManagerServiceName"
configValue: xxx // eg: "UnitManager"
}
</syntaxhighlight>
 
== LogicalResults ==
 
[[Standard LogicalResults Per Service]]
 
= Units that contain quantities =


* Izara Supply is not used for stock management, but used to follow units we want to track, which in some cases might themselves have a quantity inside them (example bag of 1000 buttons or 200 yard roll of fabric)
* Izara Supply is not used for stock management, but used to follow units we want to track, which in some cases might themselves have a quantity inside them (example bag of 1000 buttons or 200 yard roll of fabric)
* instead of tracking each button or each yard (or inch) we track the bag or roll only
* instead of tracking each button or each yard (or inch) we track the bag or roll only
* user can use a unitTrackedProperty to record the quantity inside the tracked Unit
* user can use a unitTrackedProperty to record the quantity inside the tracked Unit
* the unitTrackedProperty can then be used in [[Service - Transform Units]] to break down into individual units or multiple used to create other tracked Units
* the unitTrackedProperty can then be used in [[Service - Transform Units]] to break down any number of individual Units into any number of other Units. This allows for changing a roll with unitTrackedProperty of yards into multiple yard Units, or different raw material Units into a group of clothing Units
* eg if use 1 tracked back of 1000 buttons to make 10 shirts (100 buttons each shirt), the bag is one tracked Unit, and gets transformed into 10 tracked Unit shirts
* eg if have 1 tracked bag of 1000 buttons can transform into 10 shirts (100 buttons each shirt), the bag is one tracked Unit, and gets transformed into 10 tracked Unit shirts along with any other raw material


= Units that track costing =
== Making Inactive ==


* The cost of Units passing through the supply chain can also be managed using unitTrackedProperty
* Although Izara Supply does not manage stock levels, Units can be set to active/inactive so old or sold out Units can be marked as inactive, making queries easier to return only in stock Units
* each material has a unitTrackedProperty that is it's cost
* For example a roll of fabric is out of stock/inactive when it's unitTrackedProperty of yards reaches 0
* example 1 tracked Unit of a bag of 1000 buttons would have a cost unitTrackedProperty for it's full cost
* Achieve this by setting inactiveIfZero in yards unitTrackedProperty
* calculatedProperties in transformUnits can spread that cost (and all other materials used) across the new tracked Units created, saving the total into a new property in the outputUnits


= Graph database =  
= Units that track costing properties =


== [[Service - Supply Graph]]==
* The cost of Units passing through the supply chain can also be handled using unitTrackedProperty
 
* each raw material has a unitTrackedProperty that is it's cost (eg costPerBag) or cost per unitTrackedProperty value (eg costPerYard)
=== Nodes ===
* example 1 tracked Unit of a bag of 1000 buttons would have a remainingCost unitTrackedProperty for it's full cost
* calculatedProperties in transformUnits can spread that cost (and all other materials used) across the new tracked Units created, saving the total into a new property in the outputUnits


=== Versioned data ===
= objectSchemas =  
 
==== unitSettings ====


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
properties: {
objectType: "unitStandard",
// some are controlled by unitType, others can be added as needed case by case, not controlled
extendObjType: {
serviceTag: "unitManager",
objectType: "unit",
},
storageResources:{
"xxx":{
storageType: "graph",
graphServerTag: "xx",
}
},
fieldNames: {
// from stage objectType
},
},
}
identifiers: [
</syntaxhighlight>
// from stage objectType
 
]
=== Relationships ===
},
 
<syntaxhighlight lang="JavaScript">
{
relationshipType: "{unitStandardLib.UNIT_IS_CURRENCY_GRAPH_REL_TYPE}", // "unitIs_currency"
schema: {
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
</syntaxhighlight>
</syntaxhighlight>
* If UnitType has set isCurrency=true, all Units of that UnitType will have a link to a currency node


= Working documents =
= Working documents =

Latest revision as of 23:18, 2 September 2025

Overview

Handler service for the standard unit that tracks a single item.

Repository

https://bitbucket.org/izara-supply-units/izara-supply-units-unit-standard

Units that contain quantity properties

  • Izara Supply is not used for stock management, but used to follow units we want to track, which in some cases might themselves have a quantity inside them (example bag of 1000 buttons or 200 yard roll of fabric)
  • instead of tracking each button or each yard (or inch) we track the bag or roll only
  • user can use a unitTrackedProperty to record the quantity inside the tracked Unit
  • the unitTrackedProperty can then be used in Service - Transform Units to break down any number of individual Units into any number of other Units. This allows for changing a roll with unitTrackedProperty of yards into multiple yard Units, or different raw material Units into a group of clothing Units
  • eg if have 1 tracked bag of 1000 buttons can transform into 10 shirts (100 buttons each shirt), the bag is one tracked Unit, and gets transformed into 10 tracked Unit shirts along with any other raw material

Making Inactive

  • Although Izara Supply does not manage stock levels, Units can be set to active/inactive so old or sold out Units can be marked as inactive, making queries easier to return only in stock Units
  • For example a roll of fabric is out of stock/inactive when it's unitTrackedProperty of yards reaches 0
  • Achieve this by setting inactiveIfZero in yards unitTrackedProperty

Units that track costing properties

  • The cost of Units passing through the supply chain can also be handled using unitTrackedProperty
  • each raw material has a unitTrackedProperty that is it's cost (eg costPerBag) or cost per unitTrackedProperty value (eg costPerYard)
  • example 1 tracked Unit of a bag of 1000 buttons would have a remainingCost unitTrackedProperty for it's full cost
  • calculatedProperties in transformUnits can spread that cost (and all other materials used) across the new tracked Units created, saving the total into a new property in the outputUnits

objectSchemas

{
	objectType: "unitStandard",
	extendObjType: {
		serviceTag: "unitManager",
		objectType: "unit",
	},
	storageResources:{
		"xxx":{
			storageType: "graph",
			graphServerTag: "xx",
		}
	},
	fieldNames: {
		// from stage objectType
	},
	identifiers: [
		// from stage objectType
	]
},

Working documents

Unit Standard