Поднятие событий в KRL без использования явных - PullRequest
1 голос
/ 28 февраля 2012

Я пишу приложение, которое вызывает события, подобно тому, как работает приложение менеджера персональных данных Фила Виндли .Однако, если я пытаюсь использовать любой домен событий, кроме explicit, события не распространяются.Следующие правила прекрасно работают с explicit в качестве домена, но не с driverreg.

rule driver_info_submit {
    select when web pageview ".*"
    pre {
        driver_name = "Joe Driver";
        driver_phone = "111-555-1212";
        msg = <<
            Current driver info: #{ent:driver_name}, #{ent:driver_phone}
        >>;
    }
    notify("Started", msg);
    fired {
        raise explicit event new_driver_data with driver_name=driver_name and driver_phone=driver_phone;
    }
}

// Save driver name
rule save_driver_name {
    select when explicit new_driver_data
    pre {
        driver_name = event:param("driver_name") || ent:driver_name;
        driver_phone = event:param("driver_phone") || ent:driver_phone;
    }
    noop();
    always {
        set ent:driver_name driver_name;
        set ent:driver_phone driver_phone;
        raise explicit event driver_data_updated;
    }
}

rule driver_info_updated {
    select when explicit driver_data_updated
    {
        notify("Driver name", ent:driver_name);
        notify("Driver phone", ent:driver_phone);
    }
}

Похоже, проблема не в том, развернуто ли приложение, как я пыталсяэто оба пути.Чего мне не хватает?

1 Ответ

2 голосов
/ 28 февраля 2012

Только определенные домены разрешены в качестве доменов в операторе поднятия:

  • явный
  • http
  • system
  • уведомление
  • ошибка
  • пдс

Это может быть смягчено в будущем.

Это описано в документах здесь: https://kynetxdoc.atlassian.net/wiki/display/docs/Raising+Explicit+Events+in+the+Postlude (обратите внимание, что это временный дом для документации)

...