Site Logo

Verify

Группа: Прием и анализ входящих сообщений

Платформы: t0500, t0700, t1000

Синтаксис

Verify
  01 : <Адрес>
    Portocol.Message : 1
      [Param1 : <Значение1>
       ...]
    Реакция 1
  [02 : <Адрес>
    Portocol.Message : 1
      [Param1 : <Значение2>
       ...]
    Реакция 2
   ...]

Описание

Инструкция Verify позволяет производить контроль параметров сообщения-активатора или значений переменных контекста для определения дальнейшего пути выполнения обработчика. Конструкция может рассматриваться как селектор путей дальнейшего развития событий, работающий по принципу сопоставления с образцом. Каждая секция задает часть "если" правила, определяющего реакцию модуля на сообщение. Инструкция Verify позволяет контролировать тип, адрес источника и значения параметров сообщения-активатора. Допускает сравнение значений этих параметров со значениями переменных контекста, а также позволяет сохранять значения параметров сообщения-активатора для дальнейшего использования. Реакцией может быть как сохранение переменных, так и отправка сообщений.

  • Доступ к параметрам сообщения-активатора внутри текущего обработчика может быть осуществлен и через переменную ?activator.
  • Если адрес источника сообщения-активатора не имеет значения, то может быть использован символ * для подавления проверки.
  • Если поведение обработчика не зависит от сообщения-активатора или значений переменных контекста, инструкцию Verify можно опустить.
  • Допустимые конструкции в реакциях - Set, Send, Invoke, Raise

Примеры

Пример №1

EjectCaptureAnswerHandler
  Verify
    01 : <ContactReader>
      Drivers.CardReader.CaptureAnswer : 1
        Result : <CaptureResult.Captured> -> <CaptureResult>
      Send :  <PeerId>
        Service.Logic.CardReader.CaptureCardAnswer : 1
        Result : ?activator.Result
    02 : <ContactReader>
      Drivers.CardReader.CaptureAnswer : 1
        Result : -> <CaptureResult>
      Send :  <PeerId>
        Service.Logic.CardReader.CaptureCardAnswer : 1
          Result : ?activator.Result

Пример №2

CardInContactHandler
  Verify
    01  : -
      <CaptureResult> : <CaptureResult.Captured>
      Send : <ClientGate>
        Protocols.Eftpos.DeviceEvent : 2
          TerminalID  : <TerminalId>
          DeviceId    : <DeviceType.CardReader>
          EventId     : <DeviceEventType.CaptureCardInforming>
    02 : *
      Drivers.CardReader.CardCaptureAnswer : 1
      Send : <ClientGate>
        Protocols.Eftpos.DeviceEvent : 2
          TerminalID  : <TerminalId>
          DeviceId    : <DeviceType.CardReader>
          EventId     : <DeviceEventType.CardOut>

nclude/footer.tpl"); ?>