【发布时间】:2017-10-12 16:36:50
【问题描述】:
我正在尝试上传一个模板以与 MarkLogic 模板驱动提取一起使用。我在控制台中使用 Javascript(在本地主机上)。但是,无论我尝试什么,尝试上传时都会遇到相同的错误。错误:“[javascript] SEC-INVALIDPERM: xdmp:document-insert ....”我给了自己所有可能的权限,但我仍然不断收到错误消息。
'use strict'
declareUpdate();
var tde = require("/MarkLogic/tde.xqy");
var MatchesTDE = xdmp.toJSON(
{
"template": {
"context": "/com.marklogic.client.mapper.MatchesDoc",
"collections": ["com.marklogic.client.mapper.MatchesDoc"],
"rows": [
{
"schemaName": "mapper",
"viewName": "matches",
"columns": [
{
"name": "nrOfDocumentsInNC",
"scalarType": "long",
"val": "nrOfDocumentsInNC"
},
{
"name": "totalNrOfDocuments",
"scalarType": "long",
"val": "totalNrOfDocuments"
},
{
"name": "matchesID",
"scalarType": "long",
"val": "matchesID"
},
{
"name": "uniqueInNC",
"scalarType": "boolean",
"val": "uniqueInNC"
}
]
}
]
}
}
);
tde.templateInsert(
"/MatchesDoc/TDE.json" ,
MatchesTDE,
xdmp.defaultPermissions(),
["com.marklogic.client.autorelationmapper.MatchesDoc"]
);
顺便说一句,如果我使用tde.validate([MatchesTDE]); 验证模板,我会得到true。如果我用
tde.nodeDataExtract(
[cts.doc( "com.marklogic.client.mapper.MatchesDoc/2722286.json" )],
[MatchesTDE]
);
它有效。此外,当我按照https://developer.marklogic.com/learn/template-driven-extraction 上的 TDE 教程进行操作时,除了 insertTemplate 函数之外,一切正常。我在那里也遇到同样的错误。我做错了什么?
【问题讨论】:
-
我们谈论的是哪个版本的 MarkLogic?
-
还要确保您已将“tde-admin”角色添加到执行此查询的用户中。
-
我正在使用 MarkLogic 9.0。是的,我添加了“tde-admin”角色。
-
您是否在内容数据库的上下文中执行 tde.templateInsert()?内容数据库是否有模式数据库?
-
我在内容数据库(JSON 文档存储)上运行它,它没有架构。我正在尝试使用 TDE 来使用 SQL。并将其用于 ODBC 驱动程序,以便能够可视化 Tableau 中的数据。
标签: marklogic