Class: abstract
CoalescingWorkflow
Defined in: core/actions/src/coalescing-manager.ts:12
Structure actions.
Extends this class to build new actions behaviors.
Extends
Extended by
Constructors
Constructor
new CoalescingWorkflow():
CoalescingWorkflow
Defined in: core/actions/src/workflow-manager.ts:78
Returns
CoalescingWorkflow
Inherited from
Properties
dbDoc
dbDoc:
ActionSchemaInterface
<JSONObject
, {actions
: {[key
:string
]:object
; };currentStepIndex?
:number
;currentStepName?
:string
;currentTrackIds
:string
[];getNextStepAttemp
:number
;isRollBackPossible
:boolean
;nTimesCurrentStep
:number
;oldResult
:StepResult
[];preserveOldResult
:StepResult
[];registeredActions
:object
[];stepsHistory
:number
[]; },void
|Error
|JSONObject
>
Defined in: core/actions/src/action-manager.ts:113
Action Database Document
Inherited from
dBSession?
optional
dBSession:ClientSession
Defined in: core/actions/src/workflow-manager.ts:45
Inherited from
defineCallMode
defineCallMode:
"main"
|"actionFinding"
Defined in: core/actions/src/workflow-manager.ts:231
Inherited from
docsToSaveAtStepStart
docsToSaveAtStepStart:
Document
<any
,any
,any
>[] =[]
Defined in: core/actions/src/workflow-manager.ts:47
Inherited from
Workflow
.docsToSaveAtStepStart
dynamicActionFound
dynamicActionFound:
Action
Defined in: core/actions/src/workflow-manager.ts:243
Inherited from
dynamicActionToFound
dynamicActionToFound:
ActionSchemaInterface
Defined in: core/actions/src/workflow-manager.ts:242
Inherited from
executingDefine
executingDefine:
boolean
=false
Defined in: core/actions/src/workflow-manager.ts:230
Inherited from
executor?
optional
executor:Executor
Defined in: core/actions/src/action-manager.ts:39
Specify an executor in which all actions of this class will run.
Inherited from
IArgument
IArgument:
JSONObject
Defined in: core/actions/src/action-manager.ts:98
Action argument
Inherited from
IBag
IBag:
object
Defined in: core/actions/src/workflow-manager.ts:51
Action bag
actions
actions:
object
Index Signature
[key
: string
]: object
currentStepIndex?
optional
currentStepIndex:number
currentStepName?
optional
currentStepName:string
currentTrackIds
currentTrackIds:
string
[]
getNextStepAttemp
getNextStepAttemp:
number
Deprecated
isRollBackPossible
isRollBackPossible:
boolean
nTimesCurrentStep
nTimesCurrentStep:
number
oldResult
oldResult:
StepResult
[]
preserveOldResult
preserveOldResult:
StepResult
[]
registeredActions
registeredActions:
object
[]
stepsHistory
stepsHistory:
number
[]
Inherited from
IResult
IResult:
void
|Error
|JSONObject
Defined in: core/actions/src/action-manager.ts:108
Action result
Inherited from
isExecutorSet
isExecutorSet:
boolean
=false
Defined in: core/actions/src/action-manager.ts:528
Inherited from
isInitialised
isInitialised:
boolean
=false
Defined in: core/actions/src/action-manager.ts:500
Deprecated
use isInitialized
Inherited from
isInitialized
isInitialized:
boolean
=false
Defined in: core/actions/src/action-manager.ts:501
Inherited from
mapRefWithStrategy
mapRefWithStrategy:
Map
<string
,"default"
|"cross-workflow"
>
Defined in: core/actions/src/coalescing-manager.ts:74
notifyHealthPromise
notifyHealthPromise:
Promise
<any
> =undefined
Defined in: core/actions/src/action-manager.ts:955
Send a signal to indicate that the action is still in progress.. Useful for preventing timeouts when the action's duration is long but not precisely predictable.
Inherited from
registeredActionIds
registeredActionIds:
any
[] =[]
Defined in: core/actions/src/workflow-manager.ts:469
Inherited from
resolveDefineIteration()
resolveDefineIteration: (
actionState?
) =>void
Defined in: core/actions/src/workflow-manager.ts:274
Parameters
actionState?
Returns
void
Inherited from
Workflow
.resolveDefineIteration
runtime
runtime:
ActionRuntime
=ActionRuntime.activeRuntime
Defined in: core/actions/src/action-manager.ts:41
Inherited from
steps
steps:
Step
[] =[]
Defined in: core/actions/src/workflow-manager.ts:49
Inherited from
cronDefaultSettings
static
cronDefaultSettings:object
Defined in: core/actions/src/action-manager.ts:81
Configure the frequency at which a cron will launch Action.resume. It is also possible to dynamically modify the dbDoc.cronActivity property to modify the call to a cron. If not set, this property will be 'inherited' from the first parent class where it is.
activityFrequence?
optional
activityFrequence:number
Deprecated
use activityFrequency
activityFrequency?
optional
activityFrequency:number
TODO: set this as required after activityFrequence removal
Inherited from
defaultDelay
static
defaultDelay:number
=Infinity
Defined in: core/actions/src/workflow-manager.ts:41
Shortcut to [ActionState.IN_PROGRESS].
If not set, this property will be 'inherited' from the first parent class where it is.
Inherited from
defaultDelays
static
defaultDelays:object
Defined in: core/actions/src/action-manager.ts:69
For the states ActionState.EXECUTING_MAIN
and ActionState.IN_PROGRESS
,
this object configures the time after which, if no change happened, an action is considered in error.
For example, an action can only be in the ActionState.IN_PROGRESS
state for as long as
defaultDelays[ActionState.IN_PROGRESS]
time.
1?
optional
1:number
2?
optional
2:number
Default Value
{
[ActionState.IN_PROGRESS] : this.defaultDelay,
[ActionState.EXECUTING_MAIN] : 2*60*1000,
}
You should configure this if your actions have longer timeouts.
If not set, this property will be 'inherited' from the first parent class where it is.
Inherited from
permanentRef
static
permanentRef:string
|string
[]
Defined in: core/actions/src/action-manager.ts:34
Id of the action stored in database. It should be a permanent id that designates the action instance.
Inherited from
Accessors
_id
Get Signature
get _id():
this
["dbDoc"
]["_id"
]
Defined in: core/actions/src/action-manager.ts:164
Returns
this
["dbDoc"
]["_id"
]
Inherited from
argument
Get Signature
get argument():
this
["dbDoc"
]["argument"
]
Defined in: core/actions/src/action-manager.ts:128
Returns
this
["dbDoc"
]["argument"
]
Set Signature
set argument(
argument
):void
Defined in: core/actions/src/action-manager.ts:132
Parameters
argument
this
["dbDoc"
]["argument"
]
Returns
void
Inherited from
bag
Get Signature
get bag():
this
["dbDoc"
]["bag"
]
Defined in: core/actions/src/action-manager.ts:119
Returns
this
["dbDoc"
]["bag"
]
Set Signature
set bag(
bag
):void
Defined in: core/actions/src/action-manager.ts:123
Parameters
bag
this
["dbDoc"
]["bag"
]
Returns
void
Inherited from
cronActivity
Get Signature
get cronActivity():
this
["dbDoc"
]["cronActivity"
]
Defined in: core/actions/src/action-manager.ts:155
Returns
this
["dbDoc"
]["cronActivity"
]
Set Signature
set cronActivity(
cronActivity
):void
Defined in: core/actions/src/action-manager.ts:159
Parameters
cronActivity
this
["dbDoc"
]["cronActivity"
]
Returns
void
Inherited from
repeat
Get Signature
get repeat():
this
["dbDoc"
]["repeat"
]
Defined in: core/actions/src/action-manager.ts:146
Returns
this
["dbDoc"
]["repeat"
]
Set Signature
set repeat(
repeat
):void
Defined in: core/actions/src/action-manager.ts:150
Parameters
repeat
this
["dbDoc"
]["repeat"
]
Returns
void
Inherited from
result
Get Signature
get result():
this
["dbDoc"
]["result"
]
Defined in: core/actions/src/action-manager.ts:137
Returns
this
["dbDoc"
]["result"
]
Set Signature
set result(
result
):void
Defined in: core/actions/src/action-manager.ts:141
Parameters
result
this
["dbDoc"
]["result"
]
Returns
void
Inherited from
Methods
_resume()
_resume():
any
Defined in: core/actions/src/action-manager.ts:662
The function resumes the action by calling the appropriate function depending on the current state of the action. It doesn't take into account the executor.
Returns
any
A promise. You can not rely on this to know when an action is finished.
Inherited from
activityLogs()
activityLogs(
options
):any
[] |Promise
<any
[]>
Defined in: core/actions/src/action-manager.ts:804
Parameters
options
any
Returns
any
[] | Promise
<any
[]>
Inherited from
breakAndReject()
breakAndReject(
result
):RejectAction
Defined in: core/actions/src/workflow-manager.ts:202
Parameters
result
any
Returns
Inherited from
breakAndReturn()
breakAndReturn(
result
):ResolveAction
Defined in: core/actions/src/workflow-manager.ts:195
Parameters
result
any
Returns
Inherited from
clone()
clone():
any
Defined in: core/actions/src/action-manager.ts:927
Clone the action.
Returns
any
a new action with the same argument
Inherited from
define()
define():
Promise
<void
|Error
|JSONObject
>
Defined in: core/actions/src/workflow-manager.ts:238
Defines the workflow logic.
Called multiple times for a single workflow process.
Use the do
method to apply mutating operations.
Returns
Promise
<void
| Error
| JSONObject
>
Promise that resolves with an argument of type this['IResult']
.
Inherited from
defineDynamicAction()
defineDynamicAction(
actionDb
):Promise
<Action
>
Defined in: core/actions/src/workflow-manager.ts:245
Parameters
actionDb
Returns
Promise
<Action
>
Inherited from
do()
Call Signature
do<
T
>(ref
,action
):DoPromise
<T
["IResult"
]>
Defined in: core/actions/src/workflow-manager.ts:481
Executes an action in the workflow. If the action already exists, it will be tracked and resumed. If not, it will be started.
Type Parameters
T
T
extends Action
Parameters
ref
string
the step reference of the action to execute
action
T
Returns
DoPromise
<T
["IResult"
]>
a promise that resolves with the result of the action
Inherited from
Call Signature
do<
T
>(ref
,cb
):DoPromise
<T
>
Defined in: core/actions/src/workflow-manager.ts:491
Executes an action in the workflow. If the action already exists, it will be tracked and resumed. If not, it will be started.
Type Parameters
T
T
Parameters
ref
string
the step reference of the action to execute
cb
() => Promise
<T
>
a callback that returns a promise
Returns
DoPromise
<T
>
a promise that resolves with the result of the promise
Inherited from
Call Signature
do(
ref
,opts
):DoPromise
<any
>
Defined in: core/actions/src/workflow-manager.ts:504
Executes an action in the workflow. If the action already exists, it will be tracked and resumed. If not, it will be started.
Parameters
ref
string
the step reference of the action to execute
opts
an object containing a pattern of the action to execute
init?
() => Promise
<any
>
the init method of the action
main
() => ActionState
| Promise
<ActionState
>
the main method of the action
watcher?
() => Promise
<ActionState
>
the watcher method of the action
Returns
DoPromise
<any
>
a promise that resolves with the result of the action
Inherited from
Call Signature
do<
T
>(ref
,opts
):any
Defined in: core/actions/src/workflow-manager.ts:519
Executes an action in the workflow. If the action already exists, it will be tracked and resumed. If not, it will be started.
Type Parameters
T
T
extends Action
Parameters
ref
string
the step reference of the action to execute
opts
an object containing an instanciation of a dynamic action
dynamicAction
T
| () => T
an action or a function that returns an action
Returns
any
a promise that resolves with the result of the action
Inherited from
Call Signature
do<
T
>(ref
,opts
,params?
):DoPromise
<T
>
Defined in: core/actions/src/workflow-manager.ts:522
Executes an action in the workflow. If the action already exists, it will be tracked and resumed. If not, it will be started.
Type Parameters
T
T
Parameters
ref
string
the step reference of the action to execute
opts
Action
|
{ init?
: () => Promise
<any
>; main
: () => ActionState
| Promise
<ActionState
>; watcher?
: () => Promise
<ActionState
>; }
init?
() => Promise
<any
>
main
() => ActionState
| Promise
<ActionState
>
watcher?
() => Promise
<ActionState
>
| { dynamicAction
: Action
| () => Action
; } | () => Promise
<any
>
params?
nCall
number
Returns
DoPromise
<T
>
a promise that resolves with the result of the action
Inherited from
dynamicallyDefineFromWorkflowStep()
dynamicallyDefineFromWorkflowStep(
workflow
,marker
):void
Defined in: core/actions/src/action-manager.ts:325
Parameters
workflow
marker
string
Returns
void
Inherited from
Workflow
.dynamicallyDefineFromWorkflowStep
dynamiclyDefineFromWorfklowStep()
dynamiclyDefineFromWorfklowStep(
workflow
,marker
):void
Defined in: core/actions/src/action-manager.ts:321
Parameters
workflow
marker
string
Returns
void
Deprecated
use dynamicallyDefineFromWorkflowStep
Inherited from
Workflow
.dynamiclyDefineFromWorfklowStep
findIfEquivalentActionAlreadyExists()
findIfEquivalentActionAlreadyExists(
ref
,action
):Promise
<ActionSchemaInterface
<any
,any
,any
>>
Defined in: core/actions/src/coalescing-manager.ts:75
Parameters
ref
string
action
Returns
Promise
<ActionSchemaInterface
<any
, any
, any
>>
Overrides
Workflow
.findIfEquivalentActionAlreadyExists
getLogs()
getLogs(
options
):Promise
<any
[]>
Defined in: core/actions/src/action-manager.ts:808
Parameters
options
endTime?
number
Returns
Promise
<any
[]>
Inherited from
goTo()
goTo(
name
,onState
):CoalescingWorkflow
Defined in: core/actions/src/workflow-manager.ts:187
Parameters
name
string
onState
Returns
CoalescingWorkflow
Inherited from
goToStep()
goToStep(
name
):ResolveAction
Defined in: core/actions/src/workflow-manager.ts:178
Parameters
name
string
Returns
Inherited from
identity()
identity():
any
Defined in: core/actions/src/coalescing-manager.ts:16
Returns
any
init()
init():
Promise
<any
>
Defined in: core/actions/src/action-manager.ts:411
Initialize the action from the action stored in the database.
Example: In order to not store secrets in the database, you can set a vault id in the argument and retrieve the secret at the initialization of the action.
Example: You cannot store class object on the database. If your action use complex object, they can be initialized here.
Returns
Promise
<any
>
Inherited from
initialisation()
initialisation():
Promise
<void
>
Defined in: core/actions/src/action-manager.ts:506
Returns
Promise
<void
>
Deprecated
use initialization
Inherited from
initialization()
initialization():
Promise
<void
>
Defined in: core/actions/src/action-manager.ts:515
Mainly used for workflows. Can also complement init(). If it gets too complex, use hooks.
Returns
Promise
<void
>
Inherited from
internalLog()
internalLog(
message
,opts
):void
Defined in: core/actions/src/action-manager.ts:869
Log a message in the internal logger.
Parameters
message
string
The message to log.
opts
Options for logging, such as the log level. the final log message will be:
{
actionRef: this.dbDoc.actionRef,
actionId: this.dbDoc._id.toString(),
filter: this.dbDoc.filter,
definedIn: this.dbDoc.definitionFrom.workflow ? this.dbDoc.definitionFrom.workflow.toObject() : undefined,
timestamp: new Date().toISOString(),
level: opts.level || 'info',
message: message,
}
level
string
= 'debug'
Returns
void
Inherited from
internalLogError()
internalLogError(
err
):void
Defined in: core/actions/src/workflow-manager.ts:750
Log an error in the internal logger.
Parameters
err
Error
The error to log. the final log message will be:
{
actionRef: this.dbDoc.actionRef,
actionId: this.dbDoc._id.toString(),
filter: this.dbDoc.filter,
definedIn: this.dbDoc.definitionFrom.workflow ? this.dbDoc.definitionFrom.workflow.toObject() : undefined,
err: err,
timestamp: new Date().toISOString(),
}
#### Returns
`void`
#### Inherited from
[`Workflow`](Workflow.md).[`internalLogError`](Workflow.md#internallogerror)
***
### isActionActive()
> **isActionActive**(`action`): `boolean`
Defined in: [core/actions/src/workflow-manager.ts:219](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L219)
#### Parameters
##### action
[`Action`](Action.md)
#### Returns
`boolean`
#### Inherited from
[`Workflow`](Workflow.md).[`isActionActive`](Workflow.md#isactionactive)
***
### lastOutput()
> **lastOutput**(): `Promise`\<`any`\>
Defined in: [core/actions/src/coalescing-manager.ts:105](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/coalescing-manager.ts#L105)
#### Returns
`Promise`\<`any`\>
***
### main()
> **main**(): `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>
Defined in: [core/actions/src/workflow-manager.ts:314](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L314)
This method should launched the main action process
It is called only one time.
It returns a state value.
#### Returns
`Promise`\<[`ActionState`](../enumerations/ActionState.md)\>
#### Inherited from
[`Workflow`](Workflow.md).[`main`](Workflow.md#main)
***
### name()
> **name**(`name`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:171](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L171)
#### Parameters
##### name
`string`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`name`](Workflow.md#name)
***
### next()
> **next**(`cb`, `opts?`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:94](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L94)
#### Parameters
##### cb
(...`args`) => `void` \| [`Action`](Action.md) \| [`Action`](Action.md)[] \| `Promise`\<`void` \| [`Action`](Action.md) \| [`Action`](Action.md)[]\>
##### opts?
###### retry
`number`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`next`](Workflow.md#next)
***
### notifyHealth()
> **notifyHealth**(): `Promise`\<`any`\>
Defined in: [core/actions/src/action-manager.ts:956](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L956)
#### Returns
`Promise`\<`any`\>
#### Inherited from
[`Workflow`](Workflow.md).[`notifyHealth`](Workflow.md#notifyhealth)
***
### once()
> **once**(`ref`, `opts`): `Promise`\<`unknown`\>
Defined in: [core/actions/src/coalescing-manager.ts:93](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/coalescing-manager.ts#L93)
#### Parameters
##### ref
`string`
##### opts
[`Action`](Action.md) |
\{ `init?`: () => `Promise`\<`any`\>; `main`: () => [`ActionState`](../enumerations/ActionState.md) \| `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>; `watcher?`: () => `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>; \}
###### init?
() => `Promise`\<`any`\>
###### main
() => [`ActionState`](../enumerations/ActionState.md) \| `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>
###### watcher?
() => `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>
| \{ `dynamicAction`: [`Action`](Action.md) \| () => [`Action`](Action.md); \} | () => `Promise`\<`any`\>
#### Returns
`Promise`\<`unknown`\>
***
### onComplete()
> **onComplete**(`cb`, `opts?`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:111](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L111)
#### Parameters
##### cb
(...`args`) => `void` \| [`Action`](Action.md) \| [`Action`](Action.md)[] \| `Promise`\<`void` \| [`Action`](Action.md) \| [`Action`](Action.md)[]\>
##### opts?
###### retry
`number`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`onComplete`](Workflow.md#oncomplete)
***
### onError()
> **onError**(`cb`, `opts?`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:102](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L102)
#### Parameters
##### cb
(...`args`) => `void` \| [`Action`](Action.md) \| [`Action`](Action.md)[] \| `Promise`\<`void` \| [`Action`](Action.md) \| [`Action`](Action.md)[]\>
##### opts?
###### retry
`number`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`onError`](Workflow.md#onerror)
***
### onErrorGoTo()
> **onErrorGoTo**(`name`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:214](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L214)
#### Parameters
##### name
`string`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`onErrorGoTo`](Workflow.md#onerrorgoto)
***
### onMainTimeout()
> **onMainTimeout**(): [`ActionState`](../enumerations/ActionState.md) \| `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>
Defined in: [core/actions/src/workflow-manager.ts:669](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L669)
Called in case of timeout in `ActionState.EXECUTING_MAIN` state.
It can return `ActionState.SLEEPING` if the process infers
that `main()` has not run and the action must be retried.
#### Returns
[`ActionState`](../enumerations/ActionState.md) \| `Promise`\<[`ActionState`](../enumerations/ActionState.md)\>
a `ActionState` value.
#### Inherited from
[`Workflow`](Workflow.md).[`onMainTimeout`](Workflow.md#onmaintimeout)
***
### onSuccessGoTo()
> **onSuccessGoTo**(`name`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:209](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L209)
#### Parameters
##### name
`string`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`onSuccessGoTo`](Workflow.md#onsuccessgoto)
***
### repeatDo()
#### Call Signature
> **repeatDo**\<`T`\>(`ref`, `cb`, `repeat`): `DoPromise`\<`T`\>
Defined in: [core/actions/src/workflow-manager.ts:638](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L638)
Repeats a do a number of times.
##### Type Parameters
###### T
`T`
##### Parameters
###### ref
`string`
the step reference of the action to repeat
###### cb
() => `Promise`\<`T`\>
a callback that returns a promise
###### repeat
`object` & `object`
an object containing the number of times to repeat the action
##### Returns
`DoPromise`\<`T`\>
a promise that resolves with the result of the last action
##### Inherited from
[`Workflow`](Workflow.md).[`repeatDo`](Workflow.md#repeatdo)
#### Call Signature
> **repeatDo**\<`T`\>(`ref`, `opts`, `repeat`): `DoPromise`\<`T`\>
Defined in: [core/actions/src/workflow-manager.ts:639](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L639)
Repeats a do a number of times.
##### Type Parameters
###### T
`T`
##### Parameters
###### ref
`string`
the step reference of the action to repeat
###### opts
() => `Promise`\<`T`\>
###### repeat
`object` & `object`
an object containing the number of times to repeat the action
##### Returns
`DoPromise`\<`T`\>
a promise that resolves with the result of the last action
##### Inherited from
[`Workflow`](Workflow.md).[`repeatDo`](Workflow.md#repeatdo)
***
### resolveDynamicActionFinding()
> **resolveDynamicActionFinding**(): `void`
Defined in: [core/actions/src/workflow-manager.ts:244](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L244)
#### Returns
`void`
#### Inherited from
[`Workflow`](Workflow.md).[`resolveDynamicActionFinding`](Workflow.md#resolvedynamicactionfinding)
***
### resume()
> **resume**(): `Promise`\<`any`\>
Defined in: [core/actions/src/action-manager.ts:631](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L631)
The function resumes the action by calling the appropriate executor if needed and then by calling the appropriate function depending on the current
state of the action
#### Returns
`Promise`\<`any`\>
A promise. You can not rely on this to know when an action is finished.
#### Inherited from
[`Workflow`](Workflow.md).[`resume`](Workflow.md#resume)
***
### resyncWithDb()
> **resyncWithDb**(): `Promise`\<`void`\>
Defined in: [core/actions/src/action-manager.ts:340](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L340)
Update the current model instance with latest data from database
#### Returns
`Promise`\<`void`\>
a promise that resolves when the document has been loaded
#### Inherited from
[`Workflow`](Workflow.md).[`resyncWithDb`](Workflow.md#resyncwithdb)
***
### rollback()
> **rollback**(`cb`, `opts?`): `CoalescingWorkflow`
Defined in: [core/actions/src/workflow-manager.ts:162](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L162)
#### Parameters
##### cb
(...`args`) => `void` \| [`Action`](Action.md) \| [`Action`](Action.md)[] \| `Promise`\<`void` \| [`Action`](Action.md) \| [`Action`](Action.md)[]\>
##### opts?
###### retry
`number`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`rollback`](Workflow.md#rollback)
***
### save()
> **save**(`params`): `any`
Defined in: [core/actions/src/coalescing-manager.ts:38](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/coalescing-manager.ts#L38)
Save an action in the database. Will then be managed by the worker.
#### Parameters
##### params
###### isNew
`boolean` = `...`
###### nCall
`number` = `0`
#### Returns
`any`
a promise that resolves when the action has been saved
#### Overrides
[`Workflow`](Workflow.md).[`save`](Workflow.md#save)
***
### setArgument()
> **setArgument**(`args`): `CoalescingWorkflow`
Defined in: [core/actions/src/action-manager.ts:420](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L420)
Set the `argument` that will be stored in the database.
Once set, the argument of an action should not be modified.
#### Parameters
##### args
`JSONObject`
The argument to set.
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`setArgument`](Workflow.md#setargument)
***
### setExecutor()
> **setExecutor**(): `void` \| [`Executor`](Executor.md) \| `Promise`\<`void` \| [`Executor`](Executor.md)\>
Defined in: [core/actions/src/action-manager.ts:547](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L547)
Set the executor for this action.
It is called only once when the action is created.
If you want to set an executor, you should override this method.
#### Returns
`void` \| [`Executor`](Executor.md) \| `Promise`\<`void` \| [`Executor`](Executor.md)\>
a promise that resolves when you have set the executor is set
#### Inherited from
[`Workflow`](Workflow.md).[`setExecutor`](Workflow.md#setexecutor)
***
### setFilter()
> **setFilter**(`filter`): `CoalescingWorkflow`
Defined in: [core/actions/src/action-manager.ts:452](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L452)
Make filtering actions easier with the `filter` property.
These filters are stored in database with
the `filter` property and allow to search for
an action or a group of actions
#### Parameters
##### filter
`Object`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`setFilter`](Workflow.md#setfilter)
***
### setRepeat()
> **setRepeat**(`opts`): `CoalescingWorkflow`
Defined in: [core/actions/src/action-manager.ts:436](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L436)
Configure the number of times an action is repeated.
#### Parameters
##### opts
###### 4?
`number`
###### 5?
`number`
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`setRepeat`](Workflow.md#setrepeat)
***
### setResult()
> **setResult**(...`results`): `CoalescingWorkflow`
Defined in: [core/actions/src/action-manager.ts:462](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L462)
Set the action result.
#### Parameters
##### results
...`any`[]
#### Returns
`CoalescingWorkflow`
#### Inherited from
[`Workflow`](Workflow.md).[`setResult`](Workflow.md#setresult)
***
### startAction()
> `protected` **startAction**(`ref`, `action`): `Promise`\<`void`\>
Defined in: [core/actions/src/workflow-manager.ts:409](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L409)
#### Parameters
##### ref
`string`
##### action
[`Action`](Action.md)
#### Returns
`Promise`\<`void`\>
#### Inherited from
[`Workflow`](Workflow.md).[`startAction`](Workflow.md#startaction)
***
### startActionTransaction()
> `protected` **startActionTransaction**(`ref`, `action`): `Promise`\<`any`[]\>
Defined in: [core/actions/src/workflow-manager.ts:381](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L381)
#### Parameters
##### ref
`string`
##### action
[`Action`](Action.md)
#### Returns
`Promise`\<`any`[]\>
#### Inherited from
[`Workflow`](Workflow.md).[`startActionTransaction`](Workflow.md#startactiontransaction)
***
### stringifyIdentity()
> **stringifyIdentity**(): `string`
Defined in: [core/actions/src/coalescing-manager.ts:21](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/coalescing-manager.ts#L21)
#### Returns
`string`
***
### substitute()
> **substitute**(`otherPendingActionsWithSameIdentity`): [`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`JSONObject`, \{ `actions`: \{[`key`: `string`]: `object`; \}; `currentStepIndex?`: `number`; `currentStepName?`: `string`; `currentTrackIds`: `string`[]; `getNextStepAttemp`: `number`; `isRollBackPossible`: `boolean`; `nTimesCurrentStep`: `number`; `oldResult`: [`StepResult`](../type-aliases/StepResult.md)[]; `preserveOldResult`: [`StepResult`](../type-aliases/StepResult.md)[]; `registeredActions`: `object`[]; `stepsHistory`: `number`[]; \}, `void` \| `Error` \| `JSONObject`\>
Defined in: [core/actions/src/coalescing-manager.ts:34](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/coalescing-manager.ts#L34)
#### Parameters
##### otherPendingActionsWithSameIdentity
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`JSONObject`, \{ `actions`: \{[`key`: `string`]: `object`; \}; `currentStepIndex?`: `number`; `currentStepName?`: `string`; `currentTrackIds`: `string`[]; `getNextStepAttemp`: `number`; `isRollBackPossible`: `boolean`; `nTimesCurrentStep`: `number`; `oldResult`: [`StepResult`](../type-aliases/StepResult.md)[]; `preserveOldResult`: [`StepResult`](../type-aliases/StepResult.md)[]; `registeredActions`: `object`[]; `stepsHistory`: `number`[]; \}, `void` \| `Error` \| `JSONObject`\>[]
#### Returns
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`JSONObject`, \{ `actions`: \{[`key`: `string`]: `object`; \}; `currentStepIndex?`: `number`; `currentStepName?`: `string`; `currentTrackIds`: `string`[]; `getNextStepAttemp`: `number`; `isRollBackPossible`: `boolean`; `nTimesCurrentStep`: `number`; `oldResult`: [`StepResult`](../type-aliases/StepResult.md)[]; `preserveOldResult`: [`StepResult`](../type-aliases/StepResult.md)[]; `registeredActions`: `object`[]; `stepsHistory`: `number`[]; \}, `void` \| `Error` \| `JSONObject`\>
***
### toPromise()
> `protected` **toPromise**(`ref`, `dbDoc`): `DoPromise`\<`unknown`\>
Defined in: [core/actions/src/workflow-manager.ts:450](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L450)
#### Parameters
##### ref
`string`
##### dbDoc
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)
#### Returns
`DoPromise`\<`unknown`\>
#### Inherited from
[`Workflow`](Workflow.md).[`toPromise`](Workflow.md#topromise)
***
### transform()
> **transform**(`ref`, `action`): [`Action`](Action.md)
Defined in: [core/actions/src/workflow-manager.ts:90](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L90)
Proxy that will be called before the start of any action.
Use this method to transform any action before it is started.
#### Parameters
##### ref
`string`
the step reference of the action to transform
##### action
[`Action`](Action.md)
the action to transform
#### Returns
[`Action`](Action.md)
the transformed action
#### Inherited from
[`Workflow`](Workflow.md).[`transform`](Workflow.md#transform)
***
### watcher()
> **watcher**(): `Promise`\<[`IN_PROGRESS`](../enumerations/ActionState.md#in_progress) \| [`PAUSED`](../enumerations/ActionState.md#paused)\>
Defined in: [core/actions/src/workflow-manager.ts:674](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L674)
Watch the action state.
It is called :
- potentially many times when the action is in `IN_PROGRESS` state
- one time if the action is in `EXECUTING_MAIN` state and the executing_main delay has expired.
#### Returns
`Promise`\<[`IN_PROGRESS`](../enumerations/ActionState.md#in_progress) \| [`PAUSED`](../enumerations/ActionState.md#paused)\>
promise
#### Inherited from
[`Workflow`](Workflow.md).[`watcher`](Workflow.md#watcher)
***
### \_constructFromDb()
> `static` **\_constructFromDb**(`actionDb`): [`Action`](Action.md)
Defined in: [core/actions/src/action-manager.ts:259](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L259)
Construct an action from a document stored in the database.
#### Parameters
##### actionDb
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`\>
a document coming from the database
#### Returns
[`Action`](Action.md)
an action for which dbDoc property is equal to actionDb
#### Inherited from
[`Workflow`](Workflow.md).[`_constructFromDb`](Workflow.md#_constructfromdb)
***
### \_constructFromWorkflow()
> `static` **\_constructFromWorkflow**(`dbDoc`): `Promise`\<[`Action`](Action.md)\>
Defined in: [core/actions/src/action-manager.ts:284](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L284)
Construct an action from a document stored in the database and whose definition depends on a workflow.
#### Parameters
##### dbDoc
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`\>
#### Returns
`Promise`\<[`Action`](Action.md)\>
an action for which dbDoc property is equal to actionDb
#### Inherited from
[`Workflow`](Workflow.md).[`_constructFromWorkflow`](Workflow.md#_constructfromworkflow)
***
### constructFromDb()
> `static` **constructFromDb**(`actionDb`): `Promise`\<[`Action`](Action.md)\>
Defined in: [core/actions/src/action-manager.ts:308](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L308)
Construct an action from a document stored in the database.
#### Parameters
##### actionDb
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`\>
a document coming from the database
#### Returns
`Promise`\<[`Action`](Action.md)\>
an action for which dbDoc property is equal to actionDb
#### Inherited from
[`Workflow`](Workflow.md).[`constructFromDb`](Workflow.md#constructfromdb)
***
### findPendingWorkflowUsingAction()
> `static` **findPendingWorkflowUsingAction**(`actionDbDoc`): `Query`\<[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`, `any`, `any`\> & `object`[], [`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`, `any`, `any`\> & `object`, \{ \}, [`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`, `any`, `any`\>\>
Defined in: [core/actions/src/workflow-manager.ts:722](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/workflow-manager.ts#L722)
#### Parameters
##### actionDbDoc
[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)
#### Returns
`Query`\<[`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`, `any`, `any`\> & `object`[], [`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`, `any`, `any`\> & `object`, \{ \}, [`ActionSchemaInterface`](../interfaces/ActionSchemaInterface.md)\<`any`, `any`, `any`\>\>
#### Inherited from
[`Workflow`](Workflow.md).[`findPendingWorkflowUsingAction`](Workflow.md#findpendingworkflowusingaction)
***
### reject()
> `static` **reject**(`result?`): [`RejectAction`](RejectAction.md)
Defined in: [core/actions/src/action-manager.ts:368](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L368)
Return a new [RejectAction](RejectAction.md) object.
#### Parameters
##### result?
`any`
action result
#### Returns
[`RejectAction`](RejectAction.md)
new `RejectAction`instance
#### Inherited from
[`Workflow`](Workflow.md).[`reject`](Workflow.md#reject)
***
### resolve()
> `static` **resolve**(`result?`): [`ResolveAction`](ResolveAction.md)
Defined in: [core/actions/src/action-manager.ts:357](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L357)
Return a new [ResolveAction](ResolveAction.md) object.
#### Parameters
##### result?
`any`
action result
#### Returns
[`ResolveAction`](ResolveAction.md)
new `ResolveAction`instance
#### Inherited from
[`Workflow`](Workflow.md).[`resolve`](Workflow.md#resolve)
***
### trackActionAsPromise()
> `static` **trackActionAsPromise**(`action`, `states`): `Promise`\<`unknown`\>
Defined in: [core/actions/src/action-manager.ts:939](https://github.com/LaWebcapsule/orbits/blob/fe8dcb1188ab918c1e9afe6dfb1229f9418f1da3/core/actions/src/action-manager.ts#L939)
Track an action until it reaches one of the given states.
#### Parameters
##### action
[`Action`](Action.md)
The action to track.
##### states
[`ActionState`](../enumerations/ActionState.md)[] = `...`
The states to reach.
#### Returns
`Promise`\<`unknown`\>
A promise that resolves when the action reaches one of the given states. The promise resolves with the state reached.
#### Inherited from
[`Workflow`](Workflow.md).[`trackActionAsPromise`](Workflow.md#trackactionaspromise)