私のプラグインはフィールドを暗号化/復号化します。CRM フォーム内のフィールドで動作します。
コンソール アプリケーションからの取得では、プラグインをバイパスします。たとえば、プラグインを実行せずにデータベースから暗号化された値を直接取得します。デバッグ時、フォームからフィールドにアクセスするとプラグインのブレークポイントにヒットしますが、コンソール プログラムからアクセスするとヒットしません。
私のプラグインがプログラムから呼び出されていないことに驚いています。それは私のビジネスルールを迂回します。
プログラムからエンティティとフィールドにアクセスする方法は次のとおりです。
private static OrganizationServiceProxy service = null;
private static OrganizationServiceContext orgSvcContext = null;
public static void RetrieveSSNs()
{
var query = orgSvcContext.CreateQuery("bpa_consumer");
foreach (Entity consumer in query)
{
if (consumer.Attributes.Contains("bpa_ssn"))
{
string ssn = consumer["bpa_ssn"].ToString();
Console.WriteLine(string.Format("Consumer \"{0}\" has SSN {1}", consumer.Attributes["bpa_name"], ssn));
}
else
{
Console.WriteLine(string.Format("Consumer \"{0}\" doesn't have a SSN", consumer.Attributes["bpa_name"]));
}
}
}