Dans le but de jouer un peu avec les metadata, j'avais fait un petit outil dans l'urgence pr le transfert de metadata qui marchait bien mais pas du tout modulable.
J'aimerais remplacer ma mise à jour des metadata par quelque qui ressemblerait a ca
foreach (SPField field in item.Fields)
{
string FieldTitle = field.InternalName;
if (!field.ReadOnlyField && targetItem[FieldTitle] != item[FieldTitle])
{
targetItem[FieldTitle] = item[FieldTitle];
}
}
try
{
targetItem.Update();
}
catch{}
Apparament, je recupere bien les bons champs, mais, j'ai une exception a chaque update, pour tous les champs mis a jour (meme qd le update etait dans le foreach pr tester). Avant j'utilisais la methode suivante ->
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane CORDONNIER [MVP]
Peut être ta boucle essaye-t-elle de mettre à jour un champ qui n'est pas en lecture seule mais que tu n'as pas le droit de mettre à jour (certains champs système qui sont cachés par exemple).
Qui marchait tres bien (LinkField etant une constante). Quelqu un pourrait
il m'aider a rendre mon code plus joli ? :)
Peut être ta boucle essaye-t-elle de mettre à jour un champ qui n'est pas en
lecture seule mais que tu n'as pas le droit de mettre à jour (certains
champs système qui sont cachés par exemple).
Peut être ta boucle essaye-t-elle de mettre à jour un champ qui n'est pas en lecture seule mais que tu n'as pas le droit de mettre à jour (certains champs système qui sont cachés par exemple).
Qui marchait tres bien (LinkField etant une constante). Quelqu un pourrait
il m'aider a rendre mon code plus joli ? :)
Chris
Effectivement, j'essaye de mettre à jour des champs en lecture seule, mais, en utilisant un try/catch global ou par field, j'ai toujours la meme erreur meme lorsque je fait l'update dans le foreach -->
Nom de l'affaire -> Des données non valides ont été utilisées pour mettre à jour l'élément de liste. Le champ que vous essayez de mettre à jour est peut-être en lecture seule.
Numéro de dossier -> Des données non valides ont été utilisées pour mettre à jour l'élément de liste. Le champ que vous essayez de mettre à jour est peut-être en lecture seule.
alors que si je fait un item["Nom de l'affaire"] = "blabla";item.Update(); je n'ai pas d'erreur et j'ai bien blabla dans nom de l'affaire du fichier selectionné.
"Stephane CORDONNIER [MVP]" wrote:
Peut être ta boucle essaye-t-elle de mettre à jour un champ qui n'est pas en lecture seule mais que tu n'as pas le droit de mettre à jour (certains champs système qui sont cachés par exemple).
"Chris" a écrit dans le message de news: > Dans le but de jouer un peu avec les metadata, j'avais fait un petit outil dans l'urgence pr le transfert de metadata qui marchait bien mais pas du tout modulable. > > J'aimerais remplacer ma mise à jour des metadata par quelque qui ressemblerait a ca > > foreach (SPField field in item.Fields) > { > string FieldTitle = field.InternalName; > if (!field.ReadOnlyField && targetItem[FieldTitle] != item[FieldTitle]) > { > targetItem[FieldTitle] = item[FieldTitle]; > } > } > try > { > targetItem.Update(); > } > catch{} > > Apparament, je recupere bien les bons champs, mais, j'ai une exception a chaque update, pour tous les champs mis a jour (meme qd le update etait dans le foreach pr tester). Avant j'utilisais la methode suivante -> > > targetItem[LinkField] = item[LinkField]; > targetItem.Update(); > > Qui marchait tres bien (LinkField etant une constante). Quelqu un pourrait il m'aider a rendre mon code plus joli ? :) > >
Effectivement, j'essaye de mettre à jour des champs en lecture seule, mais,
en utilisant un try/catch global ou par field, j'ai toujours la meme erreur
meme lorsque je fait l'update dans le foreach -->
Nom de l'affaire -> Des données non valides ont été utilisées pour mettre à
jour l'élément de liste. Le champ que vous essayez de mettre à jour est
peut-être en lecture seule.
Numéro de dossier -> Des données non valides ont été utilisées pour mettre à
jour l'élément de liste. Le champ que vous essayez de mettre à jour est
peut-être en lecture seule.
alors que si je fait un item["Nom de l'affaire"] = "blabla";item.Update();
je n'ai pas d'erreur et j'ai bien blabla dans nom de l'affaire du fichier
selectionné.
"Stephane CORDONNIER [MVP]" wrote:
Peut être ta boucle essaye-t-elle de mettre à jour un champ qui n'est pas en
lecture seule mais que tu n'as pas le droit de mettre à jour (certains
champs système qui sont cachés par exemple).
"Chris" <Chris@discussions.microsoft.com> a écrit dans le message de
news:FDDD372E-0589-433A-ADBD-D72BAEB230B0@microsoft.com...
> Dans le but de jouer un peu avec les metadata, j'avais fait un petit outil
dans l'urgence pr le transfert de metadata qui marchait bien mais pas du
tout modulable.
>
> J'aimerais remplacer ma mise à jour des metadata par quelque qui
ressemblerait a ca
>
> foreach (SPField field in item.Fields)
> {
> string FieldTitle = field.InternalName;
> if (!field.ReadOnlyField && targetItem[FieldTitle] != item[FieldTitle])
> {
> targetItem[FieldTitle] = item[FieldTitle];
> }
> }
> try
> {
> targetItem.Update();
> }
> catch{}
>
> Apparament, je recupere bien les bons champs, mais, j'ai une exception a
chaque update, pour tous les champs mis a jour (meme qd le update etait dans
le foreach pr tester). Avant j'utilisais la methode suivante ->
>
> targetItem[LinkField] = item[LinkField];
> targetItem.Update();
>
> Qui marchait tres bien (LinkField etant une constante). Quelqu un pourrait
il m'aider a rendre mon code plus joli ? :)
>
>
Effectivement, j'essaye de mettre à jour des champs en lecture seule, mais, en utilisant un try/catch global ou par field, j'ai toujours la meme erreur meme lorsque je fait l'update dans le foreach -->
Nom de l'affaire -> Des données non valides ont été utilisées pour mettre à jour l'élément de liste. Le champ que vous essayez de mettre à jour est peut-être en lecture seule.
Numéro de dossier -> Des données non valides ont été utilisées pour mettre à jour l'élément de liste. Le champ que vous essayez de mettre à jour est peut-être en lecture seule.
alors que si je fait un item["Nom de l'affaire"] = "blabla";item.Update(); je n'ai pas d'erreur et j'ai bien blabla dans nom de l'affaire du fichier selectionné.
"Stephane CORDONNIER [MVP]" wrote:
Peut être ta boucle essaye-t-elle de mettre à jour un champ qui n'est pas en lecture seule mais que tu n'as pas le droit de mettre à jour (certains champs système qui sont cachés par exemple).
"Chris" a écrit dans le message de news: > Dans le but de jouer un peu avec les metadata, j'avais fait un petit outil dans l'urgence pr le transfert de metadata qui marchait bien mais pas du tout modulable. > > J'aimerais remplacer ma mise à jour des metadata par quelque qui ressemblerait a ca > > foreach (SPField field in item.Fields) > { > string FieldTitle = field.InternalName; > if (!field.ReadOnlyField && targetItem[FieldTitle] != item[FieldTitle]) > { > targetItem[FieldTitle] = item[FieldTitle]; > } > } > try > { > targetItem.Update(); > } > catch{} > > Apparament, je recupere bien les bons champs, mais, j'ai une exception a chaque update, pour tous les champs mis a jour (meme qd le update etait dans le foreach pr tester). Avant j'utilisais la methode suivante -> > > targetItem[LinkField] = item[LinkField]; > targetItem.Update(); > > Qui marchait tres bien (LinkField etant une constante). Quelqu un pourrait il m'aider a rendre mon code plus joli ? :) > >