Vanavond in Open XML en Word Automation Services gedoken. Word Automation Services is nieuw voor SharePoint / Office 2010. Deze nieuwe functionaliteit zal ervoor zorgen dat veel van de macro’s die nu met Office clients moeten worden uitgevoerd geheel vanaf een server kunnen worden afgehandeld.

Het probleem nu

Officieel ondersteunt Microsoft het draaien van client applicaties op servers niet. Daarnaast zijn de huidige opties voor het automatiseren van de Office Clients erg beperkt. Word ondersteund bijvoorbeeld maximaal 1 processor. Een ander voorbeeld is dat bij eventuele problemen een client applicatie, zoals Word of Excel een dialoogvenster zal tonen waarna de Macro stopt. Zeker indien grote hoeveelheden documenten verwerkt dienen te worden met behulp van Office Automation kunnen daarmee enorme problemen ontstaan. Office Automation is kortweg niet geschikt voor het verwerken van grote hoeveelheden data in bulk.

Toch kan zich soms een situatie voordoen waarin de productie van grote hoeveelheden documenten gewenst is. Een voorbeeld daarvan is een situatie waarin, en dit is zeker nu actueel, grote hoeveelheden hypotheek offertes dienen te worden samengesteld. Daarbij kan zich de situatie voordoen dat gegevens uit meerdere Word documenten en Excel spreadsheets samengevoegd te worden tot één geheel. Indien dit gedaan zou moeten worden met behulp van Office macro’s kan, zelfs al is alles geautomatiseerd, een situatie ontstaan waarbij de samenvoegactie tussen de 10 en 30 seconden per offerte kan kosten. Indien op deze manier honderden offertes dienen te worden samengesteld kan de verwerkingstijd in de uren al dan niet dagen lopen.

Open XML

Alle documenten vanaf Microsoft Office 2007 zijn gebaseerd op Open XML. De de x achter de bestandsformaten geeft dit aan. In feite is een Open XML bestand niets meer dan een ZIP bestand met meerdere bestanden erin.


Voorbeeld van een Word bestand waarbij de extensie omgezet is naar .zip

Een Word document kan zo bestaan uit een enorme hoeveelheid afzonderlijke XML bestanden, aangevuld met plaatjes in de vorm van .jpg of .png bestanden. Elk XML bestand bevat andere gegevens. In document.xml staat de daadwerkelijke tekst, styles.xml bevat een beschrijving van alle gebruikte stijlen en ga zo maar door.


Voorbeeld van Open XML Word 2010 bestand geopend in ZIP

Open XML SDK

Met de introductie van Office 2010 en SharePoint 2010 zal Microsoft de Open XML SDK (Software Developers Kit) 2.0 bevatten die het mogelijk maakt een breed scala aan operaties uit te voeren met Office bestanden. Met behulp van de Open XML SDK 2.0 kunnen programmeurs met slechts enkele regels code de inhoud van Open XML bestanden bewerken. Het gaat daarbij voornamelijk over het injecteren van gegevens in bestanden.

Een voorbeeld daarvan is het samenvoegen van bestanden. Indien inhoud van meerdere documenten samengevoegd dient te worden naar één uiteindelijk bestand is dit een bewerking waarvoor de Open XML SDK 2.0 uitermate geschikt is. Gebruik van de Open XML SDK kan in dit geval bewerken van documenten enorm versnellen. Waar met traditionele Word Macro’s het invoegen van gegevens in een specifiek bestand een enorme hoeveelheid tijd kan kosten en altijd op een client moet worden uitgevoerd, kan dat nu worden afgehandeld op een server en zal de complete bewerking in enkele milliseconden afgehandeld zijn.

De Open XML SDK 2.0 is momenteel beschikbaar in de vorm van een CTP (Customer Technology Preview). De finale versie is dus nog vrijgegeven en zal naar verwachting gelijktijdig vrijgegeven worden met de introductie van Office 2010. Hij kan gedownload worden via de link: http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

Over de nu beschikbare Open XML SDK is door Microsoft een video gemaakt die hier bekeken kan worden:

YouTube Preview Image

De Open XML SDK kan veel voordelen bieden maar ken took een groot aantal nadelen. Zo biedt de Open XML SDK alleen een antwoord op het invoegen en lezen van data in bestanden. Opmaak en algemene Microsoft Office eigenschappen (zoals herberekenen van formules in Excel, wijzigen van de opmaak in een Word document, herberekenen van de inhoudsopgave etc.) kunnen niet uitgevoerd middels de Open XML SDK. Daarnaast kan ze alleen gebruik de Open XML SDK alleen gebruikt worden op Open XML bestanden (zoals docx, xlsx, pptx).

Om op deze laatste bewerkingen een antwoord te bieden is met de lancering van Office 2010 en SharePoint 2010 een aantal nieuwe services beschikbaar gesteld in de vorm van de Office Automation Services.

Word Automation Services

Word Automation Services zijn nieuw voor Office 2010 en SharePoint 2010. Met behulp van de Word Automation Services kunnen alle handelingen die normal op een client worden uitgevoerd op een server worden afgehandeld.

Een voorbeeld daarvan is het openen van een .doc bestand, herberekenen van de Inhoudsopgave, dit geheel converteren en opslaan als een Open XML bestand (.docx) en vervolgens opslaan als PDF bestand.

Word Automation Services kunnen door ontwikkelaars gebruikt worden. Het is beschikbaar in C# en VB.NET.

Excel Services

Excel Services zijn beschikbaar voor SharePoint sinds MOSS 2007. Met behulp van Excel Services kunnen grofweg dezelfde bewerkingen gedaan worden op Excel documenten als de bewerkingen die worden uitgevoerd met Word Automation Services. Specifieke handelingen voor Excel zijn echter bijvoorbeeld het hercalculeren van werkbladen.

Open XML SDK en Word Automation Services combineren

Het is mogelijk de Open XML SDK en Word Automation Services te combineren. Situaties waarin dit gemakkelijk zou kunnen zijn is in gevallen waarin grote hoeveelheden doc bestanden voorzien dienen te worden van aanvullende gegevens die uit meerdere bestanden Excel moeten komen waar de nodige berekeningen op moeten worden uitgevoerd. Het scenario zou er als volgt uitzien:

Word Automation Services

  1. Converteer een .doc bestand naar een .docx bestand

Excel Services

  1. Open de Excel bestanden en voer alle calculaties door

Open XML SDK

  1. Injecteer de gegevens van de verschillende bestanden in het Word Document

Word Automation Services

  1. Converteer het .docx bestand terug naar een .doc bestand

Tags: , , ,