diff --git a/src/InputOutput/IHMImpl/IHMInputOutputClass.php b/src/InputOutput/IHMImpl/IHMInputOutputClass.php
index c885768..d57e764 100644
--- a/src/InputOutput/IHMImpl/IHMInputOutputClass.php
+++ b/src/InputOutput/IHMImpl/IHMInputOutputClass.php
@@ -52,6 +52,10 @@ class IHMInputOutputClass implements InputOutputInterface
 						throw new Exception('Params request type '.$input_request->nodeType.' not implemented for this client.');
 				}
 				break;
+			case FunctionTypeEnumClass::PARAMSGEN :
+				$this->inputOutput = new IHMInputOutputParamsGeneratorClass();
+				$requestId = "ParamGen";
+				break;
 			case FunctionTypeEnumClass::ACTION :
 				$this->inputOutput = new IHMInputOutputParamsPlotClass();
 				$requestId = str_replace("_","",$input->folderId);
@@ -93,4 +97,4 @@ class IHMInputOutputClass implements InputOutputInterface
 	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/src/InputOutput/IHMImpl/Params/GeneratorImpl/IHMInputOutputParamsGeneratorClass.php b/src/InputOutput/IHMImpl/Params/GeneratorImpl/IHMInputOutputParamsGeneratorClass.php
new file mode 100644
index 0000000..489634f
--- /dev/null
+++ b/src/InputOutput/IHMImpl/Params/GeneratorImpl/IHMInputOutputParamsGeneratorClass.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @class IHMInputOutputParamsGeneratorClass
+ * @brief Implementation of IHMInputOutputParamsAbstractClass to treat params generation request
+ * @details
+*/
+class IHMInputOutputParamsGeneratorClass extends IHMInputOutputParamsAbstractClass
+{
+	/*
+	 * @brief method to unmarshall a params generation request
+	*/
+	protected function unmarshallRequest($input)
+	{
+		$this->paramsData->setRequestType(ParamsRequestTypeEnumClass::PARAMGEN);
+		
+		$this->paramsData->setParamId($input->paramId);
+		
+		$paramInfo = $this->paramManager->addExistingParam($input->paramId,$this->paramsData);
+
+		return $this->paramsData;
+	}
+
+	/*
+	 * @brief method to marshall the result of a download request
+	*/
+	protected function marshallResult($data)
+	{
+		if (!$data->getSuccess())
+			return array(
+					'success' => false,
+					'message' => $data->getParamId() . " : " . $data->getLastErrorMessage());
+		
+		if ($data->getErrorCode() != 0)
+			return array(
+					'success' => false,
+					'message' => $data->getParamId() . " : " . 'Error detected during parameter compilation');
+		
+		return array(
+			'success' => true
+		);
+	}
+}
+?>
\ No newline at end of file
diff --git a/src/InputOutput/IHMImpl/Params/IHMInputOutputParamsAbstractClass.php b/src/InputOutput/IHMImpl/Params/IHMInputOutputParamsAbstractClass.php
index 09b207b..ff84705 100644
--- a/src/InputOutput/IHMImpl/Params/IHMInputOutputParamsAbstractClass.php
+++ b/src/InputOutput/IHMImpl/Params/IHMInputOutputParamsAbstractClass.php
@@ -195,4 +195,4 @@ abstract class IHMInputOutputParamsAbstractClass implements InputOutputInterface
 	abstract protected function marshallResult($data);
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/src/Request/ParamsRequestImpl/ParamsRequestClass.php b/src/Request/ParamsRequestImpl/ParamsRequestClass.php
index f396a31..ff98bca 100644
--- a/src/Request/ParamsRequestImpl/ParamsRequestClass.php
+++ b/src/Request/ParamsRequestImpl/ParamsRequestClass.php
@@ -15,7 +15,16 @@ class ParamsRequestClass extends ProcessRequestClass
 			return false;
 			
 		$this->requestData->setType(ProcessTypeEnumClass::RUN);
-		$this->requestData->setCmd(KernelConfigClass::getKernelBinPath()."amdaXMLRequestorTool ".$this->getRequestFilePath());
+		
+		switch ($this->requestData->getRequestType())
+		{
+			case ParamsRequestTypeEnumClass::XMLREQUEST :
+				$this->requestData->setCmd(KernelConfigClass::getKernelBinPath()."amdaXMLRequestorTool ".$this->getRequestFilePath());
+				break;
+			case ParamsRequestTypeEnumClass::PARAMGEN :
+				$this->requestData->setCmd(KernelConfigClass::getKernelBinPath()."amdaParameterGenerator -p ".$this->requestData->getParamId());
+				break;
+		}
 		$this->requestData->setEnvVars(KernelConfigClass::getExecEnvVarArray());
 			
 		if (!parent::init())
@@ -39,29 +48,32 @@ class ParamsRequestClass extends ProcessRequestClass
 			}
 		}
 
-		//create request file
-		$doc = new DOMDocument("1.0", "UTF-8");
-		$doc->preserveWhiteSpace = false;
-		$doc->formatOutput = true;
-
-		if (!$xmlNode = $this->requestData->getRequestNode()->toXMLNode($doc))
+		if ($this->requestData->getRequestType() == ParamsRequestTypeEnumClass::XMLREQUEST)
 		{
-			$this->requestData->setLastErrorMessage('Cannot create params request XML file');
-			return false;
-		}
+			//create XML request file
+			$doc = new DOMDocument("1.0", "UTF-8");
+			$doc->preserveWhiteSpace = false;
+			$doc->formatOutput = true;
+
+			if (!$xmlNode = $this->requestData->getRequestNode()->toXMLNode($doc))
+			{
+				$this->requestData->setLastErrorMessage('Cannot create params request XML file');
+				return false;
+			}
 			
-		$doc->appendChild($xmlNode);
+			$doc->appendChild($xmlNode);
 
-		if (!$doc->schemaValidate(KernelConfigClass::getXSDRequestFilePath()))
-		{
-			$this->requestData->setLastErrorMessage('Params request XML file not valid');
-			return false;
-		}
+			if (!$doc->schemaValidate(KernelConfigClass::getXSDRequestFilePath()))
+			{
+				$this->requestData->setLastErrorMessage('Params request XML file not valid');
+				return false;
+			}
 
-		if (!$doc->save($this->getRequestFilePath()))
-		{
-			$this->requestData->setLastErrorMessage('Cannot save params request XML file');
-			return false;
+			if (!$doc->save($this->getRequestFilePath()))
+			{
+				$this->requestData->setLastErrorMessage('Cannot save params request XML file');
+				return false;
+			}
 		}
 
 		//create config files
diff --git a/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php b/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
index 437956e..56384e8 100644
--- a/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
+++ b/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
@@ -1,17 +1,31 @@
 <?php
 
 /**
+ * @class ParamsRequestTypeEnumClass
+ * @brief Enumerate for request type
+ * @details
+ */
+abstract class ParamsRequestTypeEnumClass
+{
+	const UNKNOWN = "";
+	const XMLREQUEST = "XMLREQUEST";
+	const PARAMGEN   = "PARAMGEN";
+}
+
+/**
  * @class ParamsRequestDataClass
  * @brief Data for a params request. Inherits from ProcessRequestDataClass
  * @details
  */
 class ParamsRequestDataClass extends ProcessRequestDataClass
 {
+	private $requestType           = ParamsRequestTypeEnumClass::XMLREQUEST;
 	private $requestNode           = null;
 	private $compilationPath       = "";
 	private $waitingResults        = array();
 	private $processParamsToCreate = array();
 	private $paramsToCopy          = array();
+	private $paramId               = "";
 
 	function __construct()
 	{
@@ -29,6 +43,16 @@ class ParamsRequestDataClass extends ProcessRequestDataClass
 		$this->compilationPath = $compilationPath;
 	}
 
+	public function getRequestType()
+	{
+		return $this->requestType;
+	}
+	
+	public function setRequestType($requestType)
+	{
+		$this->requestType = $requestType;
+	}
+	
 	public function getRequestNode()
 	{
 		return $this->requestNode;
@@ -44,6 +68,16 @@ class ParamsRequestDataClass extends ProcessRequestDataClass
 		$this->waitingResults[$key] = $result;
 	}
 
+	public function getParamId()
+	{
+		return $this->paramId;
+	}
+	
+	public function setParamId($paramId)
+	{
+		$this->paramId = $paramId;
+	}
+	
 	public function getParamsToCopy()
 	{
 		return $this->paramsToCopy;
diff --git a/src/RequestManager.php b/src/RequestManager.php
index 3f9b8ca..34778ea 100644
--- a/src/RequestManager.php
+++ b/src/RequestManager.php
@@ -11,6 +11,7 @@ function amdaintegration_autoload($class_name)
 			'InputOutput/IHMImpl/Params/DataMiningImpl',
 			'InputOutput/IHMImpl/Params/DownloadImpl',
 			'InputOutput/IHMImpl/Params/PlotImpl',
+			'InputOutput/IHMImpl/Params/GeneratorImpl',
 			'InputOutput/IHMImpl/Process',
 			'InputOutput/IHMImpl/Tools',
 			'InputOutput/TestImpl',
@@ -45,6 +46,7 @@ spl_autoload_register('amdaintegration_autoload');
 abstract class FunctionTypeEnumClass
 {
 	const PARAMS             = "params";
+	const PARAMSGEN          = "params_gen";
 	const ACTION             = "action";
 	const PROCESSDELETE      = "process_delete";
 	const PROCESSRUNNINGINFO = "process_running_info";
@@ -106,6 +108,7 @@ Class RequestManagerClass
 		switch ($function)
 		{
 			case FunctionTypeEnumClass::PARAMS :
+			case FunctionTypeEnumClass::PARAMSGEN :
 			case FunctionTypeEnumClass::ACTION :
 				return new ParamsRequestClass($userHost);
 			case FunctionTypeEnumClass::PROCESSDELETE :
--
libgit2 0.21.2