Загрузить дубликаты файлов с помощью CMIS API - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу загрузить два файла с одинаковыми именами в Alfresco Repository (я могу сделать это в Documentum), но я получаю исключение ниже, может кто-нибудь сказать мне, как я могу добиться этого, так как это мой бизнес-сценарий использования в какой пользователь может загрузить документ с таким же именем? Обратите внимание, что то же самое работает, как и ожидалось в Documentum.

[2/12/20 16:43:03:554 IST] 00000040 SystemErr     R org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException: An object with this name already exists: 01120277 File or folder Book_295_12.xlsx already exists
[2/12/20 16:43:03:555 IST] 00000040 SystemErr     R     at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:506)

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Мне кажется, не очень хорошая идея дублировать детские ассоциации. Является ли другая дочерняя ассоциация именем свойства.

Если вам нужно второе имя, почему бы не добавить это свойство в другом типе или аспекте?

Например:

        <type name="mycm:mytype">
            <title>Test</title>
            <parent>cm:content</parent>
            <properties>
                <property name="mycm:name">
                    <title>Common name</title>
                    <type>d:text</type>
                </property>
            </properties>
        </type>

Теперь у вас могут быть документы с тем же именем, что и mycm: name, и вы можете назначить метку времени для cm: name.

0 голосов
/ 18 февраля 2020

Чтобы сделать это, вы должны переопределить ваш contentModel. xml:

<type name="cm:folder">
    <title>Folder</title>
    <parent>cm:cmobject</parent>
    <archive>true</archive>
    <properties/>
    <associations>
        <child-association name="cm:contains">
            <source>
                <mandatory>false</mandatory>
                <many>true</many>
            </source>
            <target>
                <class>sys:base</class>
                <mandatory enforced="false">false</mandatory>
                <many>true</many>
            </target>
            <duplicate>false</duplicate>
            <propagateTimestamps>true</propagateTimestamps>
        </child-association>
    </associations>
    <overrides/>
    <mandatory-aspects/>
</type>

Как вы можете видеть, есть дубликат параметра в дочерней ассоциации со значением "false". Вы должны изменить его на «true»

...