настройка объема для триггеров не является обязательной - PullRequest
0 голосов
/ 20 мая 2019

Область действия каталога / Область документа / Область сбора в конфигурации триггера не являются обязательными. У меня есть сценарий, в котором мне нужно создать конфигурацию триггера, учитывая и совокупность областей сбора и каталогов.

Мне нужно рассмотреть документы для определенного каталога в определенной коллекции. Я не могу определить обе области в конфигурации триггера во время создания триггера.

Когда я пытаюсь создать триггер с обеими областями, я получаю ошибку ниже:

{"{{"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"
}"}

Мы ожидаем, что триггер будет создан как с областью сбора, так и с областью каталогов.

Причина: если я хочу рассмотреть только набор документов, относящихся к конкретному каталогу, в котором эти документы принадлежат общей коллекции, мне нужен этот сценарий для разработки.

...