Я использую IBM 8.9.2, и у нас есть сценарий, в котором мне нужно создать список X на основе значений из списка Y при группировании по этим значениям.Например, допустим, у меня есть список городов, и у каждого объекта City (в списке cityList ) есть атрибут - страна.Теперь я хочу инвертировать отношения и создать список стран , который состоит из Country объектов, имеющих список containsCities .
Моё правило
definitions
set 'cities' to all cities in cityList;
set 'a city' to a city in 'cities'
set 'countries' to all countries in countryList;
set 'a country' to a country in 'countries'
if
the country code of 'a city' is the country code of 'a country'
then
add 'a city' to the contained cities of 'a country' ; (** Assume B2X/XOM has method for adding the city to the country list)
else
create country for 'a city' and add it to countryList ; (** Assume appropriate B2X/XOM)
Добавление страны в countryList не будет обновлять ее состояние объекта и, следовательно, не будет повторно включать его в повестку дня для повторной оценки правил после выполнения правил для первого города cityList.В результате получается список стран с новым объектом Country, созданным для каждого города, а не для группы, которая была запланирована.Цель, к которой я стремлюсь, состоит в том, чтобы я вставил в память как cityList, так и countryList и включил Rete, чтобы сопоставление с образцом могло происходить на лету в памяти.Ищите указатели на то, как мне этого добиться.