Microsoft XRM SDKを使用して、エンティティをプログラムで追加しています。ただし、コマンドを実行するたびに.Create()
、次のエラーが発生します。
Required member 'LogicalName' missing for field 'Target'
このサービスを初めて使用する場合や、社内の同様のリソースが不足しているため、このエラーの意味や調査/解決方法がわかりません。
以下は、XRM 通信を処理するために作成したクラスです。コンストラクターで各接続プロパティをインスタンス化します。次に、この場合は を呼び出しますCreateAgency(AgentTransmission agt)
。メソッド呼び出し のCreateAgency()
メソッドで例外がスローされています。.Create(account)
class DynamicsCommunication
{
private Uri OrganizationUri = new Uri("http://devhildy03/xRMDRMu01/XRMServices/2011/Organization.svc");
private ClientCredentials credentials;
private OrganizationServiceProxy servicePoxy;
private Guid accountId;
private Entity account;
public DynamicsCommunication()
{
credentials = new ClientCredentials();
credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
servicePoxy = new OrganizationServiceProxy(OrganizationUri, null, credentials, null);
accountId = Guid.Empty;
}
public string UpdateDynamics(AgentTransmission agt)
{
switch (DeterminAction(agt))
{
case DynamicsAction.Create:
return CreateAgency(agt);
case DynamicsAction.Update:
return UpdateAgency(agt);
default:
return string.Empty;
}
}
private string CreateAgency(AgentTransmission agt)
{
try
{
//Exception is thrown after this command
accountId = servicePoxy.Create(CreateAccount(agt));
if (accountId != Guid.Empty)
{
return string.Empty;
}
else
{
return "error creating agency";
}
}
catch (ODataException oEx)
{
string s = oEx.Message;
throw;
}
catch (Exception ex)
{
string s = ex.Message;
throw;
}
}
private Entity CreateAccount(AgentTransmission agt)
{
account = new Entity();
account.Attributes.Add("LogicalName", "something");
account.Attributes.Add("name", agt.AgencyName);
account.Attributes.Add("telephone1", agt.BusinessPhone.Replace("(","").Replace(")", "").Replace("-", ""));
account.Attributes.Add("address1_line1", agt.MailingStreet1);
account.Attributes.Add("address1_city", agt.MailingCity);
account.Attributes.Add("address1_postalcode", agt.MailingZip);
account.Attributes.Add("neu_address1stateprovince", 1); //1 for Mailing
account.Attributes.Add("neu_channelid", LookupChannelId(agt.Channel));
account.Attributes.Add("neu_appointementstatus", "279660000");
account.Attributes.Add("customertypecode", LookupCustomerCode(agt.RelationshipType));
account.Attributes.Add("neu_taxid", UnobfuscateRef(agt.ReferenceNumber));
return account;
}
}