fmp2perl - FileMaker Datenbanken in Perl nutzen
Zur ersten Seite
Kundenzugang
Referenzen fmp2perl - FileMaker Datenbanken in Perl nutzen Buchtipp Kontaktformular Impressum

fmp2perl - FileMaker Datenbanken in Perl nutzen.

Die ideale Kombination von FileMaker Pro und Perl bzw. ActivePerl.


fmp2perl - Syntax - Download
InstallationsanleitungAnwendung von fmp2perl
Fehler melden

English version
'; print ''; ?>
Bewertung
Bitte bewerten Sie diese Homepage bei WebKatalog:

10 Punkte = sehr gut






Modul Version: 1.1.03 Source


NAME^

FMPro::fmp2perl - Parst FMPro-XML und gibt Feldnamen, -werte und Requestparameter als Referenz zurück. Es können seit Version 1.1 Wertelisten zurückgegeben werden.


SYNOPSIS^

use FMPro::fmp2perl qw(fmp2perl);

 $tmp     = <URL>; <File> oder <String>;
 $values  =fmp2perl($tmp);

 $title    = $values->[0]{title}{Data}[0];
 $database = $values->[0]{CurrentDatabase};
 $RecID    = $values->[0]{CurrentRecID};
 $type     = $values->[0]{title}{Type}; # only for FMPXMLRESULT

# only for FMPXMLLAYOUT (request: http://www.domain.com/FMPro?-db=DB.fp5&-Format=-fmp_xml&-lay=Lay&-view=), Item 0
$valuelistitem[0] = $values->[0]{ValueList}{listname}[0];


DESCRIPTION^

fmp2perl parst FMPro-XML und gibt Feldnamen, -werte und Requestparameter als Referenz zurück. Das XML kann als FMPDSORESULT oder FMPXMLRESULT uebergeben werden. Werden Wertelistennamen und -einträge benötigt, muss das XML in FMPXMLLAYOUT vorliegen.

fmp2perl ist auf UNIX- und WINDOWS-Systemen lauffähig.

Bisher unter ActivePerl 5.8 getestet.

Input

String
enthält eine XML-Struktur der Form FMPDSORESULT, FMPXMLRESULT oder FMPXMLLAYOUT. Es wird nur UTF-8 Kodierung berücksichtigt.

Verweis auf eine Datei
enthält eine XML-Struktur der Form FMPDSORESULT, FMPXMLRESULT oder FMPXMLLAYOUT. Es wird nur UTF-8 Kodierung berücksichtigt.

URL
enthält einen FMPro-Datenbank-Request.

Output

Erläuterungen zur Output-Tabelle:

$v = fmp2perl($tmp)

X/U - $tmp ist URL im FMPXMLRESULT Format
X/FS - $tmp ist Pfad zu File oder String ~
D/U - $tmp ist URL im FMPDSORESULT Format
D/FS - $tmp ist Pfad zu File oder String ~
L - $tmp ist Pfad zu File oder String ~ oder URL im FMPXMLLAYOUTRESULT Format

Wert - z.B. {<Feldname>}{Data}[0]......$v->[0]{<Feldname>}{Data}[0]

mit

$v ->[0]              - 1. Datensatz
{<Feldname>} - Name des Feldes
{Data}                - Ausgabe des Feldinhaltes
[0]                       - 0. Wiederholung eines Wiederholfeldes bzw. Feld ohne Wiederholung




Wert


X/U X/FS D/U D/FS L
{<Feldname>}{CurrentFoundCount} x x
{<Feldname>}{Data}[0..<MaxReapeat>-1] x x x x
{<Feldname>}{EmptyOk} x x
{<Feldname>}{MaxReapeat} x x
{<Feldname>}{Type} x x
{CurrentFormat} x x x x
{CurrentAction} x x
{CurrentDatabase} x x x x x
{CurrentError} x x x x
{CurrentLayout} x x x x x
{CurrentLOP} x x
{CurrentMax} x x
{CurrentModID} x x x x
{CurrentOutCount} x x
{CurrentRecordCount} x x
{CurrentSkip} x x
{CurrentSort} x x
{CurrentRecID} x x x x
{CurrentRecordNumber} x x x x
{DateFormat} x x
{ProductBuild} x x
{ProductName} x x
{ProductVersion} x x
{TimeFormat} x x
{URL} x x
{ValueList}{ListName}[ListItem] x

Die Variablennamen wurden in Anlehnung an die CDML-Syntax vergeben. Daher wird die Lektuere der CDML-Referenz zur Bedeutung der Werte empfohlen.

Einzige Ausnahme ist der Wert {CurrentOutCount} ( also z.B. $v->[2]{CurrentOutCount} ).

{CurrentOutCount} - Anzahl der Datensaetze in der der XML-Struktur; nur bei FMPDSORESULT


EXAMPLE^

use FMPro::fmp2perl qw(fmp2perl);

  # Beispiel mit URL  FMPDSORESULT
  $tmp     = "http://www.domain.com/FMPro?-db=your-database.fp5";
  $tmp    .= "&-lay=your-layout&-Format=-dso_xml&-FindAll=";
  $values  =fmp2perl($tmp);

  # Beispiel mit URL FMPXMLRESULT
  $tmp     = "http://www.domain.com/FMPro?-db=your-database.fp5";
  $tmp    .= "&-lay=your-layout&-Format=-fmp_xml&-FindAll=";
  $values  =fmp2perl($tmp);

  # Beipiel mit Angabe eines Files (UNIX)
  $tmp    = "/xml_data/path/fmp_xml_file.xml";
  $values  =fmp2perl($tmp);

  # Beipiel mit Angabe eines Files (WINDOWS)
  $tmp    = "C:\\Inetpub\\wwwroot\\xml_data_path\\fmp_xml_file.xml";
  $values  =fmp2perl($tmp);

  # Beispiel mit Uebergabe einer FMPB<DSO>RESULT XML-Struktur
  $tmp    =<<__XML__;
  <?xml version="1.0" encoding="UTF-8"?>
  <FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">
   <ERRORCODE>0</ERRORCODE>
   <DATABASE>YOUR-DATABASE.FP5</DATABASE>
   <LAYOUT></LAYOUT>
   <ROW MODID="4" RECORDID="32871">
    <title>your title</title>
   </ROW>
  </FMPDSORESULT>
  __XML__
  $values  =fmp2perl($tmp);

  # Beispiel mit Uebergabe einer FMPB<XML>RESULT XML-Struktur
  $tmp    =<<__XML__;
  <?xml version="1.0" encoding="UTF-8"?>
  <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
   <ERRORCODE>0</ERRORCODE>
   <PRODUCT BUILD="5/4/2002" NAME="FileMaker Pro Web Companion" VERSION="6.0v1"/>
   <DATABASE DATEFORMAT="d.M.yyyy" LAYOUT="" NAME="YOUR-DATABASE.FP5" RECORDS="4021" TIMEFORMAT="k:mm:ss"/>
   <METADATA>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="title" TYPE="TEXT"/>
   </METADATA>
   <RESULTSET FOUND="1">
    <ROW MODID="1" RECORDID="32775">
     <COL>
      <DATA>your title</DATA>
     </COL>
    </ROW>
   </RESULTSET>
  </FMPXMLRESULT>
  __XML__
  $values  =fmp2perl($tmp);

  $title    = $values->[0]{title}{Data}[0];
  $database = $values->[0]{CurrentDatabase};
  ...
  $RecID    = $values->[0]{CurrentRecID};
  $type     = $values->[0]{title}{Type}; # only for FMPXMLRESULT


BUGS^

Ab Version 1.0.03 kommt fmp2perl.pm, falls nicht vorhanden, auch ohne Modul Unicode::String aus.


AUTHOR^

Hans-Martin Aurich info@webconsultant.de technik@baurat.de


COPYRIGHT^

Copyright 2004 - 2006 Hans-Martin Aurich. All rights reserved.


SEE ALSO^

fmp2csv - Perlmodul erzeugt aus FMPXMLRESULT-XML (Datei, String, URL) eine kommaseparierte CSV-Datei zum Datenimport nach MySQL. Die CSV-Datei enthält als 1. Zeile die Feld- / Spaltennamen. Alle Werte von Textfeldern werden in "..." Hochkomma gesetzt. In Textfeldern auftretende " Hochkommata werden maskiert \". In Zahlenfeldern auftretende "," Kommata werden durch "." Punkt ersetzt.

Die vorliegende Version ist noch in der Testphase.

ToDo: Automatische Anpassung von Datumsformaten.

Modul Version 0.1 Source

Copyright 2006 Hans-Martin Aurich. All rights reserved.






[top]   






Copyright © 2003 - 2009· Internetservice WebConsultant.de
Dipl. Ing. (FH) Hans-Martin Aurich · Langweidenstraße 56 · D-60488 Frankfurt a.M.
+49 / 69 / 780 799 8-1 · Fax: -2 · Funk: 01577/2666226· Zum Email-Formular
USt-ID-Nr. DE_199963939