Comme tout objet freedom, les documents FileConnector peuvent être manipulés par leur interface de programmation.
D'autre part, le FileConnector permet une modification de son fonctionnement. Pour cela 2 moyens permettent d'agir lors des importations :
boolean verifyNewCxFiles()
retourne un boolean, true si de nouveaux fichiers doivent être importés, sinon false. L'appel de cette fonction active la scrutation de la source.
string[] getNewCxFiles()
retourne la liste des noms de fichiers1) à importer. L'appel de cette fonction active la scrutation de la source.
string transfertNewCxFiles()
réalise le transfert des fichiers à traiter, et retourne un message d'erreur (vide si pas d'erreur). Si plusieurs fichiers sont à traiter, une erreur de traitement de l'un d'eux n'arrête pas le traitement.
string transfertCxFile($file)
réalise le transfert du fichier. Le transfert est réalisé quelque soit son état. Un message d'erreur (vide si pas d'erreur) est éventuellement retourné.
string[] getCxFiles()
retourne la liste des fichiers.
string getCxFileContent($file)
retourne le contenu du fichier spécifié ou un message d'erreur.
string copyCxFile($file, $target)
copie le fichier $file dans $target. $target pouvant être un répertoire ou un fichier. $target doit être accessible en écriture.
retourne un message d'erreur (vide si OK).
string getCxFileStatus($file)
retourne le status d'un fichier :
void removeCxFile($file)
supprime le fichier (l'état n'est pas contrôlé au préalable). Si une erreur est detectée lors de la suppression elle n'est pas signalée.
void resetScan()
vide la liste des fichiers du FileConnector quelque soit leur état.
Deux méthodes peuvent être surchargée pour modifier le comportement du FileConnector.
string preTransfert(&$fileconnector, $filepath, &$doc)
Cette méthode est déclenchée lors du traitement de l'importation du fichier, après l'initialisation du document freedom cible, avant sa création en base.
$fileconnector est l'objet FileConnector lui-même.$filepath est le chemin d'accès complet au fichier en cours d'importation$doc est le document de la famille cible initialisé (non sauvé en base).
A cette étape, le contrôle que le fichier est réellement accessible en lecture a été fait et le document freedom cible a été créé (création de document freedom). Les méthodes du FileConnector sont utilisables au travers de l'objet $fileconnector.
string postTransfert(&$fileconnector, $filepath, &$doc)
Cette méthode reçoit les mêmes arguments que preTransfert.
Elle est activé après le transfert complet du fichier : c'est à dire lorsque le document freedom est créé, éventuellement déplacé dans le dossier spécifié et, si cela est demandé, après que le fichier source soit supprimé.
La famille cible peut déclarer une méthode dont le prototype est le suivant :
string connectorExecute(&$fileconnector, $fpath)
$fileconnector est le document FileConnector$fpath est le chemin complet d'accès au fichier en cours de traitementLa méthode est appelée sur le document cible après :
preTransfert (cf ci-dessus)
Le document à ce stade est doc créé au sens freedom sans être sauvé en base (pas de Add). La méthode connectorExecute du document cible a en charge l'ensemble des opérations nécessaires à la création complète du document cible. Suite à son exécution, le FileConnector, si aucune erreur n'est signalée, marque le fichier comme importé, et si cela est demandé le supprime. Puis la méthode postTransfert décrite au paragraphe précédent est activée.
Les méthodes ci-dessous sont utilisables seulement dans le cadre des surcharges d'un FileConnector ou de la famille cible.
Elles sont listées non exhaustivement et à titre d'information. Pour plus de précision consultez le code Method.FileConnector.php.
- string FileConnector::moveCxFile($file, $doc)
déplace le doc créé dans le dossier freedom
- boolean FileConnector::isValidCxFile($file)
contrôle si le fichier est présent bien dans la liste interne des fichiers de la source
((liste mise à jour par l'appel aux méthodes verifyNewCxFiles et getNewCxFiles)).
- string[] FileConnector::iGetFileTransf($file)
retourne la règle de transfert
$ret['match'] : règle de transfert matchée par le fichier
$ret['fam'] : id de la famille cible
$ret['attr'] : attribut id dans la famille cible
$ret['dir'] : dossier freedom cible
$ret['sup'] : 0 : pas de suppression / 1 : suppression demandée du fichier après transfert
- void FileConnector::setCxFileStatus($file, $status)
positionne le status (N,I,D,U) du fichier