Mittwoch, 27. Februar 2008

PASS Cast: Test- & Demodaten mit SSIS 2005 erstellen

So, heute wurde der neue PASS Newsletter veröffentlicht. Dort wurde ein neuer PASS Cast von mir erwähnt: Test- & Demodaten mit SSIS 2005 erstellen

Anbei der im Cast erwähnte Sourcecode. Für Fragen mir einfach einen Kommentar oder eine Mail schreiben. Viel Spass damit!

Public Overrides Sub CreateNewOutputRows()

'
' Add rows by calling AddRow method on member variable called "Buffer"
' E.g., MyOutputBuffer.AddRow() if your output was named "My Output"
'

Dim i As Integer
Dim objR As New Random(123412)
Dim OrteVer As Integer() = {8, 4, 3, 5, 8, 3, 4, 6, 6, 8}

For i = 1 To 1000000

With (TestBuffer)

.AddRow()
.id = i
.wert = randomhelp(objR, OrteVer )

End With

Next

End Sub

Function randomhelp(ByVal objR As Random, ByVal ver As Integer()) As Integer

Dim ergebnis As Integer
Dim max As Integer = 0
Dim i As Integer
Dim zufall As Integer

For i = 0 To ver.Length() - 1

max += ver(i)

Next

zufall = objR.Next(0, max)

max = 0

For i = 0 To ver.Length() - 1

If zufall >= max Then

ergebnis = i + 1

End If

max += ver(i)

Next

Return (ergebnis)

End Function

Montag, 18. Februar 2008

Noch eine Nacht..

Hier ein erster Eindruck vom Launch Event in Frankfurt! :-)

Morgen geht es los!

Freitag, 15. Februar 2008

Das coole "Snipping Tool" von Windows Vista!

Beim gestrigen Vorgespräch zum PASS Deutschland e.V. Treffen in Hamburg mit dem Markus Thomanek von Microsoft lernte ich ein neues Tool kennen, welches auf meinem Vista Notebook bereits installiert war. Und zwar das Snipping Tool. Was macht das? Dazu ein Blick in die Hilfe dazu:

Sie können das Snipping Tool zum Erfassen eines Screenshots oder Ausschneiden eines beliebigen Objekts auf dem Bildschirm verwenden und dann das Bild speichern, freigeben oder mit Anmerkungen versehen. <...>

  • Freies Ausschneiden.  Zeichnen Sie eine unregelmäßige Linie wie einen Kreis oder ein Dreieck um ein Objekt.

  • Rechteckiges Ausschneiden.  Zeichnen Sie eine genaue Linie, indem Sie den Cursor um ein Objekt herum ziehen und dadurch ein Rechteck bilden.

  • Fenster ausschneiden.  Wählen Sie ein Fenster wie ein Browserfenster oder ein Dialogfeld aus, das Sie erfassen möchten.

  • Vollbild ausschneiden.  Wenn Sie diesen Ausschnitttyp auswählen, können Sie den gesamten Bildschirm erfassen.

Snipping Tool

Cooles Tool auf jeden Fall! Nur wofür brauch ich jetzt noch OneNote auf meinem Notebook? :o)

Donnerstag, 14. Februar 2008

Was ist BizTalk? Teil 2½ Was ist XSLT?

So, das habe ich nun davon... :o)

Kaum werfe ich mal wieder mit Buzzwords um mich, schon kommt die Frage: Was ist denn XSLT und warum hat das was mit BizTalk zu tun? Ok, dann schiebe ich das mal "kurz" ein. Wobei XSLT wirklich kein kleines Thema ist, damit können locker Bücher gefüllt werden. Es gibt auch Diverse zu dem Thema! Da ich hier nun aber keine XSLT Einführung verfassen möchte, verweise ich einfach mal auf den guten Wikipedia Artikel.

Daher hier nun kurz eine Übersicht. XSLT (Extensible Stylesheet Transfomations) ist ein Verfahren für das Transformieren von Dokumenten. Am häufigsten wird wohl sowohl als Quelle und auch als Ziel XML eingesetzt. Und wir erinnern uns, dass intern im BizTalk alles über XML läuft. Wie funktioniert nun XSLT? Zuerst einmal brauchen wir eine Beschreibung im XSLT Format, welches die eigentliche Transformation beschreibt. Und dann brauchen wir noch einen XSLT Prozessor, welcher die Transformation durchführt. Im Beispiel unten verwende ich das freie Tool nxslt2. Es gibt aber diverse XSLT Prozessoren am Markt. Im .net Framework gibt es für die Verwendung innerhalb einer Anwendung ebenfalls eine Klasse dafür.

Kommen wir zum Beispiel: Ich habe hier eine XML Datei mit den aktuellen PASS Deutschland e.V. Regionalgruppen. Dabei ist zu beachten, dass die Bezeichnung einer Gruppe als Element vorliegt! Als Ergebnis der Transformation möchte ich die Bezeichnungen als Attribute haben. Dafür habe ich eine XSLT Datei verfasst. In dieser beschreibe ich die Umwandlung. Es findet also keine klassische Programmierung statt, nur eine Beschreibung!

Mit dem folgenden Befehl führe ich die Transformation durch. Es wird auf die pass.xml die Transformation pass.xslt durchgeführt. Das Ergebnis ist die Datei pass2.xml.

nxslt2 pass.xml pass.xslt -o pass2.xml

Zurück zum BizTalk Server. Dort müssen i.d.R. aber keine XSLT Dateien per Hand erstellt oder bearbeitet werden, sondern es gibt dort einen sehr komfortablen grafischen Editor für das sogenannte Mapping. Aber dazu später mehr. Heute sollte es ja "nur" um XSLT gehen, wobei ich bemerken möchte, dass dieses Beispiel die Möglichkeiten von XSLT nur leicht ankratzt. :o)

PASS.XML
<?xml version="1.0" encoding="utf-8"?>
<passdeutschland>
<regionalgruppen>
<regionalgruppe><bezeichnung>Bayern</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Berlin</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Franken</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Hamburg</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Hannover/Goettingen</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Karlsruhe</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Koeln/Bonn/Duesseldorf</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Mittelrhein</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Rhein/Main</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Ruhrgebiet</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Sachsen</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Stuttgart</bezeichnung></regionalgruppe>
<regionalgruppe><bezeichnung>Oesterreich</bezeichnung></regionalgruppe>
</regionalgruppen>
</passdeutschland>

PASS.XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:template match="/">
<passdeutschland>
<xsl:apply-templates select="/passdeutschland/regionalgruppen/regionalgruppe" />
</passdeutschland>
</xsl:template>
<xsl:template match="regionalgruppe">
<xsl:copy>
<xsl:attribute name="bezeichnung"><xsl:value-of select="bezeichnung"/>
</xsl:attribute>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

PASS2.XML
<?xml version="1.0" encoding="utf-8"?>
<passdeutschland>
<regionalgruppe bezeichnung="Bayern" />
<regionalgruppe bezeichnung="Berlin" />
<regionalgruppe bezeichnung="Franken" />
<regionalgruppe bezeichnung="Hamburg" />
<regionalgruppe bezeichnung="Hannover/Goettingen" />
<regionalgruppe bezeichnung="Karlsruhe" />
<regionalgruppe bezeichnung="Koeln/Bonn/Duesseldorf" />
<regionalgruppe bezeichnung="Mittelrhein" />
<regionalgruppe bezeichnung="Rhein/Main" />
<regionalgruppe bezeichnung="Ruhrgebiet" />
<regionalgruppe bezeichnung="Sachsen" />
<regionalgruppe bezeichnung="Stuttgart" />
<regionalgruppe bezeichnung="Oesterreich" />
</passdeutschland>

Donnerstag, 7. Februar 2008

freie Trainingsressourcen für den PerformancePoint Server 2007

Beschäftige mich ja noch parallel mit dem PerformancePoint Server 2007. Dabei bin ich über eine US Seite von Microsoft gestolpert auf der es eine ganze Reihe von Trainingsressourcen für den PPS gibt. Hier mal der Inhalt:

Building a planning budgeting or forecasting application
  • Module 1: Business integration
  • Module 2: Architecting a PerformancePoint Server2007 planning application
  • Module 3: Fundamentals of a planning application
  • Module 4: Building business models and data dimensions
  • Module 5: Data Loading
  • Module 6: Managing roles and security in a planning application
  • Module 7: Fundamentals of the Excel add-in for PerformancePoint Server 2007
  • Module 8: Planning process management and workflows
  • Module 9: Embedding rules and calculations into a planning application
Building a scorecard, dashboard, or analysis application
  • Module 10: Fundamentals of monitoring and analyzing data with PerformancePoint Server 2007
  • Module 11: Fundamentals of dashboarding, scorecarding and analytics
  • Module 12: PerformancePoint Server 2007 elements for monitoring and analysis
  • Module 13: Building dashboards with PerformancePoint Server 2007
  • Module 14: Managing security in dashboards, scorecards and analytic

Was ist BizTalk? Teil 2

Die Lingua franca für diesen Austausch von Informationen ist das gute alte XML. Damit ist gemeint, dass JEDE Information, die über einen BizTalk ausgetauscht werden soll, intern im BizTalk zu XML wird. Auf der anderen Seite heißt das aber nicht, dass jetzt nur XML rein bzw. raus kommt aus so einem BizTalk. Das können ganz beliebige Formate, Datenbanken und Anwendungen sein. Nur intern arbeitet der BizTalk mit XML! Für die Umwandlung von einem Format auf ein anderes Format übernimmt dann XSLT. Dieser Weg über XML lässt viele Entscheider vor einem BizTalk zurückschrecken, da hier ein unnötiger Mehraufwand vermutet wird. Doch genau hier spielt er eine seiner Stärken aus! Des Weiteren trennt der BizTalk Server von seiner technischen Architektur her strickt das Format von Daten und die Quelle aus der die Daten kommen. Eine Quelle wird im BizTalk als Adapter bezeichnet. Es gibt Adapter für Web Services (SOAP & co), für Dateifreigaben (CIFS), für diverse Datenbanken, für Mailsysteme, für SharePoint Listen und für Anwendungen (z.B. SAP, Siebel, Navision, Axapta). Sofern kein passender Adapter verfügbar sein sollte, lässt sich mit .net Werkzeugen einer entwickeln.

Fassen wir also kurz zusammen:

  • Daten kommen rein über einen Adapter
  • Die Daten sind bereits ein XML Dokument oder werden zu einem XML Dokument "gemacht"
  • Das XML Dokument wird innerhalb des BizTalk verarbeitet und in die Richtung des "Ausgangs" bewegt
  • Das XML Dokument wird entweder umgewandelt in ein anderes Format oder bleibt wie es ist
  • Es verlässt den BizTalk Server wieder über einen Adapter

Eigentlich ganz einfach, oder? Eine interessante Frage ist nun wofür eine solche Integrationslösung im Alltag überhaupt zu gebrauchen ist.

Freitag, 1. Februar 2008

Was ist BizTalk? Teil 1

Zurück zu der Frage: Was ist BizTalk?

Eine mögliche Antwort könnte nun eine recht lange Verkettung von Buzzwords werden. Daran wäre grundsätzlich auch nichts falsch. Nur für viele IT'ler und Entscheider da draußen ist das alles (EAI, SOA, ESB, WCF usw.) noch ganz weit weg. Daher mal eine kürze Antwort:

BizTalk ist eine Integrationslösung!

Ok, und was ist nun wieder eine Integrationslösung? :o)

Vor langer Zeit, da sprach man nicht davon Systeme zu integrieren. Da wurde schlicht gesagt: Wir brauchen eine programmierte Schnittstelle! Nun ja, und damit begann dann auch der Ärger, weil es hieß dann oft: Wir brauchen noch eine Schnittstelle und noch eine, und noch eine... usw. Stark vereinfacht ausgedrückt macht BizTalk nichts anderes als eine Schnittstelle. Genaugenommen ist BizTalk eine Sammlung von Schnittstellen, welche in der Regel nicht programmiert, sondern für ihren Anwendungsfall "beschrieben" werden. Und damit BizTalk das Kunststück schafft alles mit allem reden zu lassen, gibt es im BizTalk eine zentrale Komponente über die alle Daten ausgetauscht werden. So eine Art Drehscheibe für Daten. That's all! Nun ja, fast. Aber dazu das nächste Mal mehr!