SharepointタスクリストをOutlookと同期しようとしています。ユーザーがタスクリストをOutlookに接続すると、すべてのユーザーのタスクがOutlookに表示されます。Outlookでフィルタリングを適用するのではなく、ソース自体でフィルタリングを提供できますか?私のアプリケーションにはかなりの数のユーザーがいるので、すべてのユーザーに自分でフィルターを適用するように依頼するのはよくありません。
他に何か提案はありますか?
ありがとう。
SharepointタスクリストをOutlookと同期しようとしています。ユーザーがタスクリストをOutlookに接続すると、すべてのユーザーのタスクがOutlookに表示されます。Outlookでフィルタリングを適用するのではなく、ソース自体でフィルタリングを提供できますか?私のアプリケーションにはかなりの数のユーザーがいるので、すべてのユーザーに自分でフィルターを適用するように依頼するのはよくありません。
他に何か提案はありますか?
ありがとう。
私は同じ質問をしました:現在のビューのアイテムだけでOutlookとリストを同期します。。この場合、stssyncプロトコルを使用して必要なことを行うことができました。それは多くの努力を要します(幸いなことに誰かがすでに実装を書いています)
しかし、私が使用することになった別の解決策がありました-Lists.asmx Webサービスのラッパーを実装し、Outlookリクエストを(カスタムGlobal.asaxファイルを使用して)書き換えて、Lists.asmxの代わりにこの新しいWebサービスを使用し、リスト内の特定のビューのみをクエリします。
if (ctx.Request.UserAgent.Contains("Microsoft Office Outlook") && path.ToLower().IndexOf("_vti_bin/lists.asmx") >= 0)
{
ctx.RewritePath("/_layouts/OutlookLists.asmx");
}
このような解決策が必要かどうかはわかりません。もしそうなら、あなたは尋ねるかもしれません、そして私はウェブサービスのソリューションソースを公開するかもしれません、しかし私はもうこのウェブサービスを自分で使っていません。また、本番用のコードではなく、ドラフトとして使用できます。
ソースはCodePlexで公開されています。
リストIDがビューIDに置き換えられない理由がわかりません。スクリプトコンソール内で関数を実行しようとしました(IE8 / 9の場合はF12)
>> 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');
ご覧のとおり、関数の引数(3番目の引数)は、リストIDではなくビューIDに置き換えられています。
IEにWeb開発ツールがない場合、JavaScriptがそこでクラッシュするため、デプロイする前にconsole.logステートメントを削除することを忘れないでください。
これらのタスクはワークフローから作成されましたか?これはSharePoint2007の既知の問題です。
http://blah.winsmarts.com/2007-4-SharePoint_2007__Fine_grained_permission_control.aspx
読み取り/編集権限を「自分だけ」に設定してみることができますが、それでは承認/アラートが機能しなくなると思います
この問題はSharePoint2010で修正されていると思います。タスクは、タスクごとにきめ細かいアクセス許可で作成されると思います。