# action.create

### Описание

`оъект action.create(объект/массив действия)`

Этот метод позволяет создавать новые действия.

### Параметры

`(объект/массив)` Создаваемые действия.

В дополнение к [стандартным свойствам действия](object#действие), этот
метод принимает следующие параметры.

|Параметр|Тип|Описание|
|----------------|------|----------------|
|filter|объект|Объект фильтра действия для действия.|
|**operations**<br>(требуется)|массив|Создаваемые операции действия для действия.|
|recovery\_operations|массив|Создаваемые операции о восстановлении для действия.|
|acknowledge\_operations|массив|Создаваемые операции о подтверждении для действия.|

### Возвращаемые значения

`(объект)` Возвращает объект, который содержит ID созданных действий под
свойством `actionids`. Порядок возвращаемых ID совпадает с порядком
переданных действий.

### Примеры

#### Создание действия для триггеров

Создание действия, которое будет запущено, когда триггер с узла сети
"10084", который имеет слово "memory" в своём имени, перейдёт в
состояние проблемы. Действие сначала должно отправить сообщение всем
пользователям из группы пользователей "7". Если событие не решено за 4
минуты, действие выполнит скрипт "3" на всех узлах сети из группы "2".
На восстановление триггера действие отправит оповещение всем
пользователям, кто получал любые сообщения о проблеме ранее. На
подтверждение триггера будет отправлено сообщение с пользовательской
темой и сообщением всем, кто оставлял подтверждения и комментарии, при
помощи всех типов способов оповещения.

Запрос:

``` {.java}
<code java>
{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Trigger action",
        "eventsource": 0,
        "status": 0,
        "esc_period": "2m",
        "def_shortdata": "{TRIGGER.NAME}: {TRIGGER.STATUS}",
        "def_longdata": "{TRIGGER.NAME}: {TRIGGER.STATUS}\r\nLast value: {ITEM.LASTVALUE}\r\n\r\n{TRIGGER.URL}",
        "filter": {
            "evaltype": 0,
            "conditions": [
                {
                    "conditiontype": 1,
                    "operator": 0,
                    "value": "10084"
                },
                {
                    "conditiontype": 3,
                    "operator": 2,
                    "value": "memory"
                }
            ]
        },
        "operations": [
            {
                "operationtype": 0,
                "esc_period": "0s",
                "esc_step_from": 1,
                "esc_step_to": 2,
                "evaltype": 0,
                "opmessage_grp": [
                    {
                        "usrgrpid": "7"
                    }
                ],
                "opmessage": {
                    "default_msg": 1,
                    "mediatypeid": "1"
                }
            },
            {
                "operationtype": 1,
                "esc_step_from": 3,
                "esc_step_to": 4,
                "evaltype": 0,
                "opconditions": [
                    {
                        "conditiontype": 14,
                        "operator": 0,
                        "value": "0"
                    }
                ],
                "opcommand_grp": [
                    {
                        "groupid": "2"
                    }
                ],
                "opcommand": {
                    "type": 4,
                    "scriptid": "3"
                }
            }
        ],
        "recovery_operations": [
            {
                "operationtype": "11",
                "opmessage": {
                    "default_msg": 1
                }
            }       
        ],
        "acknowledge_operations": [
            {
                "operationtype": "12",
                "opmessage": {
                    "message": "Custom acknowledge operation message body",
                    "subject": "Custom acknowledge operation message subject"
                }
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Ответ:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            "17"
        ]
    },
    "id": 1
}
```

#### Создание действия на обнаружение

Создание действия, которое присоединит обнаруженные узлы сети к шаблону
"10091".

Запрос:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Discovery action",
        "eventsource": 1,
        "status": 0,
        "esc_period": "0s",
        "filter": {
            "evaltype": 0,
            "conditions": [
                {
                    "conditiontype": 21,
                    "value": "1"
                },
                {
                    "conditiontype": 10,
                    "value": "2"
                }
            ]
        },
        "operations": [
            {
                "esc_step_from": 1,
                "esc_period": "0s",
                "optemplate": [
                    {
                        "templateid": "10091"
                    }
                ],
                "operationtype": 6,
                "esc_step_to": 1
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Ответ:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            "18"
        ]
    },
    "id": 1
}
```

#### Использование фильтрации при помощи пользовательского выражения

Создание действия на триггеры, которое будет использовать
пользовательское условие фильтрации. Действие должно отправлять
сообщение по каждому триггеру с выжностью выше или идентичной
"Предупреждению" по узлам сети "10084" и "10106". ID "A", "B" и "C" в
формуле были выбраны случайно.

Запрос:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Trigger action",
        "eventsource": 0,
        "status": 0,
        "esc_period": "2m",
        "def_shortdata": "{TRIGGER.NAME}: {TRIGGER.STATUS}",
        "def_longdata": "{TRIGGER.NAME}: {TRIGGER.STATUS}\r\nLast value: {ITEM.LASTVALUE}\r\n\r\n{TRIGGER.URL}",
        "filter": {
            "evaltype": 3,
            "formula": "A and (B or C)",
            "conditions": [
                {
                    "conditiontype": 4,
                    "operator": 5,
                    "value": "2",
                    "formulaid": "A"
                },
                {
                    "conditiontype": 1,
                    "operator": 0,
                    "value": "10084",
                    "formulaid": "B"
                },
                {
                    "conditiontype": 1,
                    "operator": 0,
                    "value": "10106",
                    "formulaid": "C"
                }
            ]
        },
        "operations": [
            {
                "operationtype": 0,
                "esc_period": "0s",
                "esc_step_from": 1,
                "esc_step_to": 2,
                "evaltype": 0,
                "opmessage_grp": [
                    {
                        "usrgrpid": "7"
                    }
                ],
                "opmessage": {
                    "default_msg": 1,
                    "mediatypeid": "1"
                }
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Ответ:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            "18"
        ]
    },
    "id": 1
}
```

### Смотрите также

-   [Фильтр действия](object#фильтр_действия)
-   [Операция действия](object#операция_действия)

### Исходный код

CAction::create() в
*frontends/php/include/classes/api/services/CAction.php*.
