4.3.2 Client::sendTransformation
4.3.2.1 Description
string sendTransformation ( string $te_name, string $fkey, string $filename, string $callback, array & $info )
Crée une tâche pour la transformation du fichier $filename
avec le moteur de
transformation $te_name
.
L'identifiant de la tâche (tid
) crfée sur le serveur TE est retourné dans la
structure $info
.
Si une URL de callback est fournie via l'argument $callback, celle-ci est alors
appelée lorsque la conversion est terminée avec un argument HTTP tid
contenant l'identifiant de la tâche : c'est alors à la charge du code déclenché
par le callback de venir récupérer le résultat à l'aide de l'identifiant de la
tâche tid
.
Le code peut aussi interroger régulièrement le serveur TE pour voir le status
de la tâche à l'aide de l'identifiant tid
retourné dans la structure $info
(voir getInfo()
).
- Le client soumet une transformation avec l'URL de callback :
http://localhost/dynacase/?app=TEST&action=CALLBACK
- Lorsque la tâche de transformation est terminée, le serveur TE appelle l'URL
de callback en y ajoutant la variable HTTTP
tid
contenant la valeur de l'identifiant de la tâche :http://localhost/dynacase/?app=TEST&action=CALLBACK&tid=54c8a79a4780d2.85897641
- L'action
CALLBACK
de l'applicationTEST
est alors exécutée. - L'action peut alors récupérer le résultat de la tâche en faisant une requête de récupération de résultat avec l'identifiant de la tâche ainsi obtenu.
4.3.2.1.1 Avertissements
4.3.2.2 Liste des paramètres
- (string)
te_name
- Le nom du moteur de transformation à appliquer.
- (string)
fkey
- Un identifiant à la discrétion de l'appelant.
- (string)
filename
- Le chemin d'accès du fichier à convertir.
- (string)
callback
- L'URL à appeler à la fin de la transformation.
- [out] (array)
info
- Informations retournées de la tâche créée sur le serveur TE.
4.3.2.3 Valeur de retour
La méthode sendTransformation()
retourne une chaîne non vide, contenant un
message d'erreur, si la création de la tâche de transformation a échoué, ou une
chaîne vide si la transformation a été correctement soumise au serveur.
Si la transformation a été correctement soumise au serveur, la variable $info
contient les informations de la tâche créée sur le serveur :
array( 'status' => (string) $taskStatus, 'tid' => (string) $taskId, 'comment' => (string) $transformationComment )
Liste des constantes de statut de tâche :
-
\Dcp\TransformationEngine\Client::TASK_STATE_BEGINNING
(B
) - Demande de conversion reçue.
-
\Dcp\TransformationEngine\Client::TASK_STATE_TRANSFERRING
(T
) - Lecture/transfert du fichier à convertir.
-
\Dcp\TransformationEngine\Client::TASK_STATE_ERROR
(K
) - Erreur.
-
\Dcp\TransformationEngine\Client::TASK_STATE_SUCCESS
(D
) - Transformation réussie.
-
\Dcp\TransformationEngine\Client::TASK_STATE_PROCESSING
(P
) - En cours de traitement.
-
\Dcp\TransformationEngine\Client::TASK_STATE_WAITING
(W
) - Attente de traitement par le moteur.
-
\Dcp\TransformationEngine\Client::TASK_STATE_INTERRUPTED
(I
) - Interrompue.
Si la transformation n'a pas pu être soumise au serveur ($err
retourné !=
chaîne vide), la variable $info
contient le code de l'erreur dans la
propriété status
:
array( 'status' => \Dcp\TransformationEngine\Client::error_connect | \Dcp\TransformationEngine\Client::error_noengine | \Dcp\TransformationEngine\Client::error_sendfile | \Dcp\TransformationEngine\Client::error_emptyfile )
Les constantes de code d'erreur sont :
\Dcp\TransformationEngine\Client::error_connect
-
Le client n'a pu établir une connexion avec le serveur TE.
Vérifier que les paramètres de connexion
TE_HOST
etTE_PORT
sont corrects et que le client peut se connecter sur l'hôte et le port TCP du serveur TE). \Dcp\TransformationEngine\Client::error_noengine
-
Le nom du moteur de transformation demandé n'est pas connu par le serveur TE.
Vérifier que le moteur demandé est bien déclaré sur le sereur TE.
\Dcp\TransformationEngine\Client::error_sendfile
-
Le fichier n'a pu être envoyé correctement au serveur TE.
Voir le message d'erreur retourné par
sendTransformation()
pour plus de détails sur l'erreur rencontrée. \Dcp\TransformationEngine\Client::error_emptyfile
-
Le fichier soumis pour transformation n'existe pas ou est vide.
Vérifier que le fichier
$filename
soumis pour transformation existe et n'est pas vide.
4.3.2.4 Erreurs / Exceptions
4.3.2.5 Historique
4.3.2.6 Exemples
/* Un fichier texte */ $filename = '/tmp/hello.txt'; $textContent = 'Hello world.'; file_put_content($filename, $textContent); /* On envoi une demande de conversion du fichier texte en PDF */ $fkey = sprintf("test-conversion-%s", uniqid()); $callback = ''; $info = array(); $err = $clientTE->sendTransformation( 'pdf', /* Nom de la conversion à appliquer : 'pdf' */ $fkey, /* Identifiant de la conversion côté Dynacase */ $filename, /* Chemin du fichier à convertir */ $callback, /* URL de callback pour la notification de fin de tâche */ $info /* Information en retour de la tâche de conversion créée */ ); if ($err != '') { throw new Exception(sprintf("sendTransformation() returned with error: %s", $err)); } /* Si la demande est accceptée, l'identifiant de la conversion * est retourné dans la structure $info */ var_export($info);
array(3) { 'tid' => "54c8a79a4780d2.85897641", 'status' => "W", 'comment' => "13 bytes read in 0.005 sec" }