Erreur lors de l'ajout de lignes à une table de classeur Excel SharePoint MaxRequestDurationExceeded
voici l'erreur complète
{
"error": {
"code": "MaxRequestDurationExceeded",
"message": "We're sorry. We couldn't finish what you asked us to do because it was taking too long.",
"innerError": {
"code": "gatewayTimeoutUncategorized",
"message": "The service wasn't able to complete the request within the time limit.",
"innerError": {
"code": "MaxRequestDurationExceeded",
"message": "We're sorry. We couldn't finish what you asked us to do because it was taking too long."
},
"date": "2020-11-24T02:48:23",
"request-id": "a3f533ea-3d8e-4bb6-aa71-4eaf10b79364",
"client-request-id": "a3f533ea-3d8e-4bb6-aa71-4eaf10b79364"
}
}
}
lorsque j'essaye d'ajouter des enregistrements à un fichier Excel, j'obtiens ce message d'erreur qui n'est pas clair. Au début, j'envoyais 5k à 8k enregistrements Excel par message, alors j'ai pensé parce que j'envoyais trop. ce que j'ai fait a été d'envoyer seulement 3k enregistrements pour chaque message mais j'obtiens toujours cette erreur.
J'ai supposé que le fichier Excel SharePoint avait besoin d'un certain temps pour actualiser les données nouvellement publiées, j'ai donc ajouté un délai de 3 minutes après une commande de publication, mais j'obtiens l'erreur
J'ai également essayé dans postman où je n'envoie qu'un seul enregistrement de test et j'obtiens toujours la même erreur, je ne sais pas pourquoi.
Après une vérification plus approfondie, il semble y avoir une limite de taille de classeur qui est dans SharePoint. 50 Mo est la limite, et notre fichier Excel est déjà à 40 Mo. Il est déjà proche, mais j'ai quand même 10 mb de plus à utiliser, donc il ne devrait pas y avoir de problèmes.
Actuellement, le fichier Excel SharePoint contient plus d'un million d'enregistrements
** ouais, nous devrons peut-être repenser le traitement du fichier Excel SharePoint comme une base de données, mais pour l'instant, j'aimerais voir ce qui cause l'erreur mentionnée car elle ne donne pas vraiment beaucoup de détails.
edit : détails supplémentaires, plus tôt lorsque je vérifiais qu'il y avait quelques cas où les enregistrements de test sont réellement ajoutés dans le fichier Excel mais la réponse est toujours le message d'erreur mentionné
aussi je n'ai pas posté le code car il fonctionnait la semaine dernière donc je pense que l'erreur n'est pas liée à mon code mais à cause d'autres variables dont je ne suis pas au courant
Réponses
- On dirait que ce problème est causé lorsque le classeur prend plus de temps que (temps défini par défaut) pour s'ouvrir dans Excel en ligne pour vérifier s'il y a une amélioration.
- Vérifiez si le fichier Excel concerné que vous avez mentionné peut être ouvert dans le client Excel? Vérifiez si vous avez beaucoup de colonnes vides. Vous avez remarqué que la colonne vide avec un million de cellules peut être à l'origine du problème ici. Vous avez donc essayé de le supprimer, de l'enregistrer, d'exécuter l'appel d'API. Également suggéré lorsqu'un classeur contient trop de styles de cellules, de formes ou de mise en forme, cela peut entraîner la mise à Excel Online d'un fichier beaucoup plus long que d'habitude.
- A partagé le document .
il semble que sharepoint autorise maintenant plus d'ajout au fichier Excel puisqu'il a déjà des tonnes d'enregistrements. selon ces limites:
https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
https://support.microsoft.com/en-us/office/file-size-limits-for-workbooks-in-sharepoint-9e5bc6f8-018f-415a-b890-5452687b325e
mais il est quand même un peu étrange que le point final ne renvoie pas de message d'erreur plus informatif.