Diese Präsentation wurde erfolgreich gemeldet.

FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard Schulz

1

Teilen

Wird geladen in …3
×
1 von 62
1 von 62

Weitere Verwandte Inhalte

Weitere von Verein FM Konferenz

FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard Schulz

  1. 1. FileMaker und Java ...und es öffnen sich neue Welten! DI (FH) DI Bernhard Schulz schubec GmbH FileMaker Konferenz 2012 Salzburg www.filemaker-konferenz.com
  2. 2. DI (FH) DI Bernhard Schulz ‣ Inhaber und Geschäftsführer der schubec GmbH ‣ Betreiber von FileMakerProfis.de ‣ PHP ‣ Java ‣ Google Web Toolkit ‣ Vaadin ‣ Wicket ‣ SQL Datenbanken ‣ Websecurity ‣ Netzwerktechnik DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  3. 3. Vortragsziel ‣ Klären: Was ist Java? ‣ Was braucht man um Java nutzen zu können? ‣ Die Zugriffsarten ‣ JDBC ‣ FileMaker API 4 Java ‣ Praxisrelevante Beispiele ‣ Der Vortrag ist keine Java-Schulung ‣ Vollständige Codebeispiele in Folien und bei den Beispielen DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  4. 4. Java ‣ Objektorientierte Programmiersprache ‣ SUN / Oracle ‣ Plattformunabhängig ‣ Windows ‣ Mac ‣ Linux ‣ kostenlos DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  5. 5. Zugriffsmöglichkeiten auf FileMaker ‣ Java Database Connectivity (JDBC) ‣ FileMaker API 4 Java ‣ in Entwicklung bei schubec ‣ in Anlehnung an FileMaker API 4 PHP DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  6. 6. JDBC Treiber - woher nehmen? DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  7. 7. JDBC ‣ Wie ODBC für die Java-Welt ‣ FileMaker Server dient als Datenquelle ‣ Java-Programm liest Daten aus oder schreibt Daten in Datenquelle ‣ Extrem schnell!!! ‣ Bei weitem! schneller als FileMaker API 4 PHP ‣ Extrem robust ‣ Einmal eingerichtet, lauft das Ding quasi für immer! Bild-Quelle: FileMaker ODBC and JDBC Guide DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  8. 8. JDBC package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) .executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("Thema")); System.out.println(resultSet.getString("Untertitel")); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  9. 9. JDBC Verbindungsparameter package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Connection-String: Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); FileMaker 10: jdbc:sequelink://<sequelink host IP address>:<port>;serverDataSource=<databasename>;DBUser=<databaseusername>; String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD DBPassword=<databasepassword> + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); FileMaker 11: jdbc:filemaker://<filemaker host IP address>:<port>/ <databasename>? String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) user=<databaseusername>&password=<databasepassword> .executeQuery(); while (resultSet.next()) { FileMaker 12: System.out.println(resultSet.getString("Thema")); jdbc:filemaker://<filemaker host IP address>:<port>/<databasename>? System.out.println(resultSet.getString("Untertitel")); user=<databaseusername>&password=<databasepassword> System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  10. 10. JDBC Verbindungsparameter package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Connection-String: Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); FileMaker 10: jdbc:sequelink://fm9.langhofer.net: String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT 2399;user=jdbc;password=jdbc;serverDataSource=fmk2012 + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) .executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("Thema")); System.out.println(resultSet.getString("Untertitel")); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  11. 11. JDBC package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { JDBC Treiber laden private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" JDBC-Treiber: + PORT + SERVER + ":" + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; FileMaker 10: Connection connection = DriverManager.getConnection(jdbcString); com.ddtek.jdbc.sequelink.SequeLinkDriver String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) FileMaker 11: .executeQuery(); while (resultSet.next()) { com.filemaker.jdbc.Driver System.out.println(resultSet.getString("Thema")); FileMaker 12: System.out.println(resultSet.getString("Untertitel")); System.out.println("==============================="); com.filemaker.jdbc.Driver } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  12. 12. JDBC package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { SQL Statement private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) .executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("Thema")); System.out.println(resultSet.getString("Untertitel")); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  13. 13. JDBC package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { SQL-Befehl ausführen private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) .executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("Thema")); System.out.println(resultSet.getString("Untertitel")); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  14. 14. JDBC package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class JdbcTest { Ergebnis ausgeben private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); String sql = "SELECT Thema, Untertitel FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) .executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("Thema")); System.out.println(resultSet.getString("Untertitel")); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  15. 15. JDBC Ergebnis DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  16. 16. JDBC ‣ Medienfelder können gelesen und geschrieben werden ‣ (Das ist über andere Schnittstellen, zB FM API 4 PHP, nicht möglich!) File file = new File ("/Users/schube/Pictures/FMK_Logo_2012.gif"); FileInputStream inputstream = new FileInputStream (file); String sql = "INSERT INTO Medienfeldtest (DasMedienfeld) VALUES(PutAs(?, 'GIFf'))"; PreparedStatement prepareStatement = connection.prepareStatement(sql); prepareStatement.setBinaryStream (1, inputstream, (int)file.length ()); prepareStatement.execute(); DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  17. 17. JDBC - Containerfeld Datentypen Tabelle-Quelle: FileMaker ODBC and JDBC Guide DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  18. 18. JDBC & Medienfeld - vollständiger Code package com.schubec.demo.fmk2012.jdbc; import java.io.File; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class JdbcContainerTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); File file = new File ("/Users/schube/Pictures/FMK_Logo_2012.gif"); FileInputStream inputstream = new FileInputStream (file); String sql = "INSERT INTO Medienfeldtest (DasMedienfeld) VALUES(PutAs(?, 'GIFf'))"; PreparedStatement prepareStatement = connection.prepareStatement(sql); prepareStatement.setBinaryStream (1, inputstream, (int)file.length ()); prepareStatement.execute(); } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  19. 19. JDBC ‣ Abfragen basieren auf Tabellenauftreten ‣ Abfragen werden mittels SQL-Befehle formuliert ‣ FileMaker Tabellen können erzeugt/geändert werden! ‣ CREATE TABLE ‣ ALTER TABLE ‣ CREATE INDEX ‣ DROP INDEX DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  20. 20. JDBC - Datenbankstruktur ändern sql = "CREATE TABLE T1 (C1 VARCHAR, C2 VARCHAR (50), C3 VARCHAR (1001),C4 VARCHAR (500276))"; connection.prepareStatement(sql).execute(); sql = "CREATE TABLE T1NN (C1 VARCHAR NOT NULL, C2 VARCHAR (50) NOT NULL, C3 VARCHAR (1001) NOT NULL, C4 VARCHAR (500276) NOT NULL)"; connection.prepareStatement(sql).execute(); sql = "CREATE TABLE T2 (C1 DECIMAL, C2 DECIMAL (10,0), C3 DECIMAL (7539,2), C4 DECIMAL (497925,301))"; connection.prepareStatement(sql).execute(); sql = "CREATE TABLE T3 (C1 DATE, C2 DATE, C3 DATE, C4 DATE)"; connection.prepareStatement(sql).execute(); sql = "CREATE TABLE T4 (C1 TIME, C2 TIME, C3 TIME, C4 TIME)"; connection.prepareStatement(sql).execute(); sql = "CREATE TABLE T5 (C1 TIMESTAMP, C2 TIMESTAMP, C3 TIMESTAMP,C4 TIMESTAMP)"; connection.prepareStatement(sql).execute(); sql = "CREATE TABLE T6 (C1 BLOB, C2 BLOB, C3 BLOB, C4 BLOB)"; connection.prepareStatement(sql).execute(); Beispiel-Quelle: FileMaker ODBC and JDBC Guide DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  21. 21. JDBC - Index auslesen package com.schubec.demo.fmk2012.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class IndexAuslesenTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver") .newInstance(); String jdbcString = "jdbc:sequelink://" + SERVER + ":" + PORT + ";user=" + USERNAME + ";password=" + PASSWORD + ";serverDataSource=" + DATABASE; Connection connection = DriverManager.getConnection(jdbcString); String sql = "SELECT DISTINCT "Web Farbe" AS farbe FROM Themen"; ResultSet resultSet = connection.prepareStatement(sql) .executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("farbe")); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } Beispiel-Quelle: FileMaker ODBC and JDBC Guide DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  22. 22. JDBC ‣ Viele weitere SQL-Abfragen möglich! ‣ Abfragen, die mit FileMaker gar nicht oder ‣ nur extrem kompliziert ‣ möglich wären. ‣ Viel Spass beim SQL-Lernen! ‣ Ist ohnehin für FileMaker Entwickler sehr nützlich! ‣ Zum Beispiel bei der Session „FM12 - Mit SQL-Kommandos FileMaker Daten lesen - und schreiben“ ‣ von Nico Busch heute um 16 Uhr im Schloss Saal 1! Beispiel-Quelle: FileMaker ODBC and JDBC Guide DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  23. 23. FileMaker API 4 Java ‣ Basiert auf XML-Schnittstelle des FileMaker Server ‣ Idee von FileMaker API 4 PHP von FileMaker Inc. übernommen ‣ Entwicklung durch schubec GmbH ‣ Lange Erfahrung mit der XML Schnittstelle ‣ Entwicklung von FM-and-PHP im Jahre 2001 ‣ Momentan im BETA-Stadium ‣ Veröffentlichungsdatum und Konditionen ungewiss ‣ Bei Interesse bitte an office@schubec.com wenden DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  24. 24. FileMaker API 4 Java ‣ Hat in etwa die gleichen Funktionen und Einschränkungen wie FileMaker API 4 PHP ‣ Abfragen basieren auf Layouts ‣ Medienfelder können nur gelesen werden ‣ Performance mittelmässig ‣ Benötigt zwingend FileMaker Server ‣ Es können FileMaker Scripts ausgeführt werden! ‣ Basiert auf HTTP Protokoll ‣ kaum Probleme bei Übertragung über Internet ‣ XML-Schnittstelle bei FileMaker Provider weit verbreitet ‣ FileMaker API 4 PHP Programmierer können ganz leicht umsteigen DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  25. 25. FileMaker API 4 Java package com.schubec.demo.fmk2012.fmapi4java; import com.schubec.libraries.fmapi4java.FileMaker; import com.schubec.libraries.fmapi4java.commands.FindAllCommand; import com.schubec.libraries.fmapi4java.enums.Protocol; import com.schubec.libraries.fmapi4java.models.Database; import com.schubec.libraries.fmapi4java.models.Layout; import com.schubec.libraries.fmapi4java.models.Record; import com.schubec.libraries.fmapi4java.results.ResultSet; public class FmApi4JavaTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "web"; private static final String PASSWORD = "web"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { FileMaker fm = new FileMaker(SERVER, Protocol.HTTP, USERNAME, PASSWORD); Database db = fm.newDatabase(DATABASE); Layout lay = db.newLayout("Themen"); FindAllCommand command = lay.newFindAllCommand(); ResultSet<Record> result; result = command.execute(); for (Record record : result.getRecords()) { System.out.println(record.getField("Thema").getValue()); System.out.println(record.getField("Untertitel").getValue()); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  26. 26. FileMaker API 4 Java package com.schubec.demo.fmk2012.fmapi4java; import com.schubec.libraries.fmapi4java.FileMaker; import com.schubec.libraries.fmapi4java.commands.FindAllCommand; import com.schubec.libraries.fmapi4java.enums.Protocol; import import import com.schubec.libraries.fmapi4java.models.Database; com.schubec.libraries.fmapi4java.models.Layout; com.schubec.libraries.fmapi4java.models.Record; Verbindungsparameter import com.schubec.libraries.fmapi4java.results.ResultSet; public class FmApi4JavaTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "web"; private static final String PASSWORD = "web"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { FileMaker fm = new FileMaker(SERVER, Protocol.HTTP, USERNAME, PASSWORD); Database db = fm.newDatabase(DATABASE); Layout lay = db.newLayout("Themen"); FindAllCommand command = lay.newFindAllCommand(); ResultSet<Record> result; result = command.execute(); for (Record record : result.getRecords()) { System.out.println(record.getField("Thema").getValue()); System.out.println(record.getField("Untertitel").getValue()); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  27. 27. FileMaker API 4 Java package com.schubec.demo.fmk2012.fmapi4java; import com.schubec.libraries.fmapi4java.FileMaker; import com.schubec.libraries.fmapi4java.commands.FindAllCommand; import com.schubec.libraries.fmapi4java.enums.Protocol; import import import com.schubec.libraries.fmapi4java.models.Database; com.schubec.libraries.fmapi4java.models.Layout; com.schubec.libraries.fmapi4java.models.Record; Befehl (FindAll / Alle aufrufen) import com.schubec.libraries.fmapi4java.results.ResultSet; public class FmApi4JavaTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "web"; private static final String PASSWORD = "web"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { FileMaker fm = new FileMaker(SERVER, Protocol.HTTP, USERNAME, PASSWORD); Database db = fm.newDatabase(DATABASE); Layout lay = db.newLayout("Themen"); FindAllCommand command = lay.newFindAllCommand(); ResultSet<Record> result; result = command.execute(); for (Record record : result.getRecords()) { System.out.println(record.getField("Thema").getValue()); System.out.println(record.getField("Untertitel").getValue()); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  28. 28. FileMaker API 4 Java package com.schubec.demo.fmk2012.fmapi4java; import com.schubec.libraries.fmapi4java.FileMaker; import com.schubec.libraries.fmapi4java.commands.FindAllCommand; import com.schubec.libraries.fmapi4java.enums.Protocol; import import import com.schubec.libraries.fmapi4java.models.Database; com.schubec.libraries.fmapi4java.models.Layout; com.schubec.libraries.fmapi4java.models.Record; Befehl ausführen import com.schubec.libraries.fmapi4java.results.ResultSet; public class FmApi4JavaTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "web"; private static final String PASSWORD = "web"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { FileMaker fm = new FileMaker(SERVER, Protocol.HTTP, USERNAME, PASSWORD); Database db = fm.newDatabase(DATABASE); Layout lay = db.newLayout("Themen"); FindAllCommand command = lay.newFindAllCommand(); ResultSet<Record> result; result = command.execute(); for (Record record : result.getRecords()) { System.out.println(record.getField("Thema").getValue()); System.out.println(record.getField("Untertitel").getValue()); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  29. 29. FileMaker API 4 Java package com.schubec.demo.fmk2012.fmapi4java; import com.schubec.libraries.fmapi4java.FileMaker; import com.schubec.libraries.fmapi4java.commands.FindAllCommand; import com.schubec.libraries.fmapi4java.enums.Protocol; import import import com.schubec.libraries.fmapi4java.models.Database; com.schubec.libraries.fmapi4java.models.Layout; com.schubec.libraries.fmapi4java.models.Record; Ausgabe import com.schubec.libraries.fmapi4java.results.ResultSet; public class FmApi4JavaTest { private static final String SERVER = "fm9.langhofer.net"; private static final String USERNAME = "web"; private static final String PASSWORD = "web"; private static final String DATABASE = "fmk2012"; public static void main(String[] args) { try { FileMaker fm = new FileMaker(SERVER, Protocol.HTTP, USERNAME, PASSWORD); Database db = fm.newDatabase(DATABASE); Layout lay = db.newLayout("Themen"); FindAllCommand command = lay.newFindAllCommand(); ResultSet<Record> result; result = command.execute(); for (Record record : result.getRecords()) { System.out.println(record.getField("Thema").getValue()); System.out.println(record.getField("Untertitel").getValue()); System.out.println("==============================="); } } catch (Exception e) { e.printStackTrace(); } } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  30. 30. FileMaker API 4 Java Ergebnis DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  31. 31. JDBC vs. FileMaker API 4 Java JDBC FMAPI4JAVA (FMAPI4PHP) Client / Server? Client o. Server Nur Server Nur Server Protokoll JDBC HTTP HTTP Geschwindigkeit Medienfelder lesen Medienfelder schreiben Datenbankstruktur ändern Scripts ausführen Dokumentation Verfügbarkeit Abfragen per SQL-Befehl FM proprietär Abfragen basieren auf Tabellenauftreten Layouts DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  32. 32. JDBC vs. FileMaker API 4 Java ‣ Was ist besser? ‣ Kommt drauf an... ‣ Unterschiedliche Features ‣ Vorschlag: Beides mischen! DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  33. 33. FileMaker & Java - wozu? ‣ Viele professionelle & kostenlose Bibliotheken ‣ Lesen & Schreiben von Excel, Word, Powerpoint (Apache POI) ‣ Reportgeneratoren (iReport) ‣ Webinterfaces (Vaadin, GWT, Wicket, etc.) ‣ CalDAV ‣ Unterschied zu PHP ‣ professionellere Tools & Entwicklung ‣ unter anderem durch statische Typisierung ‣ einheitliche Java Umgebungen ‣ PHP-Umgebungen unterscheiden sich oft erheblich ‣ ausgereiftere Bibliotheken ‣ Application Server ‣ Jedoch ‣ komplizirteres Deployment ‣ höhere Hostingkosten DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  34. 34. FileMaker & Java - HL7 ‣ Health Level 7 (HL7) ist eine Gruppe internationaler Standards für den Austausch von Daten zwischen Organisationen im Gesundheitswesen und deren Computersystemen. (Wikipedia) ‣ Beispielnachricht: MSH|^~&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5| PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086| NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC||||||||||||||||||||||||||| PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^|||||||||| || 2688684|||||||||||||||||||||||||199912271408||||||002376853 DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  35. 35. FileMaker & Java - HAPI ‣ Einlesen in FileMaker? ‣ Studentengruppe: Parsen per PHP ‣ instabil ‣ fehleranfällig ‣ Lösung: FileMaker JDBC und DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  36. 36. FileMaker & Java - HAPI ‣ Universitätsklinik Salzburg / Chirurgie West ‣ Problemlose Verarbeitung von mehr als 180.000 HL7 Nachrichten DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  37. 37. FileMaker & Java - HAPI QM an der UK für Chirurgie, Salzburg Text UK für Chirurgie der Paracelsus Medizinische Privatuniversität Salzburg | Stellenwert der QS in der Chirurgie | D. Öfner-Velano DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  38. 38. FileMaker & Java - Beispiele ‣ iReport ‣ Reporting Engine, die weit mehr kann als FileMaker ‣ kostenlos DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  39. 39. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  40. 40. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  41. 41. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  42. 42. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  43. 43. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  44. 44. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  45. 45. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  46. 46. FileMaker & Java - Beispiele SELECT Sessions."Info" AS Sessions_Info, Sessions."Durchfuehrung_Zeit_von" AS Sessions_Durchfuehrung_Zeit_von, Sessions."Durchfuehrung_Zeit_bis" AS Sessions_Durchfuehrung_Zeit_bis, Themen."Thema" AS Themen_Thema, Themen."Beschreibung" AS Themen_Beschreibung, Themen."Untertitel" AS Themen_Untertitel, Sessions."Durchfuehrung_Datum" AS Sessions_Durchfuehrung_Datum, Themen."Sortfield" AS Themen_Sortfield FROM "Themen" Themen INNER JOIN "Sessions" Sessions ON Themen."pkThema" = Sessions."fkThema" ORDER BY Sessions."Durchfuehrung_Datum", Sessions."Durchfuehrung_Zeit_von" DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  47. 47. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  48. 48. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  49. 49. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  50. 50. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  51. 51. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  52. 52. FileMaker & Java - Beispiele DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  53. 53. iReport DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  54. 54. FileMaker & Java - Beispiele ‣ iReport ‣ Reporting Engine, die weit mehr kann als FileMaker ‣ kostenlos DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  55. 55. FileMaker & Java - Solr ‣ „Suchmaschine“ ‣ FileMaker Daten hineinfüttern ‣ Webinterface nutzen DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  56. 56. FileMaker & Java - Solr package com.schubec.demo.fmk2012.solr; import java.net.MalformedURLException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer; import org.apache.solr.common.SolrInputDocument; public class Start { private static final String SERVER = "localhost"; private static final String USERNAME = "jdbc"; private static final String PASSWORD = "jdbc"; private static final String PORT = "2399"; private static final String DATABASE = "schubecEmails"; static Logger logger = Logger.getLogger(Start.class); public static void main(String[] args) throws Exception, MalformedURLException, SolrServerException { SolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr"); Class.forName("com.filemaker.jdbc.Driver").newInstance(); String jdbcString = "jdbc:filemaker://" + SERVER + ":" + PORT + "/" + DATABASE + "?user=" + USERNAME + "&password=" + PASSWORD; System.out.println(jdbcString); Connection connection = DriverManager.getConnection(jdbcString); String sql = "select MessageID, TheDate, Priority, Body, Subject, EmailFrom, EmailTo from Messages "; ResultSet resultSet = connection.prepareStatement(sql).executeQuery(); while (resultSet.next()) { SolrInputDocument solrdoc = new SolrInputDocument(); solrdoc.addField("id", resultSet.getString("MessageID")); solrdoc.addField("features", resultSet.getString("Body")); solrdoc.addField("popularity", resultSet.getString("Priority")); solrdoc.addField("last_modified", resultSet.getDate("TheDate")); solrdoc.addField("subject", resultSet.getString("Subject")); solrdoc.addField("author", resultSet.getString("EmailFrom")); solrdoc.addField("comments", resultSet.getString("EmailTo")); solr.add(solrdoc); System.out.println("*"); } solr.commit(); System.out.println("Done"); } } DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  57. 57. FileMaker & Java - Solr DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  58. 58. FileMaker & Java - Solr ‣ Performance ‣ Facetten ‣ „More like this“ ‣ Rechtschreibprüfung ‣ Synonyme ‣ Stopwörter ‣ Stemming ‣ laufen, lief, gelaufen DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  59. 59. FileMaker & CalDAV DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  60. 60. FileMaker & Scriptmaster http://www.360works.com/scriptmaster/ DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  61. 61. FileMaker & Vaadin DI (FH) DI Bernhard Schulz FileMaker Konferenz 2012 Salzburg FileMaker und Java... ...und es eröffnen sich neue Welten www.filemaker-konferenz.com
  62. 62. FileMaker Konferenz2010 Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages FileMaker Konferenz 2012 Salzburg www.filemaker-konferenz.com

×