您需要根据您的内部电子邮件或用户的电子邮件来获取系统用户,然后您必须根据找到的系统用户获取业务单元。
<fetch top="50">
<entity name="systemuser">
<attribute name="internalemailaddress" />
<attribute name="systemuserid" />
<attribute name="fullname" />
<filter>
<condition attribute="internalemailaddress" operator="eq" value="abc@xyz.de" />
</filter>
<link-entity name="businessunit" from="businessunitid" to="businessunitid" link-type="inner">
<attribute name="name" />
<attribute name="businessunitid" />
</link-entity>
</entity>
</fetch>
查询表达式
// Define Condition Values
var query_internalemailaddress = "abc@xyz.de";
// Instantiate QueryExpression query
var query = new QueryExpression("systemuser");
query.TopCount = 50;
// Add columns to query.ColumnSet
query.ColumnSet.AddColumns("internalemailaddress", "systemuserid", "fullname");
// Define filter query.Criteria
query.Criteria.AddCondition("internalemailaddress", ConditionOperator.Equal, query_internalemailaddress);
// Add link-entity query_businessunit
var query_businessunit = query.AddLink("businessunit", "businessunitid", "businessunitid");
// Add columns to query_businessunit.Columns
query_businessunit.Columns.AddColumns("name", "businessunitid");
OData查询
https://CRMURL.crm.dynamics.com/api/data/v9.2/systemusers?$select=internalemailaddress,systemuserid,fullname&$expand=businessunitid($select=name,businessunitid)&$filter=(internalemailaddress eq 'abc%40xyz.de') and (businessunitid/businessunitid ne null)&$top=50
SQL 查询
SELECT TOP 50 internalemailaddress, systemuserid, fullname, businessunit.name, businessunit.businessunitid
FROM systemuser
JOIN businessunit businessunit ON businessunit.businessunitid = systemuser.businessunitid
WHERE internalemailaddress = 'abc@xyz.de'