CalculateMessageProperties#

Действие CalculateMessageProperties предназначено для вычисления и заполнения свойств сообщения.

Действие не заполняет nginx переменные.

Свойства, вычисленные в нем, доступны только на уровне дочерних действий в случае, если в них есть возможность работать с параметрами сообщения.

Параметры:

Название

Обязательность

Допустимые значения

Описание

calculate

+

Последовательность текстовых значений вида вида:<br {key: ключ,
val: значение_переменной}

Помимо стандартных переменных для вычисления значений параметров возможно использование следующих переменных:

  • переменные-функции для вычисления хэша сообщения: clj_message_property_hash_<hash_name>, где hash_name название любого хэша в реализации MessageDigest используемой java;

  • свойства сообщения, заполненные на предыдущих шагах действия или другими действиями - по префиксу clj_message_property_<property_name>.

Пример 1. Сохранение вложений.

Допустим, необходимо решить следующую задачу:

На вход приходит Multipart сообщение, из которого нужно извлечь все вложения и сохранить каждое вложение в файл.

Название файла должно содержать хэш сохраняемого вложения и переменную составляющую на случай, если несколько вложений будут иметь одинаковое содержимое

- action: MultipartExtract
    actions:
    # извлекаемых вложений может быть несколько, поэтому для каждого из них вычисляется свое значение filename
    - action: CalculateMessageProperties
      params:
        calculate:
          - key: filename
            val: $clj_message_property_hash_sha256$clj_random_int
      actions:
        # сохраняем каждое из вложений с названием, вычисленном на предыдущем шаге
        - action: MessageToFile
          params:
            path: /fir/
            filename: $clj_message_property_filename
  message: $clj_request_body

Пример 2. Вычисление нескольких свойств.

- action: CalculateMessageProperties
   id: cmp 
   params:
     calculate:
       - key: static_value
         val: static_value_test      
         # свойство myhash можно сразу использовать при вычислении следующего свойства - myhash4
       - key: myhash
         val: 123$clj_message_property_hash_md5$clj_message_property_hash_sha256
       - key: myhash4
         val: 123$clj_message_property_myhash
       - key: myrand
         val: 123$clj_random_int