Как создать пользовательский тип документа в Nuxeo без Nuxeo Studio

В настоящее время мы работаем над проектом Nuxeo без Studio, так как это выходит за рамки нашего бюджета. Наша цель — создать собственный пользовательский интерфейс и использовать Nuxeo в качестве системы управления контентом. Мы смогли выполнить CRUD с помощью SDK (создание новых документов и добавление таких свойств, как заголовок и описание).

Но нам нужны другие настраиваемые свойства, такие как название организации, адрес, номер телефона и т. д. Есть ли способ создать собственный тип документа без использования Studio? Можно ли выполнить CRUD с помощью SDK для этого пользовательского типа?

Кто-нибудь может помочь в этом?


person Dipesh KC    schedule 29.03.2020    source источник


Ответы (1)


Сначала создайте схему (например, myType.xsd), которая определяет новые свойства:

<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.nuxeo.org/ecm/schemas/cf-client/"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="organization" type="xs:string"/>
    <xs:element name="phone" type="xs:string"/>
    <xs:element name="expired" type="xs:date"/>
</xs:schema>

Then define the type extension where you refer to the newly created schema:

<?xml version="1.0"?>
<component name="my.project.nuxeo.types">
    <require>org.nuxeo.ecm.core.CoreExtensions</require>

    <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
        <schema name="myType" prefix="mt" src="schema/myType.xsd"/>
    </extension>

    <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
        <doctype name="MyType" extends="Document">
            <schema name="myType"/>
            <schema name="common" />
            <schema name="dublincore" />
            <schema name="uid" />
            <schema name="file"/>
            <schema name="files" />
            <facet name="Commentable"/>
            <facet name="NXTag"/>
        </doctype>
    </extension>
</component>

Note: You can also:

Затем зарегистрируйте новое расширение типа из предыдущего шага в файле MANIFEST.MF:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Vendor: my.project.nuxeo
Bundle-Name: my-project-nuxeo-core
Bundle-SymbolicName: my.project.nuxeo.my-project-nuxeo-core;singleton=true
Bundle-Version: 1.0.0
Nuxeo-Component: OSGI-INF/types.xml

Заархивируйте все эти файлы в архив jar со следующей структурой:

my-project-nuxeo-core.jar
├── META-INF
│   └── MANIFEST.MF
├── OSGI-INF
│   └── types.xml
└── schema
    └── myType.xsd

И скопируйте полученный jar-архив в каталог nxserver/bundles вашей установки Nuxeo. Перезапустите Nuxeo, и он автоматически обновит структуру БД соответствующим образом.

Дополнительную информацию можно найти в документации Nuxeo — например, здесь: https://doc.nuxeo.com/nxdoc/data-modeling/

person cgrim    schedule 30.03.2020
comment
Спасибо за ваш ответ :) Есть ли у вас какой-нибудь ресурс по работе с рабочим процессом без студии (например, работа со схемой, которую вы только что продемонстрировали) - person Dipesh KC; 30.03.2020
comment
Дизайн Workflow, пожалуй, самый сложный процесс без Studio :-( Все остальное легко выполнимо. - person cgrim; 30.03.2020
comment
Спасибо за ответ :) Что вы думаете о выдающемся качестве использования Nuxeo? С какой целью вы использовали и предпочли Nuxeo другим технологиям? Можете ли вы иметь свое мнение по этому поводу? Спасибо - person Dipesh KC; 30.03.2020