Показаны сообщения с ярлыком WSS. Показать все сообщения
Показаны сообщения с ярлыком WSS. Показать все сообщения

понедельник, 5 апреля 2010 г.

Создание личного узла в зависимости от роли человека

Задача: обеспечить  создание узла для пользователя в зависимости от его роли.

Решение: Прочитать документ “Руководства по установке шаблона личного сайта на основе ролей”. И соответственно следовать инструкциям

 

http://technet.microsoft.com/ru-ru/library/cc263453.aspx

четверг, 24 декабря 2009 г.

Выпадающее меню в WSS

Всем хорош WSS однако бывает мало функционала, один из вопросов как включить выпадающее меню как на портале? Собственно просто, подробности тут. http://sharingpoint.blogspot.com/2007/02/wss-v3-drop-down-menus-in-team-sites.html

понедельник, 30 ноября 2009 г.

Fast clean SPItems

Задача: быстро очистить список от большого количества элементов.

Решение: Будем использовать пакетное удаление элементов из списка.

private static void ClearList(SPList list)

{

string xmlCaml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Batch>";

string itemNode = @"<Method><SetList Scope=""Request"">" + list.ID +

"</SetList><SetVar Name=\"ID\">{0}</SetVar><SetVar Name=\"Cmd\">Delete</SetVar></Method>";

foreach (SPListItem item in list.Items)

xmlCaml +=

string.Format(itemNode, item.ID.ToString());

xmlCaml +=

"</Batch>";

list.ParentWeb.ProcessBatchData(xmlCaml);

}

Разница между этим методом и последовательным удалением элементов огромная и скорость при увеличении количества элементов падает по линейному закону. Так что крайне рекомендую для очистки списка использовать именно этот код.

суббота, 10 октября 2009 г.

Application Templates for Windows SharePoint Services 3.0 and language mistake

Для шарепоинта существуют целые наборы типовых решений предоставляемых самой компанией Microsoft

http://technet.microsoft.com/ru-ru/windowsserver/sharepoint/bb407286.aspx

Только нужно обратить особенное внимание на язык решения :)

Очень уважаемый мною человек бился в течении 2 дней над этой проблемой, просто скачал не то.

Так вот обращайте внимание на детали. Первая ссылка на этой странице указывает на 40 шаблонов на АНГЛИЙСКОМ языке.

А вот ссылка на 20 шаблонов содержит именно локализованные версии.

Разобрались с этим только после всего цикла троблешутинга, были перевернуты и логи системы и шарепоинта и разные версии WSS. Веселья было много. В конце концов я просто посмотрел солюшены и НЕ обнаружил там ветки 1049, которая собственно и указывает на наличие русского языка.

Так что внимательно читайте странички.

четверг, 23 июля 2009 г.

SharePoint 2007 Custom Fields and “Edit property on server”

Возникла проблема: при добавлении  Custom Field в библиотеку документов появилось предупреждение:

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

Поиск по русскому интернету ничего не дал, тогда пришлось найти откуда WSS берет это значение, оказалось из файла

12\Config\Resources\wss.ru-ru.resx

и ключа fldedit_FieldTypeWarningForDocLibSupport

соответственно предупреждение на английском выглядит так

This field type cannot be edited from most client programs and might block the programs from saving documents to this library.

И решение сразу нашлось вот здесь

http://nickgrattan.wordpress.com/2008/01/06/sharepoint-2007-custom-fields-and-edit-property-on-server/

воскресенье, 19 июля 2009 г.

Move to display form after create element

Задача: после добавления нового элемента перейти на форму редактирования

Решение: Создаеться EventReciver и добавляется следующий код. На что особенно следует обратить внимание. Ни каким кастомайзингом вы этого не добьетесь, в момент щелчка по кнопке OK просто нет идентификатора записи поэтому и переходить некуда.

Это решение позволяет избежать этой ситуации.

Отдельные комментарии присутствуют в коде.

public override void ItemAdding(SPItemEventProperties properties)
        {
            // Get a "reference" to the list

           
            SPSite siteColl = new SPSite(properties.SiteId);
            SPWeb site = siteColl.OpenWeb(properties.RelativeWebUrl);
            SPList list = site.Lists[properties.ListId];

// Вызываем базовый метод и ничего не делаем, если это не наш список
            if (!list.DefaultViewUrl.Contains("Lists/Orders"))
            {
                base.ItemAdding(properties);
                return;
            }

// А вот тут идет обработка перехода с конкретной страницы, ну не нужен мне этот обработчик везде :)
            if (_currentContext.Request.CurrentExecutionFilePath.Contains("CopyListItem.aspx"))
            {
                base.ItemAdding(properties);
                return;
            }
            // Add the item and fill it with the values from properties
            DisableEventFiring();           
            SPListItem itemToAdd = list.Items.Add();
            foreach (SPField field in itemToAdd.Fields)
            {
                if (!field.Hidden &&
                    !field.ReadOnlyField &&
                    field != null &&
                    field.InternalName != "Attachments")
                {
                    itemToAdd[field.InternalName] = properties.AfterProperties[field.InternalName];
                }
            }
            itemToAdd.Update();
            EnableEventFiring();

            // Cleanup
            site.Dispose();
            siteColl.Dispose();
            string targetUrlOfNewItem = "DispForm.aspx?ID=" + itemToAdd.ID;
// ВАУ а вот тут Особая уличная магия :)

            // Redirect
            SPUtility.Redirect(targetUrlOfNewItem,SPRedirectFlags.Default, _currentContext);
        }

How do I get a user name in sharepoint

Задача: Определить имя текущего пользователя и выбрать его в выпадающем списке.

Решение: С помощью SharePoint Designer’a вставляем код JavaScript в файл newform.aspx.  

<!-- Определяем пользователя -->
<script type="text/javascript">
var username = getCurrentUser()
selectSender(username);
function selectSender(displayname)
{
var d = document.all.tags("SELECT");
for(i=0; i<d.length; i++)
{

// !NOTE change to you environment.  Field display name = 'Sender'

    if(d[i].title == 'Sender')
    {   
    for(j=0; j < d[i].options.length; j++)
        {
            var s = d[i].options[j];       
            if(s.text == displayname)
            {
                s.selected  = true;
            }
        }
    }
}
}
function getCurrentUser()
{

// выбираем все элементы со сылками и фильтруем по строке приветствия

var tags = document.getElementsByTagName('a');
for (var i=0; i < tags.length; i++)
{
     if(tags[i].innerText.substr(0,7) == 'Welcome')
     {
         return tags[i].innerText.substr(8,tags[i].innerText.length);
     }
     if(tags[i].innerText.substr(0,12) == 'Пользователь')
     {
         return tags[i].innerText.substr(14,tags[i].innerText.length);
     }
}
}
</script>

суббота, 18 июля 2009 г.

SharePoint Web.config Debug Settings

Описание флагов для вывода отладочной информации.

Внимание НИКОГДА не используйте эти настройки на “Боевом” сервере. Скорость работы падает примерно в 10 – 15 раз.

Однако для режима отладки и выявления проблем это именно тот режим, который вам нужен.

 <configuration>
  <SharePoint>
     <!—- отображение дерева вызовов функций -->
     <SafeMode CallStack="true" />
       </SharePoint>
      <system.web>
<!--  Чистый вывод ошибок -->
        <customErrors mode="Off" />
<!--  Включение отладочной информации -->
        <compilation debug="true" />
      </system.web>
 </configuration>

Save you money. Simple way

В предыдущем посте я писал про то как создать колонку SharePoint с уникальным значение. Время затраченное на написание этого проекта составит максимум 1 час.

На сайте http://www.kwizcom.com/ProductPage.asp?ProductID=811&ProductSubNodeID=817

Предлагается похожее по функционалу решение всего за $499 на сервер.

пятница, 17 июля 2009 г.

Sharepoint Unique Column (PK) : Using event handler

Оригинал тут:

http://jpy-tech.com/blog/post/Sharepoint-Unique-Column-%28PK%29-Using-event-handler.aspx

Задача: Обеспечить уникальное значение поля.

Решение: Написать EventHandler и внести логику для проверки введенного значения.

Исходный код немного кривоват так что используйте поправленный мною вариант.

Пояснения, после установки этого обработчика, достаточно будет добавить в описание поля метку [$UNIQUE$] и это поле будет проверяться на уникальность.

const string _QUERY = @"<Where><Eq><FieldRef Name=""{0}"" /><Value Type=""Text"">{1}</Value></Eq></Where>"; public override void ItemAdding(SPItemEventProperties properties) { using (SPWeb web = properties.OpenWeb()) { /*get the current list*/ SPList list = web.Lists[properties.ListId]; string columnName = ""; foreach (SPField fld in list.Fields) { if (fld.Description.Contains("[$UNIQUE$]")) { columnName = fld.InternalName; break; } }

if (properties.AfterProperties[columnName] != null) { string currentValue = properties.AfterProperties[columnName].ToString(); SPQuery _query = new SPQuery(); _query.Query = string.Format(_QUERY, columnName, currentValue); SPListItemCollection itemsWithSameValue = list.GetItems(_query); if (itemsWithSameValue.Count > 0) { properties.Cancel = true; properties.ErrorMessage = "There is already an item with the same value(" + currentValue + ") for the column / Field(" + columnName + ") in this list."; } } } }

понедельник, 22 июня 2009 г.

LookupField and SharePoint Solution Generator

При автоматическом создании шаблона определения списка (ListDefinition) для полей типа Lookup создаються определения, но они закомментированы. Решить эту проблему можно раскомментировав эту строку или строки и изменить значение гуида на относительный путь к списку.
Было: List="33333-3333-cccc-ccc-bbbb"
Стало:List="Lists/ListName"
Особенно обратите внимание на русские имена в полях, как я уже говорил русский язык зло.

вторник, 9 июня 2009 г.

devenv command line

Столкнулся с очень неприятной штуковиной в MSBuild нельзя собрать пакет wsp для проекта типа VSeWSS, поэтому пришлось вот так вот извращаться:

devenv UserImage.csproj /projectconfig Release /Deploy

пятница, 5 июня 2009 г.

IMField project

Это официальная страница проекта IMField http://imfield.codeplex.com/.

Описание

IMField это колонка для Windows SharePoint Services 3.0/ Microsoft Office SharePoint Server 2007. Предназначена для отображения онлайн статуса пользователя в системах мгновенных сообщений (IM).

На данный момент поддерживаются следующие протоколы:

  • ICQ
  • Skype
  • Yahoo
  • Windows Live Messenger (с ограничениями)

Установка

Скачайте программу http://imfield.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30308#DownloadId=75603 распакуйте содержимое архива. Запустите программу setup.exe и следуйте инструкциям.

Настройка

После установки IMField добавьте это поле в ваш список.

createList

setList

Выберите нужный тип поля (1) и нажмите кнопку ОК (2).

editValue

Пример редактирования данных.

sample

Пример отображения данных.

Удаление

http://imfield.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30308#DownloadId=75603

распакуйте содержимое архива. Запустите программу setup.exe и следуйте инструкциям.

История изменений

Добавлена локализация для русского языка.

Маленькие изменения в системе помощи.

Добавлена русскоязычная справка.

Лицензия

License: New BSD License (BSD)

Copyright (c) 2009, Korotenko Vladimir All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of yappi.biz nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Техническая поддержка

Техническая поддержка данного решения осуществляется на договорной основе. Обращайтесь по адресу электронной почты koroten AT ya.ru. В общем случае доработки будут производиться по мере появления у меня (Коротенко Владимира) свободного времени. В случае заключения договора ваши заявки будут удовлетворены в первую очередь.

Сайт программы

http://imfield.codeplex.com/

http://yappi.biz/product/imfield

понедельник, 30 марта 2009 г.

Folder view in WSS & MOSS

Как отобразить документы в виде дерева в среде MOSS. startexplorer folder_f folderEnd

вторник, 24 марта 2009 г.

Данные проверки безопасности этой страницы недопустимы. Нажмите кнопку ''Назад'' обозревателя, обновите страницу и повторите попытку.

Очень сильно меня достало это сообщение не поверите как. Данные проверки безопасности этой страницы недопустимы. Нажмите кнопку ''Назад'' обозревателя, обновите страницу и повторите попытку. Возникает обычно в таком коде private void WriteToLog(string log) { using (SPSite site = new SPSite(projectOfficeUrl)) { using (SPWeb web = site.OpenWeb()) { web.AllowUnsafeUpdates = true; SPList list = web.Lists[Config.LogList.ListName]; SPListItem li = list.Items.Add(); li[Config.LogList.DateStart] = DateTime.Now; li[Config.LogList.Info] = log; li[Config.LogList.Initiator] = CurrentUser; li.Update(); web.AllowUnsafeUpdates = false; } } } Боремся добавлением выделенного жирным кода.

среда, 3 декабря 2008 г.

Install WSS 3.0 to Windows 2008 Server 32Bit

Вчера встала проблема при установке WSS 3.0 на Windows 2008 Server 32 Bit.

Все это происходило на моей домашней машине, точнее на нотебуке Acer Aspire 1640. Характеристики железки несколько слабые 1.7 Ггц Intel Pentium Mobile (Centrino) 1.5 Гб Ram.

Система виртуализации Microsoft Virtual Server 2005 R2 SP1 Host OS Microsoft Windows Vista Ultimate.

Для виртуализации выла создана виртуальная машина со следующими характеристиками:

  • Память 768 Мб
  • Жесткий диск 40 Гб

На нее был установлен Microsoft Windows 2008 Server Enterprise 32 Bit, собственно из за "тормозов" была выбрана роль Standalone server, в принципе мне не особенно важна функциональность домена. После этого я решил установить WSS 3.0, и из этого ничего не получилось, получил стандартное предупреждение о несовместимости.

Поэтому сегодня пришлось залезть на сайт МС и посмотреть решения, они как всегда оказались. Привожу ссылки:

http://technet.microsoft.com/en-us/library/cc287813.aspx Установка одиночного сервера

http://technet.microsoft.com/en-us/library/cc287748.aspx Установка в ферме

 

Решение проблемы собственно в том чтобы использовать WSS 3.0  с интегрированным пакетом обновлений SP1, скачать можно здесь

http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=ef93e453-75f1-45df-8c6f-4565e8549c2a

вторник, 2 декабря 2008 г.

Установка шаблона проекта WSS без установки MOSS или WSS

Скачайте установщик шаблона Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions, Version 1.2 http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&displaylang=en

создайте файл sp.reg и внесите в него следующий текст

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0]

"Sharepoint"="Installed"
 
Запустите установщик пройдите все этапы.
Скопируйте в GAC основные библиотеки Sharepoint Из папки C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI на сервере с установленным WSS
скопируйте на вашу машину разработки папку C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\
Пользуйтесь.
 
 
 
Источник тут, моя версия соответственно на русском + несколько добавлений 
http://fernandof.wordpress.com/2008/02/11/how-to-install-the-sharepoint-2007-vs-2005-extensions-on-a-workstation/
http://blogs.msdn.com/martinv/archive/2007/08/23/remote-webpart-development-for-moss-2007.aspx
 

пятница, 29 августа 2008 г.

Another MOSS Blog

http://www.sharepointnutsandbolts.com/

понедельник, 21 июля 2008 г.

Move data MOSS

Перенос данных с одного сайта на другой

Составил: Коротенко Владимир

Введение

Данное руководство предназначено для переноса данных с одного портала на другой. Исследование производилось в рамках работ над запросом о «потере авторизации» на портале XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

Сокращения и термины

MOSS – Microsoft Office SharePoint Server 2007 Server1 – сервер источник данных для переноса Server2 – сервер приемник переносимых данных Features – расширения для системы MOSS WebParts – веб части для расширения функционала MOSS Solutions – Решения установленные на сервере MOSS Workflow – рабочие процессы установленные на сервере MOSS Паспорт сервера – описание аппаратно программной конфигурации сервера приемника

Подготовка к переносу

Для успешного переноса необходимо провести инвентаризацию установленных расширений на сервере источнике (WebParts, Solutions, WorkFlows) и установить идентичный набор на сервере приемнике. В случае если на сервере приемнике еще не установлено по MOSS, необходимо произвести установку программного обеспечения в соответствии с руководством по установке компании Microsoft.

В ходе установки программного обеспечения необходимо создать паспорт сервера приемника, который включает в себя описание в свободной форме следующих компонентов:
  • Операционная система (версия и сервис пак, дата установки)
  • Аппаратное окружение (описание аппаратной конфигурации сервера)
  • Фреймворк (версия, патчи и дата установки)
  • Сервер баз данных (версия, патчи, дата установки, описание конфигурационных опций: сортировка и локаль)
  • Учетные записи, предназначенные для установки и эксплуатации сервера MOSS (в соответствии с руководством по установке продукта)
  • MOSS 2007 (версия, патчи и время установки)
  • Список расширений (Features,WebParts,Solutions,Workflow их версии и настройки)

Перенос данных

Для переноса данных воспользуйтесь утилитой stsadm расположенной в папке c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN. Порядок действий при переносе данных следующий:

  1. Выполните создание головного узла сайта в соответствии с руководством по развертыванию от компании Microsoft, в качестве шаблона для узла укажите тот тип узла который стоял на сервере приемнике;
  2. На сервере источнике примените одну из стандартных мастер страниц (Master Page)
  3. На сервере приемнике примените такую - же мастер страницу как и в предыдущем пункте
  4. Вызовите командную консоль нажав на кнопку пуск и выбрав пункт Выполнить, в открывшемся окне наберите cmd и нажмите кнопку ОК;
  5. Выполните команду cd c:\;
  6. Выполните команду “c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe” -o export -url http://portal4 -filename portal4.exp;
  7. “c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe” -o import -url http://portal4:8000 -filename portal4.exp -updateversions 2;
  8. Произведите операцию резервного копирования средствами MOSS.
Примечания: список параметров ключа –updateversions 1 Значение по умолчанию добавляет новую версию файлов 2 Затирает текущие файлы 3 Пропускает файлы

После операции переноса данных произведите импорт пользователей из Active Directory, создайте необходимые группы безопасности в MOSS и назначьте необходимые права на библиотеки и документы. В случае использования сторонних WebParts, Solutions or Features вы также должны настроить параметры данных решений в соответствии с руководством по установке данного программного обеспечения. Все действия по конфигурированию данных частей вы должны зафиксировать в паспорте сервера.

Действия после переноса

После проведения операции переноса данных и настройки параметров сервера приемника. Необходимо произвести следующие действия:

  • Выполнить резервное копирование информации MOSS
  • Выполнить резервное копирование метаинформации веб сервера (IIS Metabase Backup)
  • Зафиксировать свои действия в паспорте сервера
  • Произвести тестирование корректности переноса информации
  • Произвести передачу сервера в промышленное использование ответственному лицу