Запрос CAML с 4 условиями вызовет эту ошибку «Не удается выполнить это действие.nпПожалуйста, повторите попытку «.

#sharepoint #caml

#sharepoint #caml

Вопрос:

У меня есть следующий запрос CAML:-

 <View Scope="RecursiveAll"><Query><Where>
<And>
<Contains><FieldRef Name ="ProjectStage1" /><Value Type = "Choice">closed</Value></Contains>
<Eq><FieldRef Name ="ProjectPriority1" /><Value Type = "Choice">(1) High</Value></Eq>
<And>
<Leq><FieldRef Name="Modified" /><Value Type="DateTime" IncludeTimeValue="False"><Today OffsetDays="-7"/></Value></Leq>
<Geq><FieldRef Name="Modified" /><Value Type="DateTime" IncludeTimeValue="False"><Today OffsetDays="-14"/></Value></Geq>
</And></And>
</Where></Query></View>
  

Но я получаю эту ошибку :-

 Cannot complete this action.nnPlease try again.
  

может кто-нибудь посоветовать?

Ответ №1:

Я не уверен, но я думаю, что вам не хватает одного <And> тега в запросе.

Пожалуйста, убедитесь, что он соответствует правилам, определенным здесь MSDN — И.

У меня не было возможности перепроверить это, но, возможно, что-то подобное должно сработать:

 <View Scope="RecursiveAll">
    <Query>
        <Where>
            <And>
                <Contains>
                    <FieldRef Name ="ProjectStage1" />
                    <Value Type = "Choice">closed</Value>
                </Contains>
                <And>
                    <Eq>
                        <FieldRef Name ="ProjectPriority1" />
                        <Value Type = "Choice">(1) High</Value>
                    </Eq>
                    <And>
                        <Leq>
                            <FieldRef Name="Modified" />
                            <Value Type="DateTime" IncludeTimeValue="False">
                                <Today OffsetDays="-7"/>
                            </Value>
                        </Leq>
                        <Geq>
                            <FieldRef Name="Modified" />
                            <Value Type="DateTime" IncludeTimeValue="False">
                                <Today OffsetDays="-14"/>
                            </Value>
                        </Geq>
                    </And>
                </And>
            </And>
        </Where>
    </Query>
</View>
  

В принципе, мы должны придерживаться таких правил при множественных и условиях:

 1. Single Condition

<Where>     
            <Eq><FieldRef Name=’Name’ /> <Value Type=’Text’>Aasai</Value></Eq>
</Where>

2. Two Condtion
<Where>
          <And>
            <Eq><FieldRef Name=’Title’ />  <Value Type=’Text’>Mr</Value></Eq>
            <Eq><FieldRef Name=’Name’ /> <Value Type=’Text’>Aasai</Value></Eq>
         </And>
</Where>

 3. Three Condtion
 <Where>
      <And>
         <And>
            <Eq><FieldRef Name=’Title’ />  <Value Type=’Text’>Mr</Value></Eq>
            <Eq><FieldRef Name=’Name’ /> <Value Type=’Text’>Aasai</Value></Eq>
         </And>
         <Eq><FieldRef Name=’Address’ /> <Value Type=’Text’>Chennai</Value></Eq>
      </And>
   </Where>

4. Four Condtion
<Where>
      <And>
         <And>
            <Eq><FieldRef Name=’Title’ />  <Value Type=’Text’>Mr</Value></Eq>
            <Eq><FieldRef Name=’Name’ /> <Value Type=’Text’>Aasai</Value></Eq>
         </And>
        <And>
         <Eq><FieldRef Name=’Address’ /> <Value Type=’Text’>Chennai</Value></Eq>
         <Eq><FieldRef Name=’Country’ /> <Value Type=’Text’>India</Value></Eq>
         </And>
      </And>
   </Where>
  

Комментарии:

1. Правила, которые вы добавили в нижнем окне, помогли мне. Спасибо!