CSV导入报错CANT_FIND_SAVED_IMPORT:如何创建/获取正确的mappingId?
解决NetSuite CSV导入CANT_FIND_SAVED_IMPORT错误:获取正确mappingId的方法
你碰到的CANT_FIND_SAVED_IMPORT错误,根源是代码里指定的mappingId:123对应的已保存CSV导入映射不存在。下面是创建和获取正确mappingId的具体步骤:
一、创建已保存的CSV导入映射
- 登录NetSuite后台,路径:设置 > 导入/导出 > 导入CSV记录
- 跟着导入向导完成配置:选择要导入的记录类型、上传测试CSV文件、匹配CSV字段与NetSuite字段、设置高级选项(比如重复处理、触发工作流等)
- 向导最后一步,勾选保存此导入映射,输入映射名称后保存。完成后这个映射会生成唯一的internalId,也就是你需要的mappingId
二、获取已保存映射的internalId
方法1:通过界面直接查看
- 进入设置 > 导入/导出 > 已保存CSV导入
- 找到你刚保存的映射,点击名称进入详情页,浏览器地址栏中会有类似
&id=XXX的参数,XXX就是对应的mappingId
方法2:用SuiteScript查询获取
如果需要批量查看或通过脚本获取,可使用N/search模块查询savedcsvimport记录类型,示例代码:
require(["N/search"], function(search) { var savedImportSearch = search.create({ type: "savedcsvimport", columns: ["internalid", "name"] }); var results = savedImportSearch.run().getRange({start: 0, end: 100}); results.forEach(function(result) { log.debug("映射名称", result.getValue("name")); log.debug("mappingId", result.getValue("internalid")); }); });
三、修正你的代码
把代码中obj.mappingId = 123;替换为你获取到的正确ID即可,比如:
obj.mappingId = 456; // 替换为实际的mappingId
错误详情
{"type":"error.SuiteScriptError","name":"CANT_FIND_SAVED_IMPORT","message":"No saved import with internalId 123","stack":["createError(N/error.js)","<anonymous>(adhoc$-1$debugger.user:13)","<anonymous>(adhoc$-1$debugger.user:1)"],"cause":{"type":"internal error","code":"CANT_FIND_SAVED_IMPORT","details":"No saved import with internalId 123","userEvent":null,"stackTrace":["createError(N/error.js)","<anonymous>(adhoc$-1$debugger.user:13)","<anonymous>(adhoc$-1$debugger.user:1)"],"notifyOff":false},"id":"","notifyOff":false,"userFacing":false}
原执行代码
require(["N/task","N/file"],function(task,file){ var fileObj = file.create({ name:"temporary.csv", fileType:file.Type.CSV, contents: "1,1" }); var obj = task.create({taskType: task.TaskType.CSV_IMPORT}); obj.mappingId = 123; obj.importFile = fileObj; obj.name = "TestingCSV"; var objId = obj.submit(); log.debug(objId); });
内容的提问来源于stack exchange,提问作者ваня к
相关产品推荐
相关产品推荐

