Interfaces del Exterior hacia Dolibarr

Revision as of 16:51, 21 April 2009 by Simnandez (talk | contribs)

En verysmall.png Page waiting for translation. To translate, create an account, go back and clic on "Modify".
Fr verysmall.png Page en attente de traduction. Pour traduire, créez un compte, revenez et cliquez sur "Modifier".
Es verysmall.png Página a traducir. Para traducirla, cree una cuenta, vuelva a la página y haga clic en "editar".
It verysmall.png Pagina da tradurre. Per tradurla, crea un utente, torna indietro e clicca su "modifica".
Pt verysmall.png Página a aguardar por tradução. Para traduzir, crie uma conta, volte atrás e clique em "Modificar".
De verysmall.png Seite wartet auf Übersetzung. Um Übersetzung zu erstellen, richte einen Account ein, geh zurück und klicke auf "bearbeiten".
Zh verysmall.png 页面等待翻译。若要翻译本页,先创建一个帐户、登录并返回本页后单击“编辑”。

Existen 2 métodos para permitir que una aplicación exterior inserte datos en Dolibarr. Las dos técnicas posibles son las siguientes:

Inserción de datos directa en la base de datos

Esta solución requiere el conocimiento del modelo físico y los valores autorizados de los campos. Es arriesgado y debe ser reescrito en caso de modificiación del formato de la base de datos Dolibarr.

Ventajas: Se puede realizar en cualquier lenguaje.

Inconveniente: Esta técnica es muy desaconsejada. Al primer aumento de versión Dolibarr, este método puede dejar de funcionar, siendo necesario reescribirlo. Además, utilizando este método, se pasan por alto las reglas de negociado de validación, creando un riesgo de corrupción de datos. Este método también necesita conocer la base de datos Dolibarr.

Uso de clases PHP

Es posible utilizar objetos de negociado de Dolibarr (Los ficheros xxx.class.php). Cada uno de estos ficheros ofrece una clase equipada con métodos para:

  • la recuperación de una entidad (el método fetch)
  • La inserción de una entidad (el método create o insert)
  • la actualización de una entidad (el método update)
  • la eliminación de una entidad (el método delete) si es aplicable al objeto
  • Otros métodos diversos propios de la entidad manipulada.

Esta técnica es preferible a la anterior.

Ventajas:

Elle offre l'avantage de passer à travers les couches de validations métiers des données. Le code d'interface ne doit normallement pas être réécrit en cas de montée de version de Dolibarr.

Inconvénients: Elle n'est exploitable qu'en langage PHP.


Voici un exemple pour la création d'un tiers (société client par exemple):

// On declare la classe que l'on va manipuler
include_once('/pathofdolibarrhtdocs/societe.class.php');

// On cree une instance de l'objet à manipuler
$mycompany = new Societe($db);

// On renseigne ces caractéristiques
$mycompany->nom='Big Brother';
$mycompany->client=1;

// Si on veut que l'action de creation soit associé a un utilisateur 'loginuser' particulier,
// il faut decommenter cette ligne pour charger les caractéristiques de cet utilisateur.
// Si on laisse commenter, Dolibarr mettra null dans les champs du user de création ou mise a jour.
// $user->fetch('loginuser');

// On invoque la creation
$id=$mycompany->create($user);

// Pour charger l'objet
$mycompany->fetch($id);

// Pour mettre a jour
$mycompany->update($user);

Rem: Si on est dans le cas d'un script externe à Dolibarr, il est nécessaire de faire au début, avant le include de la classe manipulée

include('/pathofdolibarrhtdocs/master.inc.php');

pour que les objets $db, $lang et $user soient créés. Si on veut que les actions (creation, mise a jour), soit associées dans le suivi à un utilisateur particulier, il est nécessaire de faire avant