我正在使用WODM规则设计器V7.5,我的XOM是一个XSD
我应该将交易日期与当前日期进行比较,所以如果客户进行交易,他的账户到期日期应该增加一年!
日期在我的XOM是字符串,所以在BOM的BOM TO XOM MAPPING部分我创建了2个方法:
-
以字符串形式返回实际日期,表示为:日历上的今天
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); String s = dateFormat.format(date); return s;
-
接受字符串,将其转换为日期格式,在年份上加1并返回字符串,表示为:{this} NewDate ({0})
String[] splitdata = d1.split("-"); int month = Integer.parseInt(splitdata[0]); int day = Integer.parseInt(splitdata[1]); int year = Integer.parseInt(splitdata[2]); Calendar cal = Calendar.getInstance(); cal.set(year, month, day); Date date = cal.getTime(); date.setYear(date.getYear() + 1); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String s = dateFormat.format(date); return s;
规则如下:
definitions
set 'variable1' to calendar NewDate (the transaction date of transaction) ;
if
the transaction date of transaction is today on the calendar
then
set the expiration date of account to variable1 ;
我像这样输入交易日期:"2013-05-13",我期望在截止日期变量中:"2014-05-13",但是我得到了这个0181-10-05
有人能帮忙吗?谢谢。
您分割字符串的方式是错误的,因为年份作为第一个字段输入,并且您试图从该字段获取日期,这是字段的顺序问题。
本质上,你的代码应该包含(注意索引):int month=Integer.parseInt(splitdata[1]);
int day=Integer.parseInt(splitdata[2]);
int year=Integer.parseInt(splitdata[0]);