2008-12-01 8 views
1

Je suis confronté à un problème plutôt particulier ici. Nous avons un workflow d'approbation OOTB, qui enregistre tout l'historique du workflow dans une liste d'historique de workflow. Cette liste est purgée tous les 60 jours. Pour augmenter cette période pour laquelle l'histoire de workflow est conservée, je googlé et trouvé que j'ai couru ce code:Tester l'historique des flux de travail Autocleanup

utilisant (SPSite wfSite = new SPSite (siteUrl)) {

using (SPWeb wfWeb = wfSite.OpenWeb(webName)) 

{ 

    SPList wfList = wfWeb.Lists[listName]; 

    SPWorkflowAssociation _wfAssociation = null; 

    foreach (SPWorkflowAssociation a in wfList.WorkflowAssociations) 

    { 

     if("approval 1" == wfAssociationName.ToLowerInvariant()) 

     { 

      a.AutoCleanupDays = newCleanupDays; 

      _wfAssociation = a; 

      assoCounter++; 

     } 

     else 

     { 

      _wfAssociation = a; 

     } 

    } 

    wfList.UpdateWorkflowAssociation(_wfAssociation); 

} 

}

Le code fonctionne correctement, en ce sens qu'il ne génère aucune exception. Jusqu'ici tout va bien. Mais mon problème maintenant est que j'ai besoin de tester si mon code fonctionne. Donc, j'ai mis la variable newCleanupDays à 0. Mais je vois que les nouvelles activités de flux de travail sont toujours enregistrées dans la liste de l'historique des flux de travail. Je peux définir la variable à 1, mais cela signifierait attendre une journée entière pour voir si le code fonctionne ..

Y at-il un moyen de tester mon scénario, de sorte que je peux définir les jours autocleanup à 1 , et je ne dois pas attendre une journée entière pour voir si mon code fonctionne? Y a-t-il un moyen de "tromper" le système en pensant qu'un jour s'est écoulé? J'ai essayé de changer l'heure du système et de redémarrer le serveur et tout, mais cela n'a pas fonctionné pour moi.

Répondre

2

La modification de l'heure du système devrait fonctionner, mais vous devrez lancer le travail du minuteur qui initie les flux de travail. Ne redémarrez pas le serveur après le changement d'heure. Un avertissement est que SharePoint n'aime vraiment pas remonter dans le temps. Tous les documents qui sont créés dans le "futur" vont avoir des problèmes. Alors n'oubliez pas de tester dans un nouveau site Web qui peut être supprimé lorsque vous revenez à "maintenant".

+0

Merci pour la réponse, comment puis-je relancer le travail du minuteur? Will "STSADM -o execadmsvcjobs" fait le travail? – ashwnacharya

+0

Accédez au site d'administration et définissez le planning pour que le travail de workflow soit toutes les 5 min. – Nat

Questions connexes