4.7.1. Обработка внутренних событий в интерпретаторе

В скрипте интерпретатора есть возможность обработать события Synergy Событийная интеграция.

В скрипте доступна переменная message, которая является объектом с двумя полями:
  • content - строка, содержащая тело сообщения;
  • props - map, содержащий значения свойств сообщения.

Добавим новый скрипт интерпретатора в Synergy IDE

interpreter/../../_static/img/interpreter/interpreter_example.png

В нашем случае скрипт будет выполняться при генерировании события добавления комментария в документ`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]));
}
interpreter/../../_static/img/interpreter/interpreter_example1.png

В результате выполнения скрипта при добавлении комментария в документ будут строки в логе:

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