Projet

Général

Profil

Anomalie #14315

Mis à jour par Laurent GIOVANNONI il y a plus de 4 ans

En travaillant sur un ticket support SITIV concernant des documents ne revenant dans Maarch Courrier suite à l'exécution du batch retrieveMailFromExternalSignatoryBook, je me suis rendu compte de deux anomalies :  

 1. si un courrier génère une erreur dans le batch, tous les courriers en attente de retour se retrouvent bloqués 
 voici le patch associé pour ne pas bloquer l'ensemble des courriers : 
 ~~~ php 
 [maarch@dcmaarch-prod MaarchCourrier]$ batch]$ git diff modules/visa/class/IParapheurController.php ../class/IParapheurController.php  
 diff --git a/modules/visa/class/IParapheurController.php b/modules/visa/class/IParapheurController.php 
 index 7b0ee3b..282b84f 7b0ee3b..9a5d7e9 100755 
 --- a/modules/visa/class/IParapheurController.php 
 +++ b/modules/visa/class/IParapheurController.php 
 @@ -23,7 +23,7 -232,9 +232,20 @@ class IParapheurController 
              'options'         => [ 
                  CURLOPT_SSLCERT           => $config['data']['certPath'], 
                  CURLOPT_SSLCERTTYPE       => $config['data']['certType'], 
 -                  CURLOPT_SSL_VERIFYPEER    => 'false', 
 +                  CURLOPT_SSL_VERIFYPEER    => FALSE, 
                  CURLOPT_USERPWD           => $config['data']['userId'] . ':' . $config['data']['password'], 
              ], 
              'delete_header' => true 
 @@ -232,13 +232,25 @@ class IParapheurController 
                      echo $curlReturn['error']; 
                      return false; 
                  } 
 - 
 -                  $response = $curlReturn['response']->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://www.adullact.org/spring-ws/iparapheur/1.0 $curlReturn['response']->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://www.adullact.org/spring-ws/iparaphe 
 - 
 +//var_dump($curlReturn); +//var_dump($curlReturn);exit; 
 +try { 
 +      if (is_bool($curlReturn['response']) === true) { 
 +          echo "error" . PHP_EOL; 
 +          var_dump($aArgs['config']); 
 +          var_dump($noVersion); 
 +          var_dump($curlReturn); 
 +          break; 
 +      } 
 +      //var_dump($curlReturn); 
 +      $response = $curlReturn['response']->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://www.adullact.org/spring-ws/iparapheur/1.0')->GetHisto $curlReturn['response']->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://www.adullact.org/spring-ws/iparapheur/1.0')->Ge 
 +} catch (Exception $e) { 
 +      echo 'Exception : ',    $e->getMessage(), "\n"; 
 +} 
                  if ($response->MessageRetour->codeRetour == $aArgs['config']['data']['errorCode']) { 
                      // TODO gestion d'une potentielle erreur 
                      echo 'retrieveSignedMails noVersion : [' . $response->MessageRetour->severite . ']' . $response->MessageRetour->message; 
 -                      return false; 
 +                      //return false; 
 +                      break; 
                  } else { 
                      $noteContent = ''; 
                      foreach ($response->LogDossier as $res) {      // Loop on all steps of the documents (prepared, send to signature, signed etc...) 
 @@ -286,7 +298,7 @@ class IParapheurController 
 
                  if (!empty($curlReturn['response'])) { 
                      // TODO gestin d'une erreur 
 -                      echo $curlReturn['error']; 
 +                      echo 'error : ' . $curlReturn['error']; 
                      return false; 
                  } 
 

 ~~~ 

 2. client Soap : si l'enveloppe XML de retour suite à l'appel à un WS SOAP comporte un double retour chariot cela tronque le body du xml 
 voici le patch correctif : 

 ~~~ text 
 -              $body = explode(PHP_EOL . PHP_EOL, $rawResponse)[1]; // put the header ahead 
 +              $body = strstr($rawResponse, '<?xml'); 
 ~~~ 



 Les deux patchs sont à appliquer depuis la 18.10. 


Retour