CMIS:选择日期列表包含不适合更新文档的值

时间:2017-05-18 08:57:44

标签: java alfresco cmis apache-chemistry

这个问题是Alfresco Community中的问题的副本。

在我们公司,我们使用Alfresco添加了新的TestModel和ListDate属性。 alfresco model

接下来,我们使用CMIS Apache Chemistry连接器返回选项列表: idea runtime

如果选择其中一个值进行更新,则会显示错误。例如,如果我们选择第一个(2001-01-05 = 2001年1月5日)

HTTP Status 409 - constraint
Constraint violation: 0418520046 Found 1 integrity violations:
Invalid property value: 
Node: workspace://SpacesStore/eaf740b4-d22a-415a-9ca7-f58a8e115dbb
Name: vzv_diff
Type: {TestModel}DiffProperties
Property: {TestModel}ListDate
Constraint: 0418520045 The value is not an allowed value: 1/5/01 12:00 AM

细节中的第一个值:

java.util.GregorianCalendar[
time=978681600000,
areFieldsSet=true,
areAllFieldsSet=true,
lenient=true,
zone=sun.util.calendar.ZoneInfo[id="GMT-08:00",offset=-28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,
ERA=1,
YEAR=2001,
MONTH=0,
WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,
DAY_OF_MONTH=5,DAY_OF_YEAR=5,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,
AM_PM=0,
HOUR=0,HOUR_OF_DAY=0,
MINUTE=0,
SECOND=0,
MILLISECOND=0,
ZONE_OFFSET=-28800000,DST_OFFSET=0]

值得注意的是,在“客户端机器”上用utc +3调整时间,  而在“服务器(实际安装Alfresco)” - utc -8。

我们的假设是Alfresco预计从上午0点或下午0点开始,而上午12点是从UTC比例汇总的。 尽管这种情况已经很奇怪,但在更新之前以任何方式调整该值的时间根本没有帮助。 比方说,设定几小时

calendar.add(Calendar.HOUR_OF_DAY, 12);

结果

HTTP Status 409 - constraint
Constraint violation: 0418520818 Found 1 integrity violations:
Invalid property value: 
   Node: workspace://SpacesStore/eaf740b4-d22a-415a-9ca7-f58a8e115dbb
   Name: vzv_diff
   Type: {TestModel}DiffProperties
   Property: {TestModel}ListDate
   Constraint: 0418520817 The value is not an allowed value: 1/5/01 12:00 PM

Apache Workbench的行为方式相同(但它没有选择):workbench 这里没有变体适合。

我们一直在努力解决这个问题,但没有成功。

请帮忙。 感谢。

1 个答案:

答案 0 :(得分:1)

该属性具有约束值。您对约束的理解有误。如果要添加列表约束,则无法添加未列出的值。

因此,除了列出的值之外,您无法添加日期值。您需要删除约束,只需选择数据类型作为日期。

在d:date类型中添加约束会出错.Below是相同的原因。

<强>更新

首先,它会检查,而保存值是值列表,如果您传递2001-01-05作为值,而不是在约束的情况下允许,但因为它是一个字符串值,它将不允许保存d:date。第二件事,如果你传递了java的日期对象,那么应用约束的相等比较就会失败。所以你在这种情况下有2个选项。

  1. 将d:date更改为d:text
  2. 删除约束。