在MLCP摄取到MarkLogic期间使用转换模块

在MLCP摄取到MarkLogic期间使用转换模块,marklogic,mlcp,Marklogic,Mlcp,当我通过MLCP接收文档时,我试图实现信封模式 我的转换模块如下所示: function envelope(content, context) { var transformed ={}; transformed.Metadata = { "Created" : "Time"}; transformed.Source = content.value; content.uri = fn.concat("/transformed/",content.uri); content.v

当我通过MLCP接收文档时,我试图实现信封模式

我的转换模块如下所示:

function envelope(content, context)
{
  var transformed ={};
  transformed.Metadata = { "Created" : "Time"};
  transformed.Source = content.value;
  content.uri = fn.concat("/transformed/",content.uri);
  content.value = transformed;
};
exports.transform = envelope;
我的MLCP命令是这样的

    mlcp.bat import -host localhost -port 8000 -username admin -
password admin -mode local -input_file_path D:\Marklogic\abcd.csv -input_file_ty
pe delimited_text -document_type json -transform_module /example/
mlcp-transform.sjs -transform_function transform -output_collections transformed -ge
nerate_uri true
MLCP错误:

    18/01/31 09:00:27 WARN contentpump.TransformWriter: Failed document /D:/Marklogi
c/test.pcr-0-9
18/01/31 09:00:27 WARN contentpump.TransformWriter: TypeError: Cannot read prope
rty 'uri' of undefined
18/01/31 09:00:27 WARN contentpump.TransformWriter: TypeError: Cannot read prope
rty 'uri' of undefined
我不知道为什么它不能读取我的转换模块中的
uri
。 谢谢你的帮助


感谢

MLCP希望转换函数返回更新的
内容
参数。请尝试以下操作:

function envelope(content, context)
{
  var transformed ={};
  transformed.Metadata = { "Created" : "Time"};
  transformed.Source = content.value;
  content.uri = fn.concat("/transformed/",content.uri);
  content.value = transformed;
  return content;
};
exports.transform = envelope;
使用
-output\u collections
参数提供目标集合名称。您还可以使用
-output\u uri\u prefix
-output\u uri\u replace
参数在uri前面加上
/transformed/

您可以在此处找到有关命令行选项的文档:

有关MLCP转换的文档可在此处找到:


感谢@grtjn,尝试转换模块片段,但再次出现相同错误。Auch,忘记在函数末尾添加
返回内容。我更新了答案。。