Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
1 year ago

Problema con List.Generate

Hola, chicos

Obtuve la parte superior del código a través de CoPilot.

Funciona bien en listas de SharePoint con menos de 5000 registros, pero tan pronto como lo intento en una lista con más de 5000 registros, da un error.

¿Alguien puede ayudar a arreglar el código y ayudarme a entender qué estaba mal?

Código

let
    Source = SharePoint.Tables("https://clarkcontracts.sharepoint.com/sites/CE4080-PitfodelsWoodCareHomeAberdeen", [Implementation="2.0"]),
    List = Source{[Title="Site Sign In"]}[Items],
    PageSize = 5000,
    GetPage = (PageNumber as number) =>
        let
            Skip = PageNumber * PageSize,
            Page = OData.Feed("https://clarkcontracts.sharepoint.com/sites/CE4080-PitfodelsWoodCareHomeAberdeen/_api/web/lists/getbytitle('Site Sign In')/items?$top=" & Number.ToText(PageSize) & "&$skip=" & Number.ToText(Skip))
        in
            Page,
    Pages = List.Generate(() => 0, each _ < 10, each _ + 1, each GetPage(_)),
    CombinedPages = Table.Combine(Pages),
    #"Trimmed Text1" = Table.TransformColumns(CombinedPages,{{"Title", Text.Trim, type text}, {"Company", Text.Trim, type text}}),
    #"Capitalized Each Word" = Table.TransformColumns(#"Trimmed Text1",{{"Company", Text.Proper, type text}, {"Title", Text.Proper, type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Capitalized Each Word",null,"CE4080",Replacer.ReplaceValue,{"Contract"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value",{{"Modified", type datetime}, {"Created", type datetime}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Title", "Name"}, {"SignInLocation", "Sign In Location"}, {"SignOutLocation", "Sign Out Location"}, {"PostcodeStart", "Postcode Start"}, {"ProjectPostcode", "Project Postcode"}, {"VehicleRegistration", "Vehicle Registration"}, {"SignInDateandTime", "Sign In Date and Time"}, {"SignOutDateandTime", "Sign Out Date and Time"}, {"ModeofTransport", "Mode of Transport"}, {"AreyouaDriver/Passenger", "Are you a Driver or Passenger"}, {"Distance(includingreturnjo", "Distance including return journey"}}),
    #"Replaced Value1" = Table.ReplaceValue(#"Renamed Columns","Ccl","Clark Contracts",Replacer.ReplaceValue,{"Company"}),
    #"Replaced Value2" = Table.ReplaceValue(#"Replaced Value1","Clark Contracts Ltd","Clark Contracts",Replacer.ReplaceValue,{"Company"}),
    #"Replaced Value3" = Table.ReplaceValue(#"Replaced Value2","Clark Cclcontracts","Clark Contracts",Replacer.ReplaceValue,{"Company"}),
    #"Replaced Value6" = Table.ReplaceValue(#"Replaced Value3","mid size car","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value7" = Table.ReplaceValue(#"Replaced Value6","Car","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value8" = Table.ReplaceValue(#"Replaced Value7","Crane ","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value9" = Table.ReplaceValue(#"Replaced Value8","Passenger","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value10" = Table.ReplaceValue(#"Replaced Value9","Car ","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value11" = Table.ReplaceValue(#"Replaced Value10","Drive","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value12" = Table.ReplaceValue(#"Replaced Value11","Van ","Van",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value13" = Table.ReplaceValue(#"Replaced Value12"," Van ","Van",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value14" = Table.ReplaceValue(#"Replaced Value13","Crane","Medium Petrol Car",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Replaced Value15" = Table.ReplaceValue(#"Replaced Value14","Vn","Van",Replacer.ReplaceValue,{"Mode of Transport"}),
    #"Sorted Rows" = Table.Sort(#"Replaced Value15",{{"Created", Order.Descending}})
in

Error

DataSource.Error: OData: Request failed: The remote server returned an error: (400) Bad Request. (The $skip and $skiptoken cannot be specified at the same time.)
Details:
    DataSourceKind=OData
    DataSourcePath=https://clarkcontracts.sharepoint.com/sites/CE4080-PitfodelsWoodCareHomeAberdeen/_api/web/lists/getbytitle(%27Site%20Sign%20In%27)/items
    sprequestguid=cf04a0a1-40a9-c000-7e49-b78fbea9880b
    Url=https://clarkcontracts.sharepoint.com/sites/CE4080-PitfodelsWoodCareHomeAberdeen/_api/web/lists/getbytitle('Site Sign In')/items?%24skiptoken=Paged%3dTRUE%26p_ID%3d4017&%24top=4000&%24skip=0

Bien

5 Replies

  • Hola @jbrines

    Pruebe este código

    vuelo

    CombinedPages = OData.Feed(

    "https://clarkcontracts.sharepoint.com/sites/CE4080-PitfodelsWoodCareHomeAberdeen/_api/web/lists/getbytitle('Inicio de sesión en el sitio ')/artículos",

    nulo

    [Implementación = "2.0"]

    ),

    #"Texto recortado1" = Tabla.TransformColumnas(CombinedPages,{{"Título", Texto.Recortar, escribir texto}, {"Compañía", Texto.Recortar, escribir texto}}),

    #"Mayúsculas cada palabra" = Tabla.TransformColumns(#"Texto recortado1",{{"Empresa", Texto.Adecuado, escriba texto}, {"Título", Texto.Adecuado, escriba texto}}),

    #"Valor reemplazado" = Table.ReplaceValue(#"Mayúsculas cada palabra",null,"CE4080",Replacer.ReplaceValue,{"Contract"}),

    #"Tipo cambiado" = Table.TransformColumnTypes(#"Valor reemplazado",{{"Modificado", tipo datetime}, {"Creado", tipo datetime}}),

    #"Columnas renombradas" = Tabla.RenameColumns(#"Tipo cambiado",{

    {"Título", "Nombre"},

    {"SignInLocation", "Ubicación de inicio de sesión"},

    {"SignOutLocation", "Ubicación de cierre de sesión"},

    {"PostcodeStart", "Inicio de código postal"},

    {"Código Postal del Proyecto", "Código Postal del Proyecto"},

    {"Matrícula del vehículo", "Matrícula del vehículo"},

    {"SignInDateandTime", "Fecha y hora de inicio de sesión"},

    {"SignOutDateandTime", "Fecha y hora de cierre de sesión"},

    {"MododeTransporte", "Modo de Transporte"},

    {"AreyouaDriver/Passenger", "¿Eres un conductor o pasajero"},

    {"Distancia (incluyendo ida y vuelta", "Distancia incluyendo viaje de vuelta"}

    }),

    #"Valor reemplazado1" = Tabla.ReplaceValue(#"Columnas renombradas","Ccl","Contratos de Clark",Replacer.ReplaceValue,{"Compañía"}),

    #"Valor reemplazado2" = Tabla.ReplaceValue(#"Valor reemplazado1","Clark Contracts Ltd","Clark Contracts",Replacer.ReplaceValue,{"Compañía"}),

    #"Valor reemplazado3" = Tabla.ReplaceValue(#"Valor reemplazado2","Clark Cclcontracts","Clark Contracts",Replacer.ReplaceValue,{"Compañía"}),

    #"Valor Reemplazado6" = Tabla.ReplaceValue(#"Valor Reemplazado3","Coche de tamaño mediano","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de Transporte"}),

    #"Valor Reemplazado7" = Tabla.ReplaceValue(#"Valor Reemplazado6","Coche","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de Transporte"}),

    #"Valor reemplazado8" = Tabla.ReplaceValue(#"Valor reemplazado7","Grúa","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de transporte"}),

    #"Valor reemplazado9" = Tabla.ReplaceValue(#"Valor reemplazado8","Pasajero","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de transporte"}),

    #"Valor Reemplazado10" = Tabla.ReplaceValue(#"Valor Reemplazado9","Coche","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de Transporte"}),

    #"Valor Reemplazado11" = Tabla.ReplaceValue(#"Valor Reemplazado10","Drive","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de Transporte"}),

    #"Valor reemplazado12" = Table.ReplaceValue(#"Valor reemplazado11","Van ","Van",Replacer.ReplaceValue,{"Modo de transporte"}),

    #"Valor reemplazado13" = Table.ReplaceValue(#"Valor reemplazado12"," van ","van",Replacer.ReplaceValue,{"modo de transporte"}),

    #"Valor Reemplazado14" = Tabla.ValorReemplazo(#"Valor Reemplazado13","Grúa","Coche de gasolina mediano",Replacer.ReplaceValue,{"Modo de Transporte"}),

    #"Valor reemplazado15" = Table.ReplaceValue(#"Valor reemplazado14","Vn","Van",Replacer.ReplaceValue,{"Modo de transporte"}),

    #"Filas ordenadas" = Table.Sort(#"Valor reemplazado15",{{"Creado", Order.Descending}})

    en

    #"Filas ordenadas"

    Gracias
    Pankaj Namekar | LinkedIn (en inglés)

    Si esta solución ayuda, por favor acéptala y da un aplauso (Me gusta), sería muy apreciado.