Область действия каталога / Область документа / Область сбора в конфигурации триггера не являются обязательными. У меня есть сценарий, в котором мне нужно создать конфигурацию триггера, учитывая и совокупность областей сбора и каталогов.
Мне нужно рассмотреть документы для определенного каталога в определенной коллекции. Я не могу определить обе области в конфигурации триггера во время создания триггера.
Когда я пытаюсь создать триггер с обеими областями, я получаю ошибку ниже:
{"{{"errorResponse":{"statusCode":"400", "status":"Bad Request", "messageCode":"MANAGE-INVALIDPAYLOAD", "message":"MANAGE-INVALIDPAYLOAD: (err:FOER0000) Payload has errors in structure,
content-type or values. XDMP-VALIDATEUNEXPECTED: (err:XQDY0027) validate strict { fn:trace($struct, $trace-event) } -- Invalid node: Found tprop:directory-scope but expected ((tprop
:document-content|tprop:any-property-content|tprop:any-custom-property-content|tprop:property-content),tprop:when?) at fn:doc(\"\")/tprop:trigger-properties/tprop:event/tprop:data-ev
ent/tprop:directory-scope using schema \"manage-trigger-properties.xsd\""}}
}"}
Я заглянул в файл manage-trigger-properties.xsd, который показывает, что схема определяется следующим образом:
{"<xs:complexType name="data-event" abstract="false" mixed="false">
<xs:annotation>
<xs:documentation>
A description of triggering events.
</xs:documentation>
<xs:appinfo/>
</xs:annotation>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element ref="document-scope" minOccurs="1" maxOccurs="1"/>
<xs:element ref="collection-scope" minOccurs="1" maxOccurs="1"/>
<xs:element ref="directory-scope" minOccurs="1" maxOccurs="1"/>
</xs:choice>"}
Я не могу изменить схему, которая определяется marklogic
Пример конфигурации триггера, которую мы пытаемся создать:
{" {
"name": "trg-create-policy-esb-harmonization",
"description": "Harmonize the documents from PREP as soon as documents are created in edh-PREP",
"event":
{
"data-event":
{
"directory-scope":
{
"uri":"<sample Uri>",
"depth": "infinity"
},
"collection-scope":
{
"uri":"<sample Collection>"
},
"document-content":
{
"update-kind":"create"
},
"when": "post-commit"
}
},
"module":"<sample Modules file>",
"module-db": "%%MODULES_DATABASE%%",
"module-root": "/",
"enabled": true,
"recursive":false,
"task-priority": "normal"
}"}
Мы ожидаем, что триггер будет создан как с областью сбора, так и с областью каталогов.
Причина: если я хочу рассмотреть только набор документов, относящихся к конкретному каталогу, в котором эти документы принадлежат общей коллекции, мне нужен этот сценарий для разработки.