FileMaker AMF Gateway
@author francesc sans [email protected] @version 1.0
Copyright (c) 2012 Network BCN Software
Este programa es un software gratuito: puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por Free Software Foundation, ya sea la versión 3 de la licencia o (a su opción) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil, pero sin ninguna garantía; Sin siquiera la garantía implícita de comerciabilidad o estado físico para un propósito particular. Vea la Licencia Pública General de GNU para más detalles.
Debería haber recibido una copia de la Licencia Pública General de GNU junto con este programa. Si no, consulte http://www.gnu.org/licenses/.
Para cada tabla, debe crear el servicio remoto que extiende la clase FileMakerdao.php:
<?php
include_once ( DAO_LIB . " filemaker/FilemakerDao.php " );
class FmerrDao extends FilemakerDao {
public $ context = " xml_fmerr " ;
public $ valueObject = " FmerrVO " ;
}
?>El contexto $ se refiere al nombre del diseño de FileMaker donde se dirigirán las consultas. Recuerde que solo los campos colocados en este diseño pueden ser parte de la transacción. Será una buena idea prefijo todos los diseños específicos de la interfaz web (usamos "XML". Encontrará esto muy útil cuando se genere el código automático (también se documentará)
El $ valueObject es el nombre de la clase empleada como DTO para la ocurrencia de la tabla referenciada. Coloque Vos en una carpeta "VO", la clase FileMakerdao utiliza una fábrica de clases que instantó objetos tipeados en tiempo de ejecución, y busca las definiciones de clase de objeto de valor en esta carpeta de forma predeterminada.
Luego cree el DTO (objeto de valor):
<?php
class FmerrVO {
public function __construct () { }
public $ recid ;
public $ sku ;
public $ status ;
public $ type ;
public $ errnum ;
public $ description ;
public $ group ;
public $ coment ;
public $ iid ;
public $ _explicitType = " es.ntwk.samples.fmclub.vo.FmerrVO " ;
public function __set_state ( $ assoc ) {
$ this -> recid = ( int ) $ assoc -> recid ;
$ this -> sku = ( string ) $ assoc -> sku ;
$ this -> status = ( string ) $ assoc -> status ;
$ this -> type = ( string ) $ assoc -> type ;
$ this -> errnum = ( string ) $ assoc -> errnum ;
$ this -> description = ( string ) $ assoc -> description ;
$ this -> group = ( string ) $ assoc -> group ;
$ this -> coment = ( string ) $ assoc -> coment ;
$ this -> iid = ( string ) $ assoc -> iid ;
}
}
?>Tenga en cuenta la conversión de tipo que se realiza en $ ValueObject Fill.
Puede ajustar los tipos de datos entre su aplicación y FileMaker aquí. Por ejemplo, para un campo Número de FileMaker, use esto para corregir separadores de puntos/colon eventuales (enoying):
$ this -> ammount = ( float ) str_replace ( " , " , " . " , $ assoc -> ammount );Para las fechas, juegue con cuerdas (hablaré más tarde)
Cree el paquete por su cuenta, le recomendamos que use estándares (en este ejemplo "es.ntwk.samples.fmclub")
-> carpeta FileMakerdao
-> Servicios
-> lib (la biblioteca FileMakerdao)
-> es
-> ntwk
-> muestras
-> fmclub
-> fmerrdao (tu clase)
-> Vo
-> fmerrvo (su objeto de valor)
(Explore el código fuente para ver ejemplos)
Ahora puede hacer llamadas al servicio, como find (), findCompound (), createOne (), updateOne (), deleteeMe () ...
Use los siguientes parámetros en cada llamada:
$ Param : un objeto VO lleno de valores relevantes que desea establecer o actualizar, use un VO nulo para un "findall" o especifique recid (registroid) para editar registros.
$ filtro : matriz con el nombre de los campos para usar desde el objeto de valor, nulo para todos los campos.
$ Skip : Array con los valores de Skip & Max, si NULL devuelve todos los registros encontrados.
Las firmas para cada función están (como se especifica en la interfaz ifiLeMakerdao.php):
public function find ( $ param , $ filter , $ skip );
public function createOne ( $ param , $ filter );
public function updateOne ( $ param , $ filter );
public function deleteOne ( $ param );
public function duplicateOne ( $ param );
public function view ( $ param );
// $param is always a VO or nullTenga en cuenta que puede especificar campos ignorados globalmente en el archivo config.ini, que debe usar en caso de que haya leído solo campos en el diseño de contexto $ (como cálculos o valores de autoentros)