Standardvorgehen in der Informatik - Gottfried Rudorfer's HomepageOffizielle Gottfried Rudorfer's Homepagehttps://rudorfer.homedns.org/at/informatik/standardvorgehen-in-der-informatik2024-03-29T12:48:51+00:00Gottfried Rudorfer's Homepagegottfried@rudorfer.homedns.orgJoomla! - Open Source Content ManagementKomplexe Applikationsintegrationen mit AutoIt erstellen2011-02-26T16:41:20+00:002011-02-26T16:41:20+00:00https://rudorfer.homedns.org/at/informatik/standardvorgehen-in-der-informatik/128-implement-complex-application-integrations-with-autoit-2Gottfried Rudorfergottfried@rudorfer.homedns.org<p>Eine weitere leistungsfähige Technik um komplexe und heterogene Applikationsintegrationen<br />zu automatisieren möchte ich hier vorstellen:</p>
<p>Vor einiger Zeit habe ich ein leistungsfähiges Tool entwickelt, welches Daten von einer <br />im Haus entwickelten ASP-basierenden Web-Applikation, CA Clarity, Microsoft Sharepoint, <br />SAP Netweaver Portal und www.salesforce.com verarbeitet.</p>
<p>Mit den gesammelten Daten wird automatisiert ein Sharepoint-Formular befüllt.</p>
<p><a href="http://www.autoitscript.com/" target="_blank" title="AutoIt"><img style="float: left;" src="https://rudorfer.homedns.org//images/stories/informatics/AutoIt.gif" alt="AutoIt" height="94" width="84" /></a></p>
<p>Da alle anzubindenen Anwendungen Microsoft Internet Explorer als Web-Client unterstützen, kann diese<br />Aufgabenstellung sehr gut mit der Script-Sprache AutoIt umgesetzt werden.</p>
<p>Die Script-Sprache unterstützt die erweiterten Regulären Ausdrücke. Die Syntax ist Basic-ähnlich.<br />Es unterstützt hervorragend die Automatisierung des Windows GUI.</p>
<p>Für die Anforderungen dieses Projektes wurden nur ein paar Methoden im Bereich des Zugriffs <br />auf den Internet Explorer aus AutoIt genutzt:</p>
<p>Ebenso war es sehr einfach die entwickelte Anwendung fehlertolerant in Bezug auf die Verfügbarkeit <br />der abgefragten Web-Seiten durch Nutzung eines Timeout-Parameters zu machen.</p>
<p><a href="http://www.sdn.sap.com/irj/sdn/nw-portalandcollaboration" target="_blank" title="SAP NetWeaver"><img style="display: block; margin-right: auto;" src="https://rudorfer.homedns.org//images/stories/informatics/4731-SAP-Powered-logo.gif" alt="4731-SAP-Powered-logo" height="140" width="209" /></a></p>
<p>Die Anbindung des SAP Netweaver Portals wurde durch den Zugriff auf die verschachtelten <br />Frames und iFrames umgesetzt.</p>
<p>Um die gewünschten Daten zu erhalten wurde ein 4-facher Zugriff auf _IEFrameGetCollection() <br />implementiert .</p>
<p>Mit den Methoden _IEFormElementGetObjByName() und _IETableGetCollection() können die<br />benötigten Daten verarbeitet werden.</p>
<p><a href="http://www.salesforce.com/" target="_blank" title="www.salesforce.com"><img style="float: left;" src="https://rudorfer.homedns.org//images/stories/informatics/salesforce-use.jpg" alt="Salesforce.com" height="80" width="289" /></a></p>
<p>Die Abfrage einer salesforce.com-Opportunity erfolgt über die Methoden _IEFormElementOptionSelect() um<br />den Opportunity-Filter auszuwählen. Das Form-Objekt wird über _IEFormGetObjByName() abgefragt und<br />_IEFormElementSetValue() um die Abzufragende Opportunity-Nummer einzufügen.</p>
<p><a href="http://sharepoint.microsoft.com/de-at/Seiten/default.aspx" target="_blank" title="Microsoft Sharepoint Homepage"><img style="display: block; margin-right: auto;" src="https://rudorfer.homedns.org//images/stories/informatics/microsoft-sharepoint-2010.jpg" alt="microsoft-sharepoint-2010" height="95" width="160" /></a></p>
<p>Ich fand einen guten Weg, um ein großes Sharepoint-Formular automatisiert zu befüllen.<br />Das Script kann direkt Name-Lookup-Fields, Datumsfelder inklusive der Wahl des korrekten<br />Datumgsformats DD/MM/YYYY oder MM/DD/YYYY, Checkbox-Felder und <br />Drop-Down-Auswahlfelder mit Daten beschicken.</p>
<p><a href="http://www.ca.com/us/project-portfolio-management.aspx" target="_blank" title="CA Clarity PPM"><img style="float: left;" src="https://rudorfer.homedns.org//images/stories/informatics/caclaritylogo.gif" alt="caclaritylogo" height="65" width="188" /></a></p>
<p>Und schließlich kann das Script auch mit CA Clarity kommunizieren und über die Eingabe<br />einer Auftragsnummer die dazugehörige Projekt-ID abfragen. Dabei wurden die Funktionen<br />_IEGetObjById(), _IEFormElementOptionSelect(), _IEFormGetObjByName(), <br />_IEFormGetObjByName() und _IETableGetCollection() verwendet..</p>
<p>Bitte lassen Sie es mich wissen, wenn Sie ebenso Interesse an dieser Automatisierungstechnik haben.</p><p>Eine weitere leistungsfähige Technik um komplexe und heterogene Applikationsintegrationen<br />zu automatisieren möchte ich hier vorstellen:</p>
<p>Vor einiger Zeit habe ich ein leistungsfähiges Tool entwickelt, welches Daten von einer <br />im Haus entwickelten ASP-basierenden Web-Applikation, CA Clarity, Microsoft Sharepoint, <br />SAP Netweaver Portal und www.salesforce.com verarbeitet.</p>
<p>Mit den gesammelten Daten wird automatisiert ein Sharepoint-Formular befüllt.</p>
<p><a href="http://www.autoitscript.com/" target="_blank" title="AutoIt"><img style="float: left;" src="https://rudorfer.homedns.org//images/stories/informatics/AutoIt.gif" alt="AutoIt" height="94" width="84" /></a></p>
<p>Da alle anzubindenen Anwendungen Microsoft Internet Explorer als Web-Client unterstützen, kann diese<br />Aufgabenstellung sehr gut mit der Script-Sprache AutoIt umgesetzt werden.</p>
<p>Die Script-Sprache unterstützt die erweiterten Regulären Ausdrücke. Die Syntax ist Basic-ähnlich.<br />Es unterstützt hervorragend die Automatisierung des Windows GUI.</p>
<p>Für die Anforderungen dieses Projektes wurden nur ein paar Methoden im Bereich des Zugriffs <br />auf den Internet Explorer aus AutoIt genutzt:</p>
<p>Ebenso war es sehr einfach die entwickelte Anwendung fehlertolerant in Bezug auf die Verfügbarkeit <br />der abgefragten Web-Seiten durch Nutzung eines Timeout-Parameters zu machen.</p>
<p><a href="http://www.sdn.sap.com/irj/sdn/nw-portalandcollaboration" target="_blank" title="SAP NetWeaver"><img style="display: block; margin-right: auto;" src="https://rudorfer.homedns.org//images/stories/informatics/4731-SAP-Powered-logo.gif" alt="4731-SAP-Powered-logo" height="140" width="209" /></a></p>
<p>Die Anbindung des SAP Netweaver Portals wurde durch den Zugriff auf die verschachtelten <br />Frames und iFrames umgesetzt.</p>
<p>Um die gewünschten Daten zu erhalten wurde ein 4-facher Zugriff auf _IEFrameGetCollection() <br />implementiert .</p>
<p>Mit den Methoden _IEFormElementGetObjByName() und _IETableGetCollection() können die<br />benötigten Daten verarbeitet werden.</p>
<p><a href="http://www.salesforce.com/" target="_blank" title="www.salesforce.com"><img style="float: left;" src="https://rudorfer.homedns.org//images/stories/informatics/salesforce-use.jpg" alt="Salesforce.com" height="80" width="289" /></a></p>
<p>Die Abfrage einer salesforce.com-Opportunity erfolgt über die Methoden _IEFormElementOptionSelect() um<br />den Opportunity-Filter auszuwählen. Das Form-Objekt wird über _IEFormGetObjByName() abgefragt und<br />_IEFormElementSetValue() um die Abzufragende Opportunity-Nummer einzufügen.</p>
<p><a href="http://sharepoint.microsoft.com/de-at/Seiten/default.aspx" target="_blank" title="Microsoft Sharepoint Homepage"><img style="display: block; margin-right: auto;" src="https://rudorfer.homedns.org//images/stories/informatics/microsoft-sharepoint-2010.jpg" alt="microsoft-sharepoint-2010" height="95" width="160" /></a></p>
<p>Ich fand einen guten Weg, um ein großes Sharepoint-Formular automatisiert zu befüllen.<br />Das Script kann direkt Name-Lookup-Fields, Datumsfelder inklusive der Wahl des korrekten<br />Datumgsformats DD/MM/YYYY oder MM/DD/YYYY, Checkbox-Felder und <br />Drop-Down-Auswahlfelder mit Daten beschicken.</p>
<p><a href="http://www.ca.com/us/project-portfolio-management.aspx" target="_blank" title="CA Clarity PPM"><img style="float: left;" src="https://rudorfer.homedns.org//images/stories/informatics/caclaritylogo.gif" alt="caclaritylogo" height="65" width="188" /></a></p>
<p>Und schließlich kann das Script auch mit CA Clarity kommunizieren und über die Eingabe<br />einer Auftragsnummer die dazugehörige Projekt-ID abfragen. Dabei wurden die Funktionen<br />_IEGetObjById(), _IEFormElementOptionSelect(), _IEFormGetObjByName(), <br />_IEFormGetObjByName() und _IETableGetCollection() verwendet..</p>
<p>Bitte lassen Sie es mich wissen, wenn Sie ebenso Interesse an dieser Automatisierungstechnik haben.</p>Ist eine unterbrechungsfreie Stromversorgung für zu Hause ein Luxus?2011-08-12T23:00:00+00:002011-08-12T23:00:00+00:00https://rudorfer.homedns.org/at/informatik/standardvorgehen-in-der-informatik/127-use-a-ups-for-home-electronics-2Gottfried Rudorfergottfried@rudorfer.homedns.org<p>Ich bin ein großer Anhänger von guter Automatisierung in meinem Privathaus. Ich widme mich intensiv den Themen Haus-Elektrizität, Haus-Elektronik und dem Einsatz von Computern im Bereich der Haustechnik.</p>
<p>Jedes Jahr starte ich ein kleines Haus-Automatisierungsprojekt.</p>
<p><span style="text-decoration: underline;"><strong>Ich verwende folgende Haus-Elektrizitätskomponenten:</strong></span></p>
<ul>
<li>Dimmer-Systeme für automatische Beleuchtung des Front- und Eingangsbereichtes des Hauses.</li>
<li>Kopplung des Garagentors mit dem Lichtsystem der Garage, um die Beleuchtung automatisiert ein und auszuschalten.</li>
<li>Funksteckdosen und USB PC-Schnittstelle</li>
<li>...</li>
</ul>
<p><strong><span style="text-decoration: underline;">Ich verwende folgende Haus-Elektronik-Komponenten:</span></strong></p>
<ul>
<li>Stern-LAN-Verkabelung in allen Wohnräumen, dem Front- und Rückbereicht des Hauses und der Garage</li>
<li>LAN-Switch, Patchpanel im 19''-Rack</li>
<li>Videoüberwachter Eingangsbereich</li>
<li>...</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Ich verwende folgendes Haus-Computing für Automatisierungszwecke:</strong></span></p>
<ul>
<li>Billig-PCs mit geringer Leistungsaufnahme ohne Bildschirm und Tastatur mit Linux als WEB-Server, Firewall, Samba-SMB-CIFS-Server, Multimedia-Streaming</li>
<li>APC-UPS unterbrechungsfreie Stromversorgungen</li>
<li>Desktop PCs mit Windows XP und Windows 7 mit 26'' LCD-Schirmen</li>
<li>Apple Laptops mit Leopard-OS</li>
<li>Windows 7 Laptops</li>
<li>WLAN-Access-Points b/g/n (11/54/450 MBit/s)</li>
<li>...</li>
</ul>
<p>Ich bemerkte erst vor kurzem, dass ich einen Bedarf an unterbrechungsfreien Stromversorgungen (UPS-Systeme) für meine Haus-Automatisierungssystem habe. Ein ADSL-Modem brachte mich dazu, weil es bei leichten Schwankungen des Schreibtischlichtes neu startete. Daher habe ich mich entschlossen die APC Back-UPS ES 700 als unterbrechungsfreie Stromversorgung anzuschaffen. Ich habe dieses Modell wegen des geringen Preises und der Unterstützung von Linux für das Status-Reporting über die USB-Schnittstelle gewählt.</p>
<p>An dieser Stelle möchte ich einen Teil des Logs einer meiner UPS-Systeme wiedergeben:</p>
<table border="2">
<tbody>
<tr>
<td>
<div><span style="font-size: 8pt;">Sun Oct 03 02:55:<strong>25</strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sun Oct 03 02:55:<strong>24</strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Sep 11 19:12:<span style="color: #339966;"><strong>27</strong></span> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Sep 11 19:12:<strong><span style="color: #339966;">25</span></strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:46:<strong><span style="color: #000000;">53</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:46:<strong>51</strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:42:<strong><span style="color: #339966;">05</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:42:<strong><span style="color: #339966;">03 </span></strong>CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:39:<strong><span style="color: #000000;">36 </span></strong>CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:39:<strong><span style="color: #000000;">34</span></strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 06:56:<strong><span style="color: #339966;">04</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 06:56:<strong><span style="color: #339966;">02</span></strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sun Aug 15 03:07:<strong>07 </strong>CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sun Aug 15 03:07:<strong>05</strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Fri Aug 13 22:53:<strong><span style="color: #339966;">30</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Fri Aug 13 22:53:<strong><span style="color: #339966;">28</span></strong> CEST 2010 Power failure.</span></div>
</td>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<p>Als ich den Log das erste Mal sah war ich richtig entsetzt, wie oft in meinem Stromnetz kurze ca. 2 Sekunden andauernde Aussetzer auftreten. Für viele elektronische Komponenten ist das bereits zu lange und jetzt erklärt sich auch, warum ein Sat-Receiver machmal ohne ersichtlichen Grund neu startete.</p>
<p>Nach der Implementation meiner UPS-Systeme freue ich mich nun über die stark erhöhte Verfügbarkeit meiner Haus-Automatisierungs-Umgebung. <img title="Cool" src="https://rudorfer.homedns.org//media/editors/tinymce/plugins/emoticons/img/smiley-cool.gif" alt="Cool" border="0" /> Kleine Ursache, große Wirkung! <img title="Surprised" src="https://rudorfer.homedns.org//media/editors/tinymce/plugins/emoticons/img/smiley-surprised.gif" alt="Surprised" border="0" /></p>
<p> </p><p>Ich bin ein großer Anhänger von guter Automatisierung in meinem Privathaus. Ich widme mich intensiv den Themen Haus-Elektrizität, Haus-Elektronik und dem Einsatz von Computern im Bereich der Haustechnik.</p>
<p>Jedes Jahr starte ich ein kleines Haus-Automatisierungsprojekt.</p>
<p><span style="text-decoration: underline;"><strong>Ich verwende folgende Haus-Elektrizitätskomponenten:</strong></span></p>
<ul>
<li>Dimmer-Systeme für automatische Beleuchtung des Front- und Eingangsbereichtes des Hauses.</li>
<li>Kopplung des Garagentors mit dem Lichtsystem der Garage, um die Beleuchtung automatisiert ein und auszuschalten.</li>
<li>Funksteckdosen und USB PC-Schnittstelle</li>
<li>...</li>
</ul>
<p><strong><span style="text-decoration: underline;">Ich verwende folgende Haus-Elektronik-Komponenten:</span></strong></p>
<ul>
<li>Stern-LAN-Verkabelung in allen Wohnräumen, dem Front- und Rückbereicht des Hauses und der Garage</li>
<li>LAN-Switch, Patchpanel im 19''-Rack</li>
<li>Videoüberwachter Eingangsbereich</li>
<li>...</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Ich verwende folgendes Haus-Computing für Automatisierungszwecke:</strong></span></p>
<ul>
<li>Billig-PCs mit geringer Leistungsaufnahme ohne Bildschirm und Tastatur mit Linux als WEB-Server, Firewall, Samba-SMB-CIFS-Server, Multimedia-Streaming</li>
<li>APC-UPS unterbrechungsfreie Stromversorgungen</li>
<li>Desktop PCs mit Windows XP und Windows 7 mit 26'' LCD-Schirmen</li>
<li>Apple Laptops mit Leopard-OS</li>
<li>Windows 7 Laptops</li>
<li>WLAN-Access-Points b/g/n (11/54/450 MBit/s)</li>
<li>...</li>
</ul>
<p>Ich bemerkte erst vor kurzem, dass ich einen Bedarf an unterbrechungsfreien Stromversorgungen (UPS-Systeme) für meine Haus-Automatisierungssystem habe. Ein ADSL-Modem brachte mich dazu, weil es bei leichten Schwankungen des Schreibtischlichtes neu startete. Daher habe ich mich entschlossen die APC Back-UPS ES 700 als unterbrechungsfreie Stromversorgung anzuschaffen. Ich habe dieses Modell wegen des geringen Preises und der Unterstützung von Linux für das Status-Reporting über die USB-Schnittstelle gewählt.</p>
<p>An dieser Stelle möchte ich einen Teil des Logs einer meiner UPS-Systeme wiedergeben:</p>
<table border="2">
<tbody>
<tr>
<td>
<div><span style="font-size: 8pt;">Sun Oct 03 02:55:<strong>25</strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sun Oct 03 02:55:<strong>24</strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Sep 11 19:12:<span style="color: #339966;"><strong>27</strong></span> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Sep 11 19:12:<strong><span style="color: #339966;">25</span></strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:46:<strong><span style="color: #000000;">53</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:46:<strong>51</strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:42:<strong><span style="color: #339966;">05</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:42:<strong><span style="color: #339966;">03 </span></strong>CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:39:<strong><span style="color: #000000;">36 </span></strong>CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 15:39:<strong><span style="color: #000000;">34</span></strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 06:56:<strong><span style="color: #339966;">04</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sat Aug 21 06:56:<strong><span style="color: #339966;">02</span></strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Sun Aug 15 03:07:<strong>07 </strong>CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Sun Aug 15 03:07:<strong>05</strong> CEST 2010 Power failure.</span></div>
<div><span style="font-size: 8pt;">Fri Aug 13 22:53:<strong><span style="color: #339966;">30</span></strong> CEST 2010 Power is back. UPS running on mains.</span></div>
<div><span style="font-size: 8pt;">Fri Aug 13 22:53:<strong><span style="color: #339966;">28</span></strong> CEST 2010 Power failure.</span></div>
</td>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<p>Als ich den Log das erste Mal sah war ich richtig entsetzt, wie oft in meinem Stromnetz kurze ca. 2 Sekunden andauernde Aussetzer auftreten. Für viele elektronische Komponenten ist das bereits zu lange und jetzt erklärt sich auch, warum ein Sat-Receiver machmal ohne ersichtlichen Grund neu startete.</p>
<p>Nach der Implementation meiner UPS-Systeme freue ich mich nun über die stark erhöhte Verfügbarkeit meiner Haus-Automatisierungs-Umgebung. <img title="Cool" src="https://rudorfer.homedns.org//media/editors/tinymce/plugins/emoticons/img/smiley-cool.gif" alt="Cool" border="0" /> Kleine Ursache, große Wirkung! <img title="Surprised" src="https://rudorfer.homedns.org//media/editors/tinymce/plugins/emoticons/img/smiley-surprised.gif" alt="Surprised" border="0" /></p>
<p> </p>