2 Replies Latest reply: Oct 9, 2013 11:45 AM by Philippe Grenier RSS

    Contourner une erreur de script

    Sébastien brunie

      Bonsoir,

       

      j'ai ce script pour récupérer la météo pour une liste de ville. Seulement, toutes les villes ne sont pas forcément référencées sur le site internet et donc lorsque c'est le cas, j'ai une erreur de script.

       

      Est il possible d'outre passer cette erreur pour ne pas arreter l'execussion du script. Si je n'ai pas la météo pour toutes les villes ce n'est pas grave.

       

      Town:


      first 10 LOAD

      RecNo() as RecNo,

      [Nom Ville],
          
      MAJ,
          
      replace(capitalize(MAJ), ' ', '-') as Ville,
          
      [Code Postal],
          
      [Code INSEE],
          
      [Code Région],
          
      Latitude,
          
      Longitude,
          
      Eloignement


      FROM
      [E:\Accès informatique\Pilotage CSU\ville gps\villes.xlsx]
      (
      ooxml, embedded labels, table is ville)Where [Code Postal] = '75000';


      LET v_RecNoCount = peek('RecNo',-1,'Town');


      for a = 1 to $(v_RecNoCount);

      //for a = 1 to 1;

      LET v_URLValue3 = peek('Ville',-$(a),'Town');

      LET v_URL3= 'http://www.weather-forecast.com/locations/'&v_URLValue3 & '/forecasts/latest';

      Weather:

      LOAD

      *

      FROM
      [$(v_URL3)]
      (
      html, codepage is 1252, embedded labels, table is @2);

      Next

       

        • Re: Contourner une erreur de script
          Philippe Grenier

          Bonjour Sébastien,

           

          Il est possible de dire à QlikView d'ignorer certaines erreurs lorsqu'on le désire. Pour ce faire, il suffit de mentionner l'instruction suivante avant le bout de code pouvant causer des problèmes:

          SET ErrorMode=0; //La valeur par défaut étant 1

           

          Puis, à la fin du fil d'instructions pouvant causer des erreurs, on remet le mode de réactivité aux erreurs à sa valeur par défaut:

          SET ErrorMode=1; //Retour au mode par défaut

           

          Cordialement,

           

          Philippe

          • Re: Contourner une erreur de script
            Brice SACCUCCI

            Bonjour,

             

            vous pouvez contrôler le comportement en cas d'erreur via la variable errorMode.

             

            Par exemple :

            // Erreurs silencieuses

            SET ErrorMode = 0;

              

            // Tâche pouvant générer une erreur

            ...

             

            // Récupération du code de retour

            LET lastScriptErrorCode = $(ScriptError);  

             

            // Réactivation de la sensibilité aux erreurs        

            SET ErrorMode = 1;

               

            TRACE lastScriptErrorCode = $(lastScripErrorCode);

               

            // Comptage des erreurs

            IF (lastScriptErrorCode > 0) THEN

                 LET noFailures = noFailures + 1;

                 TRACE Failure detected, no=$(noFailures);

            ENDIF;

             

             

            Merci,

            Brice