別のレコードでフィールドが変更されたときに新しいレコードを作成するプラグインを作成しました。すべて設定しましたが、実行するとレコードが作成されず、CRMはSQLタイムアウトエラーを返します。私のコードは以下の通りです:
Entity contactSecurityRole = new Entity("sb_contactsecurityrole");
contactSecurityRole["sb_contactid"] = linkedContact;
contactSecurityRole["sb_contactportalsettingid"] = linkedContactPortalSetting;
contactSecurityRole["sb_portalsettingid"] = linkedPortalSetting;
contactSecurityRole["sb_portalsecurityroleid"] = linkedSecurityRole;
Service.Create(contactSecurityRole);
レコードはルックアップフィールドで構成されているため、名前が「リンク」で始まるすべての変数は、他のエンティティへのエンティティ参照です。私はいくつかのチェックを行いました、そしてそれが止まるところはそれが実際のService.Create()
部分になるところです。
誰かが私に何をチェックするべきかについてのいくつかのヒントを教えてもらえますか?それで私はこれが起こっている理由を見つけることができますか?
アップデート:
私は問題を見つけました、そしてグレッグはそれが私が上に投稿したコードの外の問題であったことは正しかったです。問題は、「リンクされた」変数の1つを設定する方法でした。フェッチ要求を使用して、リンクする必要のあるレコードのGuidを取得しようとしました。そこから、entityreferenceを設定していました。
私が犯した間違いは、フェッチがGuidを返すのに対し、実際にはエンティティ参照自体を返すと考えていたことです。それで、私がそれを修正すると、コードはほとんどすぐに実行されました。私の推測では、設定が間違っていたため、エンティティの作成時にCRM / SQL Serverが値を入力できたため、エラーが返されました。
これでみんなの助けてくれてありがとう