0

Je dois décider d'une méthode pour stocker un sous-ensemble du contenu dans un site SharePoint, de sorte que lorsque je supprime et recréer certaines listes dans le cadre d'une activation de fonctionnalité, Je peux ré-insérer tout ce contenu là où il devrait appartenir. J'ai une idée moi-même, mais je ne sais pas si c'est la seule méthode et, plus important encore, la bonne méthode."Sauvegarde" temporaire du contenu SharePoint pendant le déploiement de fonctionnalités et de solutions

Mon client m'a créé un système SharePoint pour qu'ils puissent communiquer avec leurs clients. Le processus d'affaires comporte peut-être cinq étapes (peut-être plus, je ne sais même pas, car ils ne me disent pas tout), et le système que j'ai écrit ces derniers mois comporte peut-être deux étapes. Cela répond à notre date limite d'achèvement de ces systèmes lundi prochain la semaine prochaine ... mais à ce stade, mon client prévoit de faire vivre le site à partir de ce point.

En effet, leur travail avec leurs clients sera parallèle à mon travail pour eux. Au fur et à mesure que j'effectue mon propre travail sur un serveur de test séparé, j'applique chaque étape suivante du processus sur le serveur live. Des temps d'arrêt programmés pendant les heures non-commerciales (comme un week-end) seront disponibles pour moi pour effectuer ces poussées. Garder le rythme pour que mon développement soit plus rapide que le processus métier réel est mon propre problème et hors sujet ... alors revenons au problème que j'ai déclaré au début de ce post.

Dans ce système, nous avons des ensembles de caractéristiques qui créeront des listes pour leurs types de contenu et types de champs associés lorsqu'ils sont activés, et supprimeront ces listes lorsque la fonction est désactivée. La plupart des mises à jour n'ont pas besoin de désactiver et de réactiver ces fonctionnalités, telles que les modifications de workflow, les actions personnalisées, les formulaires personnalisés et similaires. Mais il y a certaines parties qui exigent cela. Sur mon serveur de test, je peux effacer les listes, mais une fois que le site est en ligne et qu'il y a de vraies données de correspondance, il est absolument inacceptable de le faire. Ainsi, lorsque j'ai besoin d'implémenter un nouveau changement de fonctionnalité, je dois pouvoir stocker les données actuellement présentes dans plusieurs listes, désactiver la fonctionnalité, réactiver la fonctionnalité et restaurer toutes ces données.

Peut-être que je me suis levé par mon propre petard avec le système de fonctionnalité que j'ai implémenté. Malheureusement, la nécessité de faire plus tard plusieurs de ces «sites de projet» m'a obligé à faire beaucoup de mon code avec le concept de «Peut être déployé à plusieurs reprises». Mon plan actuel consiste à parcourir les listes et les bibliothèques qui seront affectées par la fonction particulière qui doit être réinitialisée. Les fichiers et toutes leurs versions seront enregistrés dans un répertoire sur le serveur. Ensuite, un ensemble de fichiers texte sera utilisé pour stocker toutes les valeurs de champ importantes pour les éléments. Cela inclut de nombreuses recherches de références croisées qui devront être maintenues, mais c'est assez simple. Ensuite, je désactive la fonctionnalité, déploie la nouvelle solution et réactiver la fonctionnalité. Nous téléchargeons tous les fichiers dans l'ordre spécifié par leurs versions et les mettons à jour avec les champs stockés pour ces versions, afin de conserver la structure de la version. Au fur et à mesure que chacun est téléchargé, le nouvel ID est sélectionné et toutes les recherches pertinentes dans le reste des fichiers sont mises à jour (d'une certaine manière, je m'assure de ne pas le mettre à jour plus tard avec une valeur incorrecte, bien sûr). Après cela, nous parcourons tout le reste des éléments dans l'ordre le plus propice à la mise à jour correcte des données relationnelles. Cela résume grosso modo ce que mon plan actuel est. À mon avantage, il n'y a pas de flux de travail à long terme dans le système qui seront affectés par cela, donc il n'y a rien que je dois m'inquiéter de m'assurer que rien ne fonctionne encore quand je fais cela. Je ne connais pas vraiment tous les inconvénients de cette approche ... Je peux imaginer qu'ils sont assez costauds. Mais je ne sais pas quels autres choix j'ai, et mes recherches n'ont rien révélé. Y a-t-il quelqu'un qui peut penser à une meilleure idée? Ou est-ce que quelqu'un va me dire que je n'ai vraiment pas d'autre choix? Merci d'avance!

Répondre

0

Eh bien, bonne chance ...Je ne pense pas que vous ayez d'autres choix à ce stade, si vous avez vraiment besoin de supprimer des choses. Cependant, si vous pouviez en quelque sorte venir avec un moyen de ne pas avoir à faire cela ...

Néanmoins, peu de choses que je peux penser - tout lire pourrait prendre des heures, si quelqu'un marque un article ou envoie le lien à quelqu'un d'autre , cela ne fonctionnera pas après une mise à jour, avoir à faire des changements dans le schéma sera pénible. Et comme c'est habituellement le cas avec SharePoint, il y aura sûrement des problèmes cachés sous la surface pour vous mordre quand vous y serez.

+0

Et bien qu'il soit probablement trop tard pour un changement majeur dans l'architecture, l'utilisation de quelque chose comme http://slam.codeplex.com/Wikipage pourrait aider – kerray

+0

Si je n'ai pas d'autre choix, je n'ai pas d'autre choix. Je vous remercie. À tout le moins, j'ai réussi à réduire le nombre de mises à jour qui nécessiteraient le cycle complet des fonctionnalités. La perte de signets et autres était déjà condamnée dès le départ. –

Questions connexes