Alfresco Anteckningar

 
 
 
  • About

    Anteckningar under utvecklingen av Alfresco
 
Inga fler anteckningar August 20th, 2009

Jag har slutat min anställning hos SGU och jobbar inte längre med Alfresco. Därmed är det slut med anteckningar men ni kan följa min andra blogg Teknikhemmet.

Posted in SGU || No Comments »
Nu med support May 21st, 2008

För några dagar sedan kunde man läsa att SGU var först i Sverige med att köpa support till Alfresco från Redpill. Idg har bakat in den nyheten i ett stycke om kommunernas satsning på öppen källkod. Det känns bra att flera upptäcker nyttan med att dela med sig av kunskap istället för att hålla den för sig själv.

Vi hoppas på ett gott samarbete med Redpill och förhoppningsvis är det bra att de växer så att de kan bredda sin kompetens och utbud ännu mer.

Använda personer kopplade till ett dokument i Javascript May 21st, 2008

Vi har ofta personer kopplade till ett dokument eller space. Det kan vara vem som är ansvarig för dokumentet eller vem som skall godkänna en ändring av dokumentet. Dessa personer behöver dessutom rättigheter till dokumentet och är ofta med i de arbetsflöden som dokumentet går igenom. Därför är det smidigt att kunna använda metadatat istället för att ange de här uppgifterna igen.

Jag har gjort ett litet javaskript som tar en grupp med personer som är associerade med ett dokument (ligger som metadata) och tilldelar alla medlemmarna i gruppen en viss roll. Det funkar och för att tilldela personer till ett arbetsflöde är det ännu enklare eftersom man inte behöver använda sig av användarnamnet:

…[”bpm:assignee”] = document.assocs[”sgu:reviewerGroup”][0];

/*
Script that gives permissions to a group of people associated with current document

*/

role = "Contributor";          // Permissions to give to the group members

group = "sgu:reviewerGroup";   // Name of the groupmembers = document.assocs[group];

for(i=0; i<members.length; i++)

{

	member = members[i];

	document.setPermission(role,member.properties.userName);

}
Historik för arbetsflöden i dokumenten May 21st, 2008

Om man använder de arbetsflöden som följer med Alfresco finns det inget sätt att se vilken status dokumentet har och att det passerat igenom ett arbetsflöde. Vi använder oss av en Freemarker-mall för att visa status på dokumentet och har sedan utökat Alfresco med kod från en blogg i nederländerna. Koden lägger till en “Task history” i dokumenten och borde vara standard i Alfresco.

Bildarkiv i Alfresco May 21st, 2008

Vi har idag en bilddatabas baserad på Portfolio som vi tänkt migrera till Alfresco. En kollega hittade ett examensjobb från en Belgisk högskola där Alfresco anpassats för att hantera medicinska bilder. Många bitar är precis det vi behöver. I uppsatsen beskriv även en hel del om hur Alfresco är uppbyggt och kan anpassas. Det är ett konkret exempel på hur Alfresco kan nyttjas i praktiken vilket jag saknat tidigare.

Exempel på kapitel från uppstatsen är: Alfresco Module Packages, Actions, Collaboration with third party applications, Content presentation usings custom views, Encryption of content, Image finder action, Classicification, Record Management Module.

Posted in GUI || No Comments »
18 miljoner dollar May 21st, 2008

Hos Ohloh görs en uppskattning att det skulle kosta nästa 18 miljoner dollar att utveckla Alfresco på egen hand. Kanske inte helt vetenskapligt men ändå en liten tankeställare om vad som erbjuds för utan krav på ersättning. Men Alfresco hade inte varit någonting utan alla de öppna komponenter som det är byggt av och det är förstås det som är styrkan med öppen programvara.

Javaprogram som når både Lotus Notes och Alfresco May 21st, 2008

Vi har behov av att överföra dokument och metadata från Lotus Notes/Domino till Alfresco. Min första tanke var därför att skriva en java-agent i Lotus Notes som skulle koppla upp sig mot Alfresco men vi använder version 7 av Lotus Notes och den använder JDK version 1.4. För att nyttja Alfresco behövs JDK 1.5. Jag utvecklar därför istället i Eclips där man kan välja version av JDK.

Det problem som uppstår när koden inte körs inne i Lotus Notes är att det blir svårt att nå den aktiva sessionen med de API:er som IBM tillhandahåller. Det löste sig genom ett öppet API vid namn Domino med vilket jag enkelt kan komma åt dokument i Lotus Notes. För att nå Alfresco använder jag Web Services API och har gjort en enkel anpassning av FirstWebServiceClient.java som följer med i Alfresco SDK.

Nedan följer koden som jag använder för att koppla upp mig mot Lotus Notes. Den körs lokalt på min PC och man måste ha Notes i systemsökvägen (path) för att det ska fungera men den skulle likaväl kunna köras på servern. Hela java-filen finns här.

Även om det fungerar utan större problem funderar jag ändå på att exponera den data jag vill åt i Lotus Notes via web services istället. Det är ganska enkelt att skapa web services i Lotus Notes och det skulle bli en stadigare lösning med mer flexibilitet t.ex. skulle man enkelt kunna använda ett integreringsvektyg som Jitterbit istället för att skriva kod.

// Get Notes session
DNotesFactory factory = DNotesFactory.getInstance();

DSession session = factory.getSession();

// Open address book

DDatabase database = session.getDatabase("", "names.nsf");

System.out.println(database.getTitle());

// Open view People and get all documents

DView dv = database.getView("People");

Iterator docs = dv.getAllDocuments();

String fullname = "Not found";

String email = "Not found";

if(docs.hasNext())

{

DDocument doc = (DDocument)docs.next();

fullname = doc.getItemValueString("Fullname");

email = doc.getItemValueString("InternetAddress");

}
Skapa eller ändra roller May 21st, 2008

Hittade en tråd som beskrev utförligt hur man skapar en ny roll i Alfresco och efter en del trixande lyckades jag skapa en roll “Projektledare” som måste checka ut dokument för att få redigera dessa. Tyvärr kan man inte göra ändringarna i extentions katalogen. Har därför markerat mina ändringar med en start och slut kommentar i Alfrescos systemkonfiguration.

Skapa rollen i permissionDefintions.xml:

<!-- jste start -->
<!-- The Projektledare permission allows read and checkout to edit.  -->

<permissionGroup name="Projektledare" allowFullControl="false" expose="true" >

<includePermissionGroup permissionGroup="Read" type="sys:base" />

<includePermissionGroup type="cm:lockable" permissionGroup="CheckOut"/>

<includePermissionGroup type="sys:base" permissionGroup="WriteProperties"/>

</permissionGroup>

<!-- jste end -->

Lägg till rollen till Content:

<permissionSet type="cm:content" expose="selected">

<!-- Content specific roles.                            -->
<permissionGroup name="Coordinator" extends="true" expose="true"/>

<permissionGroup name="Collaborator" extends="true" expose="true"/>

<permissionGroup name="Contributor" extends="true" expose="true"/>

<permissionGroup name="Editor" extends="true" expose="true"/>

<permissionGroup name="Consumer" extends="true" expose="true"/>

<permissionGroup name="RecordAdministrator" extends="true" expose="false"/>

<!-- jste start -->

<permissionGroup name="Projektledare" extends="true" expose="true"/>

<!-- jste end -->

</permissionSet>

Ändra rättigheter för ROLE_LOCK_OWNER :

<!-- jste start -->

<!-- Write content is granted to the lock owner              -->

<globalPermission permission="WriteContent" authority="ROLE_LOCK_OWNER"/>

<!-- jste end -->

Ändra requiredPermissions i permissionSet “cm:lockable” från Write till WriteProperties:

<!-- jste start -->
<!-- Low level lock permission                 -->
<permission name="_Lock" requiresType="false" expose="false">
<grantedToGroup permissionGroup="Lock" />
<requiredPermission on="node" type="sys:base"  name="WriteProperties"/>
</permission>
<!-- jste end -->
ecmarchitect.com May 21st, 2008

En av de bästa platserna för information om ECM och Alfresco i synnerhet är ecmarchitect.com. Där finns guider för content model, custom behaviors, workflow och mycket mer.

Posted in ECM || No Comments »
Dags att ta det röda pillret? May 21st, 2008

Redpill är officiell partner till Alfresco i Sverige. Genom dem kan man får support på produkterna och tillgång till Enterprise versionen. Trevligt för oss som är en myndighet är att Redpill har ramavtal vilket förenklar en beställning. Peter Löfgren som är affärsansvarig för ECM på Alfresco har också en blogg där man (sporadiskt) kan läsa en del intressant.

Och om någon missat det så är det röda pillret en referens till filmen The Matrix.