<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.htk.de/index.php?action=history&amp;feed=atom&amp;title=BPM%3AGUI_Plugins</id>
	<title>BPM:GUI Plugins - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.htk.de/index.php?action=history&amp;feed=atom&amp;title=BPM%3AGUI_Plugins"/>
	<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;action=history"/>
	<updated>2026-04-21T12:30:38Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in HTK Wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=383&amp;oldid=prev</id>
		<title>Admin: Admin verschob die Seite GUI Plugins nach BPM:GUI Plugins</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=383&amp;oldid=prev"/>
		<updated>2017-12-01T11:40:43Z</updated>

		<summary type="html">&lt;p&gt;Admin verschob die Seite &lt;a href=&quot;/GUI_Plugins&quot; class=&quot;mw-redirect&quot; title=&quot;GUI Plugins&quot;&gt;GUI Plugins&lt;/a&gt; nach &lt;a href=&quot;/BPM:GUI_Plugins&quot; title=&quot;BPM:GUI Plugins&quot;&gt;BPM:GUI Plugins&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 1. Dezember 2017, 11:40 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=256&amp;oldid=prev</id>
		<title>Admin am 22. September 2017 um 09:04 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=256&amp;oldid=prev"/>
		<updated>2017-09-22T09:04:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. September 2017, 09:04 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Zeile 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;JobEntry&amp;#039;&amp;#039;&amp;#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &amp;#039;&amp;#039;&amp;#039;HTKFunctionsLibrary &amp;#039;&amp;#039;&amp;#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[[File:FunktionsLibrary.png|RTENOTITLE]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[[File:Verweise DevExpress.png|RTENOTITLE]]&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;JobEntry&amp;#039;&amp;#039;&amp;#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &amp;#039;&amp;#039;&amp;#039;HTKFunctionsLibrary &amp;#039;&amp;#039;&amp;#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[[File:FunktionsLibrary.png|RTENOTITLE]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[[File:Verweise DevExpress.png|RTENOTITLE]]&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#[[File:DevExpress.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#[[File:DevExpress.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Devexpress2.png|RTENOTITLE]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Express methoden.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Bonus Skin.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Devexpress2.png|RTENOTITLE]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Express methoden.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Bonus Skin.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Assetbaum.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung: &#039;&#039;&#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&#039;&#039;&#039;müssen&#039;&#039;&#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Bildvorgang.png]]&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Assetbaum.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung: &#039;&#039;&#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&#039;&#039;&#039;müssen&#039;&#039;&#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Bildvorgang.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Cleanup: &#039;&#039;&#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &quot;sauber&quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &quot;cleanenden&quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:Plugin beispiel.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Cleanup: &#039;&#039;&#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &quot;sauber&quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &quot;cleanenden&quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:Plugin beispiel.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#[[File:Scriptbeispiel1.png]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#[[File:Scriptbeispiel1.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Delete: &#039;&#039;&#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &#039;&#039;&#039;JobEntry &#039;&#039;&#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:Plugin beispiel.png]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; [[File:Scriptbeispiel2.png]]&amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Delete: &#039;&#039;&#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &#039;&#039;&#039;JobEntry &#039;&#039;&#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:Plugin beispiel.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; [[File:Scriptbeispiel2.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Graphics → Icons: &#039;&#039;&#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:Grafiks.png]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Graphics → Icons: &#039;&#039;&#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:Grafiks.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Info: &#039;&#039;&#039; Der Ordner Info beinhaltet die &#039;&#039;&#039;[[/doku.php?id=wiki:productxml|Product.xml]]&#039;&#039;&#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:Product.png]]&amp;lt;br/&amp;gt; * &#039;&#039;&#039;ValidationKey:&#039;&#039;&#039; Der ValidationKey der HTK Lizensierung. *  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Info: &#039;&#039;&#039; Der Ordner Info beinhaltet die &#039;&#039;&#039;[[/doku.php?id=wiki:productxml|Product.xml]]&#039;&#039;&#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:Product.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; * &#039;&#039;&#039;ValidationKey:&#039;&#039;&#039; Der ValidationKey der HTK Lizensierung. *  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;DemoSerial:&amp;#039;&amp;#039;&amp;#039; Hier kann eine Standard Demoseriennummer. *  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;DemoSerial:&amp;#039;&amp;#039;&amp;#039; Hier kann eine Standard Demoseriennummer. *  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;SettingsXml:&amp;#039;&amp;#039;&amp;#039; Hier kann die zu verwendende SettingsXML. *  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;SettingsXml:&amp;#039;&amp;#039;&amp;#039; Hier kann die zu verwendende SettingsXML. *  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l56&quot;&gt;Zeile 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;Author:&amp;#039;&amp;#039;&amp;#039; Der Autor des Plugins.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;Author:&amp;#039;&amp;#039;&amp;#039; Der Autor des Plugins.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039; Der Name des Plugins.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; *: Sollten Sie nicht die HTK Lizensierung sondern Ihre eigene Verwenden, so können Sie dies leer lassen&amp;lt;br/&amp;gt; ​    &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039; Der Name des Plugins.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; *: Sollten Sie nicht die HTK Lizensierung sondern Ihre eigene Verwenden, so können Sie dies leer lassen&amp;lt;br/&amp;gt; ​    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Install:&#039;&#039;&#039; Der Ordner Install beinhaltet Installationsscripte welche aufgerufen werden sobald man sich in die Business Process Management GUI Anmeldet (nach Login Dialog). Hier sollten Sie darauf achten, dass Sie alle Datenbankstrukturen nur anlegen wenn diese nicht existieren! Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; Beispielscript:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|1023x238px&lt;/del&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Install:&#039;&#039;&#039; Der Ordner Install beinhaltet Installationsscripte welche aufgerufen werden sobald man sich in die Business Process Management GUI Anmeldet (nach Login Dialog). Hier sollten Sie darauf achten, dass Sie alle Datenbankstrukturen nur anlegen wenn diese nicht existieren! Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; Beispielscript:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Code1.png&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Options: &#039;&#039;&#039; In dem Ordner Options befindet sich die &#039;&#039;&#039;[[/doku.php?id=wiki:optionsxml|Options.xml]]&#039;&#039;&#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|515x123px&lt;/del&gt;]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;​ &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Options: &#039;&#039;&#039; In dem Ordner Options befindet sich die &#039;&#039;&#039;[[/doku.php?id=wiki:optionsxml|Options.xml]]&#039;&#039;&#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Code2.png&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;HasProperties:&amp;#039;&amp;#039;&amp;#039; Gibt an ob der Job bei Doppelklick oder Klick auf Einstellungen Serviceproperties hat. Steht diese Option auf false, so öffnet sich immer die erweiterte Konfiguration  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;HasProperties:&amp;#039;&amp;#039;&amp;#039; Gibt an ob der Job bei Doppelklick oder Klick auf Einstellungen Serviceproperties hat. Steht diese Option auf false, so öffnet sich immer die erweiterte Konfiguration  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;MandantNessesary:&amp;#039;&amp;#039;&amp;#039; Steltt man diese Option auf true, so kann man den Job (von Haus aus) nicht ohne Mandant hinterlegen. Wenn dies nur in bestimmten Szenarien der Fall sein sollte, so lassen die dies auf false und prüfen SIe dies im &amp;#039;&amp;#039;&amp;#039;JobEntry&amp;#039;&amp;#039;&amp;#039; einstiegspunkt.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;MandantNessesary:&amp;#039;&amp;#039;&amp;#039; Steltt man diese Option auf true, so kann man den Job (von Haus aus) nicht ohne Mandant hinterlegen. Wenn dies nur in bestimmten Szenarien der Fall sein sollte, so lassen die dies auf false und prüfen SIe dies im &amp;#039;&amp;#039;&amp;#039;JobEntry&amp;#039;&amp;#039;&amp;#039; einstiegspunkt.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;JobMatches:&amp;#039;&amp;#039;&amp;#039; Hier können Sie Semikolongetrennt alle Jobbezeichnungen hinterlegen bei denen das Plugin geöffnet werden kann.    &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;JobMatches:&amp;#039;&amp;#039;&amp;#039; Hier können Sie Semikolongetrennt alle Jobbezeichnungen hinterlegen bei denen das Plugin geöffnet werden kann.    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Ribbonbuttons → Configuration: &#039;&#039;&#039; In der &#039;&#039;&#039;[[/doku.php?id=wiki:configurationxml|Configuration.xml]]&#039;&#039;&#039; Datei wird definiert welche RibbonButtons das Plugin erzeugt, auf welcher RibbonPage und in welcher RibbonGroup. Zusätzlich wird definiert, was bei einem Druck auf den Button passiert und ob es eine Bedingung für das erscheinen des Buttons gibt.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|724x617px&lt;/del&gt;]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;​ &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Ribbonbuttons → Configuration: &#039;&#039;&#039; In der &#039;&#039;&#039;[[/doku.php?id=wiki:configurationxml|Configuration.xml]]&#039;&#039;&#039; Datei wird definiert welche RibbonButtons das Plugin erzeugt, auf welcher RibbonPage und in welcher RibbonGroup. Zusätzlich wird definiert, was bei einem Druck auf den Button passiert und ob es eine Bedingung für das erscheinen des Buttons gibt.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Code3.png&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:rgb(34, 177, 76)&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Grün&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man dass die Datei aus Zwei Bereichen besteht. Einmal &amp;#039;&amp;#039;&amp;#039;[https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraBarsBarButtonItemtopic BarButtonItems]&amp;#039;&amp;#039;&amp;#039; und einmal &amp;#039;&amp;#039;&amp;#039;[https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraBarsBarLinkContainerItemtopic BarButtonLinkContainerItems].&amp;#039;&amp;#039;&amp;#039;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:rgb(34, 177, 76)&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Grün&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man dass die Datei aus Zwei Bereichen besteht. Einmal &amp;#039;&amp;#039;&amp;#039;[https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraBarsBarButtonItemtopic BarButtonItems]&amp;#039;&amp;#039;&amp;#039; und einmal &amp;#039;&amp;#039;&amp;#039;[https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraBarsBarLinkContainerItemtopic BarButtonLinkContainerItems].&amp;#039;&amp;#039;&amp;#039;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:rgb(0, 162, 232)&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Blau&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man den jeweiligen Button hier können natürlich N Buttons definiert werden. Bitte achten Sie darauf dass der aufbau eines BarButtonLinkContainer&amp;#039;s durch die zusätzliche Buttonlist abweicht  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:rgb(0, 162, 232)&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Blau&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man den jeweiligen Button hier können natürlich N Buttons definiert werden. Bitte achten Sie darauf dass der aufbau eines BarButtonLinkContainer&amp;#039;s durch die zusätzliche Buttonlist abweicht  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot;&gt;Zeile 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#A349A4&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Lila&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sehen Sie die zuweisung eines ItemClick Events an eine Funktion namens BarButtonItem2OnItemClick. Hierbei handelt es sich um Devexpress BarButtonItem Events welche definiert werden können.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#A349A4&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Lila&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sehen Sie die zuweisung eines ItemClick Events an eine Funktion namens BarButtonItem2OnItemClick. Hierbei handelt es sich um Devexpress BarButtonItem Events welche definiert werden können.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFAEC9&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pink&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sehen Sie eine hinterlegte BarButtonItem Condition, diese Condition gibt true bzw. false zurück. Bei False würde der Button nicht angelegt werden!&amp;lt;br/&amp;gt; Wenn also Buttons nur unter bestimmten bedingungen angezeigt werden dürfen (bspw. File XY existiert oder nicht), dann müssen Sie dies über eine condition lösen.​&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Achtung: Die Texte &amp;#039;&amp;#039;&amp;#039;Caption, Page und Group &amp;#039;&amp;#039;&amp;#039; beziehen sich &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; auf eine GUI Plugin-Lokalisierungsdatei, die Anlage dieser entnehmen Sie bitte dem Beitrag &amp;#039;&amp;#039;&amp;#039;[[/doku.php?id=wiki:guipluginlokalisierungsdateien|GUI Plugin-Lokalisierungsdateien]]&amp;#039;&amp;#039;&amp;#039;.    &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFAEC9&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pink&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sehen Sie eine hinterlegte BarButtonItem Condition, diese Condition gibt true bzw. false zurück. Bei False würde der Button nicht angelegt werden!&amp;lt;br/&amp;gt; Wenn also Buttons nur unter bestimmten bedingungen angezeigt werden dürfen (bspw. File XY existiert oder nicht), dann müssen Sie dies über eine condition lösen.​&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Achtung: Die Texte &amp;#039;&amp;#039;&amp;#039;Caption, Page und Group &amp;#039;&amp;#039;&amp;#039; beziehen sich &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; auf eine GUI Plugin-Lokalisierungsdatei, die Anlage dieser entnehmen Sie bitte dem Beitrag &amp;#039;&amp;#039;&amp;#039;[[/doku.php?id=wiki:guipluginlokalisierungsdateien|GUI Plugin-Lokalisierungsdateien]]&amp;#039;&amp;#039;&amp;#039;.    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Ribbonbuttons → &#039;&#039;&#039;&#039;&#039;&#039;RibbonButtonMethods​.cs&#039;&#039;&#039;&#039;&#039;&#039;: &#039;&#039;&#039; In der [[/doku.php?id=wiki:ribbonbuttonmethods​|RibbonButtonMethods]] Klasse müssen Sie zu den jeweils definierten RibbonButtons die jeweiligen Events hinterlegen, sowie die Conditions zu den definierten Conditions. Bitte beachten Sie das es sich bei der RibbonButtonMethods um eine statische Klasse handelt.&amp;lt;br/&amp;gt; Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|797x504px&lt;/del&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Conditions müssen immer als public static bool XYZ ohne Parameter definiert werden. Wird hier False zurückgegeben, so wird der Button nicht angelegt.&amp;lt;br/&amp;gt; ​Die Eventsignatur muss entsprechend der von Devexpress definierten Eventsignatur sein, die Signatur für den Fall ItemClick können Sie obigem Beispiel entnehmen.&amp;lt;br/&amp;gt; &#039;&#039;&#039;Tipp: &#039;&#039;&#039; Um aus einem ButtonClick heraus die zu verwendende SQL Verbindung zu bekommen, nutzen Sie die GetSQlConnectionInfo funktion aus dem Shared Namespace, diese liefert Ihnen einen Tuple&amp;lt;[https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx SqlConnection], [https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx String]&amp;gt; Item1 stellt hierbei eine &#039;&#039;&#039;geschlossene &#039;&#039;&#039; [https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx SqlConnection ]und Item2 den Connectionstring dar.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Ribbonbuttons → &#039;&#039;&#039;&#039;&#039;&#039;RibbonButtonMethods​.cs&#039;&#039;&#039;&#039;&#039;&#039;: &#039;&#039;&#039; In der [[/doku.php?id=wiki:ribbonbuttonmethods​|RibbonButtonMethods]] Klasse müssen Sie zu den jeweils definierten RibbonButtons die jeweiligen Events hinterlegen, sowie die Conditions zu den definierten Conditions. Bitte beachten Sie das es sich bei der RibbonButtonMethods um eine statische Klasse handelt.&amp;lt;br/&amp;gt; Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Code4.png&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Conditions müssen immer als public static bool XYZ ohne Parameter definiert werden. Wird hier False zurückgegeben, so wird der Button nicht angelegt.&amp;lt;br/&amp;gt; ​Die Eventsignatur muss entsprechend der von Devexpress definierten Eventsignatur sein, die Signatur für den Fall ItemClick können Sie obigem Beispiel entnehmen.&amp;lt;br/&amp;gt; &#039;&#039;&#039;Tipp: &#039;&#039;&#039; Um aus einem ButtonClick heraus die zu verwendende SQL Verbindung zu bekommen, nutzen Sie die GetSQlConnectionInfo funktion aus dem Shared Namespace, diese liefert Ihnen einen Tuple&amp;lt;[https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx SqlConnection], [https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx String]&amp;gt; Item1 stellt hierbei eine &#039;&#039;&#039;geschlossene &#039;&#039;&#039; [https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx SqlConnection ]und Item2 den Connectionstring dar.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun können Sie das Plugin erstellen. Wählen Sie als Zielplattform bitte &#039;&#039;&#039;x86&#039;&#039;&#039; aus. Zur Installation legen Sie das Plugin sowie alle Vorrausetzungen und Verweise in den Ordner Plugins Ihrer installierten Business Process Management GUI. Wenn Sie alles richtig gemacht haben, sollte ein Klick auf Addins ihr Plugin anzeigen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|1043x499px&lt;/del&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun können Sie das Plugin erstellen. Wählen Sie als Zielplattform bitte &#039;&#039;&#039;x86&#039;&#039;&#039; aus. Zur Installation legen Sie das Plugin sowie alle Vorrausetzungen und Verweise in den Ordner Plugins Ihrer installierten Business Process Management GUI. Wenn Sie alles richtig gemacht haben, sollte ein Klick auf Addins ihr Plugin anzeigen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Code4.png&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=250&amp;oldid=prev</id>
		<title>Admin am 22. September 2017 um 09:00 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=250&amp;oldid=prev"/>
		<updated>2017-09-22T09:00:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. September 2017, 09:00 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l38&quot;&gt;Zeile 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#OPTIONAL: Es empfiehlt sich als &amp;quot;Best Practice&amp;quot; die Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#OPTIONAL: Es empfiehlt sich als &amp;quot;Best Practice&amp;quot; die Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun &amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &amp;#039;&amp;#039;&amp;#039;muss &amp;#039;&amp;#039;&amp;#039; das &amp;#039;&amp;#039;&amp;#039;Export &amp;#039;&amp;#039;&amp;#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&amp;#039;&amp;#039;&amp;#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; &amp;amp;nbsp;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun &amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &amp;#039;&amp;#039;&amp;#039;muss &amp;#039;&amp;#039;&amp;#039; das &amp;#039;&amp;#039;&amp;#039;Export &amp;#039;&amp;#039;&amp;#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&amp;#039;&amp;#039;&amp;#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; &amp;amp;nbsp;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Das Interface &#039;&#039;&#039;IPlugin&#039;&#039;&#039; implementiert 2 Member. &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Variablen.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Das Interface &#039;&#039;&#039;IPlugin&#039;&#039;&#039; implementiert 2 Member. &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Variablen.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &#039;&#039;&#039;JobEntry&#039;&#039;&#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &#039;&#039;&#039;HTKFunctionsLibrary &#039;&#039;&#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:FunktionsLibrary.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung&#039;&#039;&#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Verweise DevExpress.png]]&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &#039;&#039;&#039;JobEntry&#039;&#039;&#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &#039;&#039;&#039;HTKFunctionsLibrary &#039;&#039;&#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:FunktionsLibrary.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung&#039;&#039;&#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Verweise DevExpress.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#[[File:DevExpress.png]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#[[File:DevExpress.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Devexpress2.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DevExpress Methoden&lt;/del&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DevExpressBonus&lt;/del&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Devexpress2.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Express methoden.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Bonus Skin.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;Assetbaum&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung: &#039;&#039;&#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&#039;&#039;&#039;müssen&#039;&#039;&#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;Bildvorgang&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:&lt;/ins&gt;Assetbaum&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung: &#039;&#039;&#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&#039;&#039;&#039;müssen&#039;&#039;&#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:&lt;/ins&gt;Bildvorgang&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Cleanup: &#039;&#039;&#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &quot;sauber&quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &quot;cleanenden&quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|190x22px&lt;/del&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Cleanup: &#039;&#039;&#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &quot;sauber&quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &quot;cleanenden&quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Plugin beispiel.png&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Delete: &#039;&#039;&#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &#039;&#039;&#039;JobEntry &#039;&#039;&#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|190x22px&lt;/del&gt;]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#[[File:Scriptbeispiel1.png]] &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Graphics → Icons: &#039;&#039;&#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|186x57px&lt;/del&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Delete: &#039;&#039;&#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &#039;&#039;&#039;JobEntry &#039;&#039;&#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Plugin beispiel.png&lt;/ins&gt;]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Scriptbeispiel2.png]]&lt;/ins&gt;&amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Info: &#039;&#039;&#039; Der Ordner Info beinhaltet die &#039;&#039;&#039;[[/doku.php?id=wiki:productxml|Product.xml]]&#039;&#039;&#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:]]&amp;lt;br/&amp;gt; * &#039;&#039;&#039;ValidationKey:&#039;&#039;&#039; Der ValidationKey der HTK Lizensierung. *  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Graphics → Icons: &#039;&#039;&#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Grafiks.png&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Info: &#039;&#039;&#039; Der Ordner Info beinhaltet die &#039;&#039;&#039;[[/doku.php?id=wiki:productxml|Product.xml]]&#039;&#039;&#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Product.png&lt;/ins&gt;]]&amp;lt;br/&amp;gt; * &#039;&#039;&#039;ValidationKey:&#039;&#039;&#039; Der ValidationKey der HTK Lizensierung. *  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;DemoSerial:&amp;#039;&amp;#039;&amp;#039; Hier kann eine Standard Demoseriennummer. *  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;DemoSerial:&amp;#039;&amp;#039;&amp;#039; Hier kann eine Standard Demoseriennummer. *  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;SettingsXml:&amp;#039;&amp;#039;&amp;#039; Hier kann die zu verwendende SettingsXML. *  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#*&amp;#039;&amp;#039;&amp;#039;SettingsXml:&amp;#039;&amp;#039;&amp;#039; Hier kann die zu verwendende SettingsXML. *  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=240&amp;oldid=prev</id>
		<title>Admin am 22. September 2017 um 08:41 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=240&amp;oldid=prev"/>
		<updated>2017-09-22T08:41:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. September 2017, 08:41 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot;&gt;Zeile 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&amp;#039;&amp;#039;&amp;#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &amp;#039;&amp;#039;&amp;#039;HTKLicense&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins.IPlugin&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Shared&amp;#039;&amp;#039;&amp;#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&amp;#039;&amp;#039;&amp;#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &amp;#039;&amp;#039;&amp;#039;HTKLicense&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins.IPlugin&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Shared&amp;#039;&amp;#039;&amp;#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun sollte die Datei&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[[File:Class1.png|RTENOTITLE]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins 5.png|RTENOTITLE]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA.,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun sollte die Datei&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[[File:Class1.png|RTENOTITLE]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins 5.png|RTENOTITLE]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA.,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &#039;&#039;&#039;PluginBase&#039;&#039;&#039; erben, sowie von den Interfaces &#039;&#039;&#039;IPlugin.IPlugin, &#039;&#039;&#039; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPlugin.IPlugin​&#039;&#039;&#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Namespage.png]] &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPartImportsSatisfiedNotification&#039;&#039;&#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; [[File:Import IPartImport.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &#039;&#039;&#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &#039;&#039;&#039;PluginBase&#039;&#039;&#039; erben, sowie von den Interfaces &#039;&#039;&#039;IPlugin.IPlugin, &#039;&#039;&#039; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPlugin.IPlugin​&#039;&#039;&#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Namespage.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]] &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPartImportsSatisfiedNotification&#039;&#039;&#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; [[File:Import IPartImport.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &#039;&#039;&#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​].  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​].  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#OPTIONAL: Es empfiehlt sich als &amp;quot;Best Practice&amp;quot; die Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#OPTIONAL: Es empfiehlt sich als &amp;quot;Best Practice&amp;quot; die Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun &amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &amp;#039;&amp;#039;&amp;#039;muss &amp;#039;&amp;#039;&amp;#039; das &amp;#039;&amp;#039;&amp;#039;Export &amp;#039;&amp;#039;&amp;#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&amp;#039;&amp;#039;&amp;#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; &amp;amp;nbsp;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun &amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &amp;#039;&amp;#039;&amp;#039;muss &amp;#039;&amp;#039;&amp;#039; das &amp;#039;&amp;#039;&amp;#039;Export &amp;#039;&amp;#039;&amp;#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&amp;#039;&amp;#039;&amp;#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; &amp;amp;nbsp;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Das Interface &#039;&#039;&#039;IPlugin&#039;&#039;&#039; implementiert 2 Member. &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;Variablen&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Das Interface &#039;&#039;&#039;IPlugin&#039;&#039;&#039; implementiert 2 Member. &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:&lt;/ins&gt;Variablen&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &#039;&#039;&#039;JobEntry&#039;&#039;&#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &#039;&#039;&#039;HTKFunctionsLibrary &#039;&#039;&#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;FunktionsLibrary&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung&#039;&#039;&#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;verweise &lt;/del&gt;DevExpress&amp;lt;/span&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br/&amp;gt; &lt;/del&gt;sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DevExpress&lt;/del&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;DevExpress Methoden&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;DevExpressBonus&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &#039;&#039;&#039;JobEntry&#039;&#039;&#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png|RTENOTITLE]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &#039;&#039;&#039;HTKFunctionsLibrary &#039;&#039;&#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:&lt;/ins&gt;FunktionsLibrary&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung&#039;&#039;&#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Verweise &lt;/ins&gt;DevExpress&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#[[File:DevExpress.png]] &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#&lt;/ins&gt;sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Devexpress2.png]]&lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;DevExpress Methoden&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;DevExpressBonus&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Assetbaum&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Achtung: &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Bildvorgang&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Assetbaum&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Achtung: &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Bildvorgang&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;#039;&amp;#039;&amp;#039;Cleanup: &amp;#039;&amp;#039;&amp;#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &amp;quot;sauber&amp;quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &amp;quot;cleanenden&amp;quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;#039;&amp;#039;&amp;#039;Cleanup: &amp;#039;&amp;#039;&amp;#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &amp;quot;sauber&amp;quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &amp;quot;cleanenden&amp;quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=234&amp;oldid=prev</id>
		<title>Admin am 22. September 2017 um 08:33 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=234&amp;oldid=prev"/>
		<updated>2017-09-22T08:33:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. September 2017, 08:33 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Zeile 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nach öffnen des Visual Studio&amp;#039;s, wählen Sie bitte Neues Projekt und erstellen eine .NET Framework 4.0 Klassenbibliothek.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 1.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Getreu dem Motto [http://de.wikipedia.org/wiki/Konvention_vor_Konfiguration Conversion over Configuration] muss der Name &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins. &amp;#039;&amp;#039;&amp;#039; gefolgt von ihrem Projektnamen lauten.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nach öffnen des Visual Studio&amp;#039;s, wählen Sie bitte Neues Projekt und erstellen eine .NET Framework 4.0 Klassenbibliothek.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 1.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Getreu dem Motto [http://de.wikipedia.org/wiki/Konvention_vor_Konfiguration Conversion over Configuration] muss der Name &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins. &amp;#039;&amp;#039;&amp;#039; gefolgt von ihrem Projektnamen lauten.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&amp;#039;&amp;#039;&amp;#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &amp;#039;&amp;#039;&amp;#039;HTKLicense&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins.IPlugin&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Shared&amp;#039;&amp;#039;&amp;#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png|RTENOTITLE]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&amp;#039;&amp;#039;&amp;#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &amp;#039;&amp;#039;&amp;#039;HTKLicense&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins.IPlugin&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Shared&amp;#039;&amp;#039;&amp;#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun sollte die Datei&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Class1.png]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins 5.png|RTENOTITLE]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA.,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun sollte die Datei&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;[[File:Class1.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins 5.png|RTENOTITLE]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA.,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &#039;&#039;&#039;PluginBase&#039;&#039;&#039; erben, sowie von den Interfaces &#039;&#039;&#039;IPlugin.IPlugin, &#039;&#039;&#039; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPlugin.IPlugin​&#039;&#039;&#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;namespage &lt;/del&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPartImportsSatisfiedNotification&#039;&#039;&#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;&lt;/del&gt;Import IPartImport&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &#039;&#039;&#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &#039;&#039;&#039;PluginBase&#039;&#039;&#039; erben, sowie von den Interfaces &#039;&#039;&#039;IPlugin.IPlugin, &#039;&#039;&#039; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPlugin.IPlugin​&#039;&#039;&#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Namespage.png]] &lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPartImportsSatisfiedNotification&#039;&#039;&#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/ins&gt;:Import IPartImport&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.png]]&lt;/ins&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &#039;&#039;&#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png|RTENOTITLE]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​].  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​].  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=231&amp;oldid=prev</id>
		<title>Admin am 22. September 2017 um 08:30 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=231&amp;oldid=prev"/>
		<updated>2017-09-22T08:30:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. September 2017, 08:30 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Zeile 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Schritt für Schritt: Erstellung eines Plugins ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Schritt für Schritt: Erstellung eines Plugins ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;level2&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;level2&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nach öffnen des Visual Studio&#039;s, wählen Sie bitte Neues Projekt und erstellen eine .NET Framework 4.0 Klassenbibliothek.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 1.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Getreu dem Motto [http://de.wikipedia.org/wiki/Konvention_vor_Konfiguration Conversion over Configuration] muss der Name &#039;&#039;&#039;HTKServer.GUI.Plugins. &#039;&#039;&#039; gefolgt von ihrem Projektnamen lauten.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nach öffnen des Visual Studio&#039;s, wählen Sie bitte Neues Projekt und erstellen eine .NET Framework 4.0 Klassenbibliothek.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 1.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Getreu dem Motto [http://de.wikipedia.org/wiki/Konvention_vor_Konfiguration Conversion over Configuration] muss der Name &#039;&#039;&#039;HTKServer.GUI.Plugins. &#039;&#039;&#039; gefolgt von ihrem Projektnamen lauten.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&#039;&#039;&#039;, &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&#039;&#039;&#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &#039;&#039;&#039;HTKLicense&#039;&#039;&#039;, &#039;&#039;&#039;HTKServer.GUI.Plugins.IPlugin&#039;&#039;&#039; und &#039;&#039;&#039;HTKServer.GUI.Shared&#039;&#039;&#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&#039;&#039;&#039;, &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&#039;&#039;&#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &#039;&#039;&#039;HTKLicense&#039;&#039;&#039;, &#039;&#039;&#039;HTKServer.GUI.Plugins.IPlugin&#039;&#039;&#039; und &#039;&#039;&#039;HTKServer.GUI.Shared&#039;&#039;&#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun sollte die Datei&amp;lt;br/&amp;gt; [[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GUI Plugins 5&lt;/del&gt;.png]]&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/del&gt;.png]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA.,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun sollte die Datei&amp;lt;br/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; &amp;lt;span style=&quot;color:#FF0000&quot;&lt;/ins&gt;&amp;gt;[[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Class1&lt;/ins&gt;.png]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5&lt;/ins&gt;.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA.,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &#039;&#039;&#039;PluginBase&#039;&#039;&#039; erben, sowie von den Interfaces &#039;&#039;&#039;IPlugin.IPlugin, &#039;&#039;&#039; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPlugin.IPlugin​&#039;&#039;&#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GUI Plugins 7.png]]&lt;/del&gt;&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPartImportsSatisfiedNotification&#039;&#039;&#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GUI Plugins 8.png]]&lt;/del&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &#039;&#039;&#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &#039;&#039;&#039;PluginBase&#039;&#039;&#039; erben, sowie von den Interfaces &#039;&#039;&#039;IPlugin.IPlugin, &#039;&#039;&#039; &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039; und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPlugin.IPlugin​&#039;&#039;&#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;namespage &amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&#039;&#039;&#039;IPartImportsSatisfiedNotification&#039;&#039;&#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;Import IPartImport&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &#039;&#039;&#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​].  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​].  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#OPTIONAL: Es empfiehlt sich als &quot;Best Practice&quot; die Interface Member von &amp;lt;u&amp;gt;&#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039;&amp;lt;/u&amp;gt;und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#OPTIONAL: Es empfiehlt sich als &quot;Best Practice&quot; die Interface Member von &amp;lt;u&amp;gt;&#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&#039;&#039;&#039;&amp;lt;/u&amp;gt;und &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&#039;&#039;&#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun &#039;&#039;&#039;müssen&#039;&#039;&#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &#039;&#039;&#039;muss &#039;&#039;&#039; das &#039;&#039;&#039;Export &#039;&#039;&#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&#039;&#039;&#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:GUI Plugins 10.png]] &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Nun &#039;&#039;&#039;müssen&#039;&#039;&#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &#039;&#039;&#039;muss &#039;&#039;&#039; das &#039;&#039;&#039;Export &#039;&#039;&#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &#039;&#039;&#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&#039;&#039;&#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Das Interface &#039;&#039;&#039;IPlugin&#039;&#039;&#039; implementiert 2 Member. &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GUI Plugins 11.png]]&lt;/del&gt;&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Das Interface &#039;&#039;&#039;IPlugin&#039;&#039;&#039; implementiert 2 Member. &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&quot;color:#008080&quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;Variablen&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &#039;&#039;&#039;JobEntry&#039;&#039;&#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &#039;&#039;&#039;HTKFunctionsLibrary &#039;&#039;&#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|146x22px]]&lt;/del&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung&#039;&#039;&#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|233x42px]]&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;br&lt;/del&gt;/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:|178x24px]]​&lt;/del&gt;&amp;lt;br/&amp;gt; sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|209x42px]]&lt;/del&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|255x125px]]&lt;/del&gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|185x24px]]&lt;/del&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Der Interface Member &#039;&#039;&#039;JobEntry&#039;&#039;&#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|RTENOTITLE&lt;/ins&gt;]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &#039;&#039;&#039;HTKFunctionsLibrary &#039;&#039;&#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;FunktionsLibrary&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung&#039;&#039;&#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;verweise DevExpress&lt;/ins&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;span&lt;/ins&gt;&amp;gt;&amp;lt;br/&amp;gt; sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;DevExpress&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;DevExpress Methoden&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;DevExpressBonus&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&quot;color:#0000FF&quot;&amp;gt;&amp;lt;span style=&quot;font-size:14px line-height: 19.6000003814697px&quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|285x306px]]&lt;/del&gt;&amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung: &#039;&#039;&#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&#039;&#039;&#039;müssen&#039;&#039;&#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|266x37px]]&lt;/del&gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;Assetbaum&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;br/&amp;gt; &#039;&#039;&#039;Achtung: &#039;&#039;&#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&#039;&#039;&#039;müssen&#039;&#039;&#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&quot;color&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#FF0000&quot;&amp;gt;Bildvorgang&amp;lt;/span&amp;gt;&lt;/ins&gt;&amp;lt;/u&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Cleanup: &#039;&#039;&#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &quot;sauber&quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &quot;cleanenden&quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br/&amp;gt;  &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&#039;&#039;&#039;Cleanup: &#039;&#039;&#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &quot;sauber&quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &quot;cleanenden&quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;#039;&amp;#039;&amp;#039;Delete: &amp;#039;&amp;#039;&amp;#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &amp;#039;&amp;#039;&amp;#039;JobEntry &amp;#039;&amp;#039;&amp;#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;#039;&amp;#039;&amp;#039;Delete: &amp;#039;&amp;#039;&amp;#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &amp;#039;&amp;#039;&amp;#039;JobEntry &amp;#039;&amp;#039;&amp;#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;#039;&amp;#039;&amp;#039;Graphics → Icons: &amp;#039;&amp;#039;&amp;#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|186x57px]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;#039;&amp;#039;&amp;#039;Graphics → Icons: &amp;#039;&amp;#039;&amp;#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|186x57px]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=174&amp;oldid=prev</id>
		<title>Admin: Die Seite wurde neu angelegt: „ = GUI Plugins = &lt;div class=&quot;level1&quot;&gt; GUI Plugins sind Plugins welche speziell für die HTKServer.GUI.exe geschrieben wurden. &lt;/div&gt;  == Beschreibung == &lt;div c…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.htk.de/index.php?title=BPM:GUI_Plugins&amp;diff=174&amp;oldid=prev"/>
		<updated>2017-09-21T12:59:11Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ = GUI Plugins = &amp;lt;div class=&amp;quot;level1&amp;quot;&amp;gt; GUI Plugins sind Plugins welche speziell für die HTKServer.GUI.exe geschrieben wurden. &amp;lt;/div&amp;gt;  == Beschreibung == &amp;lt;div c…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= GUI Plugins =&lt;br /&gt;
&amp;lt;div class=&amp;quot;level1&amp;quot;&amp;gt;&lt;br /&gt;
GUI Plugins sind Plugins welche speziell für die HTKServer.GUI.exe geschrieben wurden.&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;level2&amp;quot;&amp;gt;&lt;br /&gt;
Nachdem der Service (Core) ein neues Plugin erhalten hat, muss die möglichkeit bereitgestellt werden, dieses in Prozesse zu integrieren und konfigurieren.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle kommen GUI Plugins in das Spiel. GUI Plugins werden benötigt um verschiedene Aufgabenstellungen zu meistern. Dazu zählen beispielsweise:&lt;br /&gt;
&lt;br /&gt;
*Installation der Pluginvorrausetzungen (Tabellen etc.). &lt;br /&gt;
*Erstellen von Ribbonbuttons innerhalb der HTKServer.GUI zur Prozess-unabhängigen Konfiguration. &lt;br /&gt;
*Aufräumen falscher / kaputter einträge innerhalb der Prozess / Job Tabellenstrukturen. &lt;br /&gt;
*Löschen von Abgebrochenen (nicht gespeicherten) Jobdefinitionen. &lt;br /&gt;
*Konfiguration des jeweiligen Jobs. &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
== Systemvorrausetzungen ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;level2&amp;quot;&amp;gt;&lt;br /&gt;
*Visual Studio 2013. &lt;br /&gt;
*.NET Framework 4.0. &lt;br /&gt;
*Business Process Management Kompatibler SQL-Server &lt;br /&gt;
*Devexpress 14.2 und höher bei Verwendung von Ribbon Buttons. &lt;br /&gt;
*Installierte Business Process Management GUI &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
== Downloads ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;level2&amp;quot;&amp;gt;&lt;br /&gt;
*[http://www.htk.de/dokuwiki/bpm/Downloads/HTKServer.GUI.Plugins.Beispiel.zip Beispielprojekt] (nicht benötigt wenn man Schritt für Schritt Anleitung befolgt). &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
== Schritt für Schritt: Erstellung eines Plugins ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;level2&amp;quot;&amp;gt;&lt;br /&gt;
#Nach öffnen des Visual Studio&amp;#039;s, wählen Sie bitte Neues Projekt und erstellen eine .NET Framework 4.0 Klassenbibliothek.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 1.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Getreu dem Motto [http://de.wikipedia.org/wiki/Konvention_vor_Konfiguration Conversion over Configuration] muss der Name &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins. &amp;#039;&amp;#039;&amp;#039; gefolgt von ihrem Projektnamen lauten. &lt;br /&gt;
#Nun benötigen wir noch verschiedene Projektverweise. Die Basisvariante eines Plugins muss folgende Verweise enthalten.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 2.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 3.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition(v=vs.110).aspx System.ComponentModel.Composition]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx System.ComponentModel.DataAnnotations]&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.windows.forms(v=vs.110).aspx System.Windows.Forms]&amp;#039;&amp;#039;&amp;#039; können aus dem .NET Framework Standardkatalog verwiesen werden. &amp;#039;&amp;#039;&amp;#039;HTKLicense&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Plugins.IPlugin&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;HTKServer.GUI.Shared&amp;#039;&amp;#039;&amp;#039; können aus dem Installationsordner der BusinessProcessManagement GUI im Ordner Plugins verwiesen werden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 4.png]] &lt;br /&gt;
#Nun sollte die Datei&amp;lt;br/&amp;gt; [[File:GUI Plugins 5.png]]&amp;lt;br/&amp;gt; in&amp;lt;br/&amp;gt; [[File:GUI Plugins 6.png]]&amp;lt;br/&amp;gt; umbenannt werden. Sollte es zu einer Meldung kommen ob alle Projektverweise umbenannt werden sollen, so antworten Sie bitte mit JA., &lt;br /&gt;
#Jetzt lassen wir die Klasse Plugin von der abstrakten Basisklasse &amp;#039;&amp;#039;&amp;#039;PluginBase&amp;#039;&amp;#039;&amp;#039; erben, sowie von den Interfaces &amp;#039;&amp;#039;&amp;#039;IPlugin.IPlugin, &amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; im Anschluss implementieren wir die Interfaces durch anklicken der zugehörigen Microsoft Visual Studio Funktion.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;IPlugin.IPlugin​&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt; [[File:GUI Plugins 7.png]]&amp;lt;br/&amp;gt; &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;IPartImportsSatisfiedNotification&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;​&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;IDisposable&amp;lt;/u&amp;gt; &amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:GUI Plugins 8.png]] &lt;br /&gt;
#Der Interface Member von &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;Dispose&amp;lt;/span&amp;gt; sollten Sie die Dispose funktion nicht benötigen, so lassen Sie diese bitte leer. Ansonsten füllen Sie den Dispose block mit den nötigen freizugebenden unmanaged Ressourcen etc. Weitere Infos zu IDisposable finden Sie unter: [https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx MSDN IDisposable Interface] und [http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface Proper use of the IDisposable Interface] &lt;br /&gt;
#Der Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039; &amp;lt;/u&amp;gt; &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public void&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;OnImportsSatisfied.&amp;lt;/span&amp;gt; Im Regelfall können Sie diese Methode leer lassen. Weitere Informationen über den Zwekc von OnImportsSatisfied finden Sie unter [https://msdn.microsoft.com/de-de/library/system.componentmodel.composition.ipartimportssatisfiednotification.onimportssatisfied(v=vs.110).aspx IPartImportsSatisfiedNotification . OnImportsSatisfied-Methode​] sowie unter [https://stefanhenneken.wordpress.com/2011/06/19/mef-teil-3-lifecycle-beeinflussen-und-berwachen/ MEF Teil 3 – Lifecycle beeinflussen und überwachen​]. &lt;br /&gt;
#OPTIONAL: Es empfiehlt sich als &amp;quot;Best Practice&amp;quot; die Interface Member von &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.componentmodel.composition.ipartimportssatisfiednotification(v=vs.110).aspx IPartImportsSatisfiedNotification]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;und &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx IDisposable]&amp;#039;&amp;#039;&amp;#039; per Region einzuklappen wenn diese ungenutzt sind.&amp;lt;br/&amp;gt; [[File:GUI Plugins 9.png]] &lt;br /&gt;
#Nun &amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; wir noch den [http://mef.codeplex.com/wikipage?title=Exports%20and%20Metadata MEF-Export] der DLL definieren. Hierzu &amp;#039;&amp;#039;&amp;#039;muss &amp;#039;&amp;#039;&amp;#039; das &amp;#039;&amp;#039;&amp;#039;Export &amp;#039;&amp;#039;&amp;#039; Attribut mit dem Entsprechenden Typ des Interfaces, sowie das &amp;#039;&amp;#039;&amp;#039;[https://msdn.microsoft.com/en-us/library/ee155691(v=vs.110).aspx#metadata_and_metadata_views ExportMetaData]&amp;#039;&amp;#039;&amp;#039; Attribut mit dem entsprechendenm Pluginnamen hinzugefügt werden. Bitte achten Sie darauf dass Sie dies nicht vergessen, denn ohne diese beiden Attribute kann das Plugin nicht erkannt werden.&amp;lt;br/&amp;gt; [[File:GUI Plugins 10.png]] &lt;br /&gt;
#Das Interface &amp;#039;&amp;#039;&amp;#039;IPlugin&amp;#039;&amp;#039;&amp;#039; implementiert 2 Member. &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;StartupEntr&amp;lt;/span&amp;gt; y(&amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation) und &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;public bool&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#008080&amp;quot;&amp;gt;JobEntry&amp;lt;/span&amp;gt; (&amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;ProcessInformation&amp;lt;/span&amp;gt; processInformation). Was auffällt ist das beide Funktionen den processInformation parameter übergeben bekommen. Der processInformation parameter wird innerhalb der HauptGUI gebildet und beinhaltet folgende schreibgeschützte Properties.&amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png]]&amp;lt;br/&amp;gt; Die Properties sollten selbstsprechend sein, das LocalisationSystem kann durch die Übergabe im Plugin genutzt werden. Die Property ProcessType beinhaltet die Informationen um was für einen Prozess es sich handelt, also bspw. VKBeleg After Save etc. &lt;br /&gt;
#Der Interface Member &amp;#039;&amp;#039;&amp;#039;StartupEntry&amp;#039;&amp;#039;&amp;#039; wird bei allen Plugins nach dem Druck auf Login / Anmelden ausgeführt. Dies kann also dazu genutzt werden, um bspw. einmalig etwas beim ersten Aufruf auszuführen, egal ob der Prozess definiert wurde oder nicht. Bspw. &amp;quot;Achtung, die Grundlagen für das Plugin XYZ werden nun automatisch eingerichtet, bitte haben Sie einen moment Geduld&amp;quot;. Wichtig ist hierbei nur, dass diese Methoden &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; ausgeführt werden, d.H. Sie müssen bei Verwendung des StartupEntry Einstiegspunktes aufjedenfall dafür sorgen, dass Sie per Markierung in der DB oder in einer Datei ein erneutes Aufrufen verhindern, sonst würde man in dem genannten Beispiel bei jedem Start der GUI wieder nach der Grundlageninstallation gefragt werden. &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039; Dies betrifft nur dinge welche beim aufruf der Gui gestartet werden müssen und nicht mit der Standardinstallationsroutine für Pluginvorrausetzungen abbilden werden können. Die funktion sollte true zurückgeben wenn Sie nicht genutzt wird, oder wenn es keine Probleme gab, ansonsten natürlich False. &lt;br /&gt;
#Der Interface Member &amp;#039;&amp;#039;&amp;#039;JobEntry&amp;#039;&amp;#039;&amp;#039; wird aufgerufen sobald man innerhalb der Business Process Management GUI auf Erweiterte Konfiguration eines Jobs drückt. Hier öffnet man in der Regel eine Maske welche zur erweiterten Konfiguration genutzt werden kann. Es können zusätzlich auch Prüfungen stattfinden, beispielsweise ob ein Mandant gewählt wurde oder nicht. Wenn diese Funktion False zurückgibt, wird der Job nicht gespeichert und das hinterlegte Delete Script innerhalb der [[/doku.php?id=wiki:guipluginassets|Assets]]-Struktur wird aufgerufen, auf das Thema [[/doku.php?id=wiki:guipluginassets|Assets]] gehen wir später ein. Hier ein Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 11.png]]&amp;lt;br/&amp;gt; Die [[/doku.php?id=wiki:pluginbase|Basisklasse]] (base.) beinhaltet verschiedene Basisfunktionen wie beispielsweise GetLogger.&amp;lt;br/&amp;gt; ​Die aufgerufene Form sollte als Best Practise immer die folgenden Konstruktor-Parameter definiert haben:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:GUI Plugins 12.png]]&amp;lt;br/&amp;gt; Um einen FluentLogger zu verwenden (was Sie wirklich tun sollten!), setzen Sie bitte einen Verweis auf die &amp;#039;&amp;#039;&amp;#039;HTKFunctionsLibrary &amp;#039;&amp;#039;&amp;#039; welche Sie auch im Plugins Ordner ihrer Installierten Business Process Management GUI finden.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|146x22px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Achtung&amp;#039;&amp;#039;&amp;#039;: sollten Sie wie in obigem Beispiel eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraMessageBoxtopic XtraMessageBox] verwenden (was optisch besser in das Gesamtbild passt), so benötigen Sie die [https://www.devexpress.com/Products/NET/Controls/WinForms/ DevExpress Komponenten] in der jeweisl vorrausgesetzten Version (siehe Systemvorrausetzungen). Die nötigen Verweise sind&amp;lt;br/&amp;gt; [[File:|233x42px]]&amp;lt;br/&amp;gt; [[File:|178x24px]]​&amp;lt;br/&amp;gt; sowie&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|209x42px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Desweiteren empfiehlt es sich wenn Sie [https://www.devexpress.com/Products/NET/Controls/WinForms/ Devexpress Komponenten] verwenden, eine [https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsXtraFormtopic XtraForm] statt einer Form zu erstellen und in deren Konstruktor folgenden Codeschnipsel zu übernehmen:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|255x125px]]&amp;lt;br/&amp;gt; Für die Bonusskins ist ein weiterer Verweis auf&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|185x24px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; erforderlich.&amp;lt;br/&amp;gt; Nach erfolreicher erweiterten Konfiguration geben Sie bitte true zurück&amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
#Legen Sie nun folgende Ordnerstruktur in Ihrem Projekt an. Die Dateien können je nach bedarf hinzugefügt werden. DIe Ordnerstruktur sollten Sie allerdings standardmäßig so anlegen. Bitte achten Sie auf Korrekte Benennung der Ordnerstruktur.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|285x306px]]&amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Achtung: &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Alle [[/doku.php?id=wiki:guipluginassets|Assets]]&amp;#039;&amp;#039;&amp;#039;müssen&amp;#039;&amp;#039;&amp;#039; bei Buildvorgang Eingebettete Ressource hinterlegt haben!&amp;lt;br/&amp;gt; [[File:|266x37px]]&amp;lt;/u&amp;gt; &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Cleanup: &amp;#039;&amp;#039;&amp;#039; Der Ordner Cleanup beinhaltet Scripte welche benötigt werden um die Tabellenstrukturen &amp;quot;sauber&amp;quot; zu halten. Auch wenn Sie alles korrekt gemacht haben, sollten Sie trotzdem ein solchen Script hinterlegen. Die Scripte werden automatisch ausgeführt. Es empfiehlt sich als Best Practise den Namen der zu &amp;quot;cleanenden&amp;quot; Tabelle als Scriptname zu hinterlegen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt;  &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Delete: &amp;#039;&amp;#039;&amp;#039; Der Ordner Delete beinhaltet Scripte, welche ausgeführt werden wenn die Methode &amp;#039;&amp;#039;&amp;#039;JobEntry &amp;#039;&amp;#039;&amp;#039; false zurückgibt. Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|190x22px]]&amp;lt;br/&amp;gt; Script-Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Im speziellen Fall des Delete-Scriptes stehen folgende [[/doku.php?id=wiki:guiplatzhalter|Platzhalter]] zur Verfügung. @Mandant und @JobId, bitte achten Sie bei Verwendung der Variablen auf die korrekte Bennenung. &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Graphics → Icons: &amp;#039;&amp;#039;&amp;#039; In diesen Ordner können Grafikdateien hinterlegt werden, welche als Grundlage für die RibbonButtons dienen. Es empfiehlt sich *.ico Dateien zu verwenden. Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|186x57px]] &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Info: &amp;#039;&amp;#039;&amp;#039; Der Ordner Info beinhaltet die &amp;#039;&amp;#039;&amp;#039;[[/doku.php?id=wiki:productxml|Product.xml]]&amp;#039;&amp;#039;&amp;#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:]]&amp;lt;br/&amp;gt; * &amp;#039;&amp;#039;&amp;#039;ValidationKey:&amp;#039;&amp;#039;&amp;#039; Der ValidationKey der HTK Lizensierung. * &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;DemoSerial:&amp;#039;&amp;#039;&amp;#039; Hier kann eine Standard Demoseriennummer. * &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;SettingsXml:&amp;#039;&amp;#039;&amp;#039; Hier kann die zu verwendende SettingsXML. * &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;Features:&amp;#039;&amp;#039;&amp;#039; Semikolon getrennte Liste von Features. * &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;Productname:&amp;#039;&amp;#039;&amp;#039; Der Produktname welcher in der Addins übersicht angezeigt wird. &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;Description:&amp;#039;&amp;#039;&amp;#039; Die Beschreibung welche in der Addins übersicht angezeigt wird. &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;Author:&amp;#039;&amp;#039;&amp;#039; Der Autor des Plugins. &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039; Der Name des Plugins.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; *: Sollten Sie nicht die HTK Lizensierung sondern Ihre eigene Verwenden, so können Sie dies leer lassen&amp;lt;br/&amp;gt; ​   &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Install:&amp;#039;&amp;#039;&amp;#039; Der Ordner Install beinhaltet Installationsscripte welche aufgerufen werden sobald man sich in die Business Process Management GUI Anmeldet (nach Login Dialog). Hier sollten Sie darauf achten, dass Sie alle Datenbankstrukturen nur anlegen wenn diese nicht existieren! Auch hier empfiehlt sich als Namensgebung der Tabellenname.&amp;lt;br/&amp;gt; Beispielscript:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|1023x238px]] &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Options: &amp;#039;&amp;#039;&amp;#039; In dem Ordner Options befindet sich die &amp;#039;&amp;#039;&amp;#039;[[/doku.php?id=wiki:optionsxml|Options.xml]]&amp;#039;&amp;#039;&amp;#039; welche folgenden Aufbau hat.&amp;lt;br/&amp;gt; [[File:|515x123px]]​ &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;HasProperties:&amp;#039;&amp;#039;&amp;#039; Gibt an ob der Job bei Doppelklick oder Klick auf Einstellungen Serviceproperties hat. Steht diese Option auf false, so öffnet sich immer die erweiterte Konfiguration &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;MandantNessesary:&amp;#039;&amp;#039;&amp;#039; Steltt man diese Option auf true, so kann man den Job (von Haus aus) nicht ohne Mandant hinterlegen. Wenn dies nur in bestimmten Szenarien der Fall sein sollte, so lassen die dies auf false und prüfen SIe dies im &amp;#039;&amp;#039;&amp;#039;JobEntry&amp;#039;&amp;#039;&amp;#039; einstiegspunkt. &lt;br /&gt;
#*&amp;#039;&amp;#039;&amp;#039;JobMatches:&amp;#039;&amp;#039;&amp;#039; Hier können Sie Semikolongetrennt alle Jobbezeichnungen hinterlegen bei denen das Plugin geöffnet werden kann.   &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Ribbonbuttons → Configuration: &amp;#039;&amp;#039;&amp;#039; In der &amp;#039;&amp;#039;&amp;#039;[[/doku.php?id=wiki:configurationxml|Configuration.xml]]&amp;#039;&amp;#039;&amp;#039; Datei wird definiert welche RibbonButtons das Plugin erzeugt, auf welcher RibbonPage und in welcher RibbonGroup. Zusätzlich wird definiert, was bei einem Druck auf den Button passiert und ob es eine Bedingung für das erscheinen des Buttons gibt.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|724x617px]]​ &lt;br /&gt;
#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:rgb(34, 177, 76)&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Grün&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man dass die Datei aus Zwei Bereichen besteht. Einmal &amp;#039;&amp;#039;&amp;#039;[https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraBarsBarButtonItemtopic BarButtonItems]&amp;#039;&amp;#039;&amp;#039; und einmal &amp;#039;&amp;#039;&amp;#039;[https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraBarsBarLinkContainerItemtopic BarButtonLinkContainerItems].&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:rgb(0, 162, 232)&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Blau&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man den jeweiligen Button hier können natürlich N Buttons definiert werden. Bitte achten Sie darauf dass der aufbau eines BarButtonLinkContainer&amp;#039;s durch die zusätzliche Buttonlist abweicht &lt;br /&gt;
#*​In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#B97A57&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Braun&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sieht man die ID des Buttons, diese muss gesetzt werden, da diese den Button eindeutig kennzeichnet. Bitte achten Sie darauf dass die ID so eindeutig ist dass Sie nicht mit anderen Lösungen sich übershcneidet und vergeben Sie diese nicht doppelt. &lt;br /&gt;
#*​In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FF7F27&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Orange&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert die Buttonlist eines BarButtonLinkContainer&amp;#039;s. Hier werden die ID&amp;#039;s der Buttons hinterlegt welche unterhalb des BarButtonLinkContainer&amp;#039;s erscheinen. Achtung: Buttons werden automatisch Visible wenn Sie &amp;quot;Kinder&amp;quot; eines BarButtonLinkContainer&amp;#039;s sind. Die Reihenfolge ist die Reihenfolge innerhalb der XML Datei. &lt;br /&gt;
#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#7F7F7F&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Grau&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert die Sichtbarkeit eines Buttons. Wenn der Button teil eines BarButtonLinkContainers ist, stellen Sie diesen auf Never. Der BarButtonLinkContainer stellt diesen automatisch auf Always. Sie verhindern allerdings durch die Einstellung Never, dass dieser zusätzlich im Ribbon als eigenständiger Button angezeigt wird. &lt;br /&gt;
#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#A349A4&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Lila&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sehen Sie die zuweisung eines ItemClick Events an eine Funktion namens BarButtonItem2OnItemClick. Hierbei handelt es sich um Devexpress BarButtonItem Events welche definiert werden können. &lt;br /&gt;
#*In &amp;lt;span style=&amp;quot;color:#FFFFFF&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:14px line-height: 19.6000003814697px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFAEC9&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pink&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; markiert sehen Sie eine hinterlegte BarButtonItem Condition, diese Condition gibt true bzw. false zurück. Bei False würde der Button nicht angelegt werden!&amp;lt;br/&amp;gt; Wenn also Buttons nur unter bestimmten bedingungen angezeigt werden dürfen (bspw. File XY existiert oder nicht), dann müssen Sie dies über eine condition lösen.​&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Achtung: Die Texte &amp;#039;&amp;#039;&amp;#039;Caption, Page und Group &amp;#039;&amp;#039;&amp;#039; beziehen sich &amp;#039;&amp;#039;&amp;#039;immer &amp;#039;&amp;#039;&amp;#039; auf eine GUI Plugin-Lokalisierungsdatei, die Anlage dieser entnehmen Sie bitte dem Beitrag &amp;#039;&amp;#039;&amp;#039;[[/doku.php?id=wiki:guipluginlokalisierungsdateien|GUI Plugin-Lokalisierungsdateien]]&amp;#039;&amp;#039;&amp;#039;.   &lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Ribbonbuttons → &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;RibbonButtonMethods​.cs&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039; In der [[/doku.php?id=wiki:ribbonbuttonmethods​|RibbonButtonMethods]] Klasse müssen Sie zu den jeweils definierten RibbonButtons die jeweiligen Events hinterlegen, sowie die Conditions zu den definierten Conditions. Bitte beachten Sie das es sich bei der RibbonButtonMethods um eine statische Klasse handelt.&amp;lt;br/&amp;gt; Beispiel:&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|797x504px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; Conditions müssen immer als public static bool XYZ ohne Parameter definiert werden. Wird hier False zurückgegeben, so wird der Button nicht angelegt.&amp;lt;br/&amp;gt; ​Die Eventsignatur muss entsprechend der von Devexpress definierten Eventsignatur sein, die Signatur für den Fall ItemClick können Sie obigem Beispiel entnehmen.&amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Tipp: &amp;#039;&amp;#039;&amp;#039; Um aus einem ButtonClick heraus die zu verwendende SQL Verbindung zu bekommen, nutzen Sie die GetSQlConnectionInfo funktion aus dem Shared Namespace, diese liefert Ihnen einen Tuple&amp;lt;[https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx SqlConnection], [https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx String]&amp;gt; Item1 stellt hierbei eine &amp;#039;&amp;#039;&amp;#039;geschlossene &amp;#039;&amp;#039;&amp;#039; [https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx SqlConnection ]und Item2 den Connectionstring dar. &lt;br /&gt;
#Nun können Sie das Plugin erstellen. Wählen Sie als Zielplattform bitte &amp;#039;&amp;#039;&amp;#039;x86&amp;#039;&amp;#039;&amp;#039; aus. Zur Installation legen Sie das Plugin sowie alle Vorrausetzungen und Verweise in den Ordner Plugins Ihrer installierten Business Process Management GUI. Wenn Sie alles richtig gemacht haben, sollte ein Klick auf Addins ihr Plugin anzeigen.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; [[File:|1043x499px]] &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>