2010-12-15 2 views
0

В производственном развертывании мы имеем вычисленное поле, которое состоит из формулы, которая ссылается на два других скрытых поля. Это простая конкатенация с небольшим количеством логики для определения версииРасчетное поле SharePoint на основе другого скрытого поля

=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.

Любые предложения будут оценены!

ответ

1

Покажите поля (используя какую-то утилиту, очень простую для записи), сохраните формулу и спрячьтесь. Но я думаю, что вы, вероятно, должны заполнить вычисленное поле каким-то другим способом, например, рабочий процесс SPD или приемник событий.