Как вложить правила в HP Exstream?
Я использую HP Exstream (ранее Dialogue from Exstream Software) версии 5.0.x. Он имеет функцию для определения и сохранения логических выражений как "Правила".
Прошло около 6 лет с тех пор, как я использовал это, но кто-нибудь знает, можете ли вы определить правило в терминах другого правила? Во всплывающем окне есть "VB-подобный" язык, поэтому вы не обязаны использовать и / или формуляры переменных-реляционных выражений, но у меня нет удобной документации.:-(
Я хотел бы определить правило "NotFoo" в терминах "Foo" вместо того, чтобы повторять обратное. (Да, это было бы запоздалым, но это, вероятно, то, что я буду вынужден делать, как и в других примерах того, что я поддерживаю.) На самом деле, вложенные правила будут иметь много применений, если я смогу понять, как это сделать.
2 ответа
Позже я обнаружил, что в этом случае нужно создать пользовательские "функции", которые могут ссылаться друг на друга (если вы избегаете косвенной рекурсии). Затем используйте функции для определения "правил" (и, в большинстве случаев, даже не пользуйтесь "библиотечными" правилами вместо "встроенных" правил).
Я опаздываю на вопрос, но так как ты должен был ответить сам, есть лучший способ справиться с этим.
Проблема с использованием функций и тестированием результата состоит в том, что есть большая вероятность, что вы добавите ненужную обработку, потому что движок будет проходить через функцию каждый раз, когда она вызывается. Не большая проблема с простой функцией, но она может легко стать проблемой, если функция сложная, особенно если она вызывается в нескольких местах.
В зависимости от времени выполнения функции (вы не сказали, был ли это уровень выполнения, уровень клиента или специфический для конкретных документов), часто лучше, чтобы функция установила логическую переменную пользователя для сохранения результата, а не в вашей библиотеке. правила вы можете просто проверить значение переменной без необходимости каждый раз проходить через функцию.