次のコード スニペットでは、親アカウント ID が一致した場合に子アカウントを取得しようとしています。ABC Title Company
orなどの期待どおりにアカウント名をTest Tile Co.
入力していますが、アカウント ID を として入力していますundefined
。
I CRM 2016 で子アカウントの詳細を取得するためのXRM サービス ツールキット。アカウント ID の場合に何が問題になったのかわかりません。属性のスペルを再確認しましたが、何も有利になりませんでした。
functiongetChildAccounts(pAccountId)
{
var query =
"<a:ColumnSet>" +
"<a:AllColumns>false</a:AllColumns>" +
"<a:Columns xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
"<b:string>name</b:string>" +
"<b:string>accountid</b:string>" +
"</a:Columns>" +
"</a:ColumnSet>" +
"<a:Criteria>" +
"<a:Conditions />" +
"<a:FilterOperator>And</a:FilterOperator>" +
"<a:Filters>" +
"<a:FilterExpression>" +
"<a:Conditions>" +
"<a:ConditionExpression>" +
"<a:AttributeName>parentaccountid</a:AttributeName>" +
"<a:Operator>Equal</a:Operator>" +
"<a:Values xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
"<b:anyType i:type='c:string' xmlns:c='http://www.w3.org/2001/XMLSchema'>"+ pAccountId +"</b:anyType>" +
"</a:Values>" +
"</a:ConditionExpression>" +
"</a:Conditions>" +
"<a:FilterOperator>And</a:FilterOperator>" +
"<a:Filters />" +
"</a:FilterExpression>" +
"</a:Filters>" +
"</a:Criteria>" +
"<a:Distinct>false</a:Distinct>" +
"<a:EntityName>account</a:EntityName>" +
"<a:LinkEntities />" +
"<a:Orders />" +
"<a:PageInfo>" +
"<a:Count>0</a:Count>" +
"<a:PageNumber>0</a:PageNumber>" +
"<a:PagingCookie i:nil='true' />" +
"<a:ReturnTotalRecordCount>false</a:ReturnTotalRecordCount>" +
"</a:PageInfo>" +
"<a:NoLock>false</a:NoLock>";
var childAccounts = XrmServiceToolkit.Soap.RetrieveMultiple(query);
alert(childAccounts[0].attributes['name'].value);
alert(childAccounts[0].attributes['accountid'].id);
}