Archive for the ‘Modellierung’ Category
Für den Web Service, der die Einkäuferdaten liefern soll, hab ich mit den HibernateTools Klassen und hbm.xml-Dateien generieren lassen.
Das ging soweit auch ganz gut. Nun gibt es aber anscheinend Tabellen in der zu integrierenden Datenbank, die keinen Primary Key haben!
Aus diesen machen die Tools dann zusammengesetze Primärschlüssel, und zwar aus allen Attributen der Tabelle.
<!– Generated 11.07.2006 15:42:45 by Hibernate Tools 3.1.0.beta5 –>
<hibernate-mapping>
<class name=”net.cpu.diplomarbeit.data.db.TEinkaeufer” table=”T_Einkaeufer” schema=”dbo” catalog=”EinkaeuferDB”>
<composite-id name=”id” class=”net.cpu.diplomarbeit.data.db.TEinkaeuferId”>
<key-property name=”telvPersnr” type=”string”>
<column name=”telvPersnr” length=”9″ />
</key-property>
<key-property name=”telvName” type=”string”>
<column name=”telvName” length=”50″ />
</key-property>
<key-property name=”telvVorname” type=”string”>
<column name=”telvVorname” length=”30″ />
</key-property>
<key-property name=”telvKostenstelle” type=”string”>
<column name=”telvKostenstelle” length=”10″ />
</key-property>
<key-property name=”telvAbteilung” type=”string”>
<column name=”telvAbteilung” length=”40″ />
</key-property>
<key-property name=”telvEmail” type=”string”>
<column name=”telvEmail” length=”128″ />
</key-property>
<key-property name=”telvTelefon” type=”string”>
<column name=”telvTelefon” length=”63″ />
</key-property>
<key-property name=”telvFax” type=”string”>
<column name=”telvFax” length=”63″ />
</key-property>
<key-property name=”telvMobExt” type=”string”>
<column name=”telvMobExt” length=”63″ />
</key-property>
<key-property name=”telvFirma” type=”string”>
<column name=”telvFirma” length=”60″ />
</key-property>
<key-property name=”telvPostfach” type=”java.lang.Integer”>
<column name=”telvPostfach” />
</key-property>
<key-property name=”telvStrasse” type=”java.lang.Integer”>
<column name=”telvStrasse” />
</key-property>
<key-property name=”telvPlz” type=”java.lang.Integer”>
<column name=”telvPLZ” />
</key-property>
<key-property name=”telvOrt” type=”string”>
<column name=”telvOrt” length=”60″ />
</key-property>
<key-property name=”telvLand” type=”string”>
<column name=”telvLand” length=”3″ />
</key-property>
<key-property name=”telvGesellschaft” type=”string”>
<column name=”telvGesellschaft” length=”40″ />
</key-property>
<key-property name=”telvBereichKurz” type=”string”>
<column name=”telvBereichKurz” length=”40″ />
</key-property>
<key-property name=”telvBereichDe” type=”string”>
<column name=”telvBereich_de” />
</key-property>
<key-property name=”telvBereichEn” type=”string”>
<column name=”telvBereich_en” />
</key-property>
<key-property name=”telvWerkName” type=”string”>
<column name=”telvWerkName” length=”60″ />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
Ich muss allerdings eine 1:n Relation zu einer solchen Tabelle erstellen und da gibt es näturlich eine Fehlermeldung, da der Primärschlüssel mehre Attribute enthält und der Fremdschlüssel darauf nur eines. Deshalb musste ich diese Klasse von Hand umstrukturieren und einen Primärschlüssel setzen.
<id name=”telvEmail” type=”string”>
<column name=”telvEmail” length=”128″/>
</id>
Da ich die Daten nur auslesen muss, sollte es keine Probleme geben. Beim Schreiben muss dieser Primärschlüssel dann eben von Hand gesetzt und auf Eindeutigkeit geprüft werden.
Heute habe ich hauptsächlich an dem Web Service fürs Auslesen der Daten aus der Anwendung weitergemacht, welcher dann zum Test über eine Web DynPro Applikation angesprochen wird.
Waren relativ viel Hibernate-Sachen dabei, weil das meiner Meinung nach die einfachste Art ist, aus einer bestehenden DB Daten auszulesen, vor allem wenn man die Hibernate Tools benutzt.
Außerdem habe ich versucht ein bestehendes Servlet auf dem Web AS zum laufen zu bringen, was realtiv einfach ging:
Zunächst muss das Deploy Tool unter
C:\usr\sap\<SID>\<IID>\j2ee\deploying
aufgerufen werden.
Dort ein neues Deployment-Projekt anlegen.
Im J2EE Reiter mit Rechtsklick „Add Web“ und die web.xml und den Pfad der Anwendung angeben.
Dann ist eine Komponente im J2EE Reiter zu sehen. Diese mit Rechtslick „archivieren“ und im Assembler Reiter ein EAR packen.
Somit kann im Deployment Reiter nach Verbindung mit dem Server das EAR deployt werden.
Schien ohne Probleme zu klappen, aber leider konnte ich die Anwendung noch nicht aufrufen, weil ich die URL noch nicht rausgefunden habe. Naja vielleicht morgen dann.
Da ich leider Netweaver immer noch nicht installieren konnte, habe ich mich gerade mit der Einrichtung von Eclipse und der Installation diverser Plugins beschäftigt.
Besonders gut finde ich die Hibernate Tools. Damit kann man sich unter anderem aus einer bestehenden Datenbank Hibernate hbm Dateien und POJOs generieren lassen. Hier ist die sehr gute Doku dazu.
Leider sind bei der Datenbank, die ich brauche die Foreign Keys nicht eingerichtet, so dass ich die Relationships wohl händisch nachziehen muss.
Dann habe ich mir noch das Web Toolkit und die abhängigen Plugins installiert. Noch nicht viel damit gemacht, nur ein bisschen rumgespielt.
Es muss eine Möglichkeit gefunden werden, die Daten aus der EinkäuferDB im Portal zur Verfügung zu stellen.
Ein Ansatz wäre, einen oder mehrere Webservices zu programmieren, die als Eingangsparameter z.B. Suchkriterien erhalten und dann die Ergebnisliste an einen iView oder eine Web DynPro Applikation liefern.
Web DynPro bietet die Möglichkeit als Datenmodell einen WebService zu nehmen:
http://entwickler.com/itr/online_artikel/show.php3?nodeid=97&id=583