diff --git a/_install/dependency.xml b/_install/dependency.xml
index 404d6607af38b4c06b157f1c2d2691c156b4efee..17b5c9167aaeb07ec0d1c08e61c23b0fc2971e15 100755
--- a/_install/dependency.xml
+++ b/_install/dependency.xml
@@ -19,7 +19,7 @@
 		<dependency>
 			<name>gtf-engine</name>
 			<nature>extern-post</nature>
-			<location>git@gitlab.veremes.net:Development/vitis_apps/sources/gtf.engines.git</location>
+			<location>gtf.engines</location>
 			<object>module_gtf</object>
 		</dependency>
 		<dependency>
diff --git a/gtf.engine/engine/README.txt b/gtf.engine/engine/README.txt
deleted file mode 100755
index 96459bdac3a94ee35b94e09ba4c63e35ebce34cf..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/README.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Compilateur
-
-	Le compilateur utilis� est MinGW version 5.1.6
-	Il est disponible sur PICPOUL --> Partage --> Logiciel --> MinGW --> mingw-get-inst-20111118.exe
-	Une fois install�, copier le dossier openssl du dossier MinGW vers <MinGW>/include
-
-
-Compilation
-
-	Pour compiler, il suffit de double-cliquer sur compil.bat
-	La compilation r�cup�re le num�ro de r�vision SVN l'�crit dans le fichier Changelog.txt, compile l'application puis copie les fichiers dans le dossier gtf.engine
diff --git a/gtf.engine/engine/compil-linux.bat b/gtf.engine/engine/compil-linux.bat
deleted file mode 100755
index d395b209f8c493aa2c19890929d1126795d2b74b..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/compil-linux.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-@ECHO OFF
-SET letter=%~d0
-SET currentPath=%~p0
-CALL :ChangeSlashes currentPath
-CALL :LoCase letter
-
-REM Compilation
-bash -c "cd  /mnt/%letter%%currentPath% && gcc -g engine.c sha1.h sha1.c -o engine -LC:\MingW\lib\ -lregex"
-REM copie vers le dossier gtf.engine
-COPY "engine" "../gtf.engines/engine"
-pause
-
-GOTO:EOF
-
-:LoCase
-:: Subroutine to convert a variable VALUE to all lower case.
-:: The argument for this subroutine is the variable NAME.
-FOR %%i IN (":=" "A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i" "J=j" "K=k" "L=l" "M=m" "N=n" "O=o" "P=p" "Q=q" "R=r" "S=s" "T=t" "U=u" "V=v" "W=w" "X=x" "Y=y" "Z=z") DO CALL SET "%1=%%%1:%%~i%%"
-
-:ChangeSlashes
-FOR %%i IN ("\=/") DO CALL SET "%1=%%%1:%%~i%%"
diff --git a/gtf.engine/engine/compil.bat b/gtf.engine/engine/compil.bat
deleted file mode 100755
index cee98ded472d3fc590dc4fbcee88d2f510ab7b02..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/compil.bat
+++ /dev/null
@@ -1,34 +0,0 @@
-@Echo OFF
-%~d0
-cd %~dp0
-REM Recuperation du numero de version
-for /f "delims=" %%i in ('svnversion "../engine"') do Set versionComp=%%i
-REM Initialisation de la variable de recuperation de version
-set versionComp = 2473:2481M
-REM Verification de la structure de num de version renvoye pas SVN
-echo %versionComp% | find ":"
-REM Si le num de version contient : version complexe sinon version simple
-if errorlevel 1 (call :simpleversion) else (call :complexeversion)
-
-
-:simpleversion
-REM Recuperation du num de version simple
-for /f "delims=" %%i in ('echo %versionComp:~0,4%') do Set version=%%i
-goto compil
-
-:complexeversion
-REM Recuperation du num de version simple
-for /f "delims=" %%i in ('echo %versionComp:~5,4%') do Set version=%%i
-goto compil
-
-:compil
-REM Suppression du fichier Changelog
-IF EXIST Changelog.txt DEL Changelog.txt
-REM Ecriture du num de version
-echo %version% > Changelog.txt
-REM Compilation en incluant la librairie psapi
-gcc -g engine.c sha1.h sha1.c -o engine.exe -l"psapi" -LC:\MingW\lib\ -lregex
-REM copie vers le dossier gtf.engine
-COPY "engine.exe" "../gtf.engines/engine.exe"
-COPY "Changelog.txt" "../gtf.engines/Changelog.txt"
-pause
\ No newline at end of file
diff --git a/gtf.engine/engine/engine.c b/gtf.engine/engine/engine.c
deleted file mode 100755
index 5dd2e7c7963e877d78caef15a11aef26a1a2dc0b..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/engine.c
+++ /dev/null
@@ -1,545 +0,0 @@
-#ifdef __unix__
-	#define OS_Windows 0
-	#define MAX_PATH 4096
-	#include <locale.h>
-	typedef unsigned long DWORD;
-	const char * separator = "/";
-#else
-	#define OS_Windows 1
-	#include <windows.h>
-	#include <Winbase.h>
-	#include <tchar.h>
-	#include <psapi.h>
-	const char * separator = "\\";
-#endif
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h> 
-#include <stdlib.h>
-#include <sys/types.h>  
-#include <unistd.h> 
-#include "sha1.h"
-#include <time.h>
-#include "regex.h"
-#include "engine.h"
-
-#define TAILLE_MAX 1000
-
-int num_pid = 0, debug = 0;
-char *current_directory;
-// const char * separator = "/";
-
-int main(int argc, char *argv[]){
-	int valid = 0;;
-	unsigned int i;
-	if (argc > 1){
-		for (i = 0; i < strlen(argv[1]); ++i){
-			if (!isdigit(argv[1][i]))
-			{
-				valid = 1;
-				break;
-			}
-		}
-		if (valid ==0){
-			if (argc > 2){
-				if (strcmp(argv[2],"d") == 0){
-					debug = 1;
-				}
-			}
-		}else{
-			printf("Syntaxe : engine.exe [moteur_number] [d]\n");
-			printf("d : Debug mode\n");
-
-			exit(1);
-		}
-	}else{
-		printf("Syntaxe : engine.exe [motor_number] [d]\n");
-		printf("d : Debug mode\n");
-
-		exit(1);
-	}
-	//declaration des variables
-	int exist_pid_file = 0;
-	
-	// Nom du fichier pid
-	char* pid_file = malloc(strlen("pid_.txt") + strlen(argv[1]) + 1);
-	sprintf(pid_file, "pid_%s.txt", argv[1]);
-	int result = 0;
-	printf("1\n");
-	//R�cup�ration du r�pertoire courant du fichier courant
-	#ifdef __unix__
-		char *cwd_buffer = malloc(sizeof(char) * MAX_PATH);
-		current_directory = getcwd(cwd_buffer, MAX_PATH);
-	#else
-		char current_path[MAX_PATH];
-		GetModuleFileName( NULL, current_path, MAX_PATH );
-		current_directory = RemplacerFragment((char *)current_path, "\\engine.exe", "");
-	#endif
-	writeToDebugLog("R�pertoire courant : ", current_directory);
-	//remplacement du nom de l exe par le nom du fichier pid
-	char* pid_file_path = malloc(strlen(current_directory) + strlen("/") + strlen(pid_file) + 1);
-	sprintf(pid_file_path, "%s%s%s", current_directory, separator, pid_file);
-
-	writeToDebugLog("fichier PID : ", pid_file_path);
-	//test de l'existence des fichiers
-    exist_pid_file = findPidFile(pid_file_path);
-	
-	char tmp[5];
-	sprintf(tmp, "%i", exist_pid_file);
-	writeToDebugLog("existence Fichier pid (0, n existe pas) : ", tmp);
-	char *motor_number = argv[1];
-	//si fichier inexistant
-	if (exist_pid_file == 0){
-		writeToDebugLog("Execution", " robot non existence fichier pid.");
-		result = execRobot(pid_file_path, motor_number);
-	} else {
-		//si fichier vide
-		if (num_pid == 0){
-			writeToDebugLog("Execution", " robot fichier pid vide.");
-			result = execRobot(pid_file_path, motor_number);
-		} else {
-			sprintf(tmp, "%i", num_pid);
-			writeToDebugLog("num PID : ", tmp);
-			int process = 0;
-			process = verifyProcess(num_pid);
-			if (process == 0){
-				writeToDebugLog("Execution", " robot processus fini.");
-				result = execRobot(pid_file_path, motor_number);
-			}
-		} 
-	}
-	return result;
-}
-
-//fonction de recherche d'un numero de pid
-int findPidFile(char *pid_file_path){
-	//declaration des variables
-	char line[512];
-	int nb_lines = 0;
-	FILE *fic;
-	//ouverture du fichier
-	fic = fopen(pid_file_path, "r"); // ouvrir en lecture
-	
-	//si le programme n a pas trouve de fichier
-	if(fic == NULL){
-		return 0;
-	}
-	//si le programme a trouvee un fichier
-	else{
-		//lecture du fichier
-		while(fgets(line, 512, fic) != NULL){
-			//recuperation du pid
-			num_pid = atoi(line);
-			//passage a la ligne suivante
-			nb_lines++;
-		}
-		//fermeture du fichier
-		fclose(fic); 
-		return 1;
-	}
-}
-
-//Fonction de remplacement de chaine de caractere par une autre : n'existe pas par defaut en c.
-char *RemplacerFragment(char *source, char *vieux, char *nouveau){
-	//Recuperation des parametres
-	char *original = source;
-	char temp[256];
-	int ancienne_long = strlen (vieux);
-	int i, j, k, place = -1;
-	 
-	//recherche de la position de l'occurence tant que la fonction n a pas trouvee
-	for (i = 0; source[i] && (place == -1); ++i){
-		for (j = i, k = 0; source[j] == vieux[k]; j++, k++){
-			if (!vieux[k+1]){
-				place = i;
-			}
-		}
-	}
-	//remplacement de lancienne chaine par la nouvelle
-	if (place != -1){
-		//recuperation de la chaine jusqu a l'emplacement de la chaine a remplacer
-		for (j=0; j < place; j++){
-			temp[j] = source[j];
-		}
-		//remplacement de l ancienne valeur par la nouvelle
-		for (i=0; nouveau[i]; i++, j++){
-			temp[j] = nouveau[i];
-		}
-		//reucperation de la fin de la chaine de caracteres
-		for (k = place + ancienne_long; source[k]; k++, j++){
-			temp[j] = source[k];
-		}
-		temp[j] = 0;
-		for (i=0; (source[i] = temp[i]); i++){
-		}
-	}
-	return original;
-} 
-
-int execRobot(char *pid_file_path, char *motor_number){
-	writeToDebugLog("path pid : ", pid_file_path);
-	getWritePid(pid_file_path);
-	char var_env_engine[MAX_PATH];
-	char var_env_php[MAX_PATH];
-	
-	strcpy(var_env_engine, "GTF_ENGINE_HOME=");
-	strcat(var_env_engine, current_directory);
-	
-	strcpy(var_env_php, "PHP_HOME=");
-	strcat(var_env_php, current_directory);
-	strcat(var_env_php, "/php");
-	
-	writeToDebugLog("", var_env_php);
-	writeToDebugLog("", var_env_engine);
-	putenv(var_env_engine);
-	putenv(var_env_php);
-	putenv("PYTHONPATH=");
-	// Changement de la locale pour traiter les nombres
-	setlocale(LC_NUMERIC, "en_US.UTF8");
-	
-	char *argument = verifyLicense(motor_number);
-	writeToDebugLog("value verification : ", argument);
-	char function_robot[512];
-	if (OS_Windows == 0) {
-		sprintf(function_robot, "\"%s%sphp%sbin%sphp\" \"%s%sengine.php\" %s %s", current_directory, separator, separator, separator, current_directory, separator, motor_number, argument);	
-	} else {
-		sprintf(function_robot, "\"\"%s%sphp%sphp.exe\" \"%s%sengine.php\" %s %s\"", current_directory, separator, separator, current_directory, separator, motor_number, argument);		
-	}
-	writeToDebugLog("function : ", function_robot);
-	system(function_robot);
-
-	remove(pid_file_path);
-	return 0;
-}
-
-void getWritePid(char *pid_file_path){
-	FILE *fic;
-	//ouverture du fichier
-	fic = fopen(pid_file_path, "w"); //"w"  : mode texte en �criture (cr�ation)
-	//recuperation du pid
-	pid_t pid = getpid();
-	fprintf(fic, "%i", pid);
-	fclose(fic);
-}
-
-
-int verifyProcess(int num_pid){
-	int running = 0;
-	int i = 0;
-	int j = 0;
-	char *szProcessName;
-	char *szProcessNameWithSpaces;
-	#ifdef __unix__
-		if (getpgid(num_pid) >= 0){
-			FILE *fic;
-			char* process_path = malloc(strlen("/proc//comm") + 6);
-			sprintf(process_path, "/proc/%i/comm", num_pid);
-			//ouverture du fichier
-			fic = fopen(process_path, "r"); // ouvrir en lecture
-	
-			//si le programme n a pas trouve de fichier
-			if(fic != NULL){
-				//lecture du fichier
-				char line[512];
-				int nb_lines = 0;
-				while(fgets(line, 512, fic) != NULL){
-					//recuperation du nom du pid
-					szProcessNameWithSpaces = line;
-					//passage a la ligne suivante
-					nb_lines++;
-				}
-				//trim 
-				while(i < strlen(szProcessNameWithSpaces)){
-					if (&szProcessNameWithSpaces[i] != " " || &szProcessNameWithSpaces[i] != "\n"){
-						i++;
-					} else {
-						szProcessName[j] = szProcessNameWithSpaces[i];
-						i++;
-						j++;
-					}
-				}
-				//fermeture du fichier
-				fclose(fic);
-				writeToDebugLog("Pid name: ",  szProcessName);
-				writeToDebugLog("Exe file : engine", "");
-				if (strcmp(szProcessName, "engine") == 0){
-					running = 1;
-				}
-			}
-		}
-	#elif defined(_WIN32)
-		HANDLE hProcess=OpenProcess(PROCESS_VM_READ|PROCESS_QUERY_INFORMATION,FALSE, num_pid);
-		if(hProcess){
-			HMODULE hMod;
-			DWORD unused;
-			if(EnumProcessModules(hProcess, &hMod, sizeof(hMod), &unused)){
-				GetModuleBaseNameA(hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(char));
-				writeToDebugLog("Pid name: ",  szProcessName);
-				writeToDebugLog("Exe file : engine.exe", "");
-				if (strcmp(szProcessName, "engine.exe") == 0){
-					running = 1;
-				}
-			}
-		}
-	#endif
-	return running;
-}
-
-char *verifyLicense(char *motor_number){
-	char *returnValue = "";
-	char expireDate[TAILLE_MAX] = "";
-	char motorNumber[TAILLE_MAX] = "";
-
-	char* licence_path = malloc(strlen(current_directory) + strlen("licenseslicense.txt") + 3);
-	sprintf(licence_path, "%s%slicenses%slicense.txt", current_directory, separator, separator);
-
-	FILE* fichier = NULL;
-	writeToDebugLog("Fichier License : ",licence_path);
-	fichier = fopen(licence_path, "r");
-	if (fichier != NULL){
-		char chaine[TAILLE_MAX] = "";
-		char testChaine[TAILLE_MAX] = "";
-		// char *chaine = "";
-		char *key;
-		char *temp;
-		char toKey[TAILLE_MAX] = "";
-		int z = 0;
-		while (fgets(chaine, TAILLE_MAX, fichier) != NULL){ // On lit le fichier tant qu'on ne re�oit pas d'erreur (NULL)
-			if (chaine[0]!= '#'){
-				RemplacerFragment(chaine, "\r", "");
-				copie(chaine, testChaine);
-				if (strncmp( verifyRegexp(testChaine, "^Expiry date: (Permanent|[0-9]{6,8})"), "error", 1000)  != 0){
-					RemplacerFragment(testChaine, "Expiry date: ", "");
-					copie(testChaine, expireDate);
-				}
-				if (strncmp( verifyRegexp(testChaine, "^Engines: ([0-9]+)"), "error", 1000)  != 0){
-					RemplacerFragment(testChaine, "Engines: ", "");
-					copie(testChaine, motorNumber);
-				}
-				if (chaine[0]!= 'K'){
-					if (z == 0){
-						z = z+1;
-					}else{
-						strcat(toKey, "\n");
-					}
-					temp = RemplacerFragment(chaine, "\n", "");
-					strcat(toKey, temp);
-				}else{
-					if (chaine[1]!= 'e'){
-						if (z == 0){
-							z = z+1;
-						}else{
-							strcat(toKey, "\n");
-						}
-						temp = RemplacerFragment(chaine, "\n", "");
-						strcat(toKey, temp);
-					}else{
-						if (chaine[2]!= 'y'){
-							if (z == 0){
-								z = z+1;
-							}else{
-								strcat(toKey, "\n");
-							}
-							temp = RemplacerFragment(chaine, "\n", "");
-							strcat(toKey, temp);
-						}else{
-							key=RemplacerFragment(chaine, "Key: ", "");
-						}
-					}
-				}
-			}
-		}
-		writeToDebugLog("Expire Date: ",expireDate);
-		writeToDebugLog("Motor Number: ",motorNumber);
-		writeToDebugLog("clef: ", key);
-		writeToDebugLog("Toclef: ", toKey);
-		SHA1Context sha;
-		int i;
-		SHA1Reset(&sha);
-		for(i = 1; i <= 1000; i++) {
-			SHA1Input(&sha, toKey, strlen(toKey));
-		}
-		if (!SHA1Result(&sha)){
-			 writeToErrorLog("Erreur licence : ", "Impossible de hasher la clef");
-			 returnValue = "E001";
-		}else{
-			char clefTemp[5][TAILLE_MAX];
-			char *clef, *clefTest;
-			for(i = 0; i < 5; i++){
-				sprintf(clefTemp[i], "%X ", sha.Message_Digest[i]);
-			}
-			int j=0;
-			for(j = 0; j < 5; j++){
-				clefTest= clefTemp[j];
-				 if (j == 0){
-					clef = clefTest;
-				}else{
-					strcat(clef, clefTest);
-				}
-			}
-			writeToDebugLog("clef calcul�e: ", clef);
-			int result = strncmp(clef, key, 1000);
-			if (result == 0){
-				writeToDebugLog("Comparaison Clefs: ", "Egales");
-				time_t current_time;
-				current_time = time(NULL);
-				struct tm *nowtm;
-				int yy, mm, dd;
-				yy = makeInt(expireDate +  0, 4) -1900;
-				mm = makeInt(expireDate +  4, 2)-1;
-				dd = makeInt(expireDate +  6, 2);
-				nowtm = localtime(&current_time);
-				writeToDebugLog("Comparaison Date Nombre moteur: ",motorNumber);
-				writeToDebugLog("Comparaison Date num�ro moteur: ",motor_number);
-				if (strncmp(expireDate, "permanent", 1000) ==0){
-					writeToDebugLog("Comparaison Date : ", "OK");
-					if (atoi(motor_number) <= atoi(motorNumber)){
-						writeToDebugLog("Comparaison Moteur : ", "Ok");
-						returnValue = "0";
-					}else{
-						writeToDebugLog("Comparaison Moteur : ", "Num�ro de moteur trop grand");
-						returnValue = "E003";
-					}
-				}else{
-					if (yy < nowtm->tm_year){
-						writeToDebugLog("Comparaison Date : ", "Ann�e courante sup�rieure");
-						writeToErrorLog("Erreur licence : ", "Ann�e courante sup�rieure");
-						returnValue = "E002";
-					}else{
-						if (mm < nowtm->tm_mon){
-							writeToDebugLog("Comparaison Date : ", "Mois courant sup�rieur");
-							returnValue = "E002";
-						}else{
-							if (dd < nowtm->tm_mday){
-								writeToDebugLog("Comparaison Date : ", "Jour courant sup�rieur");
-								returnValue = "E002";
-							}else{
-								writeToDebugLog("Comparaison Date : ", "OK");
-								if (atoi(motor_number) <= atoi(motorNumber)){
-									writeToDebugLog("Comparaison Moteur : ", "Ok");
-									returnValue = "0";
-								}else{
-									writeToDebugLog("Comparaison Moteur : ", "Num�ro de moteur trop grand");
-									writeToErrorLog("Erreur licence : ", "Num�ro de moteur trop grand");
-									returnValue = "E003";
-								}
-							}
-						}
-					}
-				}
-				
-			}else{
-				returnValue = "E001";
-				writeToDebugLog("Comparaison Clefs : ", "Diff�rentes");
-				writeToErrorLog("Erreur licence : ", "Clefs diff�rentes");
-			}
-		} 
-		fclose(fichier);
-	}else{
-		// On affiche un message d'erreur si on veut
-		writeToErrorLog("Erreur licence : ", "Ouverture du fichier impossible");
-		returnValue = "E001";
-	}
-	
-	return returnValue;
-}
-
-void writeToDebugLog(char *titre, char *error){
-	if (debug == 1){
-		FILE *fic;
-		//ouverture du fichier
-		char* debug_file_path = malloc(strlen(current_directory) + strlen("engine.log") + 2);
-		sprintf(debug_file_path, "%s%sengine.log", current_directory, separator);
-		fic = fopen(debug_file_path, "a"); //"w"  : mode texte en �criture (cr�ation)
-		char resultat[MAX_PATH];
-		strcpy(resultat, titre);
-		strcat(resultat, error);
-		strcat(resultat, "\n");
-		//recuperation du pid
-		fprintf(fic, "%s", resultat);
-		fclose(fic); 
-	}
-}
-
-void writeToErrorLog(char *titre, char *error){
-	FILE *fic;
-	//ouverture du fichier
-	char* error_file_path = malloc(strlen(current_directory) + strlen("engine_error.log") + 2);
-	sprintf(error_file_path, "%s%sengine_error.log", current_directory, separator);
-	fic = fopen(error_file_path, "a"); //"w"  : mode texte en �criture (cr�ation)
-	char resultat[MAX_PATH];
-	strcpy(resultat, titre);
-	strcat(resultat, error);
-	strcat(resultat, "\n");
-	//recuperation du pid
-	fprintf(fic, "%s", resultat);
-	fclose(fic);
-}
-
-char *verifyRegexp (char *str_request, char *str_regex){
-	char *returnValue = "error";
-	int err;
-	regex_t preg;
-	err = regcomp (&preg, str_regex, REG_EXTENDED);
-	if (err == 0){
-		int match;
-		size_t nmatch = 0;
-		regmatch_t *pmatch = NULL;
-		nmatch = preg.re_nsub;
-		pmatch = malloc (sizeof (*pmatch) * nmatch);
-		if (pmatch){
-			match = regexec (&preg, str_request, nmatch, pmatch, 0);
-			regfree (&preg);
-			if (match == 0){
-				char *site = NULL;
-				int start = pmatch[0].rm_so;
-				int end = pmatch[0].rm_eo;
-				size_t size = end - start;
-				site = malloc (sizeof (*site) * (size + 1));
-				if (site){
-				   strncpy (site, &str_request[start], size);
-				   site[size] = '\0';
-				   returnValue = site;
-				   free (site);
-				}
-			}else if (match == REG_NOMATCH){
-				returnValue = "error";
-			}else{
-				char *text;
-				size_t size;
-				size = regerror (err, &preg, NULL, 0);
-				text = malloc (sizeof (*text) * size);
-				if (text){
-				   regerror (err, &preg, text, size);
-				   returnValue = text;
-				   free (text);
-				}else{
-				   returnValue = "error";
-				}
-			}
-		}else{
-			 returnValue = "error";
-		}	
-	}else{
-		returnValue = "error";
-	}
-	
-	return returnValue;
-}
-
-void copie(char srce[] , char dest[]) { 
-  register int i;     /* un indice est necessaire */
-  for( i=0 ; (dest[i] = srce[i]) != 0 ; i++) 
-     ;
-}
-
-int makeInt(const char *p, int size){
-    const char *endp;
-    int intval = 0;
-    endp = p + size;
-    while (p < endp){
-        intval = intval * 10 + *p - '0';
-        p++;
-    }
-    return intval;
-}
diff --git a/gtf.engine/engine/engine.h b/gtf.engine/engine/engine.h
deleted file mode 100755
index 88fa8fbd29a4e4588485da5f25c0cdff7e9e086d..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/engine.h
+++ /dev/null
@@ -1,11 +0,0 @@
-int execRobot(char *pid_file_path, char *motor_number);
-void getWritePid(char *pid_file_path);
-int verifyProcess(int num_pid);
-int findPidFile(char *pid_file_path);
-void copie(char srce[] , char dest[]);
-void writeToDebugLog(char *titre, char *error);
-void writeToErrorLog(char *titre, char *error);
-char *RemplacerFragment(char *source, char *vieux, char *nouveau);
-char *verifyRegexp(char *str_request, char *str_regex);
-char *verifyLicense(char *motor_number);
-int makeInt(const char *,int);
\ No newline at end of file
diff --git a/gtf.engine/engine/php.ini b/gtf.engine/engine/php.ini
deleted file mode 100755
index 982525bc240cc3348dcaae579a6d87cb56112ae5..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/php.ini
+++ /dev/null
@@ -1,162 +0,0 @@
-[PHP]
-engine = On
-short_open_tag = Off
-asp_tags = Off
-precision = 14
-output_buffering = 4096
-zlib.output_compression = Off
-implicit_flush = Off
-unserialize_callback_func =
-serialize_precision = 17
-disable_functions =
-disable_classes =
-zend.enable_gc = On
-expose_php = On
-max_execution_time = 30
-max_input_time = 60
-memory_limit = 128M
-error_reporting = E_ALL & ~E_NOTICE 
-display_errors = Off
-display_startup_errors = Off
-log_errors = On
-log_errors_max_len = 1024
-ignore_repeated_errors = Off
-ignore_repeated_source = Off
-report_memleaks = On
-track_errors = Off
-html_errors = On
-error_log = php.log
-variables_order = "GPCS"
-request_order = "GP"
-register_argc_argv = Off
-auto_globals_jit = On
-post_max_size = 8M
-auto_prepend_file =
-auto_append_file =
-default_mimetype = "text/html"
-include_path = ".;"
-doc_root =
-user_dir =
- extension_dir = "ext"
-enable_dl = Off
-file_uploads = On
-upload_max_filesize = 2M
-max_file_uploads = 20
-allow_url_fopen = On
-allow_url_include = Off
-default_socket_timeout = 60
-extension=php_curl.dll
-extension=php_gd2.dll
-extension=php_ldap.dll
-extension=php_mbstring.dll
-extension=php_openssl.dll
-extension=php_pdo_pgsql.dll
-extension=php_xsl.dll
-[CLI Server]
-cli_server.color = On
-[Date]
-date.timezone = "EUROPE/Paris"
-[Pdo_mysql]
-pdo_mysql.cache_size = 2000
-pdo_mysql.default_socket=
-[mail function]
-SMTP = localhost
-smtp_port = 25
-mail.add_x_header = On
-[SQL]
-sql.safe_mode = Off
-[ODBC]
-odbc.allow_persistent = On
-odbc.check_persistent = On
-odbc.max_persistent = -1
-odbc.max_links = -1
-odbc.defaultlrl = 4096
-odbc.defaultbinmode = 1
-[Interbase]
-ibase.allow_persistent = 1
-ibase.max_persistent = -1
-ibase.max_links = -1
-ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
-ibase.dateformat = "%Y-%m-%d"
-ibase.timeformat = "%H:%M:%S"
-[MySQL]
-mysql.allow_local_infile = On
-mysql.allow_persistent = On
-mysql.cache_size = 2000
-mysql.max_persistent = -1
-mysql.max_links = -1
-mysql.default_port =
-mysql.default_socket =
-mysql.default_host =
-mysql.default_user =
-mysql.default_password =
-mysql.connect_timeout = 60
-mysql.trace_mode = Off
-[MySQLi]
-mysqli.max_persistent = -1
-mysqli.allow_persistent = On
-mysqli.max_links = -1
-mysqli.cache_size = 2000
-mysqli.default_port = 3306
-mysqli.default_socket =
-mysqli.default_host =
-mysqli.default_user =
-mysqli.default_pw =
-mysqli.reconnect = Off
-[mysqlnd]
-mysqlnd.collect_statistics = On
-mysqlnd.collect_memory_statistics = Off
-[PostgreSQL]
-pgsql.allow_persistent = On
-pgsql.auto_reset_persistent = Off
-pgsql.max_persistent = -1
-pgsql.max_links = -1
-pgsql.ignore_notice = 0
-pgsql.log_notice = 0
-[Sybase-CT]
-sybct.allow_persistent = On
-sybct.max_persistent = -1
-sybct.max_links = -1
-sybct.min_server_severity = 10
-sybct.min_client_severity = 10
-[bcmath]
-bcmath.scale = 0
-[Session]
-session.save_handler = files
-session.use_strict_mode = 0
-session.use_cookies = 1
-session.use_only_cookies = 1
-session.name = PHPSESSID
-session.auto_start = 0
-session.cookie_lifetime = 0
-session.cookie_path = /
-session.cookie_domain =
-session.cookie_httponly =
-session.serialize_handler = php
-session.gc_probability = 1
-session.gc_divisor = 1000
-session.gc_maxlifetime = 1440
-session.referer_check =
-session.cache_limiter = nocache
-session.cache_expire = 180
-session.use_trans_sid = 0
-session.hash_function = 0
-session.hash_bits_per_character = 5
-url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
-[MSSQL]
-mssql.allow_persistent = On
-mssql.max_persistent = -1
-mssql.max_links = -1
-mssql.min_error_severity = 10
-mssql.min_message_severity = 10
-mssql.compatibility_mode = Off
-mssql.secure_connection = Off
-[Tidy]
-tidy.clean_output = Off
-[soap]
-soap.wsdl_cache_enabled=1
-soap.wsdl_cache_dir="/tmp"
-soap.wsdl_cache_ttl=86400
-soap.wsdl_cache_limit = 5
-[ldap]
-ldap.max_links = -1
diff --git a/gtf.engine/engine/sha1.c b/gtf.engine/engine/sha1.c
deleted file mode 100755
index d87c7f4830013b8e7d749e398b0a15ba15acd5c4..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/sha1.c
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
- *  sha1.c
- *
- *  Copyright (C) 1998, 2009
- *  Paul E. Jones <paulej@packetizer.com>
- *  All Rights Reserved
- *
- *****************************************************************************
- *  $Id: sha1.c 12 2009-06-22 19:34:25Z paulej $
- *****************************************************************************
- *
- *  Description:
- *      This file implements the Secure Hashing Standard as defined
- *      in FIPS PUB 180-1 published April 17, 1995.
- *
- *      The Secure Hashing Standard, which uses the Secure Hashing
- *      Algorithm (SHA), produces a 160-bit message digest for a
- *      given data stream.  In theory, it is highly improbable that
- *      two messages will produce the same message digest.  Therefore,
- *      this algorithm can serve as a means of providing a "fingerprint"
- *      for a message.
- *
- *  Portability Issues:
- *      SHA-1 is defined in terms of 32-bit "words".  This code was
- *      written with the expectation that the processor has at least
- *      a 32-bit machine word size.  If the machine word size is larger,
- *      the code should still function properly.  One caveat to that
- *      is that the input functions taking characters and character
- *      arrays assume that only 8 bits of information are stored in each
- *      character.
- *
- *  Caveats:
- *      SHA-1 is designed to work with messages less than 2^64 bits
- *      long. Although SHA-1 allows a message digest to be generated for
- *      messages of any number of bits less than 2^64, this
- *      implementation only works with messages with a length that is a
- *      multiple of the size of an 8-bit character.
- *
- */
-
-#include "sha1.h"
-
-/*
- *  Define the circular shift macro
- */
-#define SHA1CircularShift(bits,word) \
-                ((((word) << (bits)) & 0xFFFFFFFF) | \
-                ((word) >> (32-(bits))))
-
-/* Function prototypes */
-void SHA1ProcessMessageBlock(SHA1Context *);
-void SHA1PadMessage(SHA1Context *);
-
-/*  
- *  SHA1Reset
- *
- *  Description:
- *      This function will initialize the SHA1Context in preparation
- *      for computing a new message digest.
- *
- *  Parameters:
- *      context: [in/out]
- *          The context to reset.
- *
- *  Returns:
- *      Nothing.
- *
- *  Comments:
- *
- */
-void SHA1Reset(SHA1Context *context)
-{
-    context->Length_Low             = 0;
-    context->Length_High            = 0;
-    context->Message_Block_Index    = 0;
-
-    context->Message_Digest[0]      = 0x67452301;
-    context->Message_Digest[1]      = 0xEFCDAB89;
-    context->Message_Digest[2]      = 0x98BADCFE;
-    context->Message_Digest[3]      = 0x10325476;
-    context->Message_Digest[4]      = 0xC3D2E1F0;
-
-    context->Computed   = 0;
-    context->Corrupted  = 0;
-}
-
-/*  
- *  SHA1Result
- *
- *  Description:
- *      This function will return the 160-bit message digest into the
- *      Message_Digest array within the SHA1Context provided
- *
- *  Parameters:
- *      context: [in/out]
- *          The context to use to calculate the SHA-1 hash.
- *
- *  Returns:
- *      1 if successful, 0 if it failed.
- *
- *  Comments:
- *
- */
-int SHA1Result(SHA1Context *context)
-{
-
-    if (context->Corrupted)
-    {
-        return 0;
-    }
-
-    if (!context->Computed)
-    {
-        SHA1PadMessage(context);
-        context->Computed = 1;
-    }
-
-    return 1;
-}
-
-/*  
- *  SHA1Input
- *
- *  Description:
- *      This function accepts an array of octets as the next portion of
- *      the message.
- *
- *  Parameters:
- *      context: [in/out]
- *          The SHA-1 context to update
- *      message_array: [in]
- *          An array of characters representing the next portion of the
- *          message.
- *      length: [in]
- *          The length of the message in message_array
- *
- *  Returns:
- *      Nothing.
- *
- *  Comments:
- *
- */
-void SHA1Input(     SHA1Context         *context,
-                    const unsigned char *message_array,
-                    unsigned            length)
-{
-    if (!length)
-    {
-        return;
-    }
-
-    if (context->Computed || context->Corrupted)
-    {
-        context->Corrupted = 1;
-        return;
-    }
-
-    while(length-- && !context->Corrupted)
-    {
-        context->Message_Block[context->Message_Block_Index++] =
-                                                (*message_array & 0xFF);
-
-        context->Length_Low += 8;
-        /* Force it to 32 bits */
-        context->Length_Low &= 0xFFFFFFFF;
-        if (context->Length_Low == 0)
-        {
-            context->Length_High++;
-            /* Force it to 32 bits */
-            context->Length_High &= 0xFFFFFFFF;
-            if (context->Length_High == 0)
-            {
-                /* Message is too long */
-                context->Corrupted = 1;
-            }
-        }
-
-        if (context->Message_Block_Index == 64)
-        {
-            SHA1ProcessMessageBlock(context);
-        }
-
-        message_array++;
-    }
-}
-
-/*  
- *  SHA1ProcessMessageBlock
- *
- *  Description:
- *      This function will process the next 512 bits of the message
- *      stored in the Message_Block array.
- *
- *  Parameters:
- *      None.
- *
- *  Returns:
- *      Nothing.
- *
- *  Comments:
- *      Many of the variable names in the SHAContext, especially the
- *      single character names, were used because those were the names
- *      used in the publication.
- *         
- *
- */
-void SHA1ProcessMessageBlock(SHA1Context *context)
-{
-    const unsigned K[] =            /* Constants defined in SHA-1   */      
-    {
-        0x5A827999,
-        0x6ED9EBA1,
-        0x8F1BBCDC,
-        0xCA62C1D6
-    };
-    int         t;                  /* Loop counter                 */
-    unsigned    temp;               /* Temporary word value         */
-    unsigned    W[80];              /* Word sequence                */
-    unsigned    A, B, C, D, E;      /* Word buffers                 */
-
-    /*
-     *  Initialize the first 16 words in the array W
-     */
-    for(t = 0; t < 16; t++)
-    {
-        W[t] = ((unsigned) context->Message_Block[t * 4]) << 24;
-        W[t] |= ((unsigned) context->Message_Block[t * 4 + 1]) << 16;
-        W[t] |= ((unsigned) context->Message_Block[t * 4 + 2]) << 8;
-        W[t] |= ((unsigned) context->Message_Block[t * 4 + 3]);
-    }
-
-    for(t = 16; t < 80; t++)
-    {
-       W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
-    }
-
-    A = context->Message_Digest[0];
-    B = context->Message_Digest[1];
-    C = context->Message_Digest[2];
-    D = context->Message_Digest[3];
-    E = context->Message_Digest[4];
-
-    for(t = 0; t < 20; t++)
-    {
-        temp =  SHA1CircularShift(5,A) +
-                ((B & C) | ((~B) & D)) + E + W[t] + K[0];
-        temp &= 0xFFFFFFFF;
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    for(t = 20; t < 40; t++)
-    {
-        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
-        temp &= 0xFFFFFFFF;
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    for(t = 40; t < 60; t++)
-    {
-        temp = SHA1CircularShift(5,A) +
-               ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
-        temp &= 0xFFFFFFFF;
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    for(t = 60; t < 80; t++)
-    {
-        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
-        temp &= 0xFFFFFFFF;
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    context->Message_Digest[0] =
-                        (context->Message_Digest[0] + A) & 0xFFFFFFFF;
-    context->Message_Digest[1] =
-                        (context->Message_Digest[1] + B) & 0xFFFFFFFF;
-    context->Message_Digest[2] =
-                        (context->Message_Digest[2] + C) & 0xFFFFFFFF;
-    context->Message_Digest[3] =
-                        (context->Message_Digest[3] + D) & 0xFFFFFFFF;
-    context->Message_Digest[4] =
-                        (context->Message_Digest[4] + E) & 0xFFFFFFFF;
-
-    context->Message_Block_Index = 0;
-}
-
-/*  
- *  SHA1PadMessage
- *
- *  Description:
- *      According to the standard, the message must be padded to an even
- *      512 bits.  The first padding bit must be a '1'.  The last 64
- *      bits represent the length of the original message.  All bits in
- *      between should be 0.  This function will pad the message
- *      according to those rules by filling the Message_Block array
- *      accordingly.  It will also call SHA1ProcessMessageBlock()
- *      appropriately.  When it returns, it can be assumed that the
- *      message digest has been computed.
- *
- *  Parameters:
- *      context: [in/out]
- *          The context to pad
- *
- *  Returns:
- *      Nothing.
- *
- *  Comments:
- *
- */
-void SHA1PadMessage(SHA1Context *context)
-{
-    /*
-     *  Check to see if the current message block is too small to hold
-     *  the initial padding bits and length.  If so, we will pad the
-     *  block, process it, and then continue padding into a second
-     *  block.
-     */
-    if (context->Message_Block_Index > 55)
-    {
-        context->Message_Block[context->Message_Block_Index++] = 0x80;
-        while(context->Message_Block_Index < 64)
-        {
-            context->Message_Block[context->Message_Block_Index++] = 0;
-        }
-
-        SHA1ProcessMessageBlock(context);
-
-        while(context->Message_Block_Index < 56)
-        {
-            context->Message_Block[context->Message_Block_Index++] = 0;
-        }
-    }
-    else
-    {
-        context->Message_Block[context->Message_Block_Index++] = 0x80;
-        while(context->Message_Block_Index < 56)
-        {
-            context->Message_Block[context->Message_Block_Index++] = 0;
-        }
-    }
-
-    /*
-     *  Store the message length as the last 8 octets
-     */
-    context->Message_Block[56] = (context->Length_High >> 24) & 0xFF;
-    context->Message_Block[57] = (context->Length_High >> 16) & 0xFF;
-    context->Message_Block[58] = (context->Length_High >> 8) & 0xFF;
-    context->Message_Block[59] = (context->Length_High) & 0xFF;
-    context->Message_Block[60] = (context->Length_Low >> 24) & 0xFF;
-    context->Message_Block[61] = (context->Length_Low >> 16) & 0xFF;
-    context->Message_Block[62] = (context->Length_Low >> 8) & 0xFF;
-    context->Message_Block[63] = (context->Length_Low) & 0xFF;
-
-    SHA1ProcessMessageBlock(context);
-}
diff --git a/gtf.engine/engine/sha1.h b/gtf.engine/engine/sha1.h
deleted file mode 100755
index 1ca4b104a9647ebdc20f257b9525af825a3575b7..0000000000000000000000000000000000000000
--- a/gtf.engine/engine/sha1.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *  sha1.h
- *
- *  Copyright (C) 1998, 2009
- *  Paul E. Jones <paulej@packetizer.com>
- *  All Rights Reserved
- *
- *****************************************************************************
- *  $Id: sha1.h 12 2009-06-22 19:34:25Z paulej $
- *****************************************************************************
- *
- *  Description:
- *      This class implements the Secure Hashing Standard as defined
- *      in FIPS PUB 180-1 published April 17, 1995.
- *
- *      Many of the variable names in the SHA1Context, especially the
- *      single character names, were used because those were the names
- *      used in the publication.
- *
- *      Please read the file sha1.c for more information.
- *
- */
-
-#ifndef _SHA1_H_
-#define _SHA1_H_
-
-/* 
- *  This structure will hold context information for the hashing
- *  operation
- */
-typedef struct SHA1Context
-{
-    unsigned Message_Digest[5]; /* Message Digest (output)          */
-
-    unsigned Length_Low;        /* Message length in bits           */
-    unsigned Length_High;       /* Message length in bits           */
-
-    unsigned char Message_Block[64]; /* 512-bit message blocks      */
-    int Message_Block_Index;    /* Index into message block array   */
-
-    int Computed;               /* Is the digest computed?          */
-    int Corrupted;              /* Is the message digest corruped?  */
-} SHA1Context;
-
-/*
- *  Function Prototypes
- */
-void SHA1Reset(SHA1Context *);
-int SHA1Result(SHA1Context *);
-void SHA1Input( SHA1Context *,
-                const unsigned char *,
-                unsigned);
-
-#endif
diff --git a/gtf.engine/gtf.engines/Changelog.txt b/gtf.engine/gtf.engines/Changelog.txt
deleted file mode 100755
index 34a7e1fcc05d33bfa44138217261d0027204984c..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/Changelog.txt
+++ /dev/null
@@ -1 +0,0 @@
-2194 
diff --git a/gtf.engine/gtf.engines/Traitement.class.inc b/gtf.engine/gtf.engines/Traitement.class.inc
deleted file mode 100755
index 1a5c2f39e252daa395ee5fddd73a4a2bc1b43c75..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/Traitement.class.inc
+++ /dev/null
@@ -1,781 +0,0 @@
-<?php
-
-/**
- * \file Traitement.class.inc
- * \brief Traitement.class.inc \n \n Ce fichier contient la classe php Traitement.
- *
- * Cette classe virtuelle permet de générer les éléments nécessaires à la création d'un rapport ou
- * à l'éxécution d'un traitement FME.
- *
- * Cette classe permet de générer des fichiers textes, csv ou d'images pour la création de rapport.
- * Elle permet aussi de lancer la création d'un rapport ou l'éxécution d'un traitement FME.
- *
- * \author Fabien Marty <fabien.marty@veremes.com>
- * \update Matthieu Ambrosy <matthieu.ambrosy@veremes.com>
- */
-require_once ("vmlib/phpUtil.inc");
-require_once ("vmlib/logUtil.inc");
-require_once ("vmlib/stringUtil.inc");
-require_once ("gtf_lib/GtfFmwParser.class.inc");
-require_once 'string.inc';
-
-class Traitement {
-
-    //Variable stockant l'url du log FME
-    var $sLogFme = "";
-
-    /**
-     * Identifiant de la demande.
-     */
-    var $iDemandeId;
-
-    /**
-     * Fichier de log.
-     */
-    var $sRobotLogFile;
-
-    /**
-     * Objet de la classe Bd. Connexion à la base de données
-     */
-    var $oBd;
-
-    /**
-     * Boolean spécifiant si le traitement est en erreur ou pas.
-     */
-    var $bErreur = false;
-
-    /**
-     * Boolean spécifiant si FME a subit un crash.
-     */
-    var $bFmeCrash = false;
-
-    /**
-     * Message d'erreur.
-     */
-    var $sMessageErreur;
-
-    /**
-     * Tableau des paramètres
-     */
-    var $aParametre;
-
-    /**
-     * Chaine contenant les parametres
-     */
-    var $sParams;
-
-    /**
-     * Emplacement du fichier projet FMW
-     */
-    var $sFmwFileName;
-
-    /**
-     * Tableau des propriétés provenant du fichier properties_robot.inc
-     */
-    var $aProperties;
-
-    /**
-     * Tableau des extensions associées à une source de données GUI
-     */
-    var $aExtension;
-    var $sDestination;
-    var $sSource;
-    var $sSourceTemp = "";
-
-    /**
-     * Cette méthode permet d'initialiser les variables.
-     * \param $oBd Connexion à la base de données.
-     * \param $iDemandeId Identifiant de la demande.
-     * \param $sRobotLogFile Fichier de log.
-     */
-    function __construct($oBd, $iDemandeId, $sRobotLogFile, $sParams, $aProperties, $sFmwFileName) {
-        $this->oBd = $oBd;
-        $this->iDemandeId = $iDemandeId;
-        $this->sRobotLogFile = $sRobotLogFile;
-        $this->sFmwFileName = $sFmwFileName;
-        $this->aParametre = $this->dbParamsAsArray($sParams);
-        $this->sParams = $sParams;
-        $this->aProperties = $aProperties;
-        // table de correspondance entre GTF et le FMW utiliser dans les fonction d'encodage 
-        $this->aReplaceGTF = array("\r\n", " ", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", ";", "/", "\\", "é", "à");
-        $this->aReplaceFME = array("<lf>", "<space>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>");
-
-        writeToLog(str_replace('[this->sFmwFileName]', $this->sFmwFileName, str_replace('[sParams]', $sParams, INFO_RESOURCES)), $this->sRobotLogFile);
-    }
-
-    /*
-     * Initialisation du traitement.
-     * \param $oBd Connexion à la base de données.
-     * \param $iDemandeId Identifiant de la demande.
-     * \param $sLogFile Fichier de log.
-     * \param $sParams Liste des paramètres saisis par l'utilisateur à la création de la demande.
-     * \param $aProperties Tableau des properties associés à l'application
-     * \param $sFmwFileName Nom du fichier FMW associé à la demande.
-     */
-
-    /**
-     * Cette méthode permet de générer un nom de fichier unique.
-     * \return une chaîne de caractères.
-     */
-    function UniqFileName() {
-        $sUniqFileName = date('YmdHis') . rand(1, 100000);
-        return $sUniqFileName;
-    }
-
-    /**
-     * Cette méthode permet de générer un tableau de paramètres à partir d'une chaîne dont les délimiteurs sont "|" et "=".
-     * \param $sAllParams Chaine composé de tous les paramètres.
-     * \return un tableau contenant les paramètres.
-     */
-    function dbParamsAsArray($sAllParams) {
-        $aAllParams = Array();
-        $aLigne = explode("|", $sAllParams);
-        //$aLigne = stringExplode($sAllParams, "|", "\"", "\"");
-        foreach ($aLigne as $sValeur) {
-            $aValeurs = explode("=", $sValeur, 2);
-            if ($aValeurs[1] == "") {
-                writeToLog(INFO_NULL_ELEMENT . $aValeurs[0] . ".", $this->sRobotLogFile);
-            }
-            if (!empty($aValeurs[2])) {
-                $sTemp = $aValeurs[1] . "=" . $aValeurs[2];
-                $aValeurs[1] = $sTemp;
-            }
-            $aAllParams[$aValeurs[0]] = $aValeurs[1];
-            writeToLog(str_replace('[aValeurs[0]]', $aValeurs[0], INFO_DB_PARAM) . $aValeurs[1], $this->sRobotLogFile);
-        }
-        return $aAllParams;
-    }
-
-    /**
-     * Cette méthode permet d'éxécuter une ligne de commande et de stocker les paramètres dans un fichier
-     * \param $sCommand Ligne de commande à éxécuter.
-     */
-    function execute($sCommand, $sFMELogFile) {
-        $sExeName = "FME";
-        if (!$this->bErreur) {
-            set_time_limit(0);
-            //$sResultCommande = exec('"'.$this->aProperties["fme_path"].'" APPLY_SETTINGS "Python/Python Interpreter"', $aResult, $iResult);
-            $sResultCommande = exec('"' . $this->aProperties["fme_path"] . '" APPLY_SETTINGS "Python/Use Custom Python" false', $aResult, $iResult);
-            //writeToLog(INFO_INFORM.$sExeName."| ".'"'.$this->aProperties["fme_path"].'" APPLY_SETTINGS "Python/Python Interpreter"', $this->sRobotLogFile);
-            //writeToLog(INFO_INFORM.$sExeName."| ".$sResultCommande, $this->sRobotLogFile);
-            // $sResultCommande = exec('"'.$this->aProperties["fme_path"].'" APPLY_SETTINGS "Python/Python Interpreter" "C:/apps/FME-2015.1-b15477-32/fmepython27/python27.dll"', $aResult, $iResult);
-            // writeToLog(INFO_INFORM.$sExeName."| APPLY_SETTINGS \"Python/Python Interpreter\" \"C:/apps/FME-2015.1-b15477-32/fmepython27\"", $this->sRobotLogFile);
-            // writeToLog(INFO_INFORM.$sExeName."| ".$sResultCommande, $this->sRobotLogFile);
-            $sResultCommande = exec($sCommand, $aResult, $iResult);
-            if ($sResultCommande == "") {
-                $aResultCommande[0] = true;
-            } else {
-                $aResultCommande = explode("|", $sResultCommande);
-            }
-            //Récupération d'une erreur.
-			if ($iResult !=0){
-            //if ($iResult || ($aResultCommande[0] != 0)) {
-                $this->bErreur = true;
-                if (sizeOf($aResultCommande) == 1)
-                    $this->bFmeCrash = false;
-            }
-            //Écriture dans le log
-            if ($this->bErreur) {
-                if (!empty($aResultCommande[1])) {
-                    if ($this->aProperties["convert_utf8"]) {
-                        $aResultCommande[1] = utf8_decode($aResultCommande[1]);
-                    }
-                    $this->sMessageErreur = "Erreur lors de l exécution de la commande." . $aResultCommande[1] . ".";
-                } else {
-                    $this->sMessageErreur = "Erreur lors de l exécution de la commande. Consultez le log du robot.";
-                }
-				$bExistFMELogFile = true;
-				 if (file_exists($sFMELogFile) === false) {
-					$bExistFMELogFile = false;
-				}
-                foreach ($aResult as $sValeur) {
-                    writeToLog(INFO_ERROR . "   " . "| " . $sValeur, $this->sRobotLogFile);
-					if ($bExistFMELogFile === false){
-						$monfichier = fopen($sFMELogFile, 'a');
-						fputs($monfichier, $sValeur. "\n");
-						fclose($monfichier);
-					}
-                }
-                writeToLog(INFO_COMMAND_ERROR . $sCommand . ".", $this->sRobotLogFile);
-            } else {
-                foreach ($aResult as $sValeur) {
-                    if (mb_detect_encoding($sValeur, "UTF-8, ISO-8859-1") != "UTF-8") {
-                        $sValeur = iconv("ISO-8859-1", "UTF-8", $sValeur);
-                    }
-                    writeToLog(INFO_INFORM . $sExeName . "| " . $sValeur, $this->sRobotLogFile);
-                }
-                writeToLog(INFO_SUCCESSFUL_TREATMENT, $this->sRobotLogFile);
-            }
-        }
-    }
-
-    /**
-     * Cette méthode permet de 7zipper des fichiers.
-     * \param $sZipDir Emplacement des fichiers à zipper.
-     * \param $sZipUrl URL du fichier zip.
-     * \param $sZipFileName Nom du fichier zip à compresser.
-     * \return L'url du fichier zip.
-     */
-    function zipFile($sZipDir, $sZipFileDir, $sZipUrl, $sZipFileName) {
-        writeToLog(str_replace('[sZipDir]', $sZipDir, INFO_FILE_COMPRESSION), $this->sRobotLogFile);
-        if (createZip($sZipDir, $sZipFileDir . '/' . $sZipFileName . '.zip', 'log')) {
-            $sZipFile = $sZipUrl . "/" . $sZipFileName . ".zip";
-            writeToLog(INFO_COMPRESSED_FILES . $sZipFile . ".", $this->sRobotLogFile);
-        } else {
-            $this->bErreur = true;
-            $sZipFile = "";
-            writeToLog(INFO_TREATMENT_FAILURE, $this->sRobotLogFile);
-            writeToLog(str_replace('[sZipFileDir]', $sZipFileDir, str_replace('[sZipDir]', $sZipDir, INFO_FILES_COMPRESSION_FAILURE)) . $sZipFileName, $this->sRobotLogFile);
-            $this->sMessageErreur = "Le traitement n\'a produit aucun résultat. Consultez son log.";
-        }
-        return $sZipFile;
-    }
-
-    function unZipSource($sParam) {
-        $this->sSource = $sParam;
-        // Si la chaine contient un accent, la chaine sera en UTF-8, la fonction file_exists et la fonction de dézippage ne gèrent pas utf-8, il faut donc convertir la chaine en ISO-8859-1
-        $bUtf8Param = false;
-        if (mb_check_encoding($sParam, 'UTF-8')) {
-            $sParam = utf8_decode($sParam);
-            $bUtf8Param = true;
-        }
-        // Si le fichier n'est pas trouvé alors il se trouve dans le répertoire upload
-        if (!file_exists($sParam))
-            $sParam = $this->aProperties["upload_dir"] . "/" . $sParam;
-
-        // If faut gérer l'ensemble des zip (.zip, .7z, .rar, bzip2, gzip, tar, wim, xz)
-        if (mb_eregi("(.ZIP)$", strtoupper($sParam), $aOccurence)) {
-            // Décompression du fichier zip.
-            $sDir = $this->unZipFile($sParam);
-        } else { // Le fichier uploadé n'est pas un fichier zippé
-            $sDir = $sParam;
-            $this->sSourceTemp = "";
-        }
-        // Si le paramètre passé était encodé en UTF-8 il faut le réencoder sinon problème avec les accents.
-        if ($bUtf8Param)
-            $sDir = utf8_encode($sDir);
-        return $sDir;
-    }
-
-    /**
-     * Cette méthode permet de dézipper un fichier.
-     * \param $sZipFile Le fichier zip à décompresser.
-     * \return L'emplacement des fichiers qui ont été extraits.
-     */
-    function unZipFile($sZipFile) {
-        if (!$this->bErreur) {
-            writeToLog(INFO_DECOMPRESSING_FILE . $sZipFile . ".", $this->sRobotLogFile);
-            // Les backslashes du chemin de la variable d'environnement TEMP sont remplacés par des slashes
-            $this->aProperties["extract_dir"] = str_replace("\\", "/", $this->aProperties["extract_dir"]);
-            $sExtractDir = $this->aProperties["extract_dir"] . "/" . $this->UniqFileName() . "/";
-            $this->sSourceTemp = $sExtractDir;
-            if (unZip($sZipFile, $sExtractDir)) {
-                writeToLog(INFO_FILE_COMPRESSION_DIRECTORY . $sExtractDir . ".", $this->sRobotLogFile);
-            } else {
-                $this->bErreur = true;
-                writeToLog(INFO_TREATMENT_FAILURE, $this->sRobotLogFile);
-                writeToLog(str_replace('[sZipFile]', $sZipFile, INFO_FILE_COMPRESSION_FAILURE) . $sExtractDir . ".", $this->sRobotLogFile);
-                $this->sMessageErreur = "Impossible de dézipper le fichier. Consultez le log du robot.";
-                $sExtractDir = "";
-            }
-            return $sExtractDir;
-        }
-    }
-
-    /*
-     * Fonction qui se charge de la mise à jour du paramètre "source" s'il existe
-     * $oGtfFmwParser : Objet GtfFmwParser contenant les GUI
-     * $oGui : Objet GUI de la source
-     * $sDirSource : Chaine de caractère contenant le chemin d'accés à la source de données
-     */
-
-    function updateSourceParam($oGui, $oGtfFmwParser, $sDirSource, $bUsePattern) {
-        $sdelimiterFichier = '"""';
-        $sdelimiterParam = '"';
-        $sSourceMacro = $sdelimiterFichier;
-		$aSourceMacro = array();
-        $i = 0;
-
-        if (is_dir($sDirSource)) {
-            $this->aExtension = $oGui->getExtensionArrayNoLower($oGui->sFiltreSource);
-            $iExtension = count($this->aExtension);
-            if (($this->aExtension[0] == "*.*" and $oGui->sType == "FILE_OR_URL") or $oGui->sType == "DIRNAME_SRC" or $oGui->sType == "SOURCE_GEODATABASE") {
-                writeToLog(INFO_VALID_DATA_SOURCE_FILE_EXTENSION . $this->aExtension[0], $this->sRobotLogFile);
-                $sSourceMacro.= $sdelimiterParam . $sDirSource . '/**/' . $sdelimiterParam;
-            } else {
-				if ($bUsePattern){
-					writeToLog(INFO_USE_PATTERN, $this->sRobotLogFile);
-					foreach ($this->aExtension as $sExtension) {
-						if ($sExtension != "*.*" or ( $sExtension == "*.*" and $iExtension == 1)) { // Si le filtre est différent de *.* (ex : *.mdb) ou si le filtre est seulement *.*. Si le filtre est multiple et que l'un d'eux est *.* (ex : *.*, *.mdb...), il ne sera pas pris en compte
-							$aExtension = explode(".", $sExtension);
-							if ($this->countFilesExtension($sDirSource, $aExtension[1]) > 0) {
-								if ($i != 0)
-									$sSourceMacro.= "<space>";
-								writeToLog(INFO_VALID_DATA_SOURCE_FILE_EXTENSION . $sExtension, $this->sRobotLogFile);
-								$sSourceMacro.= $sdelimiterParam . $sDirSource . '/**/' . $sExtension . $sdelimiterParam;
-								$i++;
-							}
-						}
-					}
-				}else{
-					writeToLog(INFO_NO_USE_PATTERN, $this->sRobotLogFile);
-					foreach ($this->aExtension as $sExtension) {
-						if ($sExtension != "*.*" or ( $sExtension == "*.*" and $iExtension == 1)) { // Si le filtre est différent de *.* (ex : *.mdb) ou si le filtre est seulement *.*. Si le 
-							$aExtension = explode(".", $sExtension);
-							$aSourceMacroTmp = array_merge($aSourceMacro, $this->returnFileListToString($sDirSource, $aExtension[1]));
-							$aSourceMacro = array_unique($aSourceMacroTmp);
-							$i++;
-						}
-					}
-					foreach ($aSourceMacro as $source) {
-						if ($sSourceMacro != $sdelimiterFichier){
-							$sSourceMacro.= "<space>";
-						}
-						$sSourceMacro.= $sdelimiterParam . $source . $sdelimiterParam;
-					}
-                }
-            }
-        }else {
-            $sSourceMacro.= $sdelimiterParam . $sDirSource . $sdelimiterParam;
-        }
-        $sSourceMacro .= $sdelimiterFichier;
-        $this->aParametre[$oGui->sDefault_Macro] = $sSourceMacro;
-		
-        return $sSourceMacro;
-    }
-
-    // Compte le nombre de fichier
-    // $sDirSource : Répertoire de base
-    // $sExtension : Filtre
-    function countFilesExtension($sDirSource, $sExtension) {
-        $num = 0;
-        if (!is_dir($sDirSource)) {
-            $path_parts = pathinfo($sDirSource);
-            if (is_file($sDirSource) && $path_parts['extension'] == $sExtension)
-                return 1;
-            else
-                return false;
-        }
-        foreach (scandir($sDirSource) AS $entry) {
-            if (!in_array($entry, array('..', '.')))
-                $num += $this->countFilesExtension($sDirSource . "/" . $entry, $sExtension);
-        }
-        return $num;
-    }
-	
-	function returnFileListToString($sDirSource, $sExtension) {
-        $aFileList = array();
-        if (!is_dir($sDirSource)) {
-            $path_parts = pathinfo($sDirSource);
-            if (is_file($sDirSource) && strtolower($path_parts['extension']) == strtolower($sExtension)){
-                array_push($aFileList,$sDirSource);
-			}
-            
-        }else{
-			foreach (scandir($sDirSource) AS $entry) {
-				if (!in_array($entry, array('..', '.'))){
-					$aFileListTmp = $aFileList;
-					$aFileList = array_merge($aFileListTmp,$this->returnFileListToString($sDirSource . "/" . $entry, $sExtension));
-				}
-				
-			}
-		}
-        return $aFileList;
-    }
-
-    /*
-     * Fonction qui se charge de la mise à jour du paramètre "source" s'il existe
-     * $oGtfFmwParser : Objet GtfFmwParser contenant les GUI
-     * $oGui : Objet GUI de la source
-     * $sDirSource : Chaine de caractère contenant le chemin d'accés à la source de données
-     */
-
-    function updateDestParam($oGui, $oGtfFmwParser, $sNewDir, $sDest) {
-        $this->aExtension = $oGui->getExtensionArray($oGui->sFiltreDest);
-        if ($sDest == "" && $oGui->sType != "DIRNAME") {
-            $sDest = $sNewDir;
-        }
-        $this->aParametre[$oGui->sDefault_Macro] = "";
-        $sDest = normalizeString($sDest);
-        $aDest = explode(".", $sDest);
-        if ($oGui->sType == "DIRNAME" or $oGui->sType == "DEST_GEODATABASE") {
-            $this->aParametre[$oGui->sDefault_Macro] = $this->aProperties["dir_export"] . "/gtf/" . $sNewDir . "/" . $sDest;
-            writeToLog(INFO_OUTPUT_DATA_DIRECTORY . $this->aParametre[$oGui->sDefault_Macro], $this->sRobotLogFile);
-        }
-        if ($oGui->sType == "FILENAME") {
-            if (count($aDest) > 1) { // Dans GTF, la valeur du champ [nom de fichier en sortie] comporte une extension. Ex : result.xls (le fichier résultat sera de l'excel et sera nommé result.
-                $sResult = $sDest;
-            } else {
-                $sResult = str_replace("*", $sDest, $this->aExtension[0]);
-            }
-            $this->aParametre[$oGui->sDefault_Macro].= $this->aProperties["dir_export"] . "/gtf/" . $sNewDir . '/' . $sResult;
-            $this->sDestination = $sResult;
-
-            writeToLog(INFO_OUTPUT_DATA_FILE . $this->aParametre[$oGui->sDefault_Macro], $this->sRobotLogFile);
-        }
-        else if ($oGui->sType == "FILENAME_EXISTING")
-            $this->aParametre[$oGui->sDefault_Macro] = $sDest;
-        return $this->aParametre[$oGtfFmwParser->sDestMacro];
-    }
-
-    /*     * *************************************************************************************** */
-    /*                                          Codage                                        */
-
-    function unichr($u) {
-        return mb_convert_encoding('&#' . intval($u) . ';', 'UTF-8', 'HTML-ENTITIES');
-    }
-
-    function ordutf8($string, &$offset) {
-        $code = ord(substr($string, $offset, 1));
-        if ($code >= 128) {        //otherwise 0xxxxxxx
-            if ($code < 224)
-                $bytesnumber = 2;                //110xxxxx
-            else if ($code < 240)
-                $bytesnumber = 3;        //1110xxxx
-            else if ($code < 248)
-                $bytesnumber = 4;    //11110xxx
-            $codetemp = $code - 192 - ($bytesnumber > 2 ? 32 : 0) - ($bytesnumber > 3 ? 16 : 0);
-            for ($i = 2; $i <= $bytesnumber; $i++) {
-                $offset ++;
-                $code2 = ord(substr($string, $offset, 1)) - 128;        //10xxxxxx
-                $codetemp = $codetemp * 64 + $code2;
-            }
-            $code = $codetemp;
-        }
-        $offset += 1;
-        if ($offset >= strlen($string))
-            $offset = -1;
-        return $code;
-    }
-
-    function encoderFME($sStr) {
-        //table de correcpondance des symboles UTF-8 avec les codes FME/GTF
-        // ATTENTION : laisser < > en premier sinon replace remplace les balises par d'autre balise
-        $aReplaceGTFToFMW = array("<" => "<lt>", ">" => "<gt>");
-        $sReplaced = $sStr;
-
-        //on gere les chevrons simultanèment pour ne pas gener l'encodage après
-        if (strpos($sReplaced, "<") !== false && strpos($sReplaced, ">") !== false) {
-            $sReplaced = strtr($sReplaced, $aReplaceGTFToFMW);
-        }
-
-        //on remplace tous les encodage par leurs symboles
-        for ($i = 0; $i < count($this->aReplaceGTF); $i++) {
-            if (strpos($sReplaced, $this->aReplaceGTF[$i]) !== false) {
-                $sReplaced = str_replace($this->aReplaceGTF[$i], $this->aReplaceFME[$i], $sReplaced);
-            }
-        }
-
-        // on encode les balises UTF-8 		
-
-        $offset = 0;
-        $iPos = 0;
-
-        while ($offset >= 0) {
-            $iCode = $this->ordutf8($sReplaced, $offset);
-            if ($iCode > 127) {
-                $cLetter = dechex($iCode);
-                while (strlen($sLetter) < 4) {
-                    $cLetter = "0" . $cLetter;
-                }
-                $sReplaced = str_replace($sReplaced[$iPos], "<u" . $cLetter . ">", $sReplaced);
-            }
-            $iPos += 1;
-        }
-
-        return $sReplaced;
-    }
-
-    function decoderFME($sStr) {
-        //table de correcpondance des symboles UTF-8 avec les codes FME/GTF
-        // ATTENTION : laisser < > en premier sinon replace remplace les balises par d'autre balise
-        $aReplaceFMWToGTF = array("<lt>" => "<", "<gt>" => ">");
-        $sReplaced = $sStr;
-
-        //on gere les chevrons simultanèment pour ne pas gener l'encodage après
-        if (strpos($sReplaced, "<lt>") !== false && strpos($sReplaced, "<gt>") !== false) {
-            $sReplaced = strtr($sReplaced, $aReplaceFMWToGTF);
-        }
-        //on remplace tous les encodage par leurs symboles
-        for ($i = 0; $i < count($this->aReplaceGTF); $i++) {
-            if (strpos($sReplaced, $this->aReplaceFME[$i]) !== false) {
-                $sReplaced = str_replace($this->aReplaceFME[$i], $this->aReplaceGTF[$i], $sReplaced);
-            }
-        }
-
-        // on decode les balises UTF-8 		
-        $matches = array();
-
-        preg_match_all("/<u[0-9a-fA-F]{4}>/", $sStr, $matches);
-
-        for ($i = 0; $i < count($matches[0]); $i++) {
-            $iCode = hexdec(substr($matches[0][$i], 2, 4));
-            $cChr = $this->unichr($iCode);
-            $sReplaced = str_replace($matches[0][$i], $cChr, $sReplaced);
-        }
-        return $sReplaced;
-    }
-
-    function isDecode($sStr) {
-        for ($i = 0; $i < count($this->aReplaceFME); $i++) {
-            if (strpos($sStr, $this->aReplaceFME[$i]) !== false && strpos($sStr, $this->aReplaceGTF[$i]) === false) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    function isEncode($sStr) {
-        for ($i = 0; $i < count($this->aReplaceFME); $i++) {
-            if (strpos($sStr, $this->aReplaceFME[$i]) === false && strpos($sStr, $this->aReplaceGTF[$i]) !== false) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /*     * *************************************************************************************** */
-
-    /*
-     *  Fonction qui permet de concaténer tous les paramètres nécessaire pour l'appel du TCL
-     *  et qui retourne $sChaine, la chaine des paramètres à passer au TCL
-     *  $oGtfFmwParser : Objet GtfFmwParser contenant les GUI
-     */
-
-    function getTclParams($oGtfFmwParser, $sNewDir) {
-        $aTGui = array();
-        $sChaine = "";
-		$bUsePattern = false;
-        foreach ($oGtfFmwParser->aGuiObject as $aGui) {
-            if ($aGui->sDefault_Macro != "") {
-                array_push($aTGui, $aGui);
-            }
-			if ($aGui->sDefault_Macro == "GTF_FORCE_PATTERN") {
-				if (strtolower($aGui->sDefaultValue) == "true"){
-					$bUsePattern = true;
-				}
-			}
-        }
-        foreach ($aTGui as $oGui) {
-            //Teste si le paramètre est une source
-            if ($oGui->bIsSource) {
-                if ($this->aParametre[$oGui->sDefault_Macro] != "" && substr($this->aParametre[$oGui->sDefault_Macro], 0, 7) != "<quote>") {
-                    $sDirSource = $this->unZipSource($this->aParametre[$oGui->sDefault_Macro]);
-                    $this->updateSourceParam($oGui, $oGtfFmwParser, $sDirSource, $bUsePattern);
-                }
-            }
-            if ($oGui->bIsDest) {
-                $sDest = $this->aParametre[$oGui->sDefault_Macro];
-                $this->updateDestParam($oGui, $oGtfFmwParser, $sNewDir, $sDest);
-            }
-
-            if ($this->aParametre[$oGui->sDefault_Macro] != "") {
-
-                if (!$oGui->bIsSource) {
-                    // Protection des guillemets de chaque valeur pour qu'ils soient correctement envoyé à traitement.tcl
-                    // Cette protection s'effectue uniquement pour les paramètre qui ne sont pas sources (un paramètre source est de ce type : """"param1"" ""param2"" ""param3"""" : les guillemets seraient donc protégé et cela fait planter l'exécution)
-                    //$this->aParametre[$oGui->sDefault_Macro] = str_replace('"', '""', $this->aParametre[$oGui->sDefault_Macro]);
-                }
-                $aBaliseToReplace = array('<GTF_EQUAL>', '<GTF_PIPE>');
-                $aReplacedBalise = array('=', '|');
-                $sGTFOutput = str_replace($aBaliseToReplace, $aReplacedBalise, $this->aParametre[$oGui->sDefault_Macro]);
-                switch ($oGui->sType) {
-                    case "FLOAT":
-                        $sGTFOutput = str_replace(",", ".", $sGTFOutput);
-                        if (!$this->isDecode($sGTFOutput))
-                            $sGTFOutput = $this->decoderFME($sGTFOutput);
-                        break;
-                    case "LOOKUP_CHOICE":
-                        if (!$this->isEncode($sGTFOutput))
-                            $sGTFOutput = $this->encoderFME($sGTFOutput);
-                        break;
-                    case "TEXT_EDIT" :
-                    case "TEXT_EDIT_OR_NUM" :
-                        if (!$this->isEncode($sGTFOutput)) {
-                            //$sGTFOutput = $this->decoderFME($sGTFOutput);
-                            $sGTFOutput = $this->encoderFME($sGTFOutput);
-                        }
-                        break;
-                    case "CHOICE":
-                    case "LOOKUP_LISTBOX":
-                        $sGTFOutput = str_replace('"', '""', $sGTFOutput);
-                        if (!$this->isDecode($sGTFOutput))
-                            $sGTFOutput = $this->decoderFME($sGTFOutput);
-                        break;
-                    default :
-                        //$sGTFOutput = str_replace('"', '""', $sGTFOutput);
-                        if (!$this->isDecode($sGTFOutput))
-                            $sGTFOutput = $this->decoderFME($sGTFOutput);
-                        break;
-                }
-                // Echappement des doubles quotes pour FME.
-                $sGTFOutput = str_replace('"', '\"', $sGTFOutput);
-                //
-                $sChaine .= " --" . $oGui->sDefault_Macro . " \"" . $sGTFOutput . "\"";
-            }
-        }
-
-        // $sChaine = substr($sChaine, 0, -1)."\"";
-        //$sChaine = substr($sChaine, 0, -1);
-        return $sChaine;
-    }
-
-    function listDir($sDossier, $iDemandeId) {
-        $ouverture = @opendir($sDossier);
-        if (!$ouverture)
-            return false;
-        while ($sFichier = readdir($ouverture)) {
-            if ($sFichier == '.' || $sFichier == '..')
-                continue;
-            if (is_dir($sDossier . $sFichier)) {
-                closedir($ouverture);
-                return true;
-            } else {
-                $path_parts = pathinfo($sDossier . $sFichier);
-                if ($sFichier != "fme_" . $iDemandeId . ".log") {
-                    closedir($ouverture);
-                    return true;
-                }
-            }
-        }
-        closedir($ouverture);
-        return False;
-    }
-
-    /*
-     * Fonction qui retourne le nom du fichier résultat qui sera zippé.
-     *  $sDossier correspond au chemin complet dans lequel les fichiers/dossiers résultats seront générés
-     *  $sNewDir correspond au numéro unique du dossier dans lequel les fichiers/dossiers résultats seront générés
-     *  $iDemandeId correspond au numéro de la demande
-     * \return Retourne NULL (s'il y a plusieurs fichiers résultat à zipper) ou le fichier résultat qui sera zippé sous la forme 20140324141501876/ventes.xlsx
-     */
-
-    function CheckResult($sDossier, $sNewDir, $iDemandeId) {
-        $ouverture = @opendir($sDossier);
-        $NbFile = 0;
-        while ($sFichier = readdir($ouverture)) {
-            if ($sFichier == '.' || $sFichier == '..')
-                continue;
-            if (is_dir($sDossier . $sFichier)) {
-                $NbFile = $NbFile + 2;
-            } else {
-                $path_parts = pathinfo($sDossier . $sFichier);
-                if ($sFichier != "fme_" . $iDemandeId . ".log") {
-                    $NbFile = $NbFile + 1;
-                }
-            }
-        }
-        closedir($ouverture);
-        $ouverture = @opendir($sDossier);
-        if ($NbFile != 1) {
-            return "";
-        } else {
-            $pattern = '/^' . str_replace("*", ".+", str_replace(".", "\\.", $this->aProperties['not_compressed_extension'])) . '$/';
-            while ($sFichier = readdir($ouverture)) {
-                if ($sFichier == '.' || $sFichier == '..')
-                    continue;
-                if ($sFichier != "fme_" . $iDemandeId . ".log") {
-                    if (preg_match($pattern, $sFichier)) {
-                        return $sNewDir . "/" . $sFichier;
-                    } else {
-                        return "";
-                    }
-                }
-            }
-        }
-        closedir($ouverture);
-    }
-
-    /*
-     * fonction qui lance la génération de la ligne de commande, l'éxécution de la demande et la mise en forme du résultat
-     * \return Retourne les fichiers résultant zippés
-     */
-
-    function Process() {
-        $oGtfFmwParser = new GtfFmwParser($this->aProperties["workspace_dir"] . "/" . $this->sFmwFileName);
-        // Création du répertoire de sortie des données
-        $sNewDir = $this->UniqFileName();
-		 if (!file_exists($this->aProperties["dir_export"] . "/gtf/")){
-			mkdir($this->aProperties["dir_export"] . "/gtf/");
-		}
-        $sDestDir = $this->aProperties["dir_export"] . "/gtf/" . $sNewDir;
-        mkdir($sDestDir);
-        // Création de l'URL de téléchargement des données
-        $sDestUrl = $this->aProperties["url_export"] . "/gtf/" . $sNewDir;
-
-        //1 Initialisation & calcul du chemin d'accés du fichier TCL
-        $sCommandLine = '"' . $this->aProperties["fme_path"] . '" "' . getenv("GTF_HOME") . "/" . utf8_decode($this->sFmwFileName) . '"';
-
-
-
-        //3 Ajout des paramètres propres au traitement
-        $sTclParams = $this->getTclParams($oGtfFmwParser, $sNewDir);
-        if ($sTclParams != "")
-            $sCommandLine .= $sTclParams;
-
-		$aTGui = array();
-        $sChaine = "";
-		  // Ajout des paramètres GTF_ s'ils sont associés à un paramètre publié du traitement
-        foreach ($oGtfFmwParser->aGuiObject as $aGui) {
-			switch($aGui->sDefault_Macro) {
-				 case 'GTF_ORDER_ID':
-					$sCommandLine .= " --GTF_ORDER_ID \"" . $this->iDemandeId . "\"";
-					break;
-				 case 'GTF_SHARED_DIR':
-					$sCommandLine .= " --GTF_SHARED_DIR \"" . $this->aProperties["shared_dir"] . "\"";
-					break;
-				 case 'GTF_CONNECTION_STRING':
-					if ($aGui->sType == "PASSWORD"){
-						 $sCommandLine .= "  --GTF_CONNECTION_STRING \"" . $this->aProperties["server"] . "," . $this->aProperties["port"] . "," . $this->aProperties["database"] . "," . $this->aProperties["login_scheduler"] . "," . $this->aProperties["password_scheduler"] . "\"";
-					}
-					 break;
-				 case 'GTF_REST_URL':
-					 $sCommandLine .= "  --GTF_REST_URL \"" . $this->aProperties["web_server_name"] . "/" . $this->aProperties["services_alias"] . "/\"";
-					 break;
-				 //case 'GTF_FORCE_PATTERN':
-			}
-           
-        }
-        /*
-         * 2 Passage des paramètres généraux
-         * - FMWFILENAME : fichier Fmw
-         * - LOG_ROBOT : fichier log du robot
-         * - LOG_FILENAME : fichier log pour FME
-         */
-        $sCommandLine.= " -LOG_FILENAME \"" . $sDestDir . "/fme_" . $this->iDemandeId . ".log\" 2>&1";
-        writeToLog(INFO_GTF_HOME . getenv("GTF_HOME"), $this->sRobotLogFile);
-        writeToLog(INFO_FME_PATH . getenv("FME_PATH"), $this->sRobotLogFile);
-        writeToLog(INFO_TREATMENT_COMMAND_LINE . $sCommandLine, $this->sRobotLogFile);
-
-        //4 Lancement de la ligne de commande
-        $this->sLogFme = $sNewDir . "/fme_" . $this->iDemandeId . ".log";
-        $sSql = "UPDATE " . $this->aProperties['schema_gtf'] . ".order SET log_url='" . $this->sLogFme . "' WHERE order_id=" . $this->iDemandeId;
-        $this->oBd->execute($sSql);
-        $this->execute($sCommandLine, $sDestDir . "/fme_" . $this->iDemandeId . ".log");
-        writeToLog(INFO_TREATMENT_COMMAND_LINE . $sCommandLine, $this->sRobotLogFile);
-        if (file_exists($sDestDir . "/fme_" . $this->iDemandeId . ".log") == false) {
-            $this->sLogFme = "";
-        }
-        $bHasFile = $this->listDir($sDestDir, $this->iDemandeId);
-        if ($this->sSourceTemp != "" && $this->aProperties["debug_mode"] == false) {
-            clearDir($this->sSourceTemp);
-        }
-        if ($bHasFile) {
-            $sIsToZip = $this->CheckResult($sDestDir, $sNewDir, $this->iDemandeId);
-
-            if ($sIsToZip == "") {
-                //Compression en zip des fichiers résultant. Le parametres Array() permet de filtrer les extensions à compresser. Exemples : Array("shp","shx","dbf") ; Array("*")		
-                $sZipFile = $this->zipFile($sDestDir, $sDestDir, $sDestUrl, $this->iDemandeId);
-                $sZipFile = str_replace($sDestUrl, $sNewDir, $sZipFile);
-            } else {
-                $sZipFile = str_replace($sDestUrl, $sNewDir, $sIsToZip);
-            }
-        } else {
-            $sZipFile = "";
-        }
-        return $sZipFile;
-    }
-
-}
-
-?>
diff --git a/gtf.engine/gtf.engines/constants.inc b/gtf.engine/gtf.engines/constants.inc
deleted file mode 100755
index d4d3d5abb37ce3086688dd8504f039f67584fec3..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/constants.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-// Définition des constantes
-if (!defined("CR")) {
-	define ("CR",chr(13));
-	define ("LF",chr(10));
-	define ("HT",chr(9));
-}
-define ("VM_FALSE",0);
-define ("VM_TRUE",1);
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/engine b/gtf.engine/gtf.engines/engine
deleted file mode 100755
index 53b01477108bf7e5f77ce52eb5b0c48c458e2dd6..0000000000000000000000000000000000000000
Binary files a/gtf.engine/gtf.engines/engine and /dev/null differ
diff --git a/gtf.engine/gtf.engines/engine.exe b/gtf.engine/gtf.engines/engine.exe
deleted file mode 100755
index 299a2bc1ca56950134511a6694772126a6f3c03c..0000000000000000000000000000000000000000
Binary files a/gtf.engine/gtf.engines/engine.exe and /dev/null differ
diff --git a/gtf.engine/gtf.engines/engine.php b/gtf.engine/gtf.engines/engine.php
deleted file mode 100755
index 70a33d3367b59ef821e172a0f9b9d13d36d9ef03..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/engine.php
+++ /dev/null
@@ -1,787 +0,0 @@
-<?php
-
-/**
- * \file engine.php
- * \brief engine.php \n \n Ce fichier contient un programme php.
- *
- * Ce programme permet de traiter des demandes de traitements.
- *
- * \author Fabien Marty <fabien.marty@veremes.com>
- */
-$properties["id_gtf_engine"] = $_SERVER['argv'][1]; //Identifiant du moteur calculé à partir de la valeur passée en argument
-$ErrorLicense = $_SERVER['argv'][2]; //Identifiant du moteur calculé à partir de la valeur passée en argument
-
-require_once ("php_engine_conf.inc");
-require_once ("vmlib/BD.class.inc");
-require_once ("vmlib/logUtil.inc");
-require_once("vmlib/dbUtil.inc");
-require_once ("gtf_lib/phpUtility.inc");
-require_once("vmlib/phpUtil.inc");
-
-require_once ("properties_engine.inc");
-require_once ("engine.sql.inc");
-//require_once ("PEAR/Mail.php");
-require_once("Ldap.class.inc");
-
-require_once("vmlib/Email.class.inc");
-require_once("gtf_lib/gtf_object/Order.class.inc");
-require_once("vmlib/error.inc");
-require_once 'string.inc';
-
-loadLang("engines", $properties["language"]);
-if ($ErrorLicense == "0") {
-    //writeToLog('|INFO |PHP| dump prop '. var_export($properties,true),$properties["engine_log_file"]);
-
-    $sDateDebut = new DateTime(date("Y-m-d H:i:s"));
-    $sDateFin = new DateTime(date("Y-m-d H:i:s"));
-
-    //Connexion à la base de données de Données gtf : pas de mot de passe pour le robot
-    $oBd = new BD($properties['login_scheduler'], $properties['password_scheduler'], $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
-    //$oBd = new Vm  ('admin', 'admin', $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
-    if ($oBd->erreurRencontree) {
-        writeToLog(INFO_BASE_CONNECTION_ERROR . $properties["database"], $properties["engine_log_file"]);
-    } else {
-        writeToLog(INFO_BASE_CONNECTION . $properties["database"], $properties["engine_log_file"]);
-
-        //Recherche du Moteur V2 (ExecuteWithParams)
-        //Selection du chemin fme
-        $aParams = array();
-        $aParams['sSchemaGtf'] = array('value' => $properties['schema_gtf'], 'type' => 'schema_name');
-        $aParams['gtf_engine_id'] = array('value' => $properties['id_gtf_engine'], 'type' => 'number');
-        $oPDOResult = $oBd->executeWithParams($aSql['pgsql']['select_fme_path'], $aParams);
-
-        if ($aRecord = $oBd->ligneSuivante($oPDOResult)) {
-            $properties["fme_path"] = $aRecord['fme_path'];
-        } else {
-            $properties["fme_path"] = '';
-        }
-        putenv("FME_PATH=" . $properties["fme_path"]);
-        putenv("GTF_HOME=" . $properties["workspace_dir"] . "/");
-
-        /*
-        // Traitement des demandes en fonction du moteur
-        $iNbTraitement = 0;
-        $aUserToRefresh = Array();
-        //$sSql = $aSql[$properties["sgbd"]]["boucle_1"];
-        if (TesteHeureCreuse($properties["heure_creuse_min"], $properties["heure_creuse_max"])) { // On est en heure creuse (0 correspond à "Heure Creuse")
-            $iPlageHorraire = 0;
-            $sSql = $aSql[$properties["sgbd"]]["boucle_1"];
-        } else { // On est PAS en heure creuse
-            $iPlageHorraire = 0;
-            $sSql = $aSql[$properties["sgbd"]]["boucle_2"];
-        }
-        $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-        $sSql = str_replace("[iPriorityId]", $iPlageHorraire, $sSql);
-        $sSql = str_replace("[iIdGtfEngine]", $properties["id_gtf_engine"], $sSql);
-        if ($properties["nbr_order_max"] < 1)
-            $properties["nbr_order_max"] = 1;
-        $sSql = str_replace("[iNnbrOrderMax]", $properties["nbr_order_max"], $sSql);
-        $sEnErreur = 2;
-        $oPDOResult = $oBd->execute($sSql);
-        //*/
-        
-        ///*
-        // Traitement des demandes en fonction du moteur7
-        // Gestion des heures creuses
-        $iNbTraitement = 0;
-        $aUserToRefresh = Array();
-        $aParams = array();
-
-        $iPlageHorraire = 0;
-        
-        $aParams['sSchemaGtf'] = array('value' => $properties['schema_gtf'], 'type' => 'schema_name');
-        $aParams['iPriorityId'] = array('value' => $iPlageHorraire, 'type' => 'number');
-        $aParams['iIdGtfEngine'] = array('value' => $properties["id_gtf_engine"], 'type' => 'number');
-        if ($properties["nbr_order_max"] < 1)
-            $properties["nbr_order_max"] = 1;
-        $aParams['iNnbrOrderMax'] = array('value' => $properties["nbr_order_max"], 'type' => 'number');
-
-        $sEnErreur = 2;
-        
-        if (TesteHeureCreuse($properties["heure_creuse_min"], $properties["heure_creuse_max"])) { // On est en heure creuse (0 correspond à "Heure Creuse")
-            $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["boucle_1"], $aParams);
-        } else { // On est PAS en heure creuse
-            $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["boucle_2"], $aParams);
-        }
-        
-        while ($aDemande = $oBd->ligneSuivante($oPDOResult)) {
-            //test pour connaitre les nombres de tentatives de chaque demande
-            //if ($aDemande['attempt']>=1){    modif par og 26/04/13
-            if ($properties["max_attempt"] == '') {
-                $properties["max_attempt"] = 2;
-            }
-            if ($aDemande['attempt'] >= $properties["max_attempt"]) {
-                writeToLog(str_replace("[aDemande['order_id']]", $aDemande['order_id'], INFO_TOO_MANY_ORDER_ATTEMPT), $properties["engine_log_file"]);
-                $iStatut = 4;
-
-                /*
-                  //Mise à jour de la demande.
-                  $sDateTraitement = Date('Y-m-d H:i:s');
-                  $sSql = $aSql[$properties["sgbd"]]["update_demande"];
-                  $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                  $sSql = str_replace("[iStatut]", $iStatut, $sSql);
-                  $sSql = str_replace("[iNbSec]", 0, $sSql);
-                  $sSql = str_replace("[sMessage]", $sMessage, $sSql);
-                  $sSql = str_replace("[sDateTraitement]", $sDateTraitement, $sSql);
-                  $sSql = str_replace("[sResultat]", $sResultat, $sSql);
-                  $sSql = str_replace("[sLogFme]", $sLogFme, $sSql);
-
-                  $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
-                  $oPDOResult2 = $oBd->execute($sSql);
-                  // */
-
-                //Mise à jour de la demande V2
-                // Requete d'update de la demande
-                $aParams = array();
-                $aParams['sSchemaGtf'] = array('value' => $properties['schema_gtf'], 'type' => 'schema_name');
-                $aParams['iStatut'] = array('value' => $iStatut, 'type' => 'number');
-                $aParams['iNbSec'] = array('value' => 0, 'type' => 'number');
-                $aParams['sDateTraitement'] = array('value' => $sDateTraitement, 'type' => 'string');
-                $aParams['sResultat'] = array('value' => $sResultat, 'type' => 'string');
-                $aParams['sLogFme'] = array('value' => $sLogFme, 'type' => 'string');
-                $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
-                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande"], $aParams);
-
-                if ($oBd->erreurRencontree) {
-                    writeToLog(INFO_ORDER_UPDATE_ERROR . "(SQL : $sSql)", $properties["engine_log_file"]);
-                } else {
-                    writeToLog(INFO_ORDER_UPDATE, $properties["engine_log_file"]);
-                    // La demande passe en cours
-                    sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
-                        'action' => 'event',
-                        'service' => 'GtfEvents',
-                        'data' => array(
-                            'event' => 'order_started',
-                            'order' => array(
-                                'order_id' => $aDemande['order_id'],
-                                'order_status_id' => $aDemande['order_status_id'],
-                                'user_id' => $aDemande['user_id'],
-                                'workspace_id' => $aDemande['workspace_id']
-                            )
-                        )
-                    ));
-                }
-                $oPDOResult2 = $oBd->fermeResultat();
-            } else {
-
-                /*
-                  //Vérification des droits de l'utilsateur
-                  $sSql = $aSql[$properties["sgbd"]]["getLogin"];
-                  $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-                  $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-                  $oPDOResult2 = $oBd->execute($sSql);
-                  // */
-
-                //Vérification des droits de l'utilsateur
-                // Recuperation des login et droits de l'utilisateur en cour
-                $aParams = array();
-                $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
-                $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
-                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getLogin"], $aParams);
-
-                $aUser = $oBd->ligneSuivante($oPDOResult2);
-                $sGroupListId = getUserGroupsEngines($aUser["login"], $oBd, $properties["mixed_rights_management"]);
-                // Mise à jour du nombre de tentative dans la base
-                $iTentative = $aDemande['attempt'] + 1;
-                $sTable = $properties["schema_gtf"] . ".order";
-                $sChamp = "attempt";
-                $sWhere = "order_id";
-                $sListDemande = $aDemande['order_id'];
-                $oBd->updateLinkedTable($sTable, $sChamp, $sWhere, $sListDemande, $iTentative);
-
-                // Mise à jour de l'état de la demande de traitement
-                $oBd->updateLinkedTable($sTable, "order_status_id", $sWhere, $sListDemande, 5);
-
-                writeToLog(str_replace("[aDemande['order_id']]", $aDemande['order_id'], INFO_ORDER_PROCESSING), $properties["engine_log_file"]);
-                // OG 27/03/2013 for table job
-                $sBeginExecutionDate = Date('Y-m-d H:i:s');
-                $date = new DateTime();
-                $iTimeStampBegin = $date->getTimestamp(); // Pour calcul de la durée
-                // fin OG 27/03/2013 for job
-                // $sContenuMail = "";
-                $iNbTraitement = $iNbTraitement + 1;
-                $aUserToRefresh[$iNbTraitement] = $aDemande['user_id'];
-                $aUserToRefresh[$iNbTraitement] = $aDemande['user_id'];
-
-                /*
-                  //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
-                  $sSql = $aSql[$properties["sgbd"]]["right_user"];
-                  $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                  $sSql = str_replace("[sGroupListId]", $sGroupListId, $sSql);
-                  $oPDOResult2 = $oBd->execute($sSql);
-                  // */
-
-                ///*
-                //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
-                $aParams = array();
-                $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                $aParams['sGroupListId'] = array('value' => str_replace(',', '|', $sGroupListId), 'type' => 'group');
-                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["right_user"], $aParams);
-                //*/
-
-                if ($oBd->erreurRencontree) {
-                    writeToLog(INFO_REQUEST_ERROR . $sSql, $properties["engine_log_file"]);
-                    writeToLog(INFO_PHP_ERROR, $properties["engine_log_file"]);
-                    $sMessage = "Erreur SQL.";
-                    // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
-                    $iStatut = $sEnErreur;
-                } else {
-                    if ($sGroupListId == "0") {
-                        $bAutorisationDemande = true;
-                    } else {
-                        $bAutorisationDemande = false;
-                        while ($aTraitementsAutorise = $oBd->ligneSuivante($oPDOResult2)) {
-
-                            if ($aTraitementsAutorise['workspace_id'] == $aDemande['workspace_id']) {
-                                $bAutorisationDemande = true;
-                            }
-                        }
-                    }
-                    if ($bAutorisationDemande == true) {
-                        if (class_exists("Traitement.class.inc") == false) {
-                            include_once ("Traitement.class.inc");
-                        }
-
-                        /*
-                          // recuperer le nom du fichier fmw a traiter
-                          $sSql = $aSql[$properties["sgbd"]]["select_traitement"];
-                          $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                          $sSql = str_replace("[iWorkspaceId]", $aDemande['workspace_id'], $sSql);
-                          $oPDOResult3 = $oBd->execute($sSql);
-                          // */
-
-                        ///*
-                        // recuperer le nom du fichier fmw a traiter
-                        $aParams = array();
-                        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                        $aParams['iWorkspaceId'] = array('value' => $aDemande['workspace_id'], 'type' => 'number');
-                        $oPDOResult3 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["select_traitement"], $aParams);
-                        //*/
-
-                        $aTraitement = $oBd->ligneSuivante($oPDOResult3);
-                        $iEmailTemplateId = $aTraitement['email_template_id'];
-                        $oPDOResult3 = $oBd->fermeResultat();
-                        // $sSql = $aSql[$properties["sgbd"]]["select_transit_dir"];
-                        // $oPDOResult4 = $oBd->execute($sSql);
-                        // $aAction = $oBd->ligneSuivante ($oPDOResult4);
-                        // $properties["transit_dir"] = $aAction["value"];
-                        // $oPDOResult4 = $oBd->fermeResultat();
-                        //Lancement du traitement correspondant à la demande.
-                        $aLicence = getFmeLicence($properties['fme_path']);
-                        $bLicenceIsValid = $aLicence['valid'];
-                        $aLicence['valid'] = 1;
-                        if ($aLicence['valid'] == 1) {
-                            $sDateDebut = new DateTime(date("Y-m-d H:i:s"));
-                            $oTraitement = new Traitement($oBd, $aDemande['order_id'], $properties["engine_log_file"], $aDemande['wk_params'], $properties, $aDemande['workspace_id'] . "/fme/" . $aTraitement['fmw_file']);
-
-                            if (!$oTraitement->bErreur) {
-                                $sResultat = $oTraitement->Process();
-                                $sDateFin = new DateTime(date("Y-m-d H:i:s"));
-                                $sLogFme = $oTraitement->sLogFme;
-                            }
-                            //Gestion des erreurs.
-
-                            if ($oTraitement->bFmeCrash)
-                                $iStatut = 1;
-                            elseif ($oTraitement->bErreur) {
-                                if ($aTraitement["failed_action_id"] != "" && $oTraitement->sSource != "") {
-                                    $aSource = explode("/", $oTraitement->sSource);
-                                    $sSourceDirectory = $properties["upload_dir"] . $aSource[0];
-
-                                    if ($aTraitement["failed_action_id"] == 1) {
-                                        clearDir($sSourceDirectory);
-                                        writeToLog(INFO_DELETE_DIRECTORY . $sSourceDirectory . '.', $properties["engine_log_file"]);
-                                    } elseif ($aTraitement["failed_action_id"] == 2) {
-                                        /*
-                                          $sSql = $aSql[$properties["sgbd"]]["select_user"];
-                                          $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-                                          $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-                                          $oPDOResult2 = $oBd->execute($sSql);
-                                          // */
-                                        ///*
-                                        // Selection de l'utilisateur
-                                        $aParams = array();
-                                        $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
-                                        $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
-                                        $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["select_user"], $aParams);
-                                        //*/
-                                        if ($oBd->erreurRencontree) {
-                                            writeToLog(INFO_GET_USER_INFO_ERROR . $aDemande['user_id'] . ". (SQL = " . $sSql . ")", $properties["engine_log_file"]);
-                                        } else {
-                                            $aUser = $oBd->ligneSuivante($oPDOResult2);
-
-                                            $sUser = userToFolder($aUser["name"]);
-                                            if (file_exists($properties["transit_dir"])) {
-                                                if (!file_exists($properties["transit_dir"] . "/failed/")) {
-                                                    mkdir($properties["transit_dir"] . "/failed/");
-                                                }
-                                                if (!file_exists($properties["transit_dir"] . "/failed/" . $sUser)) {
-                                                    mkdir($properties["transit_dir"] . "/failed/" . $sUser);
-                                                }
-                                                if (!file_exists($properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"])) {
-                                                    mkdir($properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"]);
-                                                }
-                                                rename($sSourceDirectory, $properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"]);
-                                                writeToLog(str_replace('[sSourceDirectory]', $sSourceDirectory, INFO_MOVING_FILE) . $properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"] . '.', $properties["engine_log_file"]);
-                                            } else {
-                                                writeToLog(str_replace("[properties['transit_dir']]", $properties['transit_dir'], INFO_DIRECTORY_NOT_FOUND_ENGINE), $properties["engine_log_file"]);
-                                                $iStatut = $sEnErreur;
-                                            }
-                                        }
-                                    }
-                                }
-                                $sMessage = $oTraitement->sMessageErreur;
-                                $iStatut = $sEnErreur;
-                                $sResultat = '';
-                                // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
-                                // $sContenuMail .= "Contactez l'administrateur pour consulter le fichier de log du robot.<br>";
-                                $sLienLogFme = $sLogFme;
-                            } else {
-                                if ($aTraitement["success_action_id"] != "" && $oTraitement->sSource != "") {
-                                    $aSource = explode("/", $oTraitement->sSource);
-                                    $sSourceDirectory = $properties["upload_dir"] . $aSource[0];
-                                    if ($aTraitement["success_action_id"] == 1) {
-                                        clearDir($sSourceDirectory);
-                                        writeToLog(INFO_DELETE_DIRECTORY . $sSourceDirectory . '.', $properties["engine_log_file"]);
-                                    } elseif ($aTraitement["success_action_id"] == 2) {
-
-                                        /*
-                                          $sSql = $aSql[$properties["sgbd"]]["select_user"];
-                                          $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-                                          $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-                                          $oPDOResult2 = $oBd->execute($sSql);
-                                          // */
-                                        ///*
-                                        //Selection de l'utilisateur
-                                        $aParams = array();
-                                        $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
-                                        $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
-                                        $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["select_user"], $aParams);
-                                        //*/
-
-                                        if ($oBd->erreurRencontree) {
-                                            writeToLog(INFO_GET_USER_INFO_ERROR . $aDemande['user_id'] . ". (SQL = " . $sSql . ")", $properties["engine_log_file"]);
-                                        } else {
-                                            $aUser = $oBd->ligneSuivante($oPDOResult2);
-                 
-                                            $sUser = userToFolder($aUser["name"]);
-                                            if (file_exists($properties["transit_dir"])) {
-                                                if (!file_exists($properties["transit_dir"] . "/success/")) {
-                                                    mkdir($properties["transit_dir"] . "/success/");
-                                                }
-                                                if (!file_exists($properties["transit_dir"] . "/success/" . $sUser)) {
-                                                    mkdir($properties["transit_dir"] . "/success/" . $sUser);
-                                                }
-                                                if (!file_exists($properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"])) {
-                                                    mkdir($properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"]);
-                                                }
-                                                rename($sSourceDirectory, $properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"]);
-                                                writeToLog(str_replace('[sSourceDirectory]', $sSourceDirectory, INFO_MOVING_FILE) . $properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"] . '.', $properties["engine_log_file"]);
-                                            } else {
-                                                writeToLog(str_replace("[properties['transit_dir']]", $properties['transit_dir'], INFO_DIRECTORY_NOT_FOUND_ENGINE), $properties["engine_log_file"]);
-                                                $iStatut = $sEnErreur;
-                                            }
-                                        }
-                                    }
-                                }
-                                $sMessage = "";
-                                $iStatut = 3;
-                                // $sContenuMail = "Votre demande de traitement '".$aDemande['workspace_nom']."' a réussi.<br>";
-                                if ($sResultat != "") {
-                                    // $sContenuMail .= '<A href="'.$properties["url_export"]."/".$sResultat.'">Télécharger le résultat</A><br>';
-                                    $sLienResultat = $sResultat;
-                                }
-                                $sLienLogFme = $sLogFme;
-                            }
-                            unset($oTraitement);
-                        } else {
-                            $iTentative = $iTentative - 1;
-                            $sTable = $properties["schema_gtf"] . ".order";
-                            $sChamp = "attempt";
-                            $sWhere = "order_id";
-                            $sListDemande = $aDemande['order_id'];
-                            $oBd->updateLinkedTable($sTable, $sChamp, $sWhere, $sListDemande, $iTentative);
-                            writeToLog(INFO_INVALID_FME_LICENCE_FILE, $properties["engine_log_file"]);
-                            writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["engine_log_file"]);
-                            $sMessage = "Invalid FME licence file. ";
-                            // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
-                            $iStatut = 1;
-                            $sLienLogFme = 'Non disponible';
-                        }
-                    } else {
-                        writeToLog(INFO_NO_USER_GRANT . $aDemande['workspace_nom'] . ' n\'a pas été défini.', $properties["engine_log_file"]);
-                        writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["engine_log_file"]);
-                        $sMessage = "Vous n''avez pas les droits nécessaires pour réaliser ce traitement.";
-                        // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
-                        $iStatut = 6;
-
-                        if (file_exists($sLogFme)) {
-                            $sLienLogFme = $sLogFme;
-                        } else {
-                            $sLienLogFme = 'Non disponible';
-                        }
-                    }
-                }
-                $oPDOResult2 = $oBd->fermeResultat();
-
-                //Mise à jour de la demande.
-
-                if ($iStatut == 3) {
-                    /*
-                      $sSql = $aSql[$properties["sgbd"]]["update_message"];
-                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
-                      $oPDOResult2 = $oBd->execute($sSql);
-                      // */
-                    ///*
-                    // Mise a jour du message
-                    $aParams = array();
-                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
-                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_message"], $aParams);
-                    //*/
-                    if ($oBd->erreurRencontree) {
-                        writeToLog(INFO_TEST_REQUEST_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
-                    }
-                    // Fin - OG 27/03/2013 for table job
-                    $oPDOResult2 = $oBd->fermeResultat();
-                }
-                if ($iStatut == 2 || $iStatut == 4) {
-
-                    /*
-                      $sSql = $aSql[$properties["sgbd"]]["delete_message"];
-                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
-                      $oPDOResult2 = $oBd->execute($sSql);
-                      // */
-                    ///*
-                    
-                    // Mise a jour du message
-                    $aParams = array();
-                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
-                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_message"], $aParams);
-                    //*/
-
-                    if ($oBd->erreurRencontree) {
-                        writeToLog(INFO_TEST_REQUEST_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
-                    }
-                    // Fin - OG 27/03/2013 for table job
-                    $oPDOResult2 = $oBd->fermeResultat();
-                }
-                $sDateTraitement = Date('Y-m-d H:i:s');
-
-                /*
-                $sSql = $aSql[$properties["sgbd"]]["update_demande"];
-                $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                if ($iStatut != 1) {
-                    $timeFirst = strtotime(date_format($sDateDebut, 'Y-m-d H:i:s'));
-                    $timeSecond = strtotime(date_format($sDateFin, 'Y-m-d H:i:s'));
-                    $diff = $timeSecond - $timeFirst;
-                    $iNbSec = $diff;
-                } else {
-                    $iNbSec = "NULL";
-                }
-                // OG 27/03/2013 for table job
-                $date = new DateTime();
-                $iTimeStampEnd = $date->getTimestamp();
-                $iDelay = $iTimeStampEnd - $iTimeStampBegin;
-                $sSql = str_replace("[iNbSec]", $iDelay, $sSql);
-                $sSql = str_replace("[$iStatut]", $iStatut, $sSql);
-                /* $sSql = str_replace("[sMessage]", $sMessage, $sSql); *//*
-                $sSql = str_replace("[sDateTraitement]", $sDateTraitement, $sSql);
-                $sSql = str_replace("[sResultat]", utf8_encode($sResultat), $sSql);
-                $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
-                if ($sLogFme == "") {
-                    $sSql = str_replace("'[sLogFme]'", "NULL", $sSql);
-                } else {
-                    $sSql = str_replace("[sLogFme]", $sLogFme, $sSql);
-                }
-
-                $oPDOResult2 = $oBd->execute($sSql);
-                //*/
-
-                //*
-                // Mise a jour de la demande
-                  $aParams = array();
-                  $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                  if ($iStatut != 1) {
-                  $timeFirst = strtotime(date_format($sDateDebut, 'Y-m-d H:i:s'));
-                  $timeSecond = strtotime(date_format($sDateFin, 'Y-m-d H:i:s'));
-                  $diff = $timeSecond - $timeFirst;
-                  $iNbSec = $diff;
-                  } else {
-                  $iNbSec = "NULL";
-                  }
-                  // OG 27/03/2013 for table job
-                  $date = new DateTime();
-                  $iTimeStampEnd = $date->getTimestamp();
-                  $iDelay = $iTimeStampEnd - $iTimeStampBegin;
-                  $aParams['iNbSec'] = array('value' => $iDelay, 'type' => 'number');
-                  $aParams['iStatut'] = array('value' => $iStatut, 'type' => 'number');
-                  $aParams['sDateTraitement'] = array('value' => $sDateTraitement, 'type' => 'string');
-                  $aParams['sResultat'] = array('value' =>  utf8_encode($sResultat), 'type' => 'string');
-                  $aParams['iOrderId'] = array('value' =>  $aDemande["order_id"], 'type' => 'number');
-                  if ($sLogFme == "") {
-                  $aParams['sLogFme'] = array('value' =>  "NULL", 'type' => 'string');
-                  } else {
-                  $aParams['sLogFme'] = array('value' =>  $sLogFme, 'type' => 'string');
-                  }
-
-                  $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande"], $aParams);
-                  // */
-
-
-                if ($oBd->erreurRencontree) {
-                    writeToLog(INFO_ORDER_UPDATE_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
-                } else {
-                    writeToLog(INFO_ORDER_UPDATE, $properties["engine_log_file"]);
-                    // La demande est terminée avec un résultat
-                    sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
-                        'action' => 'event',
-                        'service' => 'GtfEvents',
-                        'data' => array(
-                            'event' => 'order_finished_with_result',
-                            'order' => array(
-                                'order_id' => $aDemande['order_id'],
-                                'order_status_id' => $aDemande['order_status_id'],
-                                'user_id' => $aDemande['user_id'],
-                                'workspace_id' => $aDemande['workspace_id']
-                            )
-                        )
-                    ));
-                }
-                if ($iStatut != 1) {
-                    /*
-                      $sSql = $aSql[$properties["sgbd"]]["insertJob"];
-                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
-                      $sSql = str_replace("[iWorkspaceId]", $aDemande["workspace_id"], $sSql);
-                      $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-                      $sSql = str_replace("[sBeginExecutionDate]", $sBeginExecutionDate, $sSql);
-                      $sSql = str_replace("[iDelay]", $iDelay, $sSql);
-                      $sSql = str_replace("[iGtfEngineId]", $properties["id_gtf_engine"], $sSql);
-                      $sSql = str_replace("[iStatut]", $iStatut, $sSql);
-                      //writeToLog('|INFORM|PHP|Test requête OG : '.$sSql,$properties["engine_log_file"]);
-                      $oPDOResult2 = $oBd->execute($sSql);
-                      // */
-                    ///*
-                    // Insert de schemaGtf
-                    $aParams = array();
-                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
-                    $aParams['iWorkspaceId'] = array('value' => $aDemande["workspace_id"], 'type' => 'number');
-                    $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
-                    $aParams['sBeginExecutionDate'] = array('value' => $sBeginExecutionDate, 'type' => 'string');
-                    $aParams['iDelay'] = array('value' => $iDelay, 'type' => 'number');
-                    $aParams['iGtfEngineId'] = array('value' => $properties["id_gtf_engine"], 'type' => 'number');
-                    $aParams['iDelay'] = array('value' => $iDelay, 'type' => 'number');
-                    $aParams['iStatut'] = array('value' => $iStatut, 'type' => 'number');
-                    //writeToLog('|INFORM|PHP|Test requête OG : '.$sSql,$properties["engine_log_file"]);
-                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["insertJob"], $aParams);
-                    //*/
-                    if ($oBd->erreurRencontree) {
-                        writeToLog(INFO_TEST_REQUEST_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
-                    }
-                    // Fin - OG 27/03/2013 for table job
-                    $oPDOResult2 = $oBd->fermeResultat();
-                }
-                // Mise à jour de la demande si resultat est vide
-                if ($sResultat == "") {
-
-                    /*
-                      $sSql = $aSql[$properties["sgbd"]]["update_demande_resultat_null"];
-                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
-                      $oPDOResult2 = $oBd->execute($sSql);
-                      // */
-
-                    ///*
-                    // Mise a jour de la demande si resultat null
-                    $aParams = array();
-                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
-                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande_resultat_null"], $aParams);
-                    //*/
-
-                    if ($oBd->erreurRencontree) {
-                        writeToLog(INFO_ORDER_UPDATE_ERROR . ' (' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
-                    } else {
-                        writeToLog(INFO_INFO_ORDER_UPDATE_NULL, $properties["engine_log_file"]);
-                        // La demande est terminée où en erreur
-                        sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
-                            'action' => 'event',
-                            'service' => 'GtfEvents',
-                            'data' => array(
-                                'event' => 'order_finished_or_error',
-                                'order' => array(
-                                    'order_id' => $aDemande['order_id'],
-                                    'order_status_id' => $aDemande['order_status_id'],
-                                    'user_id' => $aDemande['user_id'],
-                                    'workspace_id' => $aDemande['workspace_id']
-                                )
-                            )
-                        ));
-                    }
-                    $oPDOResult2 = $oBd->fermeResultat();
-                }
-
-                // Notification par e-mail.
-                $bMailToSend = false;
-                switch (strtoupper(trim($aDemande['email_option_id']))) {
-                    case 1:
-                        $bMailToSend = True;
-                        break;
-                    case 2:
-                        $bMailToSend = False;
-                        break;
-                    case 3:
-                        if ($iStatut == $sEnErreur) {
-                            $bMailToSend = True;
-                        }
-                        break;
-                    case 4:
-                        if ($iStatut != $sEnErreur) {
-                            $bMailToSend = True;
-                        }
-                        break;
-                    default:
-                        $bMailToSend = True;
-                }
-
-                // Licence invalide.
-                if ($iStatut == 2 && !$bLicenceIsValid) {
-                    // Mise à jour de l'état de la demande de traitement (en attente).
-                    $oBd->updateLinkedTable($properties["schema_gtf"] . ".order", "order_status_id", "order_id", $aDemande['order_id'], 1);
-                    // Licence invalide : 1 mail par jour max.
-                    $sToday = date('d/m/Y');
-                    $sMailLicenceFile = __DIR__ . '\mail_licence.txt';
-                    if (file_exists($sMailLicenceFile))
-                        if (file_get_contents($sMailLicenceFile) == $sToday)
-                            $bMailToSend = false;
-                    file_put_contents($sMailLicenceFile, $sToday);
-                    // Mise à jour du nombre de tentative dans la base.
-                    $oBd->updateLinkedTable($properties["schema_gtf"] . ".order", "attempt", "order_id", $aDemande['order_id'], 0);
-                }
-                
-                // Envoi du mail.
-                if ($bMailToSend == true) {
-                    /*
-                      $sSql = $aSql[$properties["sgbd"]]["select_user"];
-                      $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-                      $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-                      $oPDOResult2 = $oBd->execute($sSql);
-                      // */
-                    ///*
-                    
-                    //Mise a jour de la demande si resultat null
-                    /*
-                    $aParams = array();
-                    $aParams['iOrderId'] = array('value' => $aDemande['order_id'], 'type' => 'number');
-                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande_resultat_null"], $aParams);
-                    if ($oBd->erreurRencontree) {
-                        writeToLog(INFO_GET_USER_INFO_ERROR . $aDemande['user_id'] . ". (SQL = " . $sSql . ")", $properties["engine_log_file"]);
-                    } else {
-                    */
-                        // $aUser = $oBd->ligneSuivante ($oPDOResult2);
-                        // $sContenuMail = "Bonjour ".$aUser["name"].",<br><br><br>".$sContenuMail;
-                        // $sContenuMail .= "<br><br><cite><h6>Cet e-mail a été envoyé par un robot, merci de ne pas répondre.</h6></cite><br>";
-                        //	
-
-                        if (empty($iEmailTemplateId))
-                            $iEmailTemplateId = $properties['default_mail_model'];
-
-                        /*
-                          // Nom des moteurs GTF et FME
-                          $sSql = $aSql[$properties["sgbd"]]["get_gtf_engine_name"];
-                          $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                          $sSql = str_replace('[gtf_engine_id]', $aDemande['gtf_engine_id'], $sSql);
-                          $oPDOResult2 = $oBd->execute($sSql);
-                          // */
-                        ///*
-                        // Nom des moteurs GTF et FME
-                        $aParams = array();
-                        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                        $aParams['gtf_engine_id'] = array('value' => $aDemande['gtf_engine_id'], 'type' => 'number');
-                        $oPDOResult2 = $oBd->executeWithParams($sSql = $aSql[$properties["sgbd"]]["get_gtf_engine_name"], $aParams);
-                        //*/
-
-
-                        if ($oBd->erreurRencontree) {
-                            writeToErrorLog(ERROR_0001);
-                        } else
-                            $aRow = $oBd->ligneSuivante($oPDOResult2);
-
-                        // URL de téléchargement du résultat
-                        $sResultUrl = '';
-                        if ($sResultat != "")
-                            $sResultUrl = '<a href="' . $properties["url_export"] . "/gtf/" . $sResultat . '">Télécharger le résultat</a>';
-
-                        // Dates
-                        $sOrderDate = date_format(date_create($aDemande['order_date']), 'd/m/Y H:i:s');
-
-                        // Envoi du mail
-                        $aObjects = array();
-                        if (!empty($sMessage))
-                            $aObjects['error'] = $sMessage;
-                        $aObjects['oOrder'] = new OrderLib($oBd, $aDemande["order_id"], $properties, "v_order");
-                        $aObjects['oOrder']->formatOrderEmail();
-                        $oEmail = new Email($oBd, $iEmailTemplateId, $properties, $aObjects);
-                        if (!empty($oEmail->oEmailTemplate->name))
-                            $oEmail->send();
-                    //}
-                    $oPDOResult2 = $oBd->fermeResultat();
-                } else {
-                    // pas d'envoi de mail
-                    writeToLog(INFO_NO_MAIL_SEND, $properties["engine_log_file"]);
-                }
-            } //fin du if sur les tentatives
-            //fin de while	
-        }
-        if ($iNbTraitement >= 1) {
-            //Crée ou modifie le fichier de maj de l'application pour l'utilisateur.
-            writeToLog(INFO_END_ORDER_PROCESSING, $properties["engine_log_file"]);
-        }
-        $oPDOResult = $oBd->fermeResultat();
-    }
-} else {
-    writeToErrorLog(constant($ErrorLicense));
-}
-
-//Teste si le traitement est autorisé si la demande est en heure creuse.
-//retourne true si le traitement est autorisé, retourne false si le traitement n'est pas autorisé.
-function TesteHeureCreuse($sHeureMin, $sHeureMax) {
-    $sHeure = date('H');
-    $sMinute = date('i');
-    $aHeureMin = explode(":", $sHeureMin);
-    $aHeureMax = explode(":", $sHeureMax);
-    $bMax = false;
-    $bMin = false;
-    //Test de l'heure minimale.
-    if ($sHeure > $aHeureMin[0]) {
-        $bMin = true;
-    } else {
-        if ($sHeure == $aHeureMin[0] && $sMinute >= $aHeureMin[1]) {
-            $bMin = true;
-        }
-    }
-    //Test de l'heure maximale. 
-    if ($sHeure < $aHeureMax[0]) {
-        $bMax = true;
-    } else {
-        if (($aHeureMax[0] < $aHeureMin[0]) && ($sHeure < 24)) {
-            $bMax = true;
-        }
-        if ($sHeure == $aHeureMax[0] && $sMinute <= $aHeureMax[1]) {
-            $bMax = true;
-        }
-    }
-    if ($bMin && $bMax) {
-        return true;
-    } else {
-        return false;
-    }
-}
-
-?>
diff --git a/gtf.engine/gtf.engines/engine.sql.inc b/gtf.engine/gtf.engines/engine.sql.inc
deleted file mode 100755
index 3a36a236f9eefc973449705b4cd9de69dee1e0b7..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/engine.sql.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-//Requête pour engine.php pgsql
-$aSql['pgsql']['boucle_1']='SELECT "order".*, rt_priority.priority_id, rt_priority.label_id as priorite_libelle_id, workspace.name as workspace_nom FROM ([sSchemaGtf]."order" LEFT JOIN [sSchemaGtf].rt_priority ON "order".priority_id = rt_priority.priority_id) LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id WHERE (order_status_id = 1 or order_status_id = 5) AND "order".period_id IS NULL AND "order".deleted IS not TRUE AND "order".gtf_engine_id=[iIdGtfEngine] AND "order".priority_id >= [iPriorityId] ORDER BY "order".priority_id ASC, "order".order_id ASC LIMIT [iNnbrOrderMax]';
-$aSql['pgsql']['boucle_2']='SELECT "order".*, rt_priority.priority_id, rt_priority.label_id as priorite_libelle_id, workspace.name as workspace_nom FROM ([sSchemaGtf]."order" LEFT JOIN [sSchemaGtf].rt_priority ON "order".priority_id = rt_priority.priority_id) LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id WHERE (order_status_id = 1 or order_status_id = 5) AND "order".period_id IS NULL AND "order".deleted IS not TRUE AND "order".gtf_engine_id=[iIdGtfEngine] AND "order".priority_id >  [iPriorityId] ORDER BY "order".priority_id ASC, "order".order_id ASC LIMIT [iNnbrOrderMax]';
-$aSql['pgsql']['right_user']='SELECT workspace."workspace_id" FROM [sSchemaGtf].workspace RIGHT JOIN [sSchemaGtf].workspace_group ON workspace.workspace_id = workspace_group.workspace_id  GROUP BY workspace."workspace_id", workspace_group."group_id" HAVING workspace_group."group_id" IN ([sGroupListId]) ORDER BY workspace."workspace_id" ASC';
-$aSql['pgsql']['update_demande']="UPDATE [sSchemaGtf].order SET length_sec = [iNbSec], order_status_id=[iStatut], execution_date=[sDateTraitement], result_url=[sResultat], log_url=[sLogFme] WHERE order_id=[iOrderId]";
-$aSql['pgsql']['update_demande_resultat_null']="UPDATE [sSchemaGtf].order SET result_url=NULL WHERE order_id=[iOrderId]";
-$aSql['pgsql']['select_user']='SELECT * FROM [sSchemaFramework].user WHERE "user_id"=[iUserId]';
-$aSql['pgsql']['select_traitement']='SELECT * FROM [sSchemaGtf].workspace WHERE workspace_id=[iWorkspaceId]';
-//$aSql['pgsql']['select_transit_dir']='SELECT value FROM [sSchemaGtf].property WHERE property=\'$properties["transit_dir"]\'';
-$aSql['pgsql']['select_fme_path']='select local_path as fme_path from [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine where fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND gtf_engine.gtf_engine_id = [gtf_engine_id]';
-$aSql['pgsql']['update_message']="UPDATE [sSchemaGtf].message SET status=1 WHERE order_id=[iOrderId]";
-$aSql['pgsql']['delete_message']="DELETE FROM [sSchemaGtf].message where order_id=[iOrderId]";
-$aSql['pgsql']['get_gtf_engine_name'] = 'SELECT gtf_engine.name AS gtf_engine_name,fme_engine.name AS fme_engine_name FROM [sSchemaGtf].gtf_engine,[sSchemaGtf].fme_engine WHERE gtf_engine.fme_engine_id=fme_engine.fme_engine_id AND gtf_engine_id=[gtf_engine_id]';
-$aSql['pgsql']["getLogin"] = 'SELECT "login" from [sSchemaFramework]."user" where user_id = [iUserId]';
-$aSql['pgsql']["insertJob"] = 'INSERT INTO [sSchemaGtf].job(order_id, workspace_id, "user_id", execution_date, length_sec, engine_id, order_status_id) VALUES ([iOrderId], [iWorkspaceId], [iUserId], [sBeginExecutionDate] , [iDelay], [iGtfEngineId], [iStatut])';
-?>
diff --git a/gtf.engine/gtf.engines/lang_engines/en-lang.inc b/gtf.engine/gtf.engines/lang_engines/en-lang.inc
deleted file mode 100755
index be577b8a73f3ac1d5a237a13e6597b69177e3c0d..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/lang_engines/en-lang.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-//Error Licence
-define('E001', "Orders unprocessed: Invalid lincense file");
-define('E002', "Orders unprocessed: Expired license file");
-define('E003', "Orders unprocessed: Number of the GTF engine upper than available engines");
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/lang_engines/fr-lang.inc b/gtf.engine/gtf.engines/lang_engines/fr-lang.inc
deleted file mode 100755
index 7d5d50467c79c859e3bbc9b6426827a4d139e006..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/lang_engines/fr-lang.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-//Error Licence
-define('E001', "Demandes non trait�es : Fichier de licence invalide");
-define('E002', "Demandes non trait�es : Fichier de licence expir�");
-define('E003', "Demandes non trait�es : Num�ro du moteur GTF sup�rieur au nombre de moteurs disponibles");
-
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/php_engine_conf.inc b/gtf.engine/gtf.engines/php_engine_conf.inc
deleted file mode 100755
index 6985372b36c29afb9c6db09e3c4867eb379ea49b..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/php_engine_conf.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-set_include_path(dirname($_SERVER["PHP_SELF"]). PATH_SEPARATOR .dirname($_SERVER["PHP_SELF"]).'/../vas/rest/conf'. PATH_SEPARATOR .dirname($_SERVER["PHP_SELF"]).'/../vas/rest/class');
-ini_set ('error_log', dirname($_SERVER["PHP_SELF"]).'/php/log/php.log');
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/properties_engine.inc b/gtf.engine/gtf.engines/properties_engine.inc
deleted file mode 100755
index faf47c8dec9ca0a95a8bc1dc4d39883301b1394f..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/properties_engine.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-require_once ("properties.inc");
-$properties["robot_root_dir"] = str_replace("\\","/",dirname($_SERVER["PHP_SELF"])); // Chemin du répertoire courant : gtf.engines
-if ($properties["id_gtf_engine"] != '') {
-	$subdir = '/engine_'.$properties["id_gtf_engine"];
-} else {
-	$subdir = '/subscription';
-}
-
-$properties["engine_log_home"] = $properties['vas_home']."/log/engines/".date($properties['log_period']).$subdir;
-$properties["debug_log_file"] = $properties["engine_log_home"]."/debug.log";
-$properties["engine_log_file"] = $properties["engine_log_home"]."/engine.log";
-$properties["notify_log_file"] = $properties["engine_log_home"]."/notify.log";
-$properties["sql_log_file"] = $properties["engine_log_home"]."/sql.log";
-$properties["subscription_log_file"] = $properties["engine_log_home"]."/subscription.log";
-$properties["error_log_file"] = $properties['vas_home']."/log/engines"."/error.log";
-
-$properties['web_server_name'] = 'https://dev.veremes.net';
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/regex2.dll b/gtf.engine/gtf.engines/regex2.dll
deleted file mode 100755
index f84a847a0de92fc59fa2ff8494ff700e62b87326..0000000000000000000000000000000000000000
Binary files a/gtf.engine/gtf.engines/regex2.dll and /dev/null differ
diff --git a/gtf.engine/gtf.engines/string.inc b/gtf.engine/gtf.engines/string.inc
deleted file mode 100755
index 24e8c0e4dad3153051f23879cd9a3c5e5e9c66b4..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/string.inc
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-// subscription.php
-	define('INFO_BASE_CONNECTION_ERROR', '|FATAL |PHP|Connexion impossible a la base ');
-	define('INFO_BASE_CONNECT', '|INFORM|PHP|Connect to ');
-	define('INFO_SUBSCRIPTION_PROCESSING', '|INFORM|PHP|Processing subscription order_id= ');
-	define('INFO_REQUEST_ERROR', '|FATAL |PHP| Erreur lors de l éxécution de la requête : ');
-	define('INFO_PHP_ERROR', '|ERROR|PHP| .');
-	define('INFO_ORDER_CREATED', '|INFORM|PHP|Order [iNouvelId] has been created.');
-	define('INFO_ORDER_CREATION_ERROR', '|ERROR|PHP|Problème lors de la création d\'un nouvel enregistrement dans la table "demande"');
-	define('INFO_CHECK_SQL_LOG', '|FATAL |PHP|Consultez le log sql.');
-	define('INFO_NO_USER_GRANT', '|FATAL |PHP|L utilisateur n a pas les droits nécessaires pour réaliser un traitement :');
-	define('INFO_CONTACT_ADMINISTRATOR', '|ERROR|PHP|Contactez l\'administrateur.');
-	define('INFO_CHECK_ORDER_FILES', '***************** Vérification des fichiers présents pour la demande [aDemande["order_id"]] *******************');
-	define('INFO_CHECK_DIRECTORY', '|INFORM|PHP|Check directory ');
-	define('INFO_MOVE_DIRECTORY', '|INFORM|PHP|Move directory from ');
-	define('INFO_MOVE_FILE', '|INFORM|PHP|Move file ');
-	define('INFO_DIRECTORY_NOT_FOUND_SUBSCRIPTION', "|ERROR|PHP| Le dossier [sFolder] n'existe pas. Contactez l'administrateur et vérifiez le dossier configuré dans l'interface de configuration de surveillance des dossier");
-	define('INFO_ORDER_PERIOD_NOT_FOUND', "|ERROR|PHP| La période d'abonnement n°[iPeriodeId] n'existe pas. Contactez l'administrateur et vérifiez la période d'abonnement ajoutée dans l'utilitaire pycron");
-	define('INFO_END_ORDER_PROCESSING', '***************** Fin du traitement des demandes *******************');
-	
-// Traitement.class.inc
-	define('INFO_RESOURCES', '|INFORM|PHP| Ressources : robot.php, Traitement.class.inc, Paramètres = [sParams], Fmw = [this->sFmwFileName]');
-	define('INFO_NULL_ELEMENT', '|WARN  |PHP| Un élément est null lors de la création de la demande : ');
-	define('INFO_DB_PARAM', 'Params : [aValeurs[0]] - Valeur : ');
-	define('INFO_ERROR', '|ERROR|');
-	define('INFO_COMMAND_ERROR', '|ERROR|PHP| Erreur lors de l exécution de la commande : ');
-	define('INFO_INFORM', '|INFORM|');
-	define('INFO_SUCCESSFUL_TREATMENT', '|INFORM|PHP| Traitement réussi.');
-	define('INFO_FILE_COMPRESSION', '|INFORM|PHP| Compression des fichiers du répertoire [sZipDir] en zip.');
-	define('INFO_TREATMENT_FAILURE', '|FATAL |PHP| Treatment failure.');
-	define('INFO_FILES_COMPRESSION_FAILURE', '|ERROR|PHP| Impossible de zipper les fichiers du répertoire [sZipDir] vers [sZipFileDir] dans fichier ');
-	define('INFO_COMPRESSED_FILES', '|INFORM|PHP| Compressed files : ');
-	define('INFO_DECOMPRESSING_FILE', '|INFORM|PHP| Décompression du fichier ');
-	define('INFO_FILE_COMPRESSION_FAILURE', '|ERROR|PHP| Impossible de dézipper le fichier [sZipFile] vers ');
-	define('INFO_FILE_COMPRESSION_DIRECTORY', '|INFORM|PHP| Fichiers décompressés vers ');
-	define('INFO_VALID_DATA_SOURCE_FILE_EXTENSION', '|INFORM|PHP| Extension valide pour le fichier de la source de données : ');
-	define('INFO_OUTPUT_DATA_DIRECTORY', '|INFORM|PHP| Répertoire de sortie des données : ');
-	define('INFO_OUTPUT_DATA_FILE', '|INFORM|PHP| Fichier de sortie des données : ');
-	define('INFO_GTF_HOME', '|INFORM|PHP| GTF_HOME=');
-	define('INFO_FME_PATH', '|INFORM|PHP| FME_PATH=');
-	define('INFO_TREATMENT_COMMAND_LINE', '|INFORM|PHP| Ligne de commande exécutant le traitement : ');
-	define('INFO_NO_USE_PATTERN', '|INFORM|PHP| Utilisation des noms de fichier, sans utilisation des motifs');
-	define('INFO_USE_PATTERN', '|INFORM|PHP|  Utilisation des motifs ');
-	
-// engine.php
-	define('INFO_BASE_CONNECTION', '|INFORM|PHP| Connexion à la base de données ');
-	define('INFO_TOO_MANY_ORDER_ATTEMPT', "|INFORM|PHP| La demande [aDemande['order_id']] n'a pas été traitée suite à de trop nombreuses tentatives.");
-	define('INFO_ORDER_UPDATE_ERROR', '|ERROR|PHP| Impossible de mettre à jour la demande. ');
-	define('INFO_ORDER_UPDATE', '|INFORM|PHP| Mise à jour de la demande.');
-	define('INFO_ORDER_PROCESSING', "***************** Traitement de la demande [aDemande['order_id']] *******************");
-	define('INFO_DELETE_DIRECTORY', '|INFORM|PHP| Supression du dossier ');
-	define('INFO_GET_USER_INFO_ERROR', "|ERROR|PHP| Impossible de récupérer les informations sur l'utilisateur numéro ");
-	define('INFO_MOVING_FILE', '|INFORM|PHP| Déplacement du dossier [sSourceDirectory] vers le dossier ');
-	define('INFO_DIRECTORY_NOT_FOUND_ENGINE', "|ERROR|PHP| Le dossier [properties['transit_dir']] n'existe pas.");
-	define('INFO_INVALID_FME_LICENCE_FILE', '|FATAL |PHP| Invalid FME Licence file.');
-	define('INFO_TEST_REQUEST_ERROR', '|ERROR|PHP|Requête test en erreur. ');
-	define('INFO_INFO_ORDER_UPDATE_NULL', '|INFORM|PHP| Mise à jour de la demande (resultat null).');
-	define('INFO_NO_MAIL_SEND', "|INFORM|PHP| Aucun mail n'a été envoyé ");
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/subscription.bat b/gtf.engine/gtf.engines/subscription.bat
deleted file mode 100755
index f1830d76cc9f1ade733005ddb559e81b70133b3c..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/subscription.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-set GTF_ENGINE_HOME=%~dp0
-set PHP_HOME=%GTF_ENGINE_HOME%php
-rem %1 correspond au param�tre pass� par pycron
-"%PHP_HOME%\php.exe" "%GTF_ENGINE_HOME%\subscription.php" %1
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/subscription.php b/gtf.engine/gtf.engines/subscription.php
deleted file mode 100755
index c12c25e37c1e5420fa297990d647fae3fce1ef97..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/subscription.php
+++ /dev/null
@@ -1,359 +0,0 @@
-<?php
-
-/**
- * \file subscription.php
- * \brief subscription.php \n \n Ce fichier contient un programme php.
- *
- * Ce programme permet de traiter les demandes d'abonnement de traitements.
- *
- * \author Laurent Panabieres <laurent.panabieres@veremes.com>
- */
-//set_include_path(dirname($_SERVER["PHP_SELF"]).'/../gtf.client'.';'.dirname($_SERVER["PHP_SELF"]).'/php/lib');
-//ini_set ('writeToErrorLog', dirname($_SERVER["PHP_SELF"]).'/php/php.log');
-require_once ("php_engine_conf.inc");
-require_once ("gtf_lib/GtfFmwParser.class.inc");
-require_once ("vmlib/Vm.class.inc");
-require_once ("vmlib/phpUtil.inc");
-require_once("vmlib/dbUtil.inc");
-//require_once ("robot_properties.inc");
-//require_once ("engine_properties.inc");
-$properties["id_gtf_engine"] = "";
-require_once ("properties_engine.inc");
-require_once ("subscription.sql.inc");
-require_once ("vmlib/logUtil.inc");
-require_once("Ldap.class.inc");
-require_once 'vmlib/error.inc';
-require_once 'string.inc';
-
-//writeToLog('|INFO  |PHP| dump prop '. var_export($properties,true),$properties["subscription_log_file"]);
-
-/*
-  // Création du dossier journalier pour l'écriture du log
-  if (!is_dir($properties["engine_log_home"]. "/".date($properties["log_period"]))){
-  // Le dossier pour l'écritude du log n'existe pas, il est créé
-  if (!mkdir($properties["engine_log_home"]. "/".($properties["log_period"]), 0777, true)) {
-  writeToErrorLog(ERROR_0025.$properties["engine_log_home"]. "/".date($properties["log_period"]).'"');
-  }
-  }
- */
-//Pas besoin de mot de passe pour le robot
-$oBd = new Vm($properties["login_scheduler"], $properties['password_scheduler'], $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
-if ($oBd->erreurRencontree) {
-    writeToLog(INFO_BASE_CONNECTION_ERROR . $properties["database"], $properties["subscription_log_file"]);
-} else {
-    writeToLog(INFO_BASE_CONNECT . $properties["database"], $properties["subscription_log_file"]);
-    // Traitement des demandes d'abonnement.
-    $iNbTraitement = 0;
-    // Récupération de l'identifiant de la période d'abonnement qui est lancé !
-    $iPeriodeId = $_SERVER['argv'][1];
-    
-    /*
-    $sSql = $aSql[$properties["sgbd"]]["verif_period_id"];
-    $sSql = str_replace("[iOrderPeriodId]", $iPeriodeId, $sSql);
-    $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-    $oPDOResult = $oBd->execute($sSql);
-    */
-    
-    // Récupération de l'identifiant de la période d'abonnement qui est lancé !
-    $aParams = array();
-    $aParams['iOrderPeriodId'] = array('value' => $iPeriodeId, 'type' => 'number');
-    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-    $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["verif_period_id"], $aParams);
-
-    if ($oBd->ligneSuivante($oPDOResult) != "") {
-        
-        /*
-        $sSql = $aSql[$properties["sgbd"]]["abonnement"];
-        $sSql = str_replace("[iOrderPeriodId]", $iPeriodeId, $sSql);
-        $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-        $oPDOResult = $oBd->execute($sSql);
-         */
-        
-        // Recuperation des éléments de gestion des abonnements Gtf
-        $aParams = array();
-        $aParams['iOrderPeriodId'] = array('value' => $iPeriodeId, 'type' => 'number');
-        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-        $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["abonnement"], $aParams);
-        
-        while ($aDemande = $oBd->ligneSuivante($oPDOResult)) {
-            if (is_null($aDemande['order_date'])) {
-                $sDateTraitement = $aDemande['order_date'];
-            } else {
-                $sDateTraitement = $aDemande['execution_date'];
-            }
-            
-            /*
-            $sSql = $aSql[$properties["sgbd"]]["getLogin"];
-            $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-            $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-            $oPDOResult2 = $oBd->execute($sSql);
-            */
-            
-            // Récupération des information de connection de l'utilisateur et de ses droits
-            $aParams = array();
-            $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
-            $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
-            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getLogin"], $aParams);
-            
-            $aUser = $oBd->ligneSuivante($oPDOResult2);
-            $sGroupListId = getUserGroupsEngines($aUser["login"], $oBd, $properties["mixed_rights_management"]);
-            writeToLog(INFO_SUBSCRIPTION_PROCESSING . $aDemande["order_id"], $properties["subscription_log_file"]);
-            $iNbTraitement = $iNbTraitement + 1;
-            //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
-            /*
-            $sSql = $aSql[$properties["sgbd"]]["right_user"];
-            $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-            $sSql = str_replace("[sGroupListId]", $sGroupListId, $sSql);
-            $oPDOResult2 = $oBd->execute($sSql);
-            */
-            
-            // Verification des droits utilisateur sur la demande
-            $aParams = array();
-            $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-            $aParams['sGroupListId'] = array('value' => str_replace(',', '|', $sGroupListId), 'type' => 'group');
-            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["right_user"], $aParams);
-
-            if ($oBd->erreurRencontree) {
-                writeToLog(INFO_REQUEST_ERROR . $sSql, $properties["subscription_log_file"]);
-                writeToLog(INFO_PHP_ERROR, $properties["subscription_log_file"]);
-            } else {
-                if ($sGroupListId == "0") {
-                    $bAutorisationDemande = true;
-                } else {
-                    $bAutorisationDemande = false;
-                    while ($aTraitementsAutorise = $oBd->ligneSuivante($oPDOResult2)) {
-                        if ($aTraitementsAutorise['workspace_id'] == $aDemande['workspace_id']) {
-                            $bAutorisationDemande = true;
-                        }
-                    }
-                }
-                if ($bAutorisationDemande == true) {
-                    //Création d'une nouvelle demande.
-                    require_once("gtf_lib/gtf_object//Order.class.inc");
-                    $iNouvelId = $oBd->insert($properties["schema_gtf"], "order", Array("priority_id" => 1, "workspace_id" => $aDemande['workspace_id'], "order_status_id" => 1, "user_id" => $aDemande['user_id'], "period_id" => "", "order_date" => date("Y-m-d H:i:s"), "execution_date" => null, "wk_params" => $aDemande['wk_params'], "result_url" => "", "message" => "", "email_option_id" => $aDemande['email_option_id'], "gtf_engine_id" => $aDemande['gtf_engine_id'], "email_notifications" => $aDemande['email_notifications']), $properties["schema_gtf"] . ".seq_order", "order_id");
-                    $oOrder = new OrderLib($oBd, -1, $properties);
-                    $oOrder->getIdEngine($iNouvelId, "order", $aDemande['workspace_id']);
-                    $oOrder->update();
-                    if ($iNouvelId != "") {
-                        writeToLog(str_replace('[iNouvelId]', $iNouvelId, INFO_ORDER_CREATED), $properties["subscription_log_file"]);
-                        // L'abonnement crée une demande
-                        sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
-                            'action' => 'event',
-                            'service' => 'GtfEvents',
-                            'data' => array(
-                                'event' => 'subscription_creating_order',
-                                'order' => array(
-                                    'order_id' => $aDemande['order_id'],
-                                    'order_status_id' => $aDemande['order_status_id'],
-                                    'user_id' => $aDemande['user_id'],
-                                    'workspace_id' => $aDemande['workspace_id']
-                                )
-                            )
-                        ));
-                    } else {
-                        writeToLog(INFO_ORDER_CREATION_ERROR, $properties["subscription_log_file"]);
-                        writeToLog(INFO_CHECK_SQL_LOG, $properties["subscription_log_file"]);
-                    }
-                } else {
-                    writeToLog(INFO_NO_USER_GRANT . $aDemande['name'] . ' n\'as pas été définie.', $properties["subscription_log_file"]);
-                    writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["subscription_log_file"]);
-                    $iNouvelId = $oBd->update($properties["schema_gtf"], "order", Array("enabled" => FALSE), "order_id", $aDemande["order_id"], "");
-                }
-            }
-            $oPDOResult2 = $oBd->fermeResultat();
-        }
-        /*
-        $sSql = $aSql[$properties["sgbd"]]["dir_survey"];
-        $sSql = str_replace("[iOrderPeriodId]", $iPeriodeId, $sSql);
-        $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-        $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-        writeToErrorLog($sSql);
-        $oPDOResult = $oBd->execute($sSql);
-        */
-        
-        $aParams = array();
-        $aParams['iOrderPeriodId'] = array('value' => $iPeriodeId, 'type' => 'number');
-        $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
-        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-        $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["dir_survey"], $aParams);
-        
-        while ($aDemande = $oBd->ligneSuivante($oPDOResult)) {
-            if (is_null($aDemande['order_date'])) {
-                $sDateTraitement = $aDemande['order_date'];
-            } else {
-                $sDateTraitement = $aDemande['execution_date'];
-            }
-            //writeToLog(str_replace('[aDemande["order_id"]]', $aDemande["order_id"], INFO_CHECK_ORDER_FILES), $properties["subscription_log_file"]); 
-            writeToLog(INFO_CHECK_DIRECTORY . $aDemande["condition"] . ' for survey order_id=' . $aDemande["order_id"], $properties["subscription_log_file"]);
-            //parcours du dossier de la condition de la demande
-            $sFolder = utf8_decode($aDemande["condition"]);
-            if (is_dir($sFolder)) {
-                $MyDirectory = opendir($sFolder);
-                while ($Entry = @readdir($MyDirectory)) {
-
-                    if ($Entry != '.' && $Entry != '..') {
-                        //deplacement vers le dossier upload en fonction du type
-                        $bCopie = false;
-                        $bIsFile = false;
-                        $sUnique = UniqFileName();
-                        if (is_dir($sFolder . '/' . $Entry)) {
-                            $bIsFile = false;
-                            $bCopie = rename($sFolder . "/" . $Entry, $properties["upload_dir"] . "/" . $sUnique);
-                            writeToLog(INFO_MOVE_DIRECTORY . $sFolder . "/" . $Entry . ' to ' . $properties["upload_dir"] . "/" . $sUnique, $properties["subscription_log_file"]);
-                        } else {
-                            $bIsFile = true;
-                            mkdir($properties["upload_dir"] . "/" . $sUnique);
-                            $bCopie = rename($sFolder . "/" . $Entry, $properties["upload_dir"] . "/" . $sUnique . "/" . $Entry);
-                            writeToLog(INFO_MOVE_FILE . $sFolder . "/" . $Entry . ' to ' . $properties["upload_dir"] . "/" . $sUnique . "/" . $Entry, $properties["subscription_log_file"]);
-                        }
-                        if ($bCopie) {
-                            //creation de la demande
-                            //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
-                            /*
-                            $sSql = $aSql[$properties["sgbd"]]["getLogin"];
-                            $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
-                            $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
-                            $oPDOResult2 = $oBd->execute($sSql);
-                            */
-                            
-                            // Récupération des infos utilisateurs
-                            $aParams = array();
-                            $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
-                            $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
-                            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getLogin"], $aParams);
-
-                            $aUser = $oBd->ligneSuivante($oPDOResult2);
-                            $sGroupListId = getUserGroupsEngines($aUser["login"], $oBd, $properties["mixed_rights_management"]);
-                            /*
-                            $sSql = $aSql[$properties["sgbd"]]["right_user"];
-                            $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
-                            $sSql = str_replace("[sGroupListId]", $sGroupListId, $sSql);
-                            $oPDOResult2 = $oBd->execute($sSql);
-                            */
-                            
-                            // Vérification des droits de l'utilisateurs pour la demande
-                            $aParams = array();
-                            $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
-                            $aParams['sGroupListId'] = array('value' => str_replace(',', '|', $sGroupListId), 'type' => 'group');
-                            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["right_user"], $aParams);
-
-                            if ($oBd->erreurRencontree) {
-                                writeToLog(INFO_REQUEST_ERROR . $sSql, $properties["subscription_log_file"]);
-                                writeToLog(INFO_PHP_ERROR, $properties["subscription_log_file"]);
-                            } else {
-                                if ($sGroupListId == "0") {
-                                    $bAutorisationDemande = true;
-                                } else {
-                                    $bAutorisationDemande = false;
-                                    while ($aTraitementsAutorise = $oBd->ligneSuivante($oPDOResult2)) {
-                                        if ($aTraitementsAutorise['workspace_id'] == $aDemande['workspace_id']) {
-                                            $bAutorisationDemande = true;
-                                        }
-                                    }
-                                }
-                                if ($bAutorisationDemande == true) {
-                                    //Création d'une nouvelle demande.
-                                    //writeToLog($properties["workspace_dir"],$properties["subscription_log_file"]);
-                                    $oGtfFmwParser = new GtfFmwParser($properties['vas_home'] . '/ws_data/gtf/workspace' . "/" . $aDemande['workspace_id'] . "/fme/" . $aDemande['fmw_file']);
-                                    $iNouvelId = "";
-
-                                    if ($bIsFile) {
-                                        $aDemande['wk_params'] = getParams($oGtfFmwParser, $sUnique . "/" . utf8_encode($Entry), $aDemande['wk_params']);
-                                    } else {
-                                        $aDemande['wk_params'] = getParams($oGtfFmwParser, $sUnique . "/", $aDemande['wk_params']);
-                                    }
-                                    require_once("gtf_lib/gtf_object/Order.class.inc");
-                                    $iNouvelId = $oBd->insert($properties["schema_gtf"], "order", Array("priority_id" => 1, "workspace_id" => $aDemande['workspace_id'], "order_status_id" => 1, "user_id" => $aDemande['user_id'], "period_id" => "", "order_date" => date("Y-m-d H:i:s"), "execution_date" => null, "wk_params" => $aDemande['wk_params'], "result_url" => "", "message" => "", "email_option_id" => $aDemande['email_option_id'], "gtf_engine_id" => $aDemande['gtf_engine_id'], "email_notifications" => $aDemande['email_notifications']), $properties["schema_gtf"] . ".seq_order", "order_id");
-                                    $oOrder = new OrderLib($oBd, -1, $properties);
-                                    $oOrder->getIdEngine($iNouvelId, "order", $aDemande['workspace_id']);
-                                    $oOrder->update();
-                                    if ($iNouvelId != "") {
-                                        writeToLog(str_replace('[iNouvelId]', $iNouvelId, INFO_ORDER_CREATED), $properties["subscription_log_file"]);
-                                        // La surveillance crée une demande
-                                        sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
-                                            'action' => 'event',
-                                            'service' => 'GtfEvents',
-                                            'data' => array(
-                                                'event' => 'survey_creating_order',
-                                                'order' => array(
-                                                    'order_id' => $aDemande['order_id'],
-                                                    'order_status_id' => $aDemande['order_status_id'],
-                                                    'user_id' => $aDemande['user_id'],
-                                                    'workspace_id' => $aDemande['workspace_id']
-                                                )
-                                            )
-                                        ));
-                                    } else {
-                                        writeToLog(INFO_ORDER_CREATION_ERROR, $properties["subscription_log_file"]);
-                                        writeToLog(INFO_CHECK_SQL_LOG, $properties["subscription_log_file"]);
-                                    }
-                                } else {
-                                    writeToLog(INFO_NO_USER_GRANT . $aDemande['name'] . ' n\'as pas été définie.', $properties["subscription_log_file"]);
-                                    writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["subscription_log_file"]);
-                                    $iNouvelId = $oBd->update($properties["schema_gtf"], "order", Array("enabled" => FALSE), "order_id", $aDemande["order_id"], "");
-                                }
-                            }
-                        }
-                    }
-                }
-            } else {
-                writeToLog(str_replace('[sFolder]', $sFolder, INFO_DIRECTORY_NOT_FOUND_SUBSCRIPTION), $properties["subscription_log_file"]);
-            }
-        }
-    } else {
-        writeToLog(str_replace('[iPeriodeId]', $iPeriodeId, INFO_ORDER_PERIOD_NOT_FOUND), $properties["subscription_log_file"]);
-    }
-
-    if ($iNbTraitement >= 1) {
-        //writeToLog(INFO_END_ORDER_PROCESSING, $properties["subscription_log_file"]);
-    }
-    $oPDOResult = $oBd->fermeResultat();
-}
-
-function getParams($oGtfFmwParser, $sNewSource, $sParams) {
-    $aTGui = array();
-    $sChaine = "";
-    $aParams = dbParamsAsArray($sParams);
-    foreach ($oGtfFmwParser->aGuiObject as $aGui) {
-        if ($aGui->sDefault_Macro != "") {
-            array_push($aTGui, $aGui);
-        }
-    }
-    foreach ($aTGui as $oGui) {
-        //Teste si le paramètre est une source
-        if ($oGui->bIsSource) {
-            writeToErrorLog($oGui->sDefault_Macro);
-            writeToErrorLog($sNewSource);
-            $aParams[$oGui->sDefault_Macro] = $sNewSource;
-        }
-    }
-    $aKeys = array_keys($aParams);
-
-    for ($i = 0; $i < count($aKeys); $i++) {
-        if ($sChaine == "") {
-            $sChaine = $aKeys[$i] . "=" . $aParams[$aKeys[$i]];
-        } else {
-            $sChaine .= "|" . $aKeys[$i] . "=" . $aParams[$aKeys[$i]];
-        }
-    }
-    //$sChaine = substr($sChaine, 0, -1)."\"";
-    return $sChaine;
-}
-
-function dbParamsAsArray($sAllParams) {
-    $aAllParams = Array();
-    //$aLigne = explode("|", $sAllParams);
-    $aLigne = stringExplode($sAllParams, "|", "\"", "\"");
-    foreach ($aLigne as $sValeur) {
-        $sValeur = str_replace("\"", "", $sValeur);
-        $aValeurs = explode("=", $sValeur);
-        if ($aValeurs[2] != "") {
-            $sTemp = $aValeurs[1] . "=" . $aValeurs[2];
-            $aValeurs[1] = $sTemp;
-        }
-        $aAllParams[$aValeurs[0]] = $aValeurs[1];
-    }
-    return $aAllParams;
-}
-
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/subscription.sql.inc b/gtf.engine/gtf.engines/subscription.sql.inc
deleted file mode 100755
index 46786f56f4b581f40195a98f7317c6ae107a3859..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/subscription.sql.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-//Requête pour subscription.php pgsql
-$aSql['pgsql']['verif_period_id']='SELECT period_id, name FROM [sSchemaGtf].period WHERE period_id = [iOrderPeriodId]';
-$aSql['pgsql']['abonnement']='SELECT "order".*, workspace.*, period.cron_expression FROM ([sSchemaGtf].order LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id) LEFT JOIN [sSchemaGtf].period ON period.period_id = "order".period_id WHERE order_status_id = 1 AND "order".period_id = [iOrderPeriodId] AND "order".period_id IS NOT NULL AND "order".survey_id IS NULL AND "order"."enabled" = TRUE ';
-$aSql['pgsql']['dir_survey']='SELECT "order".*, workspace.*, period.cron_expression, REPLACE(inbox.name, \'$user\', "user"."login") || \'/\' || "order".condition as condition FROM ([sSchemaGtf].order LEFT JOIN [sSchemaFramework].user on "order".user_id = "user"."user_id" LEFT JOIN [sSchemaGtf].inbox on "order".inbox_id = inbox.inbox_id LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id) LEFT JOIN [sSchemaGtf].period ON period.period_id = "order".period_id WHERE order_status_id = 1 AND "order".period_id = [iOrderPeriodId] AND "order".period_id IS NOT NULL AND "order".survey_id = 1 AND "order"."enabled" = TRUE';
-$aSql['pgsql']['right_user']='SELECT workspace."workspace_id" FROM [sSchemaGtf].workspace RIGHT JOIN [sSchemaGtf].workspace_group ON workspace.workspace_id = workspace_group.workspace_id GROUP BY workspace."workspace_id", workspace_group."group_id" HAVING workspace_group."group_id" IN ([sGroupListId]) ORDER BY workspace."workspace_id" ASC';
-$aSql['pgsql']["getLogin"]='SELECT "login" FROM [sSchemaFramework]."user" WHERE user_id = [iUserId]';
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/tcl/Traitement.tcl b/gtf.engine/gtf.engines/tcl/Traitement.tcl
deleted file mode 100755
index 84defdd90f71dd4f671d9b42610fe24d3070c1d8..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/tcl/Traitement.tcl
+++ /dev/null
@@ -1,64 +0,0 @@
-# Récupération des variables d'environnement
-set sEnginesDir [file dirname $argv0]/..
-
-set sGtfDir $env(GTF_HOME)
-set sFmePath \{$env(FME_PATH)\}
-
-# Lecture de la librairie tclUtil
-source "$sEnginesDir/tcl/tclUtil.tcl"
-
-# Récupération des parametres sous forme de variables TCL
-set lLParams [stringToParam [lindex $argv 0] "|" "="]
-set lParametre [lindex $lLParams 0]
-set lValeur [lindex $lLParams 1]
-
-set sFmwFileName [lindex $lValeur 0]
-set sRobotLogName [lindex $lValeur 1] 
-set sFmeLogName [lindex $lValeur 2] 
-
-set i 0
-set sFmeParam ""
-foreach sParam $lParametre {
-  if {$sParam!="LOG_ROBOT" && $sParam!="LOG_FILENAME" && $sParam!="FMWFILENAME"} then {
-	set valeur [lindex $lValeur $i]
-	
-	# Vérification de l'emplacement de la balise <space>
-	set iSpacePlace [string first <space> $valeur]
-	# Si la balise existe, elle est remplacée par un espace (ça permet de gérer les cas ou la source (ex : de type access) peut contenir plusieurs extensions (mdb, accdb)
-	if {$iSpacePlace > 0} then {
-		set valeur [string map {<space> \ } $valeur]
-	}
- 	set sFmeParam "$sFmeParam --$sParam \{$valeur\}"
-  }
-	incr i 
-}
-
-# Création de nouvelles variables
-set sScriptPath $sGtfDir/$sFmwFileName
-
-# Ecriture des parametres du traitement FME dans le log
-set sLigne "$sFmePath {$sScriptPath} $sFmeParam -LOG_FILENAME {$sFmeLogName}"
-
-# Variable qui va permettre d'écrire la commande TCL dans un fichier avec un nom unique
-set rand [expr int([expr rand() * 100000])]
-
-set sCommandeFile "$sEnginesDir/tcl/$rand.tcl"
-
-# Permet de récupérer un guillement (ajouté pour Edgar)
-set sLigne [string map {<quote> \"} $sLigne] 
-# Permet de récupérer un backslash (ajouté pour Edgar)
-set sLigne [string map {<backslashes> \\} $sLigne]
-
-set fCommande [open $sCommandeFile w+]
-# subst -nobackslashes $sLigne -- ligne inutile. Mis en commentaire le 20/06/12 par L.P.	
-puts $fCommande $sLigne
-close $fCommande
-
-if [ catch { source "$sCommandeFile" } sErreurFME] {
-	puts stdout "1|$sErreurFME" 
-} else {
-	puts stdout "0|Traitement réalisé avec succés"
-}
-
-file delete -force $sCommandeFile
-
diff --git a/gtf.engine/gtf.engines/tcl/tclUtil.tcl b/gtf.engine/gtf.engines/tcl/tclUtil.tcl
deleted file mode 100755
index 873ec019c0f13dbaae06f4a35897d1e9d23bf454..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.engines/tcl/tclUtil.tcl
+++ /dev/null
@@ -1,50 +0,0 @@
-# + ---------------------------------------------------------------------- +
-# + tclUtil.tcl                                                            +
-# + Fonction TCL qui peuvent �tre r�utilis�es                              +
-# + Veremes - Fabien Marty - Mai 2007                                      +
-# + ---------------------------------------------------------------------- +
-
-
-##
-#D�coupe une chaine et renvoie les �l�ments d'une liste 
-#contenant une liste des param�tres et une liste des valeurs.
-##
-
-proc stringToParam {sString sDelimited1 sDelimited2} {
-	set lParams [split $sString $sDelimited1]
-	
-	foreach sParam $lParams {
-		set lResult [split $sParam =]
-		set sParametre [lindex $lResult 0]
-		set iLength [llength $lResult]
-	
-		if  { $iLength > 2 } {
-		set i 1
-		 while {$i < $iLength} {
-			set sTemp [lindex $lResult $i]
-			append sValeur $sTemp =
-		  set i [incr i]
-		 }
-
-		set sValue [string trimright $sValeur =]
-		} else {
-
-		set sValue [lindex $lResult 1]
-		}
-	lappend lListeParam $sParametre
-	lappend lListeValue $sValue
-	}	
- return  [list $lListeParam $lListeValue]
-}
-
-##
-#�criture dans le log de la chaine pass�e en param�tre. 
-##
-
-proc writeToLog {sLogName sString sType} {
-	set oLogFile [open $sLogName "a"]
-	set sHeure [clock seconds]
-	set sHeureFormat [clock format $sHeure -format "%d/%m/%Y %H:%M:%S" -gmt false]
-	puts $oLogFile "$sHeureFormat	|$sType|TCL| $sString"
-	close $oLogFile
-}
\ No newline at end of file
diff --git a/gtf.engine/gtf.messages/class/Action.class.inc b/gtf.engine/gtf.messages/class/Action.class.inc
deleted file mode 100755
index 037a03a7e3c266d861d90a185f7435d40ea78b07..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/class/Action.class.inc
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-require_once("vmlib/logUtil.inc");
-
-class Action {
-	protected $messageclass_action_id;
-	protected $aParams;
-	protected $oMessage;
-	protected $aProperties;
-	
-/***********************************************************
-  Récupère les paramètres de l'action d'un message
-	\$messageclass_action_id : id de l'actionclass
-	\$oMessage : objet du message
-	\$aParams :  paramètres de l'actionclass
-***********************************************************/
-	function __construct($messageclass_action_id, $oMessage, $aParams) {
-		$this->oMessage = $oMessage;
-		$this->messageclass_action_id = $messageclass_action_id;
-		$this->aProperties = $oMessage->aProperties;
-	// Application des paramètres
-		$this->setActionClassParameters($aParams);
-	}
-
-/*******************************************************
-*******************************************************/
-	function execute() {
-	}
-
-	function getError(){
-		writeToLog("You need to implement your action error controller", $properties["processMessage_log_file"], false);
-		writeToErrorLog("You need to implement your action error controller");
-		return true;
-	}
-
-/*******************************************************
-  
-  \$aParams : Tableau des paramètres définis en base
-*******************************************************/
-	function setActionClassParameters($aParams) {
-		if (!empty($aParams)) {
-			$this->aParams = array();
-			foreach($aParams as $sActionParam) {
-				list($sActionParamName, $sActionParamValue) = explode('=', $sActionParam);
-				eval('$this->aParams[\'' . $sActionParamName . '\'] = ' . $sActionParamValue . ';');
-			}
-			$this->aParams["token"] = $this->getToken($this->aProperties);
-		}
-	}
-
-	function getToken ($properties) {
-
-		if($properties['web_server_name'] === "[HTTP_HOST]"){
-			$properties['web_server_name'] = "https://localhost";
-		}
-		$sUrl = $properties['web_server_name'] . '/' . $properties['services_alias'] . '/vitis/privatetoken';
-		$postfields = array('user'=>$properties["login_bot"], 'password'=>$properties["pass_bot"]);
-
-		$oToken = json_decode($this->postCurlRequest ($sUrl, $postfields));
-		return $oToken->token;
-	}
-
-	function postCurlRequest ($sUrl, $postfields) {
-		$ch = curl_init($sUrl);
-		curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
-		curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json"));
-		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-		curl_setopt($ch, CURLOPT_POST, 1);
-		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
-		curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
-		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
-		return curl_exec($ch);
-	}
-}
-?>
diff --git a/gtf.engine/gtf.messages/class/BoAction.class.inc b/gtf.engine/gtf.messages/class/BoAction.class.inc
deleted file mode 100755
index 46eb93548990a8edd405225d5f8f6ae29a2cd011..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/class/BoAction.class.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-require_once("vmlib/logUtil.inc");
-require_once("Action.class.inc");
-
-class BoAction Extends Action {
-	protected $oBusinessObject;
-	protected $bError;
-/**********************************************************
-  Class constructor
-	\$oBd : objet PDO
-	\$messageclass_action_id : id de l'actionclass
-	\$oMessage : Objet de la classe message
-	\$aParams :  paramètres de l'actionclass
-**********************************************************/
-	function __construct($oBd, $messageclass_action_id, $oMessage, $aParams, $properties) {
-		parent::__construct($messageclass_action_id, $oMessage, $aParams);
-		$iBoId = $oMessage->getBody($this->aParams['bo_id_attribute']);
-		if (!empty($iBoId)){
-			require_once($properties["vas_home"] ."/rest/ws/" . $this->aParams['module'] . "/" . $this->aParams['class'] . ".class.inc");
-			$aPath = array($this->aParams['module'], $this->aParams['class'], $iBoId);
-			$aValues = array($this->aParams['bo_id_attribute'] => $iBoId, "token" => $this->aParams['token']);
-
-			$this->oBusinessObject = new $this->aParams['class']($aPath, $aValues, $properties);
-			$this->oBusinessObject->oConnection->oBd = $oBd;
-			$this->bError = false;
-		} else {
-			$this->bError = true;
-		}
-	}
-
-/*******************************************************
-  Change le statut.
-*******************************************************/
-	function execute() {
-		$sTransitionMethod = $this->aParams['method'];
-		$this->oBusinessObject->$sTransitionMethod();
-	}
-
-	function getError() {
-		return $this->bError;
-	}
-}
-?>
diff --git a/gtf.engine/gtf.messages/class/EmailAction.class.inc b/gtf.engine/gtf.messages/class/EmailAction.class.inc
deleted file mode 100755
index fa4d14cb7da96e8092881f668c9d4a26ad196fed..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/class/EmailAction.class.inc
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-require_once("vmlib/logUtil.inc");
-require_once("vmlib/Email.class.inc");
-require_once("Action.class.inc");
-
-class EmailAction Extends Action {
-	protected $oEmail;
-	protected $bError;
-/**********************************************************
-  - Récupère les paramètres de l'action d'un message
-  - Crée un objet de la classe "Email".
-  - Applique les paramètres 
-	\$oBd : objet PDO
-	\$messageclass_action_id : id de l'actionclass
-	\$oMessage : Objet de la classe message
-	\$aParams :  paramètres de l'actionclass
-**********************************************************/
-	function __construct($oBd, $messageclass_action_id, $oMessage, $aParams) {
-		parent::__construct($messageclass_action_id, $oMessage, $aParams);
-		$aObjects['oMessage'] = $oMessage;
-		$iEmailTemplateId = $this->aParams['template_id'];
-		if (empty($iEmailTemplateId))
-			$iEmailTemplateId = $oMessage->aProperties['default_mail_model'];
-		$this->oEmail = new Email($oBd, $iEmailTemplateId, $oMessage->aProperties, $aObjects);
-		$this->bError = false;
-	}
-
-/*******************************************************
-  Envoi un email.
-*******************************************************/
-	function execute() {
-		if (!empty($this->oEmail->oEmailTemplate->name))
-			$this->oEmail->send();
-	}
-
-	function getError() {
-		return $this->bError;
-	}
-}
-?>
diff --git a/gtf.engine/gtf.messages/class/Message.class.inc b/gtf.engine/gtf.messages/class/Message.class.inc
deleted file mode 100755
index 59ad4a9ebbf6ca3c73a433a86ebbeb7f23039193..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/class/Message.class.inc
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/**
-* \class Message
-* \file Message.class.inc
-*/
-
-require_once("vmlib/logUtil.inc");
-
-class Message {
-	protected $message_id;
-	public $messageclass;
-	protected $creation_date;
-	protected $status;
-	protected $body;
-	protected $bo_class_name;
-	protected $bo_class;
-	protected $bo_id;
-	protected $sender;
-	protected $oBo;
-	protected $oBd;
-	protected $aBodyValue;
-	public $aProperties;
-	protected $aSql;
-
-	/**
-	* Class constructor
-	* \param $oBd Connection object.
-	* \param $message_id Message id.
-	* \param $aProperties Array of properties.
-	*/
-	function __construct($oBd, $message_id , $aProperties) {
-		require("Message.class.sql.inc");
-		$this->aProperties = $aProperties;
-		$this->oBd = $oBd;
-		$this->aSql = $aSql;
-		$sSql = $this->aSql[$oBd->sgbd]['getMessage'];
-		//$sSql = str_replace('[message_id]',$message_id , $sSql);
-		//$sSql = str_replace('[schema]',$aProperties['schema_gtf'] , $sSql);
-		$aParams = array(
-			"message_id" => array("value"=> $message_id, "type"=> 'number'),
-			"schema" => array("value"=> $aProperties['schema_gtf'], "type"=> 'column_name')
-			);
-		$oResult = $oBd->executeWithParams($sSql, $aParams);
-		if($oBd->erreurRencontree)
-			$sErrorMsg = $oBd->getBDMessage();
-		else {
-			if ($oBd->nombreLigne ($oResult) > 0) {
-				$oRow = $oBd->objetSuivant ($oResult);
-				$this->message_id = $oRow->message_id;
-				$this->messageclass = $oRow->messageclass;
-				$this->creation_date = $oRow->creation_date;
-				$this->status = $oRow->status;
-				$this->body = $oRow->body;
-				//$this->bo_class_name = $oRow->bo_class_name;
-				//$this->bo_id = $oRow->bo_id;
-				$this->sender = $oRow->sender;
-			// Extrait les paramètres pour les actions de body
-				if (!empty($this->body)) {
-					preg_match_all('/(.)+:(.)+/', $this->body, $aActionParams);
-					if (!empty($aActionParams[0])) {
-						foreach ($aActionParams[0] as $sActionParam) {
-							list($sIndex, $sValue) = explode(':', $sActionParam);
-							$this->aBodyValue[trim($sIndex)] = trim($sValue);
-						}
-					}
-				}
-			}
-		}
-		if (isset($sErrorMsg)){
-			writeToLog("The message " . $message_id . "encountered this error : " . $sErrorMsg, $properties["processMessage_log_file"], false);
-		}
-	}
-
-	/*
-	* function setProcessed
-	* \brief Change the status of a message.
-	* \param $processed boolean.
-	*/
-	function setProcessed($processed) {
-		if ($processed === true)
-                $this->status = 3; // Traité
-            else
-                $this->status = 2; // En erreur
-        }
-
-	/*
-	* function process
-	* \brief Executes all actions of the message.
-	*/
-	function process() {
-	// Liste des actions du message	
-		$sSql = $this->aSql['pgsql']['getMessageActions'];
-		//$sSql = str_replace("[messageclass]", $this->messageclass, $sSql);
-		//$sSql = str_replace("[schema]", $this->aProperties['schema_gtf'], $sSql);
-		$aParams = array(
-			"messageclass" => array("value"=> $this->messageclass, "type"=> 'string'),
-			"schema" => array("value"=> $this->aProperties['schema_gtf'], "type"=> 'column_name')
-			);
-		$oActionResult = $this->oBd->executeWithParams($sSql, $aParams);
-		if(!$this->oBd->erreurRencontree) {
-			if ($this->oBd->nombreLigne($oActionResult) > 0) {
-				while ($oActionRow = $this->oBd->objetSuivant ($oActionResult)) {
-					if (file_exists(__DIR__ . '/' . $oActionRow->actionclass . '.class.inc')) {
-						require_once __DIR__ . '/' . $oActionRow->actionclass . '.class.inc';
-						if (!empty($oActionRow->parameters))
-							$aParams = explode('|', $oActionRow->parameters);
-						$oAction = new $oActionRow->actionclass($this->oBd, $oActionRow->messageclass_action_id, $this, $aParams, $this->aProperties);
-						if($oAction->getError() == false){
-							$oAction->execute();
-						} else {
-							writeToLog("ERROR : cannot create action with this body's parameters", $properties["processMessage_log_file"], false);
-							throw new Exception("ERROR : cannot create action with this body's parameters");
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	/*
-	* function getBody
-	* \param $key boolean.
-	* \return Returns the value of a parameter of action (or all the parameters and values).
-	*/
-	function getBody($key = null) {
-		if (is_null($key))
-			return $this->body;
-		else {
-			if (isset($this->aBodyValue[$key]))
-				return $this->aBodyValue[$key];
-			else
-				return null;
-		}
-	}
-
-	/*
-	* function update
-	* \brief Saves the settings of a message.
-	*/
-	function update() {
-	// Tous les paramètres sauf les tableaux et objets	
-		foreach (get_object_vars($this) as $sIndex => $value) {
-			if (!is_array($value) && !is_object($value)) {
-			// Le paramètre est une date ?	
-				/*if (strtotime($value) !== false)
-					$aValues[$sIndex] = "'$value'";
-				else*/
-					$aValues[$sIndex] = $value;
-			}
-		}
-		//error_log(print_r($this->oBd, true));
-		$this->oBd->update($this->aProperties['schema_gtf'], 'message', $aValues, 'message_id', $this->message_id, 'numeric');
-	}
-}
-?>
diff --git a/gtf.engine/gtf.messages/class/Message.class.sql.inc b/gtf.engine/gtf.messages/class/Message.class.sql.inc
deleted file mode 100755
index 47a0f8e9d35285d7b987010d69d8850e88a887d1..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/class/Message.class.sql.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-	$aSql['pgsql']['getMessage'] = "SELECT * FROM [schema].message WHERE message_id = [message_id]";
-	$aSql['pgsql']['getMessageActions'] = "SELECT * FROM [schema].messageclass_action WHERE messageclass = [messageclass] ORDER BY index";
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.messages/processMessages.bat b/gtf.engine/gtf.messages/processMessages.bat
deleted file mode 100755
index ae8efcb51a1f8fac481668670c5bad68f23a0272..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/processMessages.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-set GTF_MESSAGE_HOME=%~dp0
-set PHP_HOME=%GTF_MESSAGE_HOME%..\gtf.engines\php
-rem %1 correspond au paramètre passé par pycron
-"%PHP_HOME%\php.exe" "%GTF_MESSAGE_HOME%processMessages.php" %1
diff --git a/gtf.engine/gtf.messages/processMessages.php b/gtf.engine/gtf.messages/processMessages.php
deleted file mode 100755
index bfa420081d3d60e0607bc66189a68a73444f1b1e..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/processMessages.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-	session_start();
-	
-	require_once dirname($_SERVER['PHP_SELF']).'/../gtf.engines/php_engine_conf.inc';
-	require_once dirname($_SERVER['PHP_SELF']).'/../gtf.engines/properties_engine.inc';
-	
-	require_once("vmlib/BD.class.inc");
-	require_once("vmlib/Vm.class.inc"); 
-	require_once("processMessages.sql.inc");
-	require_once("class/Message.class.inc");
-
-	$sPidFile = __DIR__ . "/PID_processMessages.pid";
-
-	$oNow = new DateTime();
-	$properties["processMessage_log_file"] = $properties['log_directories'] ['Application'] . "/processMessage/log_" . $oNow->format('Y-m-d') . ".log";
-
-	processIsRunnning ($sPidFile, $properties);
-	createPidFile($sPidFile, $properties);
-
-	//journalisation des logs pour le mailReader aussi 
-	// instanciation d'un objet pour accéder à la base compte u_vitis
-	$oBd = new BD ($properties['login_scheduler'], $properties['password_scheduler'], $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
-
-	$iMessages = 0;
-	$iMessagesTraite = 0;
-
-	if ($oBd->erreurRencontree)
-		writeToLog('can\'t connect to database ' . $properties["database"] . " on " . $properties["server"] . ":" . $properties["port"] , $properties["processMessage_log_file"], false);
-	else {
-		// Traitement des messages en attente.
-		$sSql = $aSql['pgsql']['getWaitingMessages'];
-
-		$aParams = array(
-			"messageclass_type" => array("value"=> 'action', "type"=> 'string'),
-			"schema" => array("value"=> $properties['schema_gtf'], "type"=> 'column_name')
-			);
-
-		$oMessageResult=$oBd->executeWithParams($sSql, $aParams);
-		if(!$oBd->erreurRencontree) {
-			$iMessages = $oBd->nombreLigne($oMessageResult);
-			if ($iMessages > 0) {
-                // fonction à appeler à la fin du script.
-                register_shutdown_function('shutdownCallBack', $oBd, $properties);
-                // Traitement des messages en attente.
-                while ($oMessageRow = $oBd->objetSuivant ($oMessageResult)) {
-                    $iMessageId = $oMessageRow->message_id;
-                    $oMessage = new Message($oBd, $oMessageRow->message_id, $properties);
-                    $iOrderId = $oMessage->getBody("order_id");
-					if (!empty($iOrderId)){
-						$sSql = $aSql['pgsql']['getOrderStatus'];;
-						$sSql = str_replace("[ORDER_ID]", $iOrderId, $sSql);
-						$oOrderResult=$oBd->execute($sSql);
-						if(!$oBd->erreurRencontree) {
-							$oOrderRow = $oBd->objetSuivant ($oOrderResult);
-							if ($oOrderRow->order_status_id == 3 ){
-								$oMessage->process();
-								$oMessage->setProcessed(true);
-							    $oMessage->update();
-							    $iMessagesTraite ++;
-							}else{
-								writeToLog("message " . $iMessageId . " : can't be processing for the moment because the linked GTF order is not completed or it status is not 'valid'", $properties["processMessage_log_file"], false);
-							}
-						} else {
-							$oMessage->setProcessed(false);
-							$oMessage->update();
-							writeToLog("message " . $iMessageId . " : can't be processing because we can't find the linked GTF order", $properties["processMessage_log_file"], false);
-						}
-					} else {
-						$oMessage->process();
-						$oMessage->setProcessed(true);
-						$oMessage->update();
-						$iMessagesTraite ++;
-					}
-                }
-			}
-		}else{
-			writeToLog($oBd->getBDMessage(), $properties["processMessage_log_file"], false);
-		}
-	}
-
-	writeToLog("Iteration of the process completed : " . $iMessages . "(". $iMessagesTraite ." as OK)", $properties["processMessage_log_file"], false);
-
-	unlink($sPidFile);
-        
-	/*
-	* function shutDownCallBack
-	*   @oBd Database connection object.
-	*   @properties
-	*/
-        function shutDownCallBack($oBd, $properties) {
-            $aError = error_get_last();
-            // Erreur fatale pendant le traitement d'un message ?
-            if ($aError['type'] & E_ERROR > 0) {
-                writeToLog("[ERROR] [PHP] while processing the message " . $GLOBALS['iMessageId'] . "check the main log file", $properties["processMessage_log_file"], false);
-                // Change le statut du message : "en erreur".
-                $oMessage = new Message($oBd, $GLOBALS['iMessageId'], $properties);
-                $oMessage->setProcessed(false);
-                $oMessage->update();
-                // Re-exécute le script (au cas où il resterait des messages non traités).
-                if(DIRECTORY_SEPARATOR === "/"){
-                	// if linux
-                	exec(__DIR__ . '/processMessages.sh');
-                } else {
-                	// if windows
-                	exec(__DIR__ . '\processMessages.bat');
-                }
-            }
-        }
-
-        function processIsRunnning ($sPidFile, $properties){
-			if (file_exists ($sPidFile)){
-				// récupération du fichier .pid
-				$sPid = file_get_contents($sPidFile);
-				
-				$bProcessIsRunning = true;
-				$sOsName = PHP_OS;
-				// detection de l'os pour savoir comment controler le PID
-				if (strtoupper(substr($sOsName, 0, 3)) === 'WIN') {
-			    	$bProcessIsRunning = windowsPidCheck($sPid);
-				} else {
-				    $bProcessIsRunning = linuxPidCheck($sPid);
-				}
-
-				if($bProcessIsRunning === false){
-					//si le fichier PID est présent mais que le PID n'existe pas sur le serveur
-					// on supprime le fichier .pid et on lance le mailReader 
-					writeToLog("previous process exited without cleaning pidfile, removing", $properties["processMessage_log_file"], false);
-					unlink($sPidFile);
-				} else {
-					//si le process tourne déjà on ferme le process courant
-					writeToLog("found a running instance of processMessages.php, exiting.", $properties["processMessage_log_file"], false);
-					exit(0);
-				}
-			}
-			return true;
-		}
-
-		function windowsPidCheck ($iPid){
-			// fonction pour controller si un pid existe sous windows
-			$processes = explode( "\n", shell_exec('tasklist.exe /fi "PID eq ' . $iPid . '"'));
-
-			foreach( $processes as $process ) {
-
-			     if( ! empty($process) && (strpos("===", $process ) === 0) ){
-			          continue;
-			     }
-
-			     $matches = array();
-			     preg_match("/(.*?)\s+(\d+).*$/", $process, $matches);
-
-			     if(count($matches) > 0){
-			     	return true;
-			     }
-			}
-			return false;
-		}
-
-		function linuxPidCheck ($iPid){
-			// fonction pour controller si un pid existe sous linux
-			return file_exists("/proc/" . $iPid);
-		}
-
-		function createPidFile($sPidFile , $properties){
-		   	$file = fopen($sPidFile, 'w');
-		   	
-		   	if($file){ 
-		   		writeToLog("PID file creation with pid : " . getmypid(), $properties["processMessage_log_file"], false);
-		   		fwrite($file, getmypid());
-			}
-
-		   	fclose($file);
-		}
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.messages/processMessages.sh b/gtf.engine/gtf.messages/processMessages.sh
deleted file mode 100755
index 89dadbfb61faff67c07e7a7c4918d45f7287a10e..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/processMessages.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-set GTF_MESSAGE_HOME=%~dp0
-set PHP_HOME=%GTF_MESSAGE_HOME%..\gtf.engines\php
-#rem %1 correspond au paramètre passé par pycron
-"../gtf.engines/php/bin/php" "./processMessages.php" %1
\ No newline at end of file
diff --git a/gtf.engine/gtf.messages/processMessages.sql.inc b/gtf.engine/gtf.messages/processMessages.sql.inc
deleted file mode 100755
index 6f4814573cb781855de841e3f8395d2cb12cf17a..0000000000000000000000000000000000000000
--- a/gtf.engine/gtf.messages/processMessages.sql.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-	$aSql['pgsql']['getWaitingMessages']='SELECT message.message_id FROM [schema].message,[schema].messageclass WHERE status=1 AND message.messageclass=messageclass.messageclass AND lower(messageclass_type)=lower([messageclass_type]) ORDER BY message_id;';
-	$aSql['pgsql']['getOrderStatus']='SELECT order_status_id FROM s_gtf.order WHERE order_id = [ORDER_ID] LIMIT 1';
-?>
\ No newline at end of file
diff --git a/gtf.engine/gtf.engines/tcl/commande.tcl b/gtf.engines/engine/README.txt
similarity index 100%
rename from gtf.engine/gtf.engines/tcl/commande.tcl
rename to gtf.engines/engine/README.txt
diff --git a/gtf.engines/engine/compil-linux.bat b/gtf.engines/engine/compil-linux.bat
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/engine/compil.bat b/gtf.engines/engine/compil.bat
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/engine/engine.c b/gtf.engines/engine/engine.c
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/engine/engine.h b/gtf.engines/engine/engine.h
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/engine/php.ini b/gtf.engines/engine/php.ini
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/engine/sha1.c b/gtf.engines/engine/sha1.c
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/engine/sha1.h b/gtf.engines/engine/sha1.h
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/Changelog.txt b/gtf.engines/gtf.engines/Changelog.txt
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/Traitement.class.inc b/gtf.engines/gtf.engines/Traitement.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/constants.inc b/gtf.engines/gtf.engines/constants.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/engine b/gtf.engines/gtf.engines/engine
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/engine.exe b/gtf.engines/gtf.engines/engine.exe
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/engine.php b/gtf.engines/gtf.engines/engine.php
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/engine.sql.inc b/gtf.engines/gtf.engines/engine.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/lang_engines/en-lang.inc b/gtf.engines/gtf.engines/lang_engines/en-lang.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/lang_engines/fr-lang.inc b/gtf.engines/gtf.engines/lang_engines/fr-lang.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/php_engine_conf.inc b/gtf.engines/gtf.engines/php_engine_conf.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/properties_engine.inc b/gtf.engines/gtf.engines/properties_engine.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/regex2.dll b/gtf.engines/gtf.engines/regex2.dll
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/string.inc b/gtf.engines/gtf.engines/string.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/subscription.bat b/gtf.engines/gtf.engines/subscription.bat
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/subscription.php b/gtf.engines/gtf.engines/subscription.php
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/subscription.sql.inc b/gtf.engines/gtf.engines/subscription.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/tcl/Traitement.tcl b/gtf.engines/gtf.engines/tcl/Traitement.tcl
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/tcl/commande.tcl b/gtf.engines/gtf.engines/tcl/commande.tcl
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.engines/tcl/tclUtil.tcl b/gtf.engines/gtf.engines/tcl/tclUtil.tcl
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/class/Action.class.inc b/gtf.engines/gtf.messages/class/Action.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/class/BoAction.class.inc b/gtf.engines/gtf.messages/class/BoAction.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/class/EmailAction.class.inc b/gtf.engines/gtf.messages/class/EmailAction.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/class/Message.class.inc b/gtf.engines/gtf.messages/class/Message.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/class/Message.class.sql.inc b/gtf.engines/gtf.messages/class/Message.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/processMessages.bat b/gtf.engines/gtf.messages/processMessages.bat
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/processMessages.php b/gtf.engines/gtf.messages/processMessages.php
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/processMessages.sh b/gtf.engines/gtf.messages/processMessages.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gtf.engines/gtf.messages/processMessages.sql.inc b/gtf.engines/gtf.messages/processMessages.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391