Как включить функцию «Подключиться к Outlook» в вашем пользовательском списке? - PullRequest
3 голосов
/ 10 февраля 2009

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

Ответы [ 7 ]

4 голосов
/ 29 февраля 2012

Чтобы раскрыть великий ответ Филиппа. , .

Согласно этому сообщению MSDN шаблон настраиваемого списка имеет другое обозначение типа (100), чем шаблон задачи (106 в статье выше, 107 в моем исследовании SP2010). Это то, на что смотрит пользовательский интерфейс, чтобы отключить кнопку синхронизации Outlook. Таким образом, если ваш настраиваемый список основан на созданном вами настраиваемом типе контента, вы можете воссоздать свой список для совместимости с Outlook.

  1. Если ваш список уже содержит данные, экспортируйте их в Excel
  2. Создание нового списка на основе шаблона задачи (вместо пользовательского)
  3. Добавьте свой CT и удалите Task CT (если ваш тип контента основан на Task CT, то есть имеет столбцы) и любые другие, которым ваш список не нужен
  4. Добавьте любые другие столбцы, которые нужны вашему списку, но, возможно, не являются частью вашего CT (или если вы не используете пользовательский CT)
  5. Использование представления таблицы для копирования и вставки данных в новый список (соблюдайте порядок столбцов)

Предупреждения: с помощью этого метода можно скопировать не все столбцы данных (например, вложения, системные поля и т. Д.)

Надеюсь, это поможет уточнить

4 голосов
/ 11 февраля 2009

Насколько мне известно, это невозможно. Если вам нужно синхронизировать список задач, создайте список задач. Затем вы можете удалить все столбцы, которые вас не интересуют, и добавить любые столбцы, которые вы хотите использовать.

То же самое касается календаря, если вы хотите, чтобы список синхронизировался с вашим календарем outlook, затем создайте список календаря и настройте его в соответствии со своими потребностями.

2 голосов
/ 25 сентября 2009

Это доступно / возможно (ну, для этого нужно программирование) - см. здесь .

Для моего решения я объединяю данные между сайтами и синхронизирую их с outlook. Есть некоторые хитрые вещи, такие как сопоставление uniqueId элемента с целочисленным идентификатором (вероятно, таблица базы данных с сопоставлениями) для правильной ссылки на конкретный элемент, но это не невозможно.

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

1 голос
/ 11 сентября 2012

Если ваш пользовательский список основан на списке sharepoint, вы можете подключить его к outlook, сгенерировав ссылку, отформатированную на основе протокола stssync.

Я создал собственное определение списка на основе списка событий (Календарь).

Используется базовый шаблон списка календаря, а также некоторые настраиваемые поля и формы.

Я создал ссылку, отформатированную в соответствии с протоколом stssync, и успешно соединил ее с outlook:

stssync: // sts /? Ver = 1.1 & type = calendar & cmd = add-folder & base-url = [url сайта] & list-url = [URL вашего списка] & guid = [GUID списка] & site-name = [SiteName] имя_список & = [ИМЯ_СПИСОК]

1 голос
/ 11 февраля 2009

Да, к сожалению, это невозможно. Кроме того, если вы создаете пользовательские столбцы в списке задач или календаре, Outlook не будет синхронизировать эти столбцы.

0 голосов
/ 17 апреля 2015

Вы можете переопределить кнопку List Ribbon Button, которая содержит логику синхронизации, и создать собственное действие над ней.

Вот хорошая статья о создании лент: http://blogs.msdn.com/b/sharepointdeveloperdocs/archive/2009/12/07/sharepointfoundationhowtoaddtabtoribbon.aspx

Для представления списка OutlookSyncButton в CommandUIDefinition следует указать Location = "Ribbon.List.Actions.ConnectToClient". Для просмотра календаря - вы должны указать Location = "Ribbon.Calendar.Calendar.Actions.ConnectToClient".

Теперь в CommandUIHandler / CommandAction вы указываете код JS, который подключается к outlook (просто я беру его из SP:)):

alert("Let's go!");

var listid = '{ListId}';           
var list;

ExecuteOrDelayUntilScriptLoaded(GetParamsAndSync, 'sp.js');

function GetParamsAndSync()
{
  var clientContext = new SP.ClientContext.get_current();
  var web = clientContext.get_web();
  list = web.get_lists().getById(listid);
  clientContext.load(list);
  clientContext.load(web);

  rf = list.get_rootFolder()
  clientContext.load(rf);

  clientContext.executeQueryAsync(
   function() {
      viewUrl=rf.get_serverRelativeUrl();
      ExportHailStormOverride('calendar','{SiteUrl}','{ListId}', web.get_title(),list.get_title(),viewUrl,viewUrl,'')
    }, 
    function() {alert('Error')});
}

//This function was taken from SharePoint sp.init.js
function  ExportHailStormOverride(type,weburl,guid,webname,listname,viewurl,passport,listrooturl,folderurl,folderid)
{ULSA13:;
    var strAppName=GetCookie('stsSyncAppName');
    var strIconName=GetCookie('stsSyncIconPath');
    var maxLinkLength=500;
    var maxNameLength=20;
    var link='stssync://sts/?ver=1.1'
            +'&type='+escapeProperly(type)
            +'&cmd=add-folder'
            +'&base-url='+escapeForSync(weburl)
            +'&list-url='+escapeForSync('/' 
            + makeAbsUrl(viewurl).substr(weburl.length+1)+'/')
            +'&guid='+escapeProperly(guid);
    if (window.self.offlineBtnUser !=undefined)
        link+='&user-id='+offlineBtnUser;
    var names='&site-name='+escapeForSync(webname)
            +'&list-name='+escapeForSync(listname);
    var context='';
    if (folderurl)
        context+='&folder-url='
             + escapeForSync('/'+folderurl.substr(listrooturl.length+1));
    if (folderid)
        context+='&folder-id='+folderid;
    if (link.length+names.length+context.length > maxLinkLength &&
        (webname.length > maxNameLength || listname.length > maxNameLength))
    {
        if (webname.length > maxNameLength)
            webname=webname.substring(0, maxNameLength-1)+'...';
        if (listname.length > maxNameLength)
            listname=listname.substring(0, maxNameLength-1)+'...';
        names='&site-name='+escapeForSync(webname)
             +'&list-name='+escapeForSync(listname);
    }
    link=link+names+context;
    var L_StssyncTooLong_Text='The name of site or list is too long. Make it shorter.';
    if (link.length > maxLinkLength)
        alert(L_StssyncTooLong_Text);
    else
    {
        try
        {
            window.location.href=link;

        }
        catch (e)
        {
            alert('Sync error.');
        }
    }
}           
0 голосов
/ 23 апреля 2014

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

Это ссылка на основной сайт: http://propersync.com/default.aspx

...