ru:manual:api:reference:action:create

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ru:manual:api:reference:action:create [2019/01/28 14:51]
sasha <code js> => <code java>
ru:manual:api:reference:action:create [2021/04/19 18:13] (current)
martins-v fixing inconsistent entity names in the example
Line 1: Line 1:
 +===== action.create =====
  
 +==== Описание ====
 +
 +''​оъект action.create(объект/​массив **действия**)''​
 +
 +Этот метод позволяет создавать новые действия.
 +
 +==== Параметры ====
 +
 +''​(объект/​массив)''​ Создаваемые действия.
 +
 +В дополнение к [[object#​действие|стандартным свойствам действия]],​ этот метод принимает следующие параметры.
 +
 +^ Параметр ^ Тип ^ Описание ^
 +| filter | объект | Объект фильтра действия для действия. |
 +| **operations** \\ (требуется) | массив | Создаваемые операции действия для действия. |
 +| recovery_operations | массив | Создаваемые операции о восстановлении для действия. |
 +| acknowledge_operations | массив | Создаваемые операции о подтверждении для действия. |
 +
 +==== Возвращаемые значения ====
 +
 +''​(объект)''​ Возвращает объект,​ который содержит ID созданных действий под свойством ''​actionids''​. Порядок возвращаемых ID совпадает с порядком переданных действий.
 +
 +==== Примеры ====
 +
 +=== Создание действия для триггеров ===
 +
 +Создание действия,​ которое будет запущено,​ когда триггер с узла сети "​10084",​ который имеет слово "​memory"​ в своём имени, перейдёт в состояние проблемы. Действие сначала должно отправить сообщение всем пользователям из группы пользователей "​7"​. Если событие не решено за 4 минуты,​ действие выполнит скрипт "​3"​ на всех узлах сети из группы "​2"​. На восстановление триггера действие отправит оповещение всем пользователям,​ кто получал любые сообщения о проблеме ранее. На подтверждение триггера будет отправлено сообщение с пользовательской темой и сообщением всем, кто оставлял подтверждения и комментарии,​ при помощи всех типов способов оповещения.
 +
 +Запрос:​
 +<code 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
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            "​17"​
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +=== Создание действия на обнаружение ===
 +
 +Создание действия,​ которое присоединит обнаруженные узлы сети к шаблону "​10091"​.
 +
 +Запрос:​
 +<code 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
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            "​18"​
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +=== Использование фильтрации при помощи пользовательского выражения ===
 +
 +Создание действия на триггеры,​ которое будет использовать пользовательское условие фильтрации. Действие должно отправлять сообщение по каждому триггеру с выжностью выше или идентичной ​ "​Предупреждению"​ по узлам сети "​10084"​ и "​10106"​. ID "​A",​ "​B"​ и "​C"​ в формуле были выбраны случайно.
 +
 +Запрос:​
 +<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":​ 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
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            "​18"​
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +==== Смотрите также ====
 +
 +  * [[object#​фильтр_действия|Фильтр действия]]
 +  * [[object#​операция_действия|Операция действия]]
 +
 +==== Исходный код ====
 +
 +CAction::​create() в //​frontends/​php/​include/​classes/​api/​services/​CAction.php//​.