A method for configuring multiple lifecycles, and associating each
lifecycle with one or more subcategories of items includes receiving a
request for a state change for an item in a current state; determining if
the item's current state exists in the located lifecycle; wherein if the
current state does not exist in the located lifecycle, the current state
is updated with a series of update rules; determining if the current
state has flags; wherein the flags are checked for one or more protection
rules; generating a list of target states; receiving a user selected
target state from the generated list; checking the selected target state
for one or more associated protection rules; recording a state change for
the selected target state in response to the satisfaction of the one or
more associated protection rules, and if no protection rules are found;
and propagating the state change.