У меня есть требование перебирать набор записей и сравнивать дату начала в каждой записи с текущей датой и выводить сообщение в части действия правила , Я пытаюсь выяснить, могу ли я использовать arraylist в правиле ILOG/ODM XOM и использовать его в правиле для циклического набора записей. Можете ли вы предложить мне лучший способ реализовать это требование.Использование Arraylist в ILOG/ODM для прокрутки набора записей
ответ
В разделе «Итерирование по входным параметрам» вы можете следовать инструкциям в блогах ODM на developerWorks.
Его можно найти здесь:
Iterating over Input Parameters
В основном вы собираетесь виртуальный метод для ArrayList, чтобы получить запись в частности, индекс цикла. Виртуальный метод будет выдавать запись перед ее возвратом, но оттуда вы должны иметь возможность выполнять любое правило для этого объекта.
Обратите внимание, что вы не можете использовать ArrayList в качестве входного параметра для Dynamic XOM, но вы можете использовать Arrays для входного параметра с Java XOM.
Да, вы можете использовать arraylist в правиле XOM и перебирать его в правиле. Предположим, что ваш проект правил принимает экземпляр вашего класса XOM в качестве входного параметра с помощью вербализации «test». У вас будет что-то вроде ниже.
XOM:
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class Test
{
private List<Record> recordList;
public Test()
{
}
public void setRecordList(List<Record> recordList)
{
this.recordList = recordList;
}
public List<Record> getRecordList()
{
return recordList;
}
public static int compareWithCurrentDate(Date date)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.compareTo(Calendar.getInstance());
}
}
import java.util.Date;
public class Record
{
private Date startDate;
public Record()
{
}
public void setStartDate(Date startDate)
{
this.startDate = startDate;
}
public Date getStartDate()
{
return startDate;
}
}
BOM вербализация:
# Record
Record#concept.label = record
Record.startDate#phrase.action = set the start date of {this} to {start date}
Record.startDate#phrase.navigation = {start date} of {this}
# Test
Test#concept.label = test
Test.compareWithCurrentDate(java.util.Date)#phrase.navigation = compare {0} with current date
Test.recordList#phrase.action = set the record list of {this} to {record list}
Test.recordList#phrase.navigation = {record list} of {this}
Правило:
definitions
set 'current record' to a record in the record lists of test ;
if
compare the start date of 'current record' with current date is not 0
then
print "" ;
Что такое сервер приложений и ODM версии? – JSR
Версия ODM - 8.1 – user2980176