TECHNIK & INTEGRATION14 beispielh debug(*input) dftactgrp(*no)**** Prototyp für XML-Handler Prozedur*1.1D XMLHand pr 10i 0 1.21.3d RetCodnd customerI 1likeds(kunde) dim(2) constd NbrRec10i 0 value*1.4d ReturnI s nd XMLPfadFile s 30 inz('XML/custom.xml')D kundedsD kundenr 5D company 30D addr1 30d plz 10D ort 30dsdsd err_msg 91 170d xml_rc 368 371b 0d xml_ele 372 379i 0Daten verfügbar sind. Dann werden dienotwendige Anzahl der Elemente derDatenstruktur gefüllt und die Handler-Prozedur aufgerufen. Deshalb sollte beider Verarbeitung der Elemente in derHandler-Prozedur immer die Anzahlder übergebenen Elemente (dritter Parameter)mitbenutzt werden.Das Ergebnis als Debug-Anzeige,erster Aufruf der Handler-Prozedur,sehen Sie in Abbildung 15. Das Ergebnisals Debug-Anzeige, zweiter Aufrufder Handler-Prozedur, ist in Abbildung16 zu sehen./freeReturnI = *off;2 3xml-into %handler(XMLHand : ReturnI)%xml(%trim(XMLPfadFile) :'doc=File ' +'path=customers/customer ' +'case=any ' +'allowmissing=yes ' +'allowextra=yes ');*inlr = *on;/end-free*** XML-Handler Prozedur4FazitDie Verwendung einer Handler-Prozedurbietet die notwendige Flexibilität,was die Verarbeitung der Daten auseinem XML-Dokument betrifft.Walter Becker óP XMLHandb*D XMLhand pi510i 0d RetCodnd customerIlikeds(kunde) dim(2) constd NbrRec10i 0 value*d i s 5s 0/freefor i = 1 to NbrRec;/end-freeP XMLHandendfor;return 0;e7615 beispielEVAL customerICUSTOMERI.KUNDENR(1) = '1 'CUSTOMERI.COMPANY(1) = 'MeiereiCUSTOMERI.ADDR1(1) = 'MeierCUSTOMERI.PLZ(1) = '67454 'CUSTOMERI.ORT(1) = 'MeiertalCUSTOMERI.KUNDENR(2) = '2 'CUSTOMERI.COMPANY(2) = 'MüllereiCUSTOMERI.ADDR1(2) = 'MüllerCUSTOMERI.PLZ(2) = '67000 'CUSTOMERI.ORT(2) = 'Müllertal> EVAL NbrRecNBRREC = 2''''''1 Definition des Prototyps für die Handler-Prozedur. Für die Handler-Prozedur muss einRückgabewert als Typ 4-Byte Integer definiert werden (siehe 1.1).2 Die Anweisung XML-INTO enthält im ersten Parameter den BIF %Handler. Für BIF%Handler muss im ersten Parameter der Name der Handler-Prozedur angegeben werden.3 Der zweite Parameter der BIF %Handler enthält den Namen einer Variablen mit freiwählbaremTyp. Die Definition des Felds muss allerdings mit der Definition des erstenParameters – also des Prototyps für die Handler-Prozedur – übereinstimmen. DieseVariable wird der Handler-Prozedur als erster Parameter (siehe oben) übergeben unddient der Kommunikation zwischen Handler-Prozedur und dem Programmteil mit derXML-INTO-Anweisung.4 Die Option „path“ muss angegeben werden.5 Definition der Handler-Prozedur.6 Der dritte Parameter der Handler-Prozedur enthält die Anzahl der Elemente, die durchden Parser gefüllt wurden. Er wird benutzt, um die Verarbeitung zu steuern.7 Return=0 bedeutet, dass der Parsing-Prozess (falls möglich) weiter fortgesetzt werdensoll. Return=1 bedeutet, dass XML-INTO nicht weiter ausgeführt werden soll.16 beispielEVAL customerICUSTOMERI.KUNDENR(1) = '3 'CUSTOMERI.COMPANY(1) = 'SchlossereiCUSTOMERI.ADDR1(1) = 'SchlosserCUSTOMERI.PLZ(1) = '67001 'CUSTOMERI.ORT(1) = 'SchlossertalCUSTOMERI.KUNDENR(2) = ' 'CUSTOMERI.COMPANY(2) = 'CUSTOMERI.ADDR1(2) = 'CUSTOMERI.PLZ(2) = ''CUSTOMERI.ORT(2) = 'EVAL NbrRecNBRREC = 1''''''70MIDRANGE MAGAZIN · 09/<strong>200</strong>7
Anwendungen schnell und kosteneffizient webfähig machenPHP on System iZahlreiche Unternehmen setzen meist viele Jahre auf die System i-Plattform. Sie schätzensowohl ihre Zuverlässigkeit als auch ihre reibungslos funktionierenden Anwendungen.Für diese Unternehmen ist es wichtig, ihre bestehende IT-Infrastruktur so lange wie möglichnutzen zu können.Bestehende System i-Anwendungenstoßen jedoch teilweise an ihreGrenzen – besonders, wenn es darumgeht, neue Benutzer-Interfaces zu entwickeln,die Web-Anbindung voranzutreibenoder offene Applikationenfür externe Kunden zu gestalten. Hierzeigt PHP seine Stärken: Mit dieserProgrammiersprache lassen sich ältereApplikationen unkompliziert und ohnegroßen Aufwand modernisieren. PHPwird auf der System i-Plattform unterstützt– so sind Anwender in der Lage,schnell auf neue Herausforderungenund Geschäftsmöglichkeiten reagierenzu können. Auch IBM-Business-Partnerwerden verstärkt mit diesen neuen Aufgabenstellungenkonfrontiert.PHP 5 für iSeriesPHP 5 ist eine der leistungsstärksten,professionellsten und sichersten Web-Development-Sprachen und wird vonüber 20 Millionen Web-Sites weltweiteingesetzt. Die objektorientierten Funktionender Programmiersprache tragenunter anderem dazu bei, Anwendungenmit hoher Flexibilität programmieren zukönnen. Viele Unternehmen programmierenihre geschäftskritischen Anwendungenmit PHP, da PHP-Applikationenzuverlässig, skalierbar und unkompliziertin Wartung und Betrieb sind.Für System i-Anwender ist PHPinteressant, da es wichtige Voraussetzungenmitbringt: PHP ist die optimaleProgrammiersprache, wenn es darumgeht, bestehende Anwendungen inRPG, COBOL, C, C++ oder JAVA zu ak-tualisieren beziehungsweise webfähigzu machen – beispielsweise bei der Erneuerungvon Intranet‐, Extranet- oderSOA-Anwendungen.Ein weiterer Vorteil ist, dass PHPplattformunabhängig eingesetzt werdenkann. Das bedeutet für Systemi-Anwender, dass „Insellösungen“ mitPHP wieder konsolidiert werden können:Open-Source- oder LAMP-Applikationenauf Intel-basierenden Maschinenlassen sich unkompliziert auf dieSystem i-Plattform zurückführen undzusammenfassen. Auch MySQL hat diesenTrend erkannt und bereits vor geraumerZeit eine Partnerschaft mit IBMgeschlossen.Besonders für RPG-Entwickler bietetsich PHP an, da ihnen der Umstiegauf PHP sehr leicht fällt: Die beidenSprachen sind sich im Ansatz sowiein der Einfachheit und Klarheit sehrähnlich. Im Gegensatz dazu müssenEntwickler bei der Umstellung auf JA-VA oder auf eine andere Sprache mehrneues Know-how aufbauen. Insgesamtgesehen ist das Entwickeln in PHP damitschneller, günstiger und vor allemqualitativ hochwertig.Diese Voraussetzungen unterstreichenauch die Ergebnisse der aktuellenStudie „Plat_Forms – The web developmentcomparison“ der Freien UniversitätBerlin. Hier werden PHP sehr guteErgebnisse bei der Entwicklung undWartung von Geschäftsapplikationenbestätigt. Weitere Informationen hierzugibt es unter:Û www.plat-forms.org/<strong>200</strong>7Volle Unterstützung für PHPAuf der sicheren Seite sind System i-Anwender, die Zend Core for i5/OSverwenden. Denn damit bekommen siedirekt von Zend eine unterstützte PHP-Distribution, für die Zend Support inverschiedenen Ausprägungen anbietet.Auch seitens IBM gibt es technischeUnterstützung für Anwender: Im IBM-Redbook „PHP: Zend for i5/OS“ unterÛ http://www.redbooks.ibm.comerhalten Entwickler wertvolle Tippsfür die Installation und Konfigurationsowie über die produktive Nutzung derZend-Lösungen für i5/OS. Weitere Themendes IBM-Redbook sind Sicherheit,Effizienz und Problemlösung in der Zusammenarbeitvon PHP und System i.PHP bringt optimale Grundvoraussetzungenmit, um System i-Anwendungenzu modernisieren oder webfähigzu machen. Gemeinsam haben IBMund Zend an der Entwicklung von Zendfor i5/OS gearbeitet: Diese kompletteAll-in-One-PHP-Entwicklungs- undProduktionsumgebung ist vollständigin IBMs i5/OS-Plattform integriert. Unternehmen,die die System-i-Plattformeinsetzen, sind so in der Lage, ihre bestehendenInfrastrukturen weiterhinzu nutzen und gleichzeitig schnell aufneueste Anforderungen und Entwicklungenreagieren zu können.Jürgen Langner óZend Technologies GmbH, Münchenwww.zend.com/de09/<strong>200</strong>7 · MIDRANGE MAGAZIN71