Список задач Sharepoint и синхронизация с Outlook

Я пытаюсь синхронизировать список задач Sharepoint с Outlook. Когда пользователи подключают список задач к Outlook, задача для всех пользователей отображается в Outlook. Вместо того, чтобы применять фильтрацию в Outlook, могу ли я обеспечить фильтрацию на самом источнике? В моем приложении много пользователей, поэтому не стоит просить всех пользователей применять фильтры самостоятельно.

Любые другие предложения?

Благодарю.

2 ответа

Решение

Я задал тот же вопрос: синхронизировать список с внешним видом только с элементами в текущем представлении., В этом случае можно было использовать протокол stssync, чтобы делать все, что вы хотите. Требуется много усилий (к счастью, кто-то уже написал реализацию)

Но было еще одно решение, которое я в конечном итоге использовал - реализация оболочки для веб-сервиса Lists.asmx и переписывание запросов внешнего вида (с помощью специального файла Global.asax) для использования этого нового веб-сервиса вместо Lists.asmx, который запрашивает только конкретное представление в списке,

if (ctx.Request.UserAgent.Contains("Microsoft Office Outlook") && path.ToLower().IndexOf("_vti_bin/lists.asmx") >= 0)
            {
                ctx.RewritePath("/_layouts/OutlookLists.asmx");
            }  

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

Источник был опубликован на CodePlex.

По поводу проблемы скрипта

Я не знаю, почему идентификатор списка не заменяется идентификатором представления. Я пытался запустить функцию в консоли сценария (F12 для IE8/9)

>> var menuItems = document.getElementsByTagName('ie:menuitem');
for (var i = 0; i < menuItems.length; i++) {
        itm = menuItems(i);
        if (itm.id.match('OfflineButton') != null) {
            console.log('listName:' + ctx.listName.toLowerCase() + 'viewName:' + ctx.view.toLowerCase());
            if (ctx != null && ctx.listName != null && ctx.view != null) {
                console.log('Inside if block');
                //Replace listId to viewId being used so outlook will query only items in current view.
                //Must have custom web service in place to handle that request, because it iwll not work OOTB.
        console.log("Before: " + itm.onMenuClick);
                itm.onMenuClick = itm.onMenuClick.replace(ctx.listName.toLowerCase(), ctx.view.toLowerCase());
        console.log("After: " + itm.onMenuClick);
                break;
            }
        }
    } 
LOG: listName:{fe89e809-7de4-4f43-9bc2-7e8ce6624ed0}viewName:{7364a843-c7f2-47d8-b4a3-5dc7381b6248} 
LOG: Inside if block 
LOG: Before: javaScript:ExportHailStorm('tasks','https:\u002f\u002fserver\u002fsapulces\u002fdarbu_parskata','{fe89e809-7de4-4f43-9bc2-7e8ce6624ed0}','Uz\u0146\u0113muma darbu p\u0101rskata sapulce','Uzdevumi','\u002fsapulces\u002fdarbu_parskata\u002fLists\u002fUzdevumi','','\u002fsapulces\u002fdarbu_parskata\u002fLists\u002fUzdevumi'); 
LOG: After: javaScript:ExportHailStorm('tasks','https:\u002f\u002fserver\u002fsapulces\u002fdarbu_parskata','{7364a843-c7f2-47d8-b4a3-5dc7381b6248}','Uz\u0146\u0113muma darbu p\u0101rskata sapulce','Uzdevumi','\u002fsapulces\u002fdarbu_parskata\u002fLists\u002fUzdevumi','','\u002fsapulces\u002fdarbu_parskata\u002fLists\u002fUzdevumi'); 

Как видите, аргумент функции (третий) был заменен идентификатором представления вместо идентификатора списка.

Не забудьте удалить операторы console.log перед развертыванием, потому что, если в IE нет инструментов для веб-разработчиков, в нем произойдет сбой javascript.

Были ли эти задачи созданы из рабочего процесса? это известная проблема с SharePoint 2007.

http://social.technet.microsoft.com/Forums/en/sharepointadmin/thread/64b3b124-085c-4d8e-8e85-8bd20736e0e7

http://blah.winsmarts.com/2007-4-SharePoint_2007__Fine_grained_permission_control.aspx

Вы можете попытаться установить права на чтение / редактирование как "только свои", но я думаю, что это нарушает утверждение / предупреждения от работы

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

Другие вопросы по тегам