This service is used to manage WCM actions (with nodetype {{exo:action}}).

_Package org.exoplatform.services.cms.actions.ActionServiceContainer_

|| *Method* ||*Param* || *Return*  || *Description* ||
| *getActionPluginNames*()|N/A| Collection<String> - Collection of ActionPlugin names | The collection of String.|
| *getActionPlugin*(String actionServiceName) |{{actionServiceName}} - the name of the action service. | ActionPlugin |  Get ActionPlugin by following ActionServiceName. |
| *getActionPluginForActionType*(String actionTypeName)| {{actionTypeName}} - the name of action type. | ActionPlugin| Get ActionPlugin by following action type name. |
| *createActionType*(String actionTypeName, String parentActionTypeName, String executable, List<String> variableNames, boolean isMoveType, String repository) throws Exception| {{actionTypeName}} - the name of action type. {example}{example}  {{parentActionTypeName}} - the name of parent action {example}{example}  {{executable}} - String value of executable. {example}{example} {{variableNames}} - the name list name of variables. {example}{example} {{isMoveType}} - is moved or not. {example}{example} {{repository}} - the repository name. | void | Create NodeTypeValue that is in kind of ActionType following action type name.|
| *getCreatedActionTypes*(String repository) throws Exception}} | {{repository}} | Collection<NodeType>| Get all created nodes with nodetype = exo:action.|
| *getAction*(Node node, String actionName) throws Exception |{{node}} - the current processing node. {example}{example} {{actionName}} - the name of action.| Node  | Get nodes by using actionName as a relative path with the current node. |
| *hasActions*(Node node) throws Exception |{{node}}| boolean| Check if node type is exo:actionable or not.|
| *getActions*(Node node) throws Exception |{{node}} - the current node.| List<Node> | Get a list of child nodes with NodeType = exo:action. |
| *getCustomActionsNode*(Node node, String lifecyclePhase) throws Exception | {{node}} - the current node. {example}{example} {{lifecyclePhase}} - the exo:lifecyclePhase value. | List<Node> | Get a list of nodes that have the same level with the current node, exo:lifecyclePhase = lifecyclePhase. |
| *getActions*(Node node, String lifecyclePhase) throws Exception | {{List<Node>}} | Get a list of child nodes with exo:lifecyclePhase = lifecyclePhase. {example}{example} @param node: current node {example}{example} @param lifecyclePhase exo:lifecyclePhase value {example}{example} @return list of node {example}{example} @throws Exception |
| *removeAction*(Node node, String repository) throws Exception |{example}{example} @param node {example}{example}  @param repository {example}{example} @throws Exception  | void | Remove all actions registered in a node.|
| *removeAction*(Node node, String actionName, String repository) throws Exception |{example}{example} @param node: current node {example}{example} @param actionName relative path = exo:actionable / actionName {example}{example} @param repository repository name {example}{example} @throws Exception  | void {{removeAction}} | Remove all relative nodes of the current node with the node type = exo:actionable. |
| *addAction*(Node node, String repository, String type, Map mappings) throws Exception | |void | {example}{example} @param node: current node {example}{example} @param repository: current repository {example}{example} @param type: nodetype name {example}{example} @param mappings: value of property for adding to new node {example}{example} @throws Exception  | Add mixintype = exo:actionable to current node. {example}{example} Adds a new node to the current node with the node type = type.|
| *addAction*(Node node, String repository, String type, boolean isDeep, String\[\] uuid, String\[\] nodeTypeNames, Map mappings) throws Exception|@param node: current node {example}{example} @param repository: current repository {example}{example} @param type: nodetype name {example}{example} @param isDeep: affect to child node of node {example}{example} @param uuid: affect only to parent node of event having given uuid {example}{example} @param nodeTypeNames: affect to parent node of event having nodetype in nodeTypeNames {example}{example} @param mappings: value of property for adding to new node {example}{example} @throws Exception  | void | Add mixintype = exo:actionable to the current node. {example}{example} Adds a new node to the current node with nodetype = type.|
| *executeAction*(String userId, Node node, String actionName, Map variables, String repository) throws Exception | {{userId}} - the identify. {example}{example} {{node}} - the current node. {example}{example}{{actionName}} - the name of action. {example}{example} {{variables}} - the map with variables and values. {example}{example} {{repository}} - the current repository.| void | Execute actions by following userId, node, variables, repository.|
| *executeAction*(String userId, Node node, String actionName, String repository) throws Exception | {{userId}} - the user identify .{example}{example} {{node}} - the current node. {example}{example}  {{actionName}} - the name of action. {example}{example} {{repository}} - the current repository. | void | Execute actions by following userId, node, repository, initiated variables. |
| *initiateObservation*(Node node, String repository) throws Exception | {{node}} - the current node. {example}{example} {{repository}} - the repository name. |void | Add the action listener for all action child nodes of the current node in the repository.|
| *init*(String repository) throws Exception |{{repository}} |void | Initialize the service with the repository name.|