2017-10-06 7 views
0

MarkLogicテンプレート駆動型抽出で使用するテンプレートをアップロードしようとしています。コンソール(ローカルホスト上)でJavascriptを使用しています。しかし、何を試しても、アップロードしようとすると同じエラーが発生します。エラー: "[javascript] SEC-INVALIDPERM:xdmp:document-insert ...."私は自分自身にすべての権限を与えましたが、引き続きエラーが発生しています。ところでMarklogicテンプレート駆動型抽出:テンプレートを挿入

'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] 
); 

が動作します。さらに、私がTDEのチュートリアルに従うとhttps://developer.marklogic.com/learn/template-driven-extractionはすべてのinsertTemplate関数を除いて動作します。私もそこに同じエラーが発生します。私は間違って何をしていますか?

+0

MarkLogicのどのバージョンについて話していますか? – Tamas

+0

また、このクエリを実行しているユーザーに「tde-admin」ロールが追加されていることを確認してください。 – Tamas

+0

MarkLogic 9.0を使用しています。そして、はい、私は 'tde - admin'の役割を追加しました。 – sjoerd999

答えて

0

お試しこのコードを実行しているユーザーのすべてのアクセス許可を削除してください。または空の第三引数でtde.templateInsert()を実行してみてください:ユーザーが権限を持っていない

I gave myself all the permissions that are possible, but I still keep getting the error.

、文書が権限を持っている:それは、このような音

tde.templateInsert(
    "/MatchesDoc/TDE.json" , 
    MatchesTDE, 
    [], 
    ["com.marklogic.client.autorelationmapper.MatchesDoc"] 
); 

はあなたの問題です。ユーザーは、文書を書き込む際の既定のアクセス許可のみを持ちます。

ユーザーの既定のアクセス許可は、ユーザーが挿入するドキュメントに割り当てられるアクセス許可のセットです。既定のアクセス許可は、そのユーザーにデータベースの追加の権限を与えません。通常、管理ユーザーにはデフォルトの権限が割り当てられていません。

ユーザーにすべての既定のアクセス許可を割り当てると、xdmp.defaultPermissions()を渡すtde.templateInsert()の3番目の引数に大きなアクセス許可リストが追加されます。少なくとも1つは無効なので、SEC-INVALIDPERMエラーが発生しています。

+0

すべて試しました。最終的に、私の問題を解決したのは、すべてのデータを完全に再インストールして削除することでした。今、すべてが魅力のように機能します。 – sjoerd999

関連する問題