問題タブ [ms-project-server-2013]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sharepoint-online - Project Server Online CSOM - TimePhase 割り当ての読み取り中に GeneralSecurityAccessDenied が発生しました
これは私の最初の SO の質問です。この質問があまり明確でない場合、または何か不足している場合はお知らせください。
参考までに、リンクを添付できませんでした。フォーマットが不適切で申し訳ありません。
概要
Microsoft が提供する CSOM ライブラリを使用して、Project Server Online のリソースの "実績作業時間" を読み取ろうとしています (および書き込もうとしています)。現在認証されているユーザーの割り当てを読んでいる限り、割り当てと実際の作業の読み取りと書き込みは完全に機能しています。これを別のリソースで読み取ろうとすると、GeneralSecurityAccessDenied エラーが発生します。
ユーザーが StatusBrokerPermission を持っている場合、バックグラウンドで透過的に呼び出されるはずの Impersonation を使用して過去にこれを行いましたが、うまくいかないようです。偽装は 2013 年以降に削除されたため、もはやオプションではありません。
問題の概要
CSOM は、ステータス拡張機能を透過的に有効にして、現在認証されているユーザー以外のリソースのステータスを更新できるようにすることになっています (ユーザーがステータス ブローカーのアクセス許可を持っている場合)。これは、新しい割り当てを追加する場合は問題なく機能しますが、TimePhased 割り当てを介して実際の TimePhased 時間を更新しようとすると機能しません。割り当てを照会することはできないため、SubmitAllStatusUpdates を呼び出して時間を送信することはできません。
リサーチ
CSOM の使用シナリオ: https://msdn.microsoft.com/en-us/library/office/jj163082(v=office.15).aspx#pj15_WhatTheCSOM_UsageScenarios
偽装の非推奨: https://msdn.microsoft.com/en-us/library/office/ee767690(v=office.15).aspx#pj15_WhatsNew_Deprecated)
同じ問題を抱えている人 #1: https://social.technet.microsoft.com/Forums/projectserver/en-US/dccdb543-18a1-4a0e-a948-5d861305516e/how-to-get-resource-assignments-summary- view-data-project-server-online-2013?forum=projectonline)
同じ問題を抱えている人 #2: http://uzzai.com/ZB43wp95/ps2013-app-how-to-read-and-update-timephased-data-with-jsom-javascript-csom.html
同じ問題を抱えている人 # 4: https://social.technet.microsoft.com/Forums/Sharepoint/en-US/be27d497-e959-44b6-97cb-8f19fe0278fe/csom-how-to-set-timephase-data- on-an-assignment?forum=project2010custprog
私が試した他のこと
- CSOM を MsOnlineClaimsHelper と共に使用して、ユーザーの FedAuth Cookie を取得します (および CookieContainer を使用してそれらを割り当てます)。
- REST/OData API の使用。a) https:// URL.sharepoint.com/sites/pwa/_api/ProjectServer/EnterpriseResources('c39ba8f1-00fe-e311-8894-00155da45f0e')/Assignments/GetTimePhaseByUrl(start='2014-12-09',end ='2014-12-09')/割り当て
- ユーザーの「StatusBrokerPermission」を有効にする
- 「タスクとタイムシートによるタスクの更新のみを許可する」のチェックを外します。サーバー設定画面内のオプション (タスクの設定と表示)。
- SharePoint でホストされるアプリを作成し、上記の CSOM コードと同等の JSOM コードを使用します。a) 私たちが書いたコードは、SharePoint アプリ内から実行される JavaScript であったため、認証を提供する必要はありませんでした。ログインしたユーザーには StatusBrokerPermission がありました。
- プロバイダーがホストする SharePoint アプリを使用し、上記の CSOM コードを使用します。上記の CSOM のすべての認証方法を使用してみましたが、次の追加のテストを行いました。 .CookieContainer = getStaticCookieContainer();
- タイムシートを使用して時系列データを送信します。a) 現在認証されているユーザーのタイムシートしか作成できず、タイムシートの行に、そのユーザーが利用できないプロジェクト/割り当てを入力することはできません (または、GeneralItemDoesNotExist エラーがスローされます)。
- 別のユーザーとして、fiddler を使用して「SubmitAllStatusUpdates」CSOM 要求を手動で発行します。a) このテストの目的は、時系列データを読み取ることができなくても、書き込むことができるかどうかを判断することでした。
- プロジェクトが現在のユーザーにチェックアウトされていることを確認します。
- リソースに対する管理委任の使用。
- プロジェクト権限内で利用可能なすべてのオプションを設定します。
- Project Web UI を使用して、他のリソースの TimePhased データを入力します。
- プロジェクト権限モードの代わりに SharePoint 権限モードを使用します。
コード
誰か助けてくれませんか??
ms-project - MS Project のタスク レベルの計算済みカスタム フィールドに誤った値が表示される
別のタスク レベルのカスタム フィールドの値を使用して計算されるタスク レベルで定義されたカスタム フィールドがあります。
計算フィールド「完了」の値は、もう一方のフィールド「完了日」の値に基づいて、1 または 0 になります。Completed Date に値がある場合、Completed = 1、それ以外の場合は Completed = 0 です。Completed Date は日付タイプのフィールドです。
私は現在、少数のケースで、Completed Date に値がない場合に Completed が 1 になるという問題を抱えています。
完了の式は
値の 99% は正しく計算されますが、1% が問題を引き起こしています。Completed の値を修正する唯一の方法は、Completed Date に値を入力してから、Completed Date から値を削除することです。
Project の計算フィールドがこのように正しく計算されない経験をした人はいますか? 修正はありますか?
javascript - JavaScript を使用して Project Server 2013 でプロジェクトを取得する
Project Server 2013 からプロジェクトのリストを取得し、Javascript を使用して SharePoint に表示したいと考えています。
どうも