Я использую marklogi c 10 для windows 10.
У меня есть рабочий процесс, в котором я хочу регистрировать информацию для каждого шага. Поэтому я хочу, чтобы в базе данных было что-то похожее, я обновляю данные, фиксирую, а затем могу сразу использовать эти данные в следующем коде. Это выполнимо? и как?
например, в следующем примере кода предположим, что я пишу журнал впервые, я хочу создать документ перед тем, как войти. Поэтому я создаю документ журнала, фиксирую, а затем вставляю узел журнала в этот документ журнала. Но похоже, что документ журнала создан, а узел журнала не вставлен в документ журнала. Как я должен заставить это работать? идея в том, что я хочу иметь функцию, которая может вставлять узлы журналов в файлы журналов, и на них не влияет сбой следующего кода
let $logFile := "/workflow/tracking/load-log.xml"
let $thisErrorMsg := <error>
<time>2020/04/10</time>
<desc>test</desc>
</error>
let $_log-file-exists := if(fn:empty(fn:doc($logFile)))
then
let $root := <errors></errors>
return
(
xdmp:set-transaction-mode("update")
,
xdmp:document-insert(
$logFile,
$root,
<options xmlns="xdmp:document-insert">
<permissions>{xdmp:default-permissions()}</permissions>
<quality>10</quality>
</options>)
,
xdmp:commit()
)
else ()
return
(
xdmp:set-transaction-mode("update")
,
xdmp:node-insert-child( fn:doc($logFile)/errors, $thisErrorMsg)
,
xdmp:commit()
)
Большое спасибо за вашу помощь Хелен