1

こんにちは、助けてくれてありがとう

Alfresco でドキュメントの挿入と更新に問題があるため、"cmis:creationDate または cmis:lastModificationDate" のようなプロパティを設定すると、ドキュメントは正常に作成されますが、Updataability=ReadOnly を持つプロパティが新しい値に設定されません。 alfresco によって自動的に設定されるためです。これらのプロパティの更新可能性を「ReadWrite」に設定する解決策はありますか? 私はAalfresco 5.0とopenCmis 0.13を使用しています。これは私のコードです:

public void createDocument(Folder folder) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date d = sdf.parse("21/12/2012");
    String name = "myNewDocument.txt";
    Map<String, Object> properties = new HashMap<String, Object>();
    Calendar cal = new GregorianCalendar();
    cal.setTime(d);
    properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document,P:cm:titled,P:cm:author");
    properties.put(PropertyIds.NAME, name);
    properties.put(PropertyIds.CREATION_DATE, cal);
    properties.put(PropertyIds.LAST_MODIFICATION_DATE, cal);
    properties.put("cm:title", "Title");
    properties.put("cm:description", "Description");
    properties.put("cm:author", "author");
    properties.put("cmis:creationDate ", cal);
    byte[] content = "Hello World!".getBytes();
    InputStream stream = new ByteArrayInputStream(content);
    ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(content.length), "text/plain", stream);
    Document newDoc = folder.createDocument(properties, contentStream, VersioningState.MAJOR);
}
4

1 に答える 1

4

読み取り専用フィールドを更新するには、Alfresco 側での作業が必要です。cm:auditableアスペクトのプロパティが変更されないようにするポリシーが適用されています。

ポリシーの動作を無効にした後、NodeService API を使用して Alfresco のフィールドを更新できます。次に例を示します。

policyBehaviourFilter.disableBehaviour(node, ContentModel.ASPECT_AUDITABLE); 
// Update CreatedDate
nodeService.setProperty(node, ContentModel.PROP_CREATED, dateTime);
//Enable policy
policyBehaviourFilter.enableBehaviour(node, ContentModel.ASPECT_AUDITABLE);

これをカスタム Web スクリプトにパッケージ化して、プロパティをリモートで変更できるようにすることができます。

于 2016-02-10T13:52:49.010 に答える