В производственном развертывании у нас есть вычисляемое поле, которое состоит из формулы, которая ссылается на два других скрытых поля. Это простая конкатенация с небольшой логикой для определения версии
=CONCATENATE(IF(_MajorVersion="","0",_MajorVersion),".",IF(_MinorVersion="","0",_MinorVersion))
Пользователь непреднамеренно изменил формулу в представлении таблицы в списке, и теперь формула повреждена, как показано ниже
=CONCATENATE(IF(#NAME="","0",#NAME),".",IF(#NAME="","0",#NAME))
Если вы замените эту формулу на предварительно поврежденную версию, она не сохранится и выдаст следующую ошибку
The formula refers to a column that does not exist. Check the formula for spelling mistakes or change the non-existing column to an existing column. at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
Столбцы _MajorVersion и _MinorVersion существуют, но они скрыты и определены следующим образом:
<Field SourceID="http://schemas.microsoft.com/sharepoint/3.0"
ID="{GUID}"
Name="_MajorVersion"
StaticName="_MajorVersion"
DisplayName="_MajorVersion"
Group="ApplicationStuff"
Type="Number"
Required="FALSE"
ReadOnly="FALSE"
Sealed="FALSE"
Hidden="TRUE"
ShowInListSettings="FALSE"
ShowInEditForm="FALSE"
ShowInDisplayForm="FALSE"
ShowInNewForm="FALSE" />
Я знаю, что можно развернуть функцию, которая сделает эти столбцы видимыми, исправит проблему, а затем снова их скроет. Тем не менее, есть много волокиты, чтобы это произошло. Кто-нибудь знает способ сделать это без развертывания кода? Я также подумал о воссоздании списка, но в этом списке тысячи SPListItems.
Любые предложения будут оценены!