所以我试图将列表项从一个文件夹移动到另一个文件夹。我尝试使用我发现的代码(代码源的链接如下)。我不断得到“价值不在预期范围内”。错误,我不知道为什么我得到它。有人可以向我解释这个问题。谢谢!
var listTitle = "Requests"; //list title
var itemId = 1; //list item id
var targetFolderUrl = "/Lists/Requests/Archive"; //target folder server relative url
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(itemId);
ctx.load(item,['FileRef','FileDirRef']);
ctx.executeQueryAsync(
function(){
var fileUrl = item.get_item('FileRef');
var file = ctx.get_web().getFileByServerRelativeUrl(fileUrl);
var targetfileUrl = fileUrl.replace(item.get_item('FileDirRef'),targetFolderUrl);
file.moveTo(targetfileUrl, SP.MoveOperations.overwrite);
ctx.executeQueryAsync(
function(){
console.log('List item has been moved');
},
logError
)
},
logError);
function logError(sender,args){
console.log(args.get_message());
}
这是我的实际代码。
var targetFolderUrl = "/Lists/" + COMM.PROPERTY.SUSAR.LIST + "/ProductID_64"; //target folder server relative url
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(COMM.PROPERTY.SUSAR.LIST);
var item = list.getItemById(66);
ctx.load(item, ['FileRef', 'FileDirRef']);
ctx.executeQueryAsync(
function () {
var fileUrl = item.get_item('FileRef');
var file = ctx.get_web().getFileByServerRelativeUrl(fileUrl);
var targetfileUrl = fileUrl.replace(item.get_item('FileDirRef'), targetFolderUrl);
file.moveTo(targetfileUrl, SP.MoveOperations.overwrite);
ctx.executeQueryAsync(
function () {
console.log('List item has been moved');
},
logError
)
},
logError);
function logError(sender, args) {
console.log(args.get_message());
}
答案 0 :(得分:0)
如果您想在没有代码的情况下执行此操作,则可以使用2010工作流程。如果当前项目等于X,则将当前项目中的项目复制到NewList,然后删除当前项目中的项目。请务必选择2010年工作流程而非2013年。此外,您可能需要设置何时创建新项目或将其更改为触发器。我有一个接收列表,查看参数,并根据参数将其发送到许多潜在列表之一;所以我把它设置为创建或更改。