Microsoft Dynamics GP のビジネス ポータルで [ユーザー] ページを開こうとすると、次のエラー メッセージが表示されます。
""予期しないエラーが発生しました。 ブラウザーを閉じ、もう一度開始するか、サポート 担当者にお問い合わせください。
エラー メッセージの [ 詳細] ボタンをクリックすると、エラー メッセージに関連する追加のテキストが表示されます。
"System.Exception: soap:Server Server was unable to process request. ---> Microsoft.Dynamics.Hrm.Entity.Employee"
現象
DYNAMICS データベースの MBFRoleUser テーブルでは、[構成] フィールドに従業員ID が割り当て済みで、会社のデータベースの UPR00100 テーブルに従業員として存在しません。
原因
DYNAMICS データベースの MBFRoleUser テーブルから孤立した従業員 ID の割り当てレコードを削除します。 DYNAMICS データベースの MBFRoleUser テーブルから孤立した従業員 ID の割り当てレコードを見つけて削除するには、次の手順に従います。
1. 次のSQL Server Management Studio。 これを行うには、使用しているプログラムに応じて、次のいずれかの方法を使用します。
2000 SQL Serverの場合
2000 をSQL Server場合は、クエリ アナライザー SQL開始します。 これを行うには、[スタート] をクリックし、[すべてのプログラム]をポイントし、[クエリ アナライザー] Microsoft SQL Server をポイントします。
2005 SQL Serverの場合
SQL Server 2005 を使用している場合は、SQL Server Management Studio。 これを行うには、[スタート] をクリックし、[すべてのプログラム] をポイントし、[Microsoft SQL Server 2005]をポイントして、[SQL Server Management Studio]をクリックします。
SQL Server 2008 の場合
2008 年 2008 SQL Server使用している場合は、SQL Server Management Studio。 これを行うには、[スタート] をクリックし、[すべてのプログラム] をポイントし、2008Microsoft SQL Server をポイントし、[次へ]をSQL Server Management Studio。
2. DYNAMICS データベースに対して次のステートメントを実行して、DYNAMICS データベースの MBFRoleUser テーブル内のすべての従業員 ID 割り当てレコードを検索します。
MBFRoleUser から * を選択します。構成要素 ("%Microsoft.Dynamics.Hrm.Entity.Employee ID%" order by Constituent)
[構成] 列内の EmployeeID= 文字列には、ビジネス ポータルロールに割り当てられている従業員 ID が表示されます。
3. 会社のデータベースに対して次のステートメントを実行して、UPR00100 テーブルに存在する従業員 ID レコードを検索します。
UPR00100 order by EMPLOYID から EMPLOYID を選択する
このスクリプトの結果には、従業員マスター テーブルに存在する従業員 ID のすべてが表示されます。
4. ステップ #1 から実行されたスクリプトの結果から構成列の従業員 ID = 割り当てレコードを、手順 #2 から実行されたスクリプトの結果から返された従業員と比較します。 DYNAMICS データベースの MBFRoleUser テーブルの [構成] 列に存在し、会社データベースの UPR00100 テーブルに従業員 ID として存在しない従業員 ID の割り当てレコードを検索します。
5. 手順 #3 で孤立した従業員 ID の割り当てレコードを特定したら、DYNAMICS データベースに対して次のステートメントを実行して、孤立した従業員 ID の割り当てを削除します。
DELETE MBFRoleUser where Constituent = 'XXXX'
注: XXXX を MBFRoleUser テーブルから孤立した従業員 ID 割り当てレコードの構成値に置き換える。
例: 手順で必要な delete ステートメントの例を次に示#4。
delete
MbfRoleUser where Constituent='<entityKey><Microsoft.Dynamics.Common.Company.Company ID="-1" /><Microsoft.Dynamics.Hrm.Entity.Employee ID="429732375" /></entityKey>'
この例では、従業員番号 429732375 は、手順 429732375 から孤立した従業員 ID の割り当#3。
解決策
MBFRole Userテーブル内の情報は、ビジネスポータルで [ホーム]をクリックし、[サイトの操作] をクリックし、[サイト設定]をクリックし、[ユーザー]をクリックし、[ユーザー] リストからユーザーを選択し、[ロール] をクリックし、[変更] をクリックして、[ポータルの変更] ウィンドウと [高度なロール] の [Web ページ ダイアログ] ウィンドウでロールを割り当てます。 [OK] をクリックします。