2015-09-19 4 views
2

Я управляю списком запросов в SharePoint 2013, и мне нужно импортировать некоторые запросы из другого списка. Тем не менее, я хочу сохранить исходную дату запроса, а не назначать SharePoint текущей дате/времени, которую я загружаю, поэтому я хочу изменить поле даты «Создано» по умолчанию. Я получил эту работу на дату столбца, я добавил:Изменение Дата создания в SharePoint 2013

var duedate = new Date(2015,01,11).toISOString(); 
$().SPServices({ 
    operation: "UpdateListItems", 
    async: false, 
    listName: "Requests", 
    ID: 5, 
    valuepairs: [["DueDate", duedate]], 
    completefunc: function (xData, Status) { 
    } 
}); 

Это не работает на «Created» поле, хотя - я думаю, потому что это только для чтения. Мне нужно, чтобы изменить поле «Создано», чтобы изменить дату. У меня уже написано много кода, который ссылается на этот столбец, поэтому я бы предпочел не создавать новый столбец, который по умолчанию имеет значение «Создано», если не будет изменен.

Бонус: моей следующей задачей будет изменение поля «Автор» по умолчанию, поэтому, надеюсь, решение может также сделать это поле редактируемым.

ответ

3

Короткий ответ: вы не можете. Системные поля, такие как Created, Modified, Created By, Modified By не поддерживаются для обновления через веб-службы SharePoint. Операции UpdateListItems.

Примечание: Created By (Author) и Modified By(Editor) поля могут быть обновлены таким образом, только для небиблиотечных списков SharePoint

Но есть обходной путь. В основном причина, по которой эти поля не могут быть обновлены, заключается в том, что они объявлены как ReadOnly. Таким образом, после изменения списка схемы, чтобы системные поля доступны для изменения (набор ReadOnly атрибута ложно), как показано ниже Created поля:

var updateSystemFields = "<Fields>" + 
    "<Method ID='1'>" + 
     "<Field ID='{8c06beca-0777-48f7-91c7-6da68bc07b69}' ColName='tp_Created' RowOrdinal='0' ReadOnly='FALSE' Type='DateTime' Name='Created' DisplayName='Created' StorageTZ='TRUE' SourceID='http://schemas.microsoft.com/sharepoint/v3' StaticName='Created' FromBaseType='TRUE' Version='4' ShowInNewForm='FALSE' ShowInEditForm='FALSE' />" + 
    "</Method>" + 
"</Fields>"; 
$().SPServices({ 
    operation: "UpdateList", 
    listName: "Requests", 
    listProperties:"", 
    updateFields: updateSystemFields, 
    newFields: "", 
    deleteFields: "", 
    listVersion: "", 
    async: false, 
    completefunc: function (xData, Status){ 
     console.log('List schema has been modified'); 
    } 
}); 

элемента списка Created значения поля может быть обновлено с помощью UpdateListItems операции:

var dueDateVal = new Date('2016-01-01 6:00:00').toISOString(); 
$().SPServices({ 
    operation: "UpdateListItems", 
    async: false, 
    listName: "Requests", 
    ID: 1, 
    valuepairs: [["Created", dueDateVal]], 
    completefunc: function (xData, Status) { 
     console.log('List item has been updated'); 
    } 
}); 
+1

Это работает! Еще раз спасибо @ Вадим! Как вы узнали материал, чтобы положить в поле тег? Где я могу найти его для автора? Особенно полевой идентификатор и версия. – SeeingSpots

+0

@SeeingSpots, я считаю, что протокол RPC довольно удобно исследовать артефакты SharePoint (списки, поля и т. Д.) Через браузер. Вы можете взглянуть на [этот ответ] (http://sharepoint.stackexchange.com/a/88848/10610) для получения более подробной информации –

0

Невозможно изменить это созданное поле. Я сделал несколько проектов SP 2013, в которых мне приходилось отслеживать и обновлять дату. Вскоре я узнал, что не могу рассчитывать на дату создания.

Я могу ошибаться, и я буду с нетерпением жду, чтобы увидеть, если какие-либо решения всплывают

+0

На это не так уж много сообщений, но я видел достаточно, чтобы заставить меня думать, что это возможно: [1] [2] Однако они не публикуют весь код, и до сих пор я не смог заставить эти решения работать. Я надеюсь, что кто-то поможет мне заполнить все недостающие части здесь. [1]: https://sergeytihon.wordpress.com/2012/07/19/how-to-change-splistitem-created-or-modified-date/ [2]: http://blogs.msdn.com/ b/sowmyancs/archive/2008/03/14/can-we-update-the-values-of-created-by-modified-by-columns-in-sharepoint-lists.aspx – SeeingSpots

Смежные вопросы