4.7.1. Обработка внутренних событий в интерпретаторе¶
В скрипте интерпретатора есть возможность обработать события Synergy Событийная интеграция.
- В скрипте доступна переменная message, которая является объектом с двумя полями:
- content - строка, содержащая тело сообщения;
- props - map, содержащий значения свойств сообщения.
Добавим новый скрипт интерпретатора в Synergy IDE
В нашем случае скрипт будет выполняться при генерировании события добавления комментария в документ`event.comment.document.add`.
В скрипте пропишем код, который будет выводить в лог значения параметров события.
console.error("content {}", message.content);
console.error("props {}", message.props);
/*добавим значение в map*/
message.props.put("test", "test");
console.error("values {}", message.props.values());
var keys = message.props.keySet().toArray();
console.error("========================");
for (let i = 0; i < keys.length; i++) {
console.error("{} - {}", keys[i], message.props.get(keys[i]));
}
В результате выполнения скрипта при добавлении комментария в документ будут строки в логе:
12:25:57,592 ERROR [interpreter.event.comment.document.add] (...) content c0f39795-83c5-4f70-9043-b5dc8cec1e54
12:25:57,592 ERROR [interpreter.event.comment.document.add] (...) props {api_event=event.comment.document.add, JMSXDeliveryCount=1, documentID=759edb82-590b-40dd-ab62-620320937790, userID=1}
12:25:57,593 ERROR [interpreter.event.comment.document.add] (...) values [event.comment.document.add, 1, 759edb82-590b-40dd-ab62-620320937790, 1, test]
12:27:50,932 ERROR [interpreter.event.comment.document.add] (...) ========================
12:25:57,593 ERROR [interpreter.event.comment.document.add] (...) api_event - event.comment.document.add
12:25:57,594 ERROR [interpreter.event.comment.document.add] (...) JMSXDeliveryCount - 1
12:25:57,594 ERROR [interpreter.event.comment.document.add] (...) documentID - 759edb82-590b-40dd-ab62-620320937790
12:25:57,595 ERROR [interpreter.event.comment.document.add] (...) userID - 1
12:25:57,595 ERROR [interpreter.event.comment.document.add] (...) test - test
Логика
Если у названия скрипта префикс указанный в настройках, то он запускается по-старому (ожидая dataUUID, разблокировывая процессы и т.д.)
В остальных случаях выполняется запуск скрипта.
Это примерно то же, что и при тестовом запуске, только с проставленными свойствами из сообщения.
Название скрипта должно совпадать с событием Synergy, например, event.comment.document.add