私はJavaアプリケーションからDynamicsCRM統合を行っており、CRMトレーニングキットの例に従って、アカウントと連絡先の接続と作成に成功しました。アカウントの作成や、連絡先をアカウントに接続するときに、フィールドを追加する際に問題が発生しました。たとえば、選択リストである「address1_freighttermscode」でアカウントを作成することはできません。私のコードは次のとおりです。
private static OrganizationServiceStub.Guid createAccount(OrganizationServiceStub serviceStub, String[] args) {
try {
OrganizationServiceStub.Create entry = new OrganizationServiceStub.Create();
OrganizationServiceStub.Entity newEntryInfo = new OrganizationServiceStub.Entity();
OrganizationServiceStub.AttributeCollection collection = new OrganizationServiceStub.AttributeCollection();
if (! (args[0].equals("null") )) {
OrganizationServiceStub.KeyValuePairOfstringanyType values = new OrganizationServiceStub.KeyValuePairOfstringanyType();
values.setKey("name");
values.setValue(args[0]);
collection.addKeyValuePairOfstringanyType(values);
}
if (! (args[13].equals("null"))){
OrganizationServiceStub.KeyValuePairOfstringanyType incoterm = new OrganizationServiceStub.KeyValuePairOfstringanyType();
incoterm.setKey("address1_freighttermscode");
incoterm.setValue(args[13]);
collection.addKeyValuePairOfstringanyType(incoterm);
}
newEntryInfo.setAttributes(collection);
newEntryInfo.setLogicalName("account");
entry.setEntity(newEntryInfo);
OrganizationServiceStub.CreateResponse createResponse = serviceStub.create(entry);
OrganizationServiceStub.Guid createResultGuid = createResponse.getCreateResult();
System.out.println("New Account GUID: " + createResultGuid.getGuid());
return createResultGuid;
} catch (IOrganizationService_Create_OrganizationServiceFaultFault_FaultMessage e) {
logger.error(e.getMessage());
} catch (RemoteException e) {
logger.error(e.getMessage());
}
return null;
}
実行すると、このエラーが発生します
[ERROR] Incorrect attribute value type System.String
選択リストまたはルックアップを処理する方法の例を誰かが持っていますか?
連絡先をアカウントに接続するには、フィールドparentcustomerid
に入力parentcustomeridtype
し、アカウントのGUIDと「アカウント」を使用しますが、連絡先はアカウントに関連付けられません。