SharePoint: угадывание пути вложения перед обновлением элемента списка - PullRequest
0 голосов
/ 27 августа 2009

У меня есть код, который вставляет элемент списка в список ...

У меня есть этот код

  SPFolder folder = web.Folders["Lists"].SubFolders[list.RootFolder.Name].SubFolders["Attachments"].SubFolders[item.ID.ToString()];

                foreach (SPFile file in folder.Files)
                    {
                        string attachmentName = this.downloadedMessageID + ".xml";
                        if (file.Name == attachmentName)
                        {
                            SPFieldUrlValue value = new SPFieldUrlValue();
                            value.Description = this.downloadedMessageID + ".xml"; 
                            value.Url = this.SiteAddress + file.Url;
                            item["ZFO"] = value; 
                        }
                    }

это нормально, за исключением одной проблемы ... прежде чем этот код на самом деле заработает ... Мне нужно вызвать метод item.update (), чтобы сохранить элемент в SharePoint ...

Но, как вы можете видеть, есть еще много работы ... после вызова item.update ...

Так что это значит ... У меня есть

   work
   item.update();
   more work
   item.update(); 

У меня проблема в том, что я действительно хочу просто

  work
  item.update(); 

Так что в любом случае сбоя все сразу провалится или пройдет сразу ... (почти как транзакция SQL).

Итак, что мешает мне сделать это - мне нужно установить гиперссылку на одно из полей в элементе списка, это будет вложение в коллекции вложений списка.

Можно ли как-нибудь предсказать этот адрес, не сохранив элемент списка в MOSS?

1 Ответ

3 голосов
/ 27 августа 2009

Путь вложения зависит от идентификатора элемента, и я не верю, что ваш элемент будет иметь идентификатор, пока вы его не сохраните. Рассматривали ли вы вместо этого сохранение вложений в библиотеке документов, связанных полем, которое вы пытаетесь установить?

Транзакционная операция - не совсем сильная сторона SharePoint.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...