Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

gelöst: pnp CamlQuery ergibt null

25.03.2020 (👁8759)

Problem : pnp CamlQuery ergibt null

Problembeschreibung:

eine Abfrage in pnp als CamlQuery führt bei mir immer zu einem Ergebnis null

let items_query = await list.getItemsByCAMLQuery(caml);

 

Fehlerursache:

Die list zeigt auf eine leere SharePoint Liste.
die Ursache liegt darin, dass mit lists.ensure() geprüft wird, ob in web die benannte Liste liegt. Wenn NICHT, dann wird eine neue Liste mit dem Namen erstellt.

const listTestExists = await sp.web.lists.ensure("Liste01");

 

 

Lösung

Erst die Liste holen mit der URL oder sp.web…

let subWebWeb("https://comlinesetest.sharepoint.com/sites/Teamwebsite");

let list=subWeb.lists.getByTitle("Liste01");

Dann auf diese list eine camlquery abgeben

    let items_query = await list.getItemsByCAMLQuery(caml);

 

 

React Code Neu

    //----< Get_Caml_List >----

    // get the list by Id

    let subWebWeb("https://comlinesetest.sharepoint.com/sites/Teamwebsite");

    let list=subWeb.lists.getByTitle("Liste01");

    

    

    // build the caml query object 

    const camlICamlQuery = {

      

ViewXml: "<View> \

      <Query> \

          <Where> \

              <Eq> \

                  <FieldRef Name='Title' /> \

                  <Value Type='Text'>1111</Value> \

              </Eq> \

          </Where> \

      </Query> \

      <ViewFields><FieldRef Name='Title' /></ViewFields><RowLimit>1000</RowLimit></View> "      

    };

    // // get list items

    let items_query = await list.getItemsByCAMLQuery(caml);

    // log resulting array to console

    console.log(items_query);

     var nItems =items_query["sum1"];

     console.log("Items Count=" + nItems);

  //----</ Get_Caml_List >----

Beschreibung Alter Code:

Ich habe schon mehrere verschiedene imports eingestellt.

import { sp,ICamlQuery } from "@pnp/sp/presets/all";

//----< Get_List >----

    // ensure that a list exists. 

    const listTestExists = await sp.web.lists.ensure("Liste01");

    const listID = await listTestExists.list.select("Id")();

    console.log("ListID=" + listID.Id); 

    //----</ Get_List >----

    //----< Get_Caml_List >----

    // get the list by Id

    const list = await sp.web.lists.getById(listID.Id);

    

    // build the caml query object 

    const camlICamlQuery = {

      ViewXml: "<View><ViewFields><FieldRef Name='Title' /></ViewFields><RowLimit>5</RowLimit></View>"      

    };

    // get list items

    let items_query = await list.getItemsByCAMLQuery(caml);

    // log resulting array to console

    console.log(items_query);

     var nItems =items_query.Count;

     console.log("Items Count=" + nItems);

  //----</ Get_Caml_List >----

Falsche Abfrage

Abfrage nach ID mit .ensure() und dann die List holen. Dabei zeigt aber sp.web auf den Ort wo das WebPart installiert ist.

Die Datenquelle kann ganz anders liegen

Fehler

Die CamlQuery Liste wir mit [] null zurückgeben.