SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Downloaden Sie, um offline zu lesen
FileMaker und Java
...und es öffnen sich neue Welten!




         DI (FH) DI Bernhard Schulz
               schubec GmbH




                                  FileMaker Konferenz 2012 Salzburg
                                       www.filemaker-konferenz.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
iReport




DI (FH) DI Bernhard Schulz                                            FileMaker Konferenz 2012 Salzburg
FileMaker und Java... ...und es eröffnen sich neue Welten                  www.filemaker-konferenz.com
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
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
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
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
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
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
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
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
FileMaker Konferenz2010

               Vielen Dank unseren Sponsoren




      Danke für das Bewerten dieses Vortrages


                                       FileMaker Konferenz 2012 Salzburg
                                            www.filemaker-konferenz.com

Weitere ähnliche Inhalte

Was ist angesagt?

FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationFMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationVerein FM Konferenz
 
FMK2016 - Arnold Kegebein - User Interface: Panel Window
FMK2016 - Arnold Kegebein - User Interface: Panel WindowFMK2016 - Arnold Kegebein - User Interface: Panel Window
FMK2016 - Arnold Kegebein - User Interface: Panel WindowVerein FM Konferenz
 
FMK2015: Neue Funktionen in FileMaker Go 14 by Jörg Köster
FMK2015: Neue Funktionen in FileMaker Go 14 by Jörg KösterFMK2015: Neue Funktionen in FileMaker Go 14 by Jörg Köster
FMK2015: Neue Funktionen in FileMaker Go 14 by Jörg KösterVerein FM Konferenz
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichVerein FM Konferenz
 
FMK 2016 - Thomas Hirt - FileMaker Server SSL Zertifikate
FMK 2016 - Thomas Hirt - FileMaker Server SSL ZertifikateFMK 2016 - Thomas Hirt - FileMaker Server SSL Zertifikate
FMK 2016 - Thomas Hirt - FileMaker Server SSL ZertifikateVerein FM Konferenz
 
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard SchulzFMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulzschubec
 
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...Verein FM Konferenz
 
FMK2016 - Michael Valentin - FileMaker 15 Plattform
FMK2016 - Michael Valentin - FileMaker 15 PlattformFMK2016 - Michael Valentin - FileMaker 15 Plattform
FMK2016 - Michael Valentin - FileMaker 15 PlattformVerein FM Konferenz
 
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...Verein FM Konferenz
 
FMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian SchmitzFMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian SchmitzVerein FM Konferenz
 
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesFMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesVerein FM Konferenz
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischVerein FM Konferenz
 
FMK2015: Informationssicherheit und Risikomanagement by Patrick Risch
FMK2015: Informationssicherheit und Risikomanagement by Patrick RischFMK2015: Informationssicherheit und Risikomanagement by Patrick Risch
FMK2015: Informationssicherheit und Risikomanagement by Patrick RischVerein FM Konferenz
 
FMK2016 - Russell Watson - Überleben im Design und Stile Dschungel
FMK2016 - Russell Watson - Überleben im Design und Stile DschungelFMK2016 - Russell Watson - Überleben im Design und Stile Dschungel
FMK2016 - Russell Watson - Überleben im Design und Stile DschungelVerein FM Konferenz
 
FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...
FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...
FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...Verein FM Konferenz
 
FMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-PrinzipFMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-PrinzipVerein FM Konferenz
 
FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...
FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...
FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...Verein FM Konferenz
 
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtFMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtVerein FM Konferenz
 
FMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
FMK2016 - Ingo Thoden - Etikettendruck in über 20 SprachenFMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
FMK2016 - Ingo Thoden - Etikettendruck in über 20 SprachenVerein FM Konferenz
 
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterVerein FM Konferenz
 

Was ist angesagt? (20)

FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationFMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
 
FMK2016 - Arnold Kegebein - User Interface: Panel Window
FMK2016 - Arnold Kegebein - User Interface: Panel WindowFMK2016 - Arnold Kegebein - User Interface: Panel Window
FMK2016 - Arnold Kegebein - User Interface: Panel Window
 
FMK2015: Neue Funktionen in FileMaker Go 14 by Jörg Köster
FMK2015: Neue Funktionen in FileMaker Go 14 by Jörg KösterFMK2015: Neue Funktionen in FileMaker Go 14 by Jörg Köster
FMK2015: Neue Funktionen in FileMaker Go 14 by Jörg Köster
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
 
FMK 2016 - Thomas Hirt - FileMaker Server SSL Zertifikate
FMK 2016 - Thomas Hirt - FileMaker Server SSL ZertifikateFMK 2016 - Thomas Hirt - FileMaker Server SSL Zertifikate
FMK 2016 - Thomas Hirt - FileMaker Server SSL Zertifikate
 
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard SchulzFMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
 
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by ...
 
FMK2016 - Michael Valentin - FileMaker 15 Plattform
FMK2016 - Michael Valentin - FileMaker 15 PlattformFMK2016 - Michael Valentin - FileMaker 15 Plattform
FMK2016 - Michael Valentin - FileMaker 15 Plattform
 
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
 
FMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian SchmitzFMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian Schmitz
 
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesFMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
 
FMK2015: Informationssicherheit und Risikomanagement by Patrick Risch
FMK2015: Informationssicherheit und Risikomanagement by Patrick RischFMK2015: Informationssicherheit und Risikomanagement by Patrick Risch
FMK2015: Informationssicherheit und Risikomanagement by Patrick Risch
 
FMK2016 - Russell Watson - Überleben im Design und Stile Dschungel
FMK2016 - Russell Watson - Überleben im Design und Stile DschungelFMK2016 - Russell Watson - Überleben im Design und Stile Dschungel
FMK2016 - Russell Watson - Überleben im Design und Stile Dschungel
 
FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...
FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...
FMK2014: Custom Web Publishing (mit PHP) und WebDirect in einer Lösung by Mar...
 
FMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-PrinzipFMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-Prinzip
 
FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...
FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...
FMK2015: Beziehungen Mehr als Anker und Bojen by Volker Krambrich und Adam Au...
 
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtFMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
 
FMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
FMK2016 - Ingo Thoden - Etikettendruck in über 20 SprachenFMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
FMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
 
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
 

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

FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschFMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschVerein FM Konferenz
 
Open icf (open identity connector framework) @ forgerock deutsch
Open icf (open identity connector framework) @ forgerock   deutschOpen icf (open identity connector framework) @ forgerock   deutsch
Open icf (open identity connector framework) @ forgerock deutschHanns Nolan
 
Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?Markus Flechtner
 
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Novakenstein
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOpsAndreas Koop
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?MT AG
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerStefan Oehrli
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashStephan Schmidt
 
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …Verein FM Konferenz
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Dockergedoplan
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit RustJens Siebert
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
 
Elasticsearch & docker mit logstash, jdbc und ruby
Elasticsearch & docker mit logstash, jdbc und rubyElasticsearch & docker mit logstash, jdbc und ruby
Elasticsearch & docker mit logstash, jdbc und rubySchanzDieter
 

Ähnlich wie FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard Schulz (20)

FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschFMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
 
Open icf (open identity connector framework) @ forgerock deutsch
Open icf (open identity connector framework) @ forgerock   deutschOpen icf (open identity connector framework) @ forgerock   deutsch
Open icf (open identity connector framework) @ forgerock deutsch
 
Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?
 
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
 
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Einsteiger Workshop
Einsteiger WorkshopEinsteiger Workshop
Einsteiger Workshop
 
Elasticsearch & docker mit logstash, jdbc und ruby
Elasticsearch & docker mit logstash, jdbc und rubyElasticsearch & docker mit logstash, jdbc und ruby
Elasticsearch & docker mit logstash, jdbc und ruby
 

Mehr von Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfVerein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsVerein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsVerein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzVerein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzVerein FM Konferenz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzVerein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserVerein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonVerein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussVerein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussVerein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonVerein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaVerein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaVerein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 

Mehr von Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 

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

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. FileMaker Konferenz2010 Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages FileMaker Konferenz 2012 Salzburg www.filemaker-konferenz.com