【发布时间】:2021-08-14 08:14:50
【问题描述】:
SAP Commerce 1811
Impex -
INSERT_UPDATE Calendar ; code[unique=true] ; name[lang=en] ; year ; active[default=false]
; 10001 ; 2021 Public Holiday ; 2021 ; true
; 10002 ; 2021 Holiday ; 2021 ; true
我创建了一个验证拦截器,它可以确保一次只能激活一个日历。这意味着我们不能在同一年激活两个以上的日历。
final CalendarModel cal = calendarService.getActiveCalendar(calendar.getYear());
if (cal != null && !cal.equals(calendar))
{
throw new InterceptorException(
String.format("Only one Calendar can be active at a time for year %s", calendar.getYear()));
}
在这个 Impex 中,我插入了两个带有 active=true 的日历,并希望为其中一个条目提供验证异常。
由于在这个用例中,一个条目依赖于另一个条目,它在多线程的情况下不起作用(因为没有定义顺序)。
如果最大。线程设置为大于 1,我运行 impex,验证不起作用。我尝试用 1 个线程导入这个 impex,然后只有验证工作。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
我在 2005 年看不到 calendarService。如果是自定义服务,可能存在错误/缓存问题。
-
我不确定行为,你能在 impex 执行期间尝试使用翻译器吗?