2007-11-19

Kritisk info angående sharepoint workflows och loggning (del 2)

Del ett finns här

Har letat vidare runt denna issue (även fått bra feedback från er läsare) och har hittat följande två guldkorn.

På detta sätt kan man påverka tiden som associationen (och kopplingen till historyn) finns kvar via kod (för läsbarhetens skull använder jag ingen delegat i kodexemplet).

SPList list = //Din lista
SPWorkflowAssociation wfAssociation = null;
foreach (SPWorkflowAssociation association in list.WorkflowAssociations)
{
   if (association.Name == "Din association")
   {
      association.AutoCleanupDays = 9999;
      wfAssociation = association ;
      break;
   }
}
list.UpdateWorkflowAssociation(wfAssociation);

Jag hittade även ett exempel på hur man kan få samma effekt för egenutvecklade workflows via element manifestet (workflow.xml)

<Elements ....>
   <Workflow>
      <MetaData>
         <AutoCleanUpDays>9999</AutoCleanupDays>
      </MetaData>
   </Workflow>
</Elements>

Ser ut som en relativt enkel väg att gå om det nu fungerar som det är tänkt.

Värt att notera är att en av anledningarna till att det ser ut som det gör är pga prestanda (som vi kan läsa på Robert Bogue's blogg) och vi måste bestämma om vår logg är viktig nog kontra kostnaden. Det jag ser som lesson-learned är att historylistan inte skall användas som en "riktig" logg utan snarare som ett komplement.

Om någon behöver hjälp med att utveckla en egen logg-aktivitet så får ni gärna höra av er ;-)

Inga kommentarer: