簡単に言うと、操作前の段階で実行されるプラグインを使用して、ルックアップ値の名前を取得しようとしています。
問題の属性/フィールドにはエンティティ参照オブジェクトが含まれていますが、何らかの理由でオブジェクトにはエンティティ参照のLogicalNameとIDのみが含まれ、名前の値(null)は含まれていません。
これがなぜであるか、そして名前フィールドを取得するためだけにデータベースへのサービス呼び出しを行うよりも良い回避策があるかどうかを誰かが知っていますか?
簡単に言うと、操作前の段階で実行されるプラグインを使用して、ルックアップ値の名前を取得しようとしています。
問題の属性/フィールドにはエンティティ参照オブジェクトが含まれていますが、何らかの理由でオブジェクトにはエンティティ参照のLogicalNameとIDのみが含まれ、名前の値(null)は含まれていません。
これがなぜであるか、そして名前フィールドを取得するためだけにデータベースへのサービス呼び出しを行うよりも良い回避策があるかどうかを誰かが知っていますか?
Entity.FormattedValues コレクションに必要な属性が含まれているかどうかを確認できます。
エンティティの属性を取得するには、次のようにします。
string attribute_name = String.Empty;
Entity entity = (Entity)context.InputParameters["Target"];
EntityReference _id = (EntityReference)entity["AttributeName"];
ColumnSet col = new ColumnSet(new String[] { "name" });
var NameRetrieved = service.Retrieve("EntityName", _id.Id, col);
if (NameRetrieved != null)
{
if (NameRetrieved.Attributes.Contains("name"))
{
attribute_name = (string)productRetrieved["name"];
}
else
{
attribute_name = "";
}
}