Alfresco Anteckningar

 
 
 
  • About

    Anteckningar under utvecklingen av Alfresco
 
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.

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");

}