[Dynamics CRM 2016]FetchXml 属性详解


当Dynamics 365 api使用fetchXml查询关系时,注意实体后加set,比如new_incident_othercontactsset

 

Fetch XML Schema

CRM 3.0

The following is the schema for the fetch XML parameter used in formulating queries against the Microsoft CRM database.

Included in this section:

BNF

The following describes the schema in Backus-Naur form (BNF):

FetchXml :=

   <fetch

      (page='page-number')? // default is 0

      (count='items-per-page')? // default is unbounder

      (utc-offset='utc-offset')? // default is 0

      (mapping= ('internal' | 'logical' | 'physical') )? // default is logical

      (aggregate = ('true' | 'false' | '1' | '0') )? // '1' and '0' not currently supported.  default is false

   >

      <entity name='entity-name'>

      Entity-Xml

      </entity>

   </fetch>

 

Entity-Xml :=

   ( <all-attributes /> | <no-attributes /> | Attribute-Xml* )

   ( Filter-Xml |

     LinkEntity-Xml |

     Order-Xml )*

 

LinkEntity-Xml :=

   <link-entity

      name = 'entity-name'

      (to = 'column-name')?   // the column on the remote entity

      (from = 'column-name')?  // the column on the local entity

      (alias = 'table-alias')?

      (link-type = ('natural' | 'inner' | 'outer'))?

   >

   Entity-Xml

   </link-entity>

 

Order-Xml :=

   <order

      attribute='attr-name'

      (descending= ('true' | 'false' | '1' | '0')?

   />

 

Attribute-Xml :=

   <attribute

      name='attr-name'

      (aggregate=('count') alias='alias-name')?

   />

 

Filter-Xml :=

   <filter

      (type= ('or' | 'and'))? // default is 'and'

   >

   ( Condition-Xml | Filter-Xml )*

   </filter>

 

Condition-Xml :=

   Condition-None |   // For operators like 'not-null', where there is no explicit value

   Condition-Single |  // For operators that take an attribute and a value, 'eq', for example

   Condition-Multiple  // for operators that involve collections -- 'in' or 'not-in' for example

 

Condition-None :=

   <condition attribute='attribute-name' operator=

      (

      'null' |

      'not-null' |

      'yesterday' |

      'today' |

      'tomorrow' |

      'next-seven-days' |

      'last-seven-days' |

      'next-week' |

      'last-week' |

      'this-week' |

      'this-month' |

      'last-month' |

      'next-month' |

      'this-year' |

      'last-year' |

      'next-year' |

      'eq-userid' |

      'ne-userid' |

      'eq-businessid' |

      'ne-businessid'

      )

   />

 

 

Condition-Single :=

   <condition attribute='attribute-name' operator=

      (

      'eq' |

      'ne' |

      'lt' |

      'gt' |

      'le' |

      'ge' |

      'like' |

      'not-like' |

      'on' |

      'on-or-before' |

      'on-or-after')

   />

 

condition-Multiple :=

   <condition attribute='attribute-name' operator=

      (

      'in' |

      'not-in' |

      'between' |

      'not-between' )

   Value-Xml *

   </condition>

 

Value-Xml :=

   <value>text</value>

XSD

The following describes the schema in XML Schema definition language (XSD) form:

<?xml version='1.0' ?>

<Schema name='fetch-schema' xmlns='urn:schemas-microsoft-com:xml-data' xmlns:dt='urn:schemas-microsoft-com:datatypes'>

   <!--

  

      condition element - used for capturing entity and link-entity

                     "where" clause criteria

     

   -->

   <ElementType name='value' content='textOnly' model='closed' />

   <ElementType name='condition' content='eltOnly' model='closed'>

      <AttributeType name='attribute' dt:type='string' required='yes' />

      <AttributeType name='operator' dt:type='enumeration' dt:values='lt gt le ge eq ne null not-null in not-in between not-between like not-like yesterday today tomorrow next-seven-days last-seven-days next-week last-week this-month last-month next-month on on-or-before on-or-after this-year last-year next-year eq-userid ne-userid eq-businessid ne-businessid' required='yes' default='eq' />

      <AttributeType name='value' dt:type='string' required='no' />

      <AttributeType name='aggregate' dt:type='enumeration' dt:values='count' required='no' />

      <AttributeType name='alias' dt:type='string' required='no' />

      <!-- -->

      <attribute type='attribute' />

      <attribute type='operator' />

   <!--

      The attribute "value" is used for all operators that need to compare against a single value (eg. eq).

      The element "value" is used for operators that need to compare against multiple values (eg. in).

      Some operators require neither the attribute "value" or the element "value" (eg. null).

   -->

      <attribute type='value' />

      <attribute type='aggregate' />

      <attribute type='alias' />

      <element type='value' minOccurs='0' maxOccurs='*' />

   </ElementType>

   <!--

  

      filter element - used for constructing complex conditionals

                   legal one entity and link-entity

     

   -->

   <ElementType name='filter' content='eltOnly' model='closed'>

      <AttributeType name='type' dt:type='enumeration' dt:values='and or' required='no' default='and' />

      <!-- -->

      <attribute type='type' />

      <element type='condition' minOccurs='0' maxOccurs='*' />

      <element type='filter' minOccurs='0' maxOccurs='*' />

   </ElementType>

   <!--

  

      attribute elements - used for selecting attributes from the

                      surrounding entity / link-entity, these

                      values are returned as part of the fetch

     

   -->

   <ElementType name='all-attributes' content='empty' model='closed' />

   <ElementType name='attribute' content='empty' model='closed'>

      <AttributeType name='name' dt:type='string' required='yes' />

      <!-- -->

      <attribute type='name' />

   </ElementType>

   <!--

  

   order element - used to specify a sort order

 

   -->

   <ElementType name='order' content='eltOnly' model='closed'>

      <AttributeType name='attribute' dt:type='string' required='yes' />

      <AttributeType name='descending' dt:type='boolean' required='no' default='false' />

      <!-- -->

      <attribute type='attribute' />

      <attribute type='descending' />

   </ElementType>

   <!--

  

      link-entity element - used for joining one entity to it's "parent"

     

   -->

   <ElementType name='link-entity' content='eltOnly' model='closed' order='many'>

      <AttributeType name='to' dt:type='string' required='no' />

      <AttributeType name='from' dt:type='string' required='no' />

      <AttributeType name='name' dt:type='string' required='yes' />

   <AttributeType name='alias' dt:type='string' required='no' />

   <AttributeType name='link-type' dt:type='string' dt:values='natural inner outer' required='no' />

      <!-- -->

      <attribute type='name' />

      <attribute type='to' />

   <attribute type='alias' />

   <attribute type='link-type' />

      <element type='all-attributes' minOccurs='0' maxOccurs='1' />

      <element type='attribute' minOccurs='0' maxOccurs='*' />

   <element type='order' minOccurs='0' maxOccurs='*' />

      <element type='filter' minOccurs='0' maxOccurs='1' />

      <element type='link-entity' />

   </ElementType>

   <!--

  

      entity element - used for specifying the root element for a fetch, only

                   one root entity is allowed in a given fetch, all others

                   are dependent on this entity and are marked as

                   link-entity

     

   -->

   <ElementType name='entity' content='eltOnly' model='closed' order='many'>

      <AttributeType name='name' dt:type='string' required='yes' />

      <!-- -->

      <attribute type='name' />

      <element type='all-attributes' minOccurs='0' maxOccurs='1' />

      <element type='attribute' minOccurs='0' maxOccurs='*' />

   <element type='order' minOccurs='0' maxOccurs='*' />

      <element type='link-entity' />

      <element type='filter' minOccurs='0' maxOccurs='1' />

   </ElementType>

   <!--

  

      fetch element - root element for the query

     

   -->

   <ElementType name='fetch' content='eltOnly' model='closed'>

      <AttributeType name='count' dt:type='int' required='no' />

   <AttributeType name='page' dt:type='int' required='no' />

   <AttributeType name='utc-offset' dt:type='int' required='no' />

   <AttributeType name='aggregate' dt:type='boolean' required='no' />

   <AttributeType name='mapping' dt:type='enumeration' dt:values='internal logical physical' required='no' />

      <!-- -->

      <attribute type='count' />

   <attribute type='page' />

   <attribute type='utc-offset' />

   <attribute type='aggregate' />

   <attribute type='mapping' />

      <element type='entity' minOccurs='1' maxOccurs='1' />

   </ElementType>

</Schema>

Conditions

The following table provides more information regarding conditions in Fetch XML.

Condition

Actual comparison

Value

equals x

eq

x

does not equal x

ne

x

is greater than x

gt

x

is greater than or equal to x

ge

x

is less than x

lt

x

is less than or equal to x

le

x

begins with x

like

x%

does not begin with x

not-like

x%

ends with x

like

%x

does not end with x

not-like

%x

contains x

like

%x%

does not contain x

not-like

%x%

exists

not-null

 

does not exist

null

 

anytime

not-null

 

yesterday

yesterday

 

today

today

 

tomorrow

tomorrow

 

in next 7 days

next-seven-days

 

in last 7 days

last-seven-days

 

next week

next-week

 

last week

last-week

 

this week

this-week

 

this month

this-month

 

last month

last-month

 

next month

next-month

 

this year

this-year

 

next year

next-year

 

last year

last-year

 

on x

on

x

on or after x

on-or-after

x

on or before x

on-or-before

x

in between

between

 

not between

not-between

 

in

in

 

not in

not-in

 

equals user id

eq-userid

 

does not equal user id

ne-userid

 

equals business id

eq-businessid

 

does not equal business id

ne-businessid

 

 

 

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">

  <entity name="incident">

    <all-attributes/>

    <order attribute="title" descending="false"/>

  </entity>

</fetch>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM