Marklogic 8-计划任务错误错误:FOTY0013函数无法被雾化

时间:2019-01-03 19:08:58

标签: marklogic

查询已成功在qconsole上运行。但是设置计划任务。它会滤除错误err:FOTY0013功能无法被雾化...

import module namespace json="http://marklogic.com/xdmp/json" at 
 "/MarkLogic/json/json.xqy";

  xdmp:set-request-time-limit(3600),
  let $custom :=
  let $config := json:config("custom")
  let $_ := map:put($config,"whitespace","ignore")
  let $_ := map:put($config,"array-element-names","TR")
  return $config
  let $res := cts:uris(..code..)
 for $uri in $res
 (..code..)
 let $_ := if(xdmp:filesystem-file-exists($dirPath))
    then ()
    else xdmp:filesystem-directory-create(
        $dirPath,
        <options xmlns="xdmp:filesystem-directory-create">
            <create-parents>true</create-parents>
        </options>
    )
let $_ := xdmp:save(
    fn:concat($dirPath,$accStr,".json"),
    json:transform-to-json(fn:doc($uri),$custom)
)

在计划任务假脱机错误err:FOTY0013功能不能被雾化...

2019-01-03 13:52:00.180 Notice: TaskServer:   $custom = map:map(<map:map 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" .../>...XDMP-ATOMIZEFUNC: 
(err:FOTY0013) Functions cannot be atomized...)
2019-01-03 13:52:00.180 Notice: TaskServer:   $dtfmt = "20190103"
2019-01-03 13:52:00.180 Notice: TaskServer:   $sdate1 = "2018-12- 
27T13:52:00.175667-05:00"

2 个答案:

答案 0 :(得分:0)

很难说出没有更多信息,例如最小的可复制完整示例。 您可以尝试在序言中添加XQuery版本,以强制您的QCOnsole代码和任务代码运行相同的xquery版本,我相信默认值是不同的。

答案 1 :(得分:0)

XDMP-ATOMIZEFUNC可能会在生成错误日志消息时发生,因为它试图生成错误消息并序列化变量(即包含函数)的内容。 $json:config具有几个作为函数的属性,它不能原子化$json:config以在错误日志消息中打印出该变量的内容,就像您看到的那样,{ {1}}和$dtfmt变量。

Atomization

  

雾化的结果是原子值序列或type error [err:FOTY0012]。

     

定义:序列的原子化定义为在序列上调用[XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition)]中定义的$sdate1函数的结果。

通过在QConsole中执行以下代码,您可以观察到相同的错误:

fn:data

您没有提供足够的代码或错误消息来肯定地说,但是 XDMP-ATOMIZEFUNC 可能不是问题的根本原因。在错误日志中进一步查找异常的开始,以查看真正的错误是什么。它应该具有模块和行号。