Class: WorkflowStep
A workflow step represents the state of a business event. The workflow step contains a reference to a previous WorkflowStep in order to preserve lineage. A workflow step is accepted if it contains a business event, proposed if proposedEvent is present and is rejected if the rejected flag is set.
URI: common_domain_model:WorkflowStep
classDiagram
class WorkflowStep
click WorkflowStep href "../WorkflowStep/"
WorkflowStep : account
WorkflowStep --> "*" Account : account
click Account href "../Account/"
WorkflowStep : action
WorkflowStep --> "0..1" ActionEnum : action
click ActionEnum href "../ActionEnum/"
WorkflowStep : approval
WorkflowStep --> "*" WorkflowStepApproval : approval
click WorkflowStepApproval href "../WorkflowStepApproval/"
WorkflowStep : businessEvent
WorkflowStep --> "0..1" BusinessEvent : businessEvent
click BusinessEvent href "../BusinessEvent/"
WorkflowStep : counterpartyPositionBusinessEvent
WorkflowStep --> "0..1" CounterpartyPositionBusinessEvent : counterpartyPositionBusinessEvent
click CounterpartyPositionBusinessEvent href "../CounterpartyPositionBusinessEvent/"
WorkflowStep : creditLimitInformation
WorkflowStep --> "0..1" CreditLimitInformation : creditLimitInformation
click CreditLimitInformation href "../CreditLimitInformation/"
WorkflowStep : eventIdentifier
WorkflowStep --> "1..*" Identifier : eventIdentifier
click Identifier href "../Identifier/"
WorkflowStep : lineage
WorkflowStep --> "0..1" Lineage : lineage
click Lineage href "../Lineage/"
WorkflowStep : messageInformation
WorkflowStep --> "0..1" MessageInformation : messageInformation
click MessageInformation href "../MessageInformation/"
WorkflowStep : nextEvent
WorkflowStep --> "0..1" EventInstruction : nextEvent
click EventInstruction href "../EventInstruction/"
WorkflowStep : party
WorkflowStep --> "*" Party : party
click Party href "../Party/"
WorkflowStep : previousWorkflowStep
WorkflowStep --> "0..1" WorkflowStep : previousWorkflowStep
click WorkflowStep href "../WorkflowStep/"
WorkflowStep : proposedEvent
WorkflowStep --> "0..1" EventInstruction : proposedEvent
click EventInstruction href "../EventInstruction/"
WorkflowStep : rejected
WorkflowStep : timestamp
WorkflowStep --> "1..*" EventTimestamp : timestamp
click EventTimestamp href "../EventTimestamp/"
WorkflowStep : workflowState
WorkflowStep --> "0..1" WorkflowState : workflowState
click WorkflowState href "../WorkflowState/"
Class Properties
| Property | Value |
|---|---|
| Tree Root | Yes |
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| businessEvent | 0..1 BusinessEvent |
Life cycle event for the step | direct |
| counterpartyPositionBusinessEvent | 0..1 CounterpartyPositionBusinessEvent |
Documents the life cycle event for a position | direct |
| proposedEvent | 0..1 EventInstruction |
The proposed event for a workflow step | direct |
| rejected | 0..1 Boolean |
Flags this step as rejected | direct |
| approval | * WorkflowStepApproval |
Optional party approvals for the current workflow step | direct |
| previousWorkflowStep | 0..1 WorkflowStep |
Optional previous workflow step that provides lineage to workflow steps that ... | direct |
| nextEvent | 0..1 EventInstruction |
The intended next event can be specified, even if the instructions are not kn... | direct |
| messageInformation | 0..1 MessageInformation |
Contains all information pertaining the FpML messaging header | direct |
| timestamp | 1..* EventTimestamp |
The set of timestamp(s) associated with the event as a collection of [dateTim... | direct |
| eventIdentifier | 1..* Identifier |
The identifier(s) that uniquely identify a lifecycle event | direct |
| action | 0..1 ActionEnum |
Specifies whether the event is a new, a correction or a cancellation | direct |
| party | * Party |
The specification of the event parties | direct |
| account | * Account |
Optional account information that could be associated to the event | direct |
| lineage | 0..1 Lineage |
The lineage attribute provides a linkage among lifecycle events through the g... | direct |
| creditLimitInformation | 0..1 CreditLimitInformation |
direct | |
| workflowState | 0..1 WorkflowState |
The event workflow information, i | direct |
Usages
| used by | used in | type | used |
|---|---|---|---|
| Lineage | eventReference | range | WorkflowStep |
| WorkflowStep | previousWorkflowStep | range | WorkflowStep |
| Workflow | steps | range | WorkflowStep |
Rules
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
In Subsets
Comments
- Rosetta condition: WorkflowStepStatus — (businessEvent exists and nextEvent -> instruction is absent and rejected is absent) or (nextEvent -> instruction exists and businessEvent is absent and rejected is absent) or (rejected exists and businessEvent is absent and nextEvent is absent) or (proposedEvent exists and nextEvent is absent and rejected is absent) or (previousWorkflowStep exists and action = ActionEnum -> Cancel)
- Rosetta condition: CounterpartyPositionBusinessEventOrBusinessEventOrProposedEventChoice — required choice counterpartyPositionBusinessEvent, businessEvent, proposedEvent
- Rosetta func: Create_WorkflowStep — Function to create a workflow step with a business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step. The function should be used when there is already a fully formed business event with the action set to signify that the step is new, or a correction/cancellation of a previous step. The action is constrained so that when a previous workflow step is specified, the valid actions are as follows; New -> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New.
- Rosetta func: Create_AcceptedWorkflowStep — Represents the acceptance of a proposed instruction that results in a workflow step containing a business event, message details, identifiers, event timestamps, parties and accounts. The previous workflow step input must exist to provide workflow lineage. The instruction from the previous workflow step should be used with a [creation BusinessEvent] function to create the input business event passed into this function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange to produce the business event which should used as an input to this step.
- Rosetta func: Create_AcceptedWorkflowStepFromInstruction — Represents the acceptance of a proposed instruction that results in a workflow step containing a business event, message details, identifiers, event timestamps, parties and accounts. The previous workflow step input must exist to provide workflow lineage. The instruction from the previous workflow step should be used with a [creation BusinessEvent] function to create the input business event passed into this function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange to produce the business event which should used as an input to this step.
- Rosetta func: Create_ProposedWorkflowStep — Represents the proposal to create a business event that results in a workflow step containing an instruction, message details, identifiers, event timestamps, parties and accounts. The optional previous workflow step input provides workflow lineage to where there has been a correction or cancellation to the proposed step. The action is constrained so that when a previous workflow step is specified, the valid actions are as follows; New -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New.
- Rosetta func: Create_RejectedWorkflowStep — Represents the rejection of a proposed instruction that results in a workflow step containing the rejection flag, message details, identifiers, event timestamps, parties and accounts involved in the step. The previous workflow step input must exist to provide workflow lineage. This function will be further developed to provide the reasons for rejection.
- Rosetta func: Create_Workflow — Function to create a Workflow from a list of WorkflowStep.
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| metadata_key | True |
| rosetta_functions | [{"name":"Create_WorkflowStep","description":"Function to create a workflow step with a business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step. The function should be used when there is already a fully formed business event with the action set to signify that the step is new, or a correction/cancellation of a previous step. The action is constrained so that when a previous workflow step is specified, the valid actions are as follows; New -> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1.."},{"name":"eventIdentifier","type":"Identifier","cardinality":"1.."},{"name":"party","type":"Party","cardinality":"0.."},{"name":"account","type":"Account","cardinality":"0.."},{"name":"previousWorkflowStep","type":"WorkflowStep","cardinality":"0..1"},{"name":"action","type":"ActionEnum","cardinality":"1..1"},{"name":"businessEvent","type":"BusinessEvent","cardinality":"0..1"}],"output":{"name":"workflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_AcceptedWorkflowStep","description":"Represents the acceptance of a proposed instruction that results in a workflow step containing a business event, message details, identifiers, event timestamps, parties and accounts. The previous workflow step input must exist to provide workflow lineage. The instruction from the previous workflow step should be used with a [creation BusinessEvent] function to create the input business event passed into this function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange to produce the business event which should used as an input to this step.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1.."},{"name":"eventIdentifier","type":"Identifier","cardinality":"1.."},{"name":"party","type":"Party","cardinality":"0.."},{"name":"account","type":"Account","cardinality":"0.."},{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"},{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"acceptedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_AcceptedWorkflowStepFromInstruction","description":"Represents the acceptance of a proposed instruction that results in a workflow step containing a business event, message details, identifiers, event timestamps, parties and accounts. The previous workflow step input must exist to provide workflow lineage. The instruction from the previous workflow step should be used with a [creation BusinessEvent] function to create the input business event passed into this function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange to produce the business event which should used as an input to this step.","inputs":[{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}],"output":{"name":"acceptedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_ProposedWorkflowStep","description":"Represents the proposal to create a business event that results in a workflow step containing an instruction, message details, identifiers, event timestamps, parties and accounts. The optional previous workflow step input provides workflow lineage to where there has been a correction or cancellation to the proposed step. The action is constrained so that when a previous workflow step is specified, the valid actions are as follows; New -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1.."},{"name":"eventIdentifier","type":"Identifier","cardinality":"1.."},{"name":"party","type":"Party","cardinality":"0.."},{"name":"account","type":"Account","cardinality":"0.."},{"name":"previousWorkflowStep","type":"WorkflowStep","cardinality":"0..1"},{"name":"action","type":"ActionEnum","cardinality":"1..1"},{"name":"proposedEvent","type":"EventInstruction","cardinality":"1..1"},{"name":"approval","type":"WorkflowStepApproval","cardinality":"0.."}],"output":{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_RejectedWorkflowStep","description":"Represents the rejection of a proposed instruction that results in a workflow step containing the rejection flag, message details, identifiers, event timestamps, parties and accounts involved in the step. The previous workflow step input must exist to provide workflow lineage. This function will be further developed to provide the reasons for rejection.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1.."},{"name":"eventIdentifier","type":"Identifier","cardinality":"1.."},{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}],"output":{"name":"rejectedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_Workflow","description":"Function to create a Workflow from a list of WorkflowStep.","inputs":[{"name":"steps","type":"WorkflowStep","cardinality":"1.."}],"output":{"name":"workflow","type":"Workflow","cardinality":"1..1"}}] |
Schema Source
- from schema: https://w3id.org/lmodel/common-domain-model
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | common_domain_model:WorkflowStep |
| native | common_domain_model:WorkflowStep |
LinkML Source
Direct
name: WorkflowStep
annotations:
metadata_key:
tag: metadata_key
value: true
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"Create_WorkflowStep","description":"Function to create a workflow
step with a business event and associated details about the message, identifiers,
event timestamps, parties and accounts involved in the step. The function should
be used when there is already a fully formed business event with the action
set to signify that the step is new, or a correction/cancellation of a previous
step. The action is constrained so that when a previous workflow step is specified,
the valid actions are as follows; New -> New, New -> Correct, New -> Cancel,
Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified,
the action must be New.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"party","type":"Party","cardinality":"0..*"},{"name":"account","type":"Account","cardinality":"0..*"},{"name":"previousWorkflowStep","type":"WorkflowStep","cardinality":"0..1"},{"name":"action","type":"ActionEnum","cardinality":"1..1"},{"name":"businessEvent","type":"BusinessEvent","cardinality":"0..1"}],"output":{"name":"workflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_AcceptedWorkflowStep","description":"Represents
the acceptance of a proposed instruction that results in a workflow step containing
a business event, message details, identifiers, event timestamps, parties and
accounts. The previous workflow step input must exist to provide workflow lineage.
The instruction from the previous workflow step should be used with a [creation
BusinessEvent] function to create the input business event passed into this
function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange
to produce the business event which should used as an input to this step.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"party","type":"Party","cardinality":"0..*"},{"name":"account","type":"Account","cardinality":"0..*"},{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"},{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"acceptedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_AcceptedWorkflowStepFromInstruction","description":"Represents
the acceptance of a proposed instruction that results in a workflow step containing
a business event, message details, identifiers, event timestamps, parties and
accounts. The previous workflow step input must exist to provide workflow lineage.
The instruction from the previous workflow step should be used with a [creation
BusinessEvent] function to create the input business event passed into this
function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange
to produce the business event which should used as an input to this step.","inputs":[{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}],"output":{"name":"acceptedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_ProposedWorkflowStep","description":"Represents
the proposal to create a business event that results in a workflow step containing
an instruction, message details, identifiers, event timestamps, parties and
accounts. The optional previous workflow step input provides workflow lineage
to where there has been a correction or cancellation to the proposed step. The
action is constrained so that when a previous workflow step is specified, the
valid actions are as follows; New -> Correct and Correct -> Cancel. When a previous
workflow is not specified, the action must be New.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"party","type":"Party","cardinality":"0..*"},{"name":"account","type":"Account","cardinality":"0..*"},{"name":"previousWorkflowStep","type":"WorkflowStep","cardinality":"0..1"},{"name":"action","type":"ActionEnum","cardinality":"1..1"},{"name":"proposedEvent","type":"EventInstruction","cardinality":"1..1"},{"name":"approval","type":"WorkflowStepApproval","cardinality":"0..*"}],"output":{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_RejectedWorkflowStep","description":"Represents
the rejection of a proposed instruction that results in a workflow step containing
the rejection flag, message details, identifiers, event timestamps, parties
and accounts involved in the step. The previous workflow step input must exist
to provide workflow lineage. This function will be further developed to provide
the reasons for rejection.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}],"output":{"name":"rejectedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_Workflow","description":"Function
to create a Workflow from a list of WorkflowStep.","inputs":[{"name":"steps","type":"WorkflowStep","cardinality":"1..*"}],"output":{"name":"workflow","type":"Workflow","cardinality":"1..1"}}]'
description: A workflow step represents the state of a business event. The workflow
step contains a reference to a previous WorkflowStep in order to preserve lineage.
A workflow step is accepted if it contains a business event, proposed if proposedEvent
is present and is rejected if the rejected flag is set.
comments:
- 'Rosetta condition: WorkflowStepStatus — (businessEvent exists and nextEvent ->
instruction is absent and rejected is absent) or (nextEvent -> instruction exists
and businessEvent is absent and rejected is absent) or (rejected exists and businessEvent
is absent and nextEvent is absent) or (proposedEvent exists and nextEvent is absent
and rejected is absent) or (previousWorkflowStep exists and action = ActionEnum
-> Cancel)'
- 'Rosetta condition: CounterpartyPositionBusinessEventOrBusinessEventOrProposedEventChoice
— required choice counterpartyPositionBusinessEvent, businessEvent, proposedEvent'
- 'Rosetta func: Create_WorkflowStep — Function to create a workflow step with a business
event and associated details about the message, identifiers, event timestamps, parties
and accounts involved in the step. The function should be used when there is already
a fully formed business event with the action set to signify that the step is new,
or a correction/cancellation of a previous step. The action is constrained so that
when a previous workflow step is specified, the valid actions are as follows; New
-> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel.
When a previous workflow is not specified, the action must be New.'
- 'Rosetta func: Create_AcceptedWorkflowStep — Represents the acceptance of a proposed
instruction that results in a workflow step containing a business event, message
details, identifiers, event timestamps, parties and accounts. The previous workflow
step input must exist to provide workflow lineage. The instruction from the previous
workflow step should be used with a [creation BusinessEvent] function to create
the input business event passed into this function e.g. PartyChangeInstruction from
the previous step is used with Create_PartyChange to produce the business event
which should used as an input to this step.'
- 'Rosetta func: Create_AcceptedWorkflowStepFromInstruction — Represents the acceptance
of a proposed instruction that results in a workflow step containing a business
event, message details, identifiers, event timestamps, parties and accounts. The
previous workflow step input must exist to provide workflow lineage. The instruction
from the previous workflow step should be used with a [creation BusinessEvent] function
to create the input business event passed into this function e.g. PartyChangeInstruction
from the previous step is used with Create_PartyChange to produce the business event
which should used as an input to this step.'
- 'Rosetta func: Create_ProposedWorkflowStep — Represents the proposal to create a
business event that results in a workflow step containing an instruction, message
details, identifiers, event timestamps, parties and accounts. The optional previous
workflow step input provides workflow lineage to where there has been a correction
or cancellation to the proposed step. The action is constrained so that when a previous
workflow step is specified, the valid actions are as follows; New -> Correct and
Correct -> Cancel. When a previous workflow is not specified, the action must be
New.'
- 'Rosetta func: Create_RejectedWorkflowStep — Represents the rejection of a proposed
instruction that results in a workflow step containing the rejection flag, message
details, identifiers, event timestamps, parties and accounts involved in the step.
The previous workflow step input must exist to provide workflow lineage. This function
will be further developed to provide the reasons for rejection.'
- 'Rosetta func: Create_Workflow — Function to create a Workflow from a list of WorkflowStep.'
in_subset:
- cdm_event_workflow
from_schema: https://w3id.org/lmodel/common-domain-model
slots:
- businessEvent
- counterpartyPositionBusinessEvent
- proposedEvent
- rejected
- approval
- previousWorkflowStep
- nextEvent
- messageInformation
- timestamp
- eventIdentifier
- action
- party
- account
- lineage
- creditLimitInformation
- workflowState
slot_usage:
messageInformation:
name: messageInformation
description: 'Contains all information pertaining the FpML messaging header '
timestamp:
name: timestamp
description: The set of timestamp(s) associated with the event as a collection
of [dateTime, qualifier].
range: EventTimestamp
multivalued: true
party:
name: party
description: The specification of the event parties. This attribute is optional,
as not applicable to certain events (e.g. most of the observations).
range: Party
multivalued: true
account:
name: account
description: Optional account information that could be associated to the event.
multivalued: true
lineage:
name: lineage
description: The lineage attribute provides a linkage among lifecycle events through
the globalKey hash value. One example is when a given lifecycle event is being
corrected or cancelled. In such case, each subsequent event will have lineage
into the prior version of that event. The second broad use case is when an event
has a dependency upon either another event (e.g. the regular payment associated
with a fix/float swap will have a lineage into the reset event, which will in
turn have a lineage into the observation event for the floating rate and the
contract) or a contract (e.g. the exercise of an option has a lineage into that
option).
deprecated: Deprecated in CDM
required: false
tree_root: true
rules:
- postconditions:
exactly_one_of:
- slot_conditions:
counterpartyPositionBusinessEvent:
name: counterpartyPositionBusinessEvent
required: true
- slot_conditions:
businessEvent:
name: businessEvent
required: true
- slot_conditions:
proposedEvent:
name: proposedEvent
required: true
description: Choice rule to control that either positionBusinessEvent is present,
businessEvent is present or proposedEvent is present, but not more than one at
the same time.
Induced
name: WorkflowStep
annotations:
metadata_key:
tag: metadata_key
value: true
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"Create_WorkflowStep","description":"Function to create a workflow
step with a business event and associated details about the message, identifiers,
event timestamps, parties and accounts involved in the step. The function should
be used when there is already a fully formed business event with the action
set to signify that the step is new, or a correction/cancellation of a previous
step. The action is constrained so that when a previous workflow step is specified,
the valid actions are as follows; New -> New, New -> Correct, New -> Cancel,
Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified,
the action must be New.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"party","type":"Party","cardinality":"0..*"},{"name":"account","type":"Account","cardinality":"0..*"},{"name":"previousWorkflowStep","type":"WorkflowStep","cardinality":"0..1"},{"name":"action","type":"ActionEnum","cardinality":"1..1"},{"name":"businessEvent","type":"BusinessEvent","cardinality":"0..1"}],"output":{"name":"workflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_AcceptedWorkflowStep","description":"Represents
the acceptance of a proposed instruction that results in a workflow step containing
a business event, message details, identifiers, event timestamps, parties and
accounts. The previous workflow step input must exist to provide workflow lineage.
The instruction from the previous workflow step should be used with a [creation
BusinessEvent] function to create the input business event passed into this
function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange
to produce the business event which should used as an input to this step.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"party","type":"Party","cardinality":"0..*"},{"name":"account","type":"Account","cardinality":"0..*"},{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"},{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"acceptedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_AcceptedWorkflowStepFromInstruction","description":"Represents
the acceptance of a proposed instruction that results in a workflow step containing
a business event, message details, identifiers, event timestamps, parties and
accounts. The previous workflow step input must exist to provide workflow lineage.
The instruction from the previous workflow step should be used with a [creation
BusinessEvent] function to create the input business event passed into this
function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange
to produce the business event which should used as an input to this step.","inputs":[{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}],"output":{"name":"acceptedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_ProposedWorkflowStep","description":"Represents
the proposal to create a business event that results in a workflow step containing
an instruction, message details, identifiers, event timestamps, parties and
accounts. The optional previous workflow step input provides workflow lineage
to where there has been a correction or cancellation to the proposed step. The
action is constrained so that when a previous workflow step is specified, the
valid actions are as follows; New -> Correct and Correct -> Cancel. When a previous
workflow is not specified, the action must be New.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"party","type":"Party","cardinality":"0..*"},{"name":"account","type":"Account","cardinality":"0..*"},{"name":"previousWorkflowStep","type":"WorkflowStep","cardinality":"0..1"},{"name":"action","type":"ActionEnum","cardinality":"1..1"},{"name":"proposedEvent","type":"EventInstruction","cardinality":"1..1"},{"name":"approval","type":"WorkflowStepApproval","cardinality":"0..*"}],"output":{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_RejectedWorkflowStep","description":"Represents
the rejection of a proposed instruction that results in a workflow step containing
the rejection flag, message details, identifiers, event timestamps, parties
and accounts involved in the step. The previous workflow step input must exist
to provide workflow lineage. This function will be further developed to provide
the reasons for rejection.","inputs":[{"name":"messageInformation","type":"MessageInformation","cardinality":"0..1"},{"name":"timestamp","type":"EventTimestamp","cardinality":"1..*"},{"name":"eventIdentifier","type":"Identifier","cardinality":"1..*"},{"name":"proposedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}],"output":{"name":"rejectedWorkflowStep","type":"WorkflowStep","cardinality":"1..1"}},{"name":"Create_Workflow","description":"Function
to create a Workflow from a list of WorkflowStep.","inputs":[{"name":"steps","type":"WorkflowStep","cardinality":"1..*"}],"output":{"name":"workflow","type":"Workflow","cardinality":"1..1"}}]'
description: A workflow step represents the state of a business event. The workflow
step contains a reference to a previous WorkflowStep in order to preserve lineage.
A workflow step is accepted if it contains a business event, proposed if proposedEvent
is present and is rejected if the rejected flag is set.
comments:
- 'Rosetta condition: WorkflowStepStatus — (businessEvent exists and nextEvent ->
instruction is absent and rejected is absent) or (nextEvent -> instruction exists
and businessEvent is absent and rejected is absent) or (rejected exists and businessEvent
is absent and nextEvent is absent) or (proposedEvent exists and nextEvent is absent
and rejected is absent) or (previousWorkflowStep exists and action = ActionEnum
-> Cancel)'
- 'Rosetta condition: CounterpartyPositionBusinessEventOrBusinessEventOrProposedEventChoice
— required choice counterpartyPositionBusinessEvent, businessEvent, proposedEvent'
- 'Rosetta func: Create_WorkflowStep — Function to create a workflow step with a business
event and associated details about the message, identifiers, event timestamps, parties
and accounts involved in the step. The function should be used when there is already
a fully formed business event with the action set to signify that the step is new,
or a correction/cancellation of a previous step. The action is constrained so that
when a previous workflow step is specified, the valid actions are as follows; New
-> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel.
When a previous workflow is not specified, the action must be New.'
- 'Rosetta func: Create_AcceptedWorkflowStep — Represents the acceptance of a proposed
instruction that results in a workflow step containing a business event, message
details, identifiers, event timestamps, parties and accounts. The previous workflow
step input must exist to provide workflow lineage. The instruction from the previous
workflow step should be used with a [creation BusinessEvent] function to create
the input business event passed into this function e.g. PartyChangeInstruction from
the previous step is used with Create_PartyChange to produce the business event
which should used as an input to this step.'
- 'Rosetta func: Create_AcceptedWorkflowStepFromInstruction — Represents the acceptance
of a proposed instruction that results in a workflow step containing a business
event, message details, identifiers, event timestamps, parties and accounts. The
previous workflow step input must exist to provide workflow lineage. The instruction
from the previous workflow step should be used with a [creation BusinessEvent] function
to create the input business event passed into this function e.g. PartyChangeInstruction
from the previous step is used with Create_PartyChange to produce the business event
which should used as an input to this step.'
- 'Rosetta func: Create_ProposedWorkflowStep — Represents the proposal to create a
business event that results in a workflow step containing an instruction, message
details, identifiers, event timestamps, parties and accounts. The optional previous
workflow step input provides workflow lineage to where there has been a correction
or cancellation to the proposed step. The action is constrained so that when a previous
workflow step is specified, the valid actions are as follows; New -> Correct and
Correct -> Cancel. When a previous workflow is not specified, the action must be
New.'
- 'Rosetta func: Create_RejectedWorkflowStep — Represents the rejection of a proposed
instruction that results in a workflow step containing the rejection flag, message
details, identifiers, event timestamps, parties and accounts involved in the step.
The previous workflow step input must exist to provide workflow lineage. This function
will be further developed to provide the reasons for rejection.'
- 'Rosetta func: Create_Workflow — Function to create a Workflow from a list of WorkflowStep.'
in_subset:
- cdm_event_workflow
from_schema: https://w3id.org/lmodel/common-domain-model
slot_usage:
messageInformation:
name: messageInformation
description: 'Contains all information pertaining the FpML messaging header '
timestamp:
name: timestamp
description: The set of timestamp(s) associated with the event as a collection
of [dateTime, qualifier].
range: EventTimestamp
multivalued: true
party:
name: party
description: The specification of the event parties. This attribute is optional,
as not applicable to certain events (e.g. most of the observations).
range: Party
multivalued: true
account:
name: account
description: Optional account information that could be associated to the event.
multivalued: true
lineage:
name: lineage
description: The lineage attribute provides a linkage among lifecycle events through
the globalKey hash value. One example is when a given lifecycle event is being
corrected or cancelled. In such case, each subsequent event will have lineage
into the prior version of that event. The second broad use case is when an event
has a dependency upon either another event (e.g. the regular payment associated
with a fix/float swap will have a lineage into the reset event, which will in
turn have a lineage into the observation event for the floating rate and the
contract) or a contract (e.g. the exercise of an option has a lineage into that
option).
deprecated: Deprecated in CDM
required: false
attributes:
businessEvent:
name: businessEvent
description: Life cycle event for the step.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: BusinessEvent
counterpartyPositionBusinessEvent:
name: counterpartyPositionBusinessEvent
description: Documents the life cycle event for a position.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: CounterpartyPositionBusinessEvent
proposedEvent:
name: proposedEvent
description: The proposed event for a workflow step.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: EventInstruction
rejected:
name: rejected
description: Flags this step as rejected.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: boolean
approval:
name: approval
description: Optional party approvals for the current workflow step. A workflow
step can have any number of parties associated to it, thus this object is represented
as a list. All parties that are expected to provide approval should have an
item in this list that references them.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: WorkflowStepApproval
multivalued: true
inlined: true
inlined_as_list: true
previousWorkflowStep:
name: previousWorkflowStep
annotations:
metadata_reference:
tag: metadata_reference
value: true
description: Optional previous workflow step that provides lineage to workflow
steps that precedes it.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: WorkflowStep
nextEvent:
name: nextEvent
description: The intended next event can be specified, even if the instructions
are not known yet.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: EventInstruction
messageInformation:
name: messageInformation
description: 'Contains all information pertaining the FpML messaging header '
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:AvailableInventory.messageInformation
rank: 1000
owner: WorkflowStep
domain_of:
- AvailableInventory
- WorkflowStep
range: MessageInformation
timestamp:
name: timestamp
description: The set of timestamp(s) associated with the event as a collection
of [dateTime, qualifier].
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- Valuation
- WorkflowStepApproval
- WorkflowStep
range: EventTimestamp
required: true
multivalued: true
eventIdentifier:
name: eventIdentifier
description: The identifier(s) that uniquely identify a lifecycle event. The unbounded
cardinality is meant to provide the ability to associate identifiers that are
issued by distinct parties. As an example, each of the parties to the event
may choose to associate their own identifiers to the event.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: Identifier
required: true
multivalued: true
inlined: true
inlined_as_list: true
action:
name: action
description: Specifies whether the event is a new, a correction or a cancellation.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: ActionEnum
party:
name: party
description: The specification of the event parties. This attribute is optional,
as not applicable to certain events (e.g. most of the observations).
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- DebtRedemption
- Trade
- MarginCallBase
- CounterpartyPosition
- AggregationParameters
- AvailableInventory
- WorkflowStepApproval
- WorkflowStep
- UmbrellaAgreementParty
- UmbrellaAgreementSet
- AdditionalRepresentationElection
- CalculationAgentTerms
- CalculationCurrencyElection
- ValuationCalculationDateLocationElection
- CollateralManagementAgreementElection
- ControlAgreementElections
- ControlAgreementNecEventElection
- CustodianElection
- CustodianRiskElection
- ElectiveAmountElection
- FrenchLawAddendumElection
- HoldingAndUsingPostedCollateralElection
- NotificationTimeElection
- PostingObligationsElection
- RecalculationOfValueElection
- RegimeTerms
- PledgeeRepresentativeRider
- SecuredPartyRightsEventElection
- SecurityProviderRightsEventElection
- SensitivityMethodologiesPartyElection
- SubstitutedRegimeTerms
- SubstitutionPartyElection
- TerminationCurrencyElection
- AdditionalObligations
- SecurityInterestForObligations
- SinglePostingParty
- ThresholdElection
- MinimumTransferAmountElection
- ValuationAgent
- LegacyExposureScopeElection
- CreditSupportDocumentElection
- CreditSupportProviderElection
- SpecifiedOrAccessConditionPartyElection
- LegacyIndependentAmountParty
- AutomaticEarlyTerminationElection
- PartyTerminationCurrencySelection
- SpecifiedEntity
- EventsOfDefaultElection
- EligibleCollateralSpecification
range: Party
multivalued: true
account:
name: account
description: Optional account information that could be associated to the event.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- Party
- Trade
- WorkflowStep
- TransferContactInformation
range: Account
multivalued: true
lineage:
name: lineage
description: The lineage attribute provides a linkage among lifecycle events through
the globalKey hash value. One example is when a given lifecycle event is being
corrected or cancelled. In such case, each subsequent event will have lineage
into the prior version of that event. The second broad use case is when an event
has a dependency upon either another event (e.g. the regular payment associated
with a fix/float swap will have a lineage into the reset event, which will in
turn have a lineage into the observation event for the floating rate and the
contract) or a contract (e.g. the exercise of an option has a lineage into that
option).
deprecated: Deprecated in CDM
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- PortfolioState
- WorkflowStep
range: Lineage
required: false
creditLimitInformation:
name: creditLimitInformation
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: CreditLimitInformation
workflowState:
name: workflowState
description: The event workflow information, i.e. the workflow status, the associated
comment and the partyCustomisedWorkflow which purpose is to provide the ability
to associate custom workflow information to the CDM.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: WorkflowStep
domain_of:
- WorkflowStep
range: WorkflowState
tree_root: true
rules:
- postconditions:
exactly_one_of:
- slot_conditions:
counterpartyPositionBusinessEvent:
name: counterpartyPositionBusinessEvent
required: true
- slot_conditions:
businessEvent:
name: businessEvent
required: true
- slot_conditions:
proposedEvent:
name: proposedEvent
required: true
description: Choice rule to control that either positionBusinessEvent is present,
businessEvent is present or proposedEvent is present, but not more than one at
the same time.