Код: Выделить всё
dita-envelope
Контекст
- Шаг потока. Использование настраиваемого шага для обработки файлов .ditamap и создания документов-конвертов.
- Требование: Сформированные документы-конверты необходимо добавить в dita-envelope в промежуточной базе данных.
< h6>1. Использование xdmp.documentAddCollections
Код: Выделить всё
if (cts.docAvailable(envelopeUri)) {
xdmp.documentAddCollections(envelopeUri, ["dita-envelope"]);
}
2. Добавление метаданных коллекции в flowUtils.writeContentArray
Код: Выделить всё
const outputContent = {
uri: envelopeUri,
value: envelope,
context: {
metadata: {
collections: ["dita-envelope"],
},
},
};
flowUtils.writeContentArray([outputContent], options.database);
Проблема. Хотя документ записывается в базу данных, он не назначается коллекции дита-конвертов, а только добавляет метаданные в конверт.
Проблема. Хотя документ записывается в базу данных, он не назначается коллекции dita-конвертов, а только добавляет метаданные в конверт.
Проблема. p>
3. Использование addMetadataToContent из flow-utils.mjs
Код: Выделить всё
flowUtils.addMetadataToContent(outputContent, flowName, stepName, jobId);
flowUtils.writeContentArray([outputContent], options.database);
4. Создание документов-заполнителей в коллекции
Код: Выделить всё
const placeholderUri = "/placeholder.json";
xdmp.documentInsert(placeholderUri, {}, {collections: ["dita-envelope"]});
Текущая среда
Версия MarkLogic: 11.0
Версия Data Hub: 6.1.1
Контекст базы данных: использование промежуточной и конечной баз данных как части процесса приема.
Вопрос
- Как я могу программно назначить документы коллекции в пользовательском шаге MarkLogic Data Hub без использования DeclareUpdate()?
- Есть ли надежный способ назначить коллекции в процессе создания документа с помощью flowUtils.writeContentArray или любой другой утилиты Data Hub?
Подробнее здесь: https://stackoverflow.com/questions/793 ... collection