IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Message intempestif : Erreur d'impression


Sujet :

WinDev

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut Message intempestif : Erreur d'impression
    Bonjour,

    Nous avons un serveur de sockets qui traite un certain nombre de demandes et dont notamment des demandes d'impressions. Ce serveur ne doit en aucun cas être bloqué par un quelconque message donc pour cela nous avons positionné un traitement d'exception dans l'initialisation du projet pour intercepter tous les messages. Ce serveur fonctionne très bien mais très aléatoirement et malgré ce traitement d'exception au moment de certaines impressions nous avons ce message qui est affiché.

    Nom : Err_Impression.png
Affichages : 1785
Taille : 12,3 Ko

    Naturellement il bloque notre serveur et nous ne savons pas comment nous en débarrasser.

    J'ai remonté l'information au ST qui naturellement me demande un projet de test reproduisant le phénomène. Etant donné que cette erreur est aléatoire et très rare, impossible de répondre à leur demande

    Cette erreur n'est pas affiché par notre programme (c'est certain), ce n'est pas non plus à priori un message standard WinDev donc je suppose que c'est une erreur de bas niveau renvoyé par une fonction WinDev. Qu'en pensez-vous, êtes-vous parfois confronté à ce message, savez-vous comment je pourrais m'en débarrasser ou tout du moins comment le contourner ?

    Par avance merci
    Emmanuel

  2. #2
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Bonjour Emmanuel

    Déjà, il semble que les exceptions soient bien évaluées... la preuve !
    Cependant, si l'affichage du message d'erreur est utile pour un utilisateur avancé, je vous enjoint mémoriser dans un log le contexte complet de l'exception :
    - dbgInfo pour trouver qui que dont où s'est produite l'exception et même la pile d'exécution !
    - ExceptionInfo(errComplet) pour disposer de la totalité de l'information et ainsi favoriser votre recherche d'erreur.
    Evidemment, la correction ne sera possible que lorsque vous aurez identifié le problème mais là, le coté "aléatoire" pourra trouver sa raison.

    Bien à toi

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Salut Romuald,

    Merci pour ton retour.

    je ne vois pas trop ce que tu veux dire et peut-être que je n'ai pas été suffisamment précis mais ce message est affiché sans passer dans le traitement d'exception. Tout ce qui passe dans le traitement d'exception est naturellement mémorisé en détail et même reçu par mail automatiquement.

    Ce message n'est intéressant pour personne et je veux m'en débarrasser (au moins dans un premier temps) afin que mon serveur de socket ne soit plus bloqué.

  4. #4
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Je sèche...
    Sauf peut être si on considère un message qui apparait dans un projet windev
    Si ce qui est traité (pb espace sur disque pour générer les pages) n'est pas vérifié, peut être il faut vérifier l'allocation d'espace pour le profil ou ce genre de limite bien éloignées de ton code...

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 101
    Points : 9 596
    Points
    9 596
    Par défaut
    hello,
    est-ce que l'imprimante est une hp? as-tu essayé avec un autre type d'imprimante ?
    Je suis un peu ignare en la matière : c'est quoi un serveur de sockets ? Il y a un serveur d'impression ?

    Ami calmant, J.P

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    @ R&B
    Oui j'ai aussi lu que ça pouvait éventuellement provenir d'un problème d'espace disque mais là ce n'est pas le cas.

    @ jurassic pork
    C'est un imprimante thermique de marque Printronix T4M. J'ai approfondie le sujet et finalement il est plus complexe que je ne le pensais. Pour répondre à ta question ce serveur est à l'écoute de terminaux mobiles qui lui envoient des ordres (requêtes, impressions etc...), le dialogue est établi via des sockets. Dans le cas qui nous intéresse, les terminaux sont distants de plusieurs km et reliés par VPN au site central qui reçoit les ordres. Grace aux logs qui sont en place j'ai pu déterminé que l'ordre qui est donné déclenche l'interrogation d'un webservice qui nous renvoie une image (étiquette) à imprimer sur une Printronix distante. L'impression est très simple et se résume à un iImprimeImage, le message apparait durant l'impression, le message est "impossible de terminer la page", est-ce que ça ne pourrait pas être tout simplement un problème de communication sur le lien VPN ?

    Si c'est cela malgré tout je ne comprends pas pourquoi PCSOFT ne génère pas une erreur d'exception et affiche simplement un message. Finalement pour débloquer le serveur j'ai trouvé une solution que je vais tester rapidement, mettre un timer sur le bouton OK (DélaiAvantFermeture) pour que la validation se fasse automatiquement au bout de 2 secondes. Si ce système fonctionne, je n'aurais pas mon étiquette mais au moins j'aurais réussi à débloquer mon serveur.

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 101
    Points : 9 596
    Points
    9 596
    Par défaut
    OK,
    merci du renseignement. Je vois que ton système est complexe. Le problème risque d'être difficile à élucider. As-tu mis une gestion d'exception sur le iimprimeimage si oui quel est le code ?

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Oui j'ai mis une gestion d'exception au niveau du iImprimeImage. Voici le code mais pour compliquer encore un peu les choses il faut savoir que la procédure fait partie d'un composant appelé par le serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    FONCTION ImprimerEtiquette ( bSautDePage_ est un booléen = Faux, bAperçu_ est un booléen = Faux )
     
    QUAND EXCEPTION DANS
     
    	iParamètre ( iLargeurPapier, 1050 ) 
    	iParamètre ( iHauteurPapier, 1480 ) 
     
    	SI bAperçu_ ALORS
    		iAperçu ( i100, "Etiquette Laurastar" )
    	FIN
     
    	// DPI 300 : OK
    	iImprimeImage ( Coll_LaPosteSuisse.gstResultat.iEtiquette, 1, 1, 1050, 1480 )
     
    	SI bSautDePage_ ALORS
    		iSautePage ()
    	SINON
    		iFinImprime()
    	FIN
    FAIRE
    	gstErreurs.sTypeErreur 	= "E"
    	gstErreurs.sCodeErreur 	= "ITE9000"
    	gstErreurs.sLibelleErreur	= ExceptionInfo ( errRésumé )
    	gstErreurs.sLibelleDétaillé	= ExceptionInfo ( errComplet )
     
    	ExceptionActive ()
     
    	RENVOYER Faux
    FIN
     
    RENVOYER Vrai

  9. #9
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 101
    Points : 9 596
    Points
    9 596
    Par défaut
    Et si tu utilisais la fonction trace au lieu de la fonction erreur quand il y a une exception ?

  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Et si tu utilisais la fonction trace au lieu de la fonction erreur quand il y a une exception ?
    Où vois-tu une fonction erreur dans la procédure, je n'en utilise nul part, ce sont des variables enregistrées dans des logs. Mais comme dit, de toute manière le traitement ne passe pas dans le traitement d'exception.

  11. #11
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 101
    Points : 9 596
    Points
    9 596
    Par défaut
    c'est à cause de la copie d'écran que tu as fourni dans le premier message. Ce qui est louche c'est qu'il y a une partie en français et une partie en anglais. Et le message "impossible de terminer une page" ne semble pas être un message windows de microsoft. Il faudrait voir quand le message s'affiche à quel exécutable il est lié. ou c'est un windev messagebox. Finalement c'est peut être un message bas niveau de windev.

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 153
    Points
    2 153
    Par défaut
    A tout hasard... n'y a t il pas un problème lors du iSautePage ou iFinImprime car l'image fait 1050 par 1480 mm, la page aussi or vous démarrez l'impression de votre image à 1mm du haut et de la gauche (iImprimeImage ( Coll_LaPosteSuisse.gstResultat.iEtiquette, 1, 1, 1050, 1480 ))...

    perso je tenterais : iImprimeImage ( Coll_LaPosteSuisse.gstResultat.iEtiquette, 0, 0, 1050, 1480 )

  13. #13
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    c'est à cause de la copie d'écran que tu as fourni dans le premier message. Ce qui est louche c'est qu'il y a une partie en français et une partie en anglais. Et le message "impossible de terminer une page" ne semble pas être un message windows de microsoft. Il faudrait voir quand le message s'affiche à quel exécutable il est lié. ou c'est un windev messagebox. Finalement c'est peut être un message bas niveau de windev.
    Je suis assez d'accord avec toi, je vais rajouter quelques logs lors de la fermeture automatique de cette boite de dialogue. Cette fenêtre reprend le gabarit du projet donc il est fort probable que ce soit un messagebox WinDev. J'ai également l'impression que c'est un message bas niveau renvoyé tel quel mais je peux me tromper.

  14. #14
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par michel.souris Voir le message
    perso je tenterais : iImprimeImage ( Coll_LaPosteSuisse.gstResultat.iEtiquette, 0, 0, 1050, 1480 )
    Excellente suggestion, je n'y avais pas prêté attention, je vais tester

  15. #15
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 153
    Points
    2 153
    Par défaut
    L'effet pervers de Windev et ses index qui commencent à 1 et non 0....

  16. #16
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    Suite à notre discussion, une nouvelle version va être mise en test à compter de cet après-midi et donc j'en saurais beaucoup plus si le phénomène réapparaît. Je vais attendre 15 jours minimum pour voir et reviendrai ensuite ici pour clôturer éventuellement cette discussion.

    Merci pour votre soutien
    Emmanuel

  17. #17
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut Compte-rendu
    Bonjour à tous,

    Comme promis voici un petit retour après 2 semaines de test. A mon grand désespoir le problème persiste donc Michel ta proposition de modifier les coordonnées n'a rien changé

    Mais maintenant grâce aux fonctions de debug que j'ai mis en place j'en sais un peu plus et j'ai constaté que le message d'info (voir mon premier post) peut apparaitre sur n'importe quelle fonction d'impression (i....) et uniquement sur celles-ci.

    Pour rappel :

    Nous avons en clientèle un serveur de socket qui gère des demandes de terminaux mobile et dont (entre autre) des demandes d'impressions. Très aléatoirement sur les fonctions d'impression (et ceci malgré un traitement d'exception à l'initialisation du projet qui est sensé intercepter tous les messages), le message suivant apparait : "Impossible de terminer une page" - "The parameter is inccorect".

    Aujourd'hui nous avons réussi à intercepter l'affiche de ce message d'information grâce à une fermeture automatique de la fenêtre après 2 secondes (voir discussion) mais notre problème reste entier puisque certaines tâches d'impressions ne sont pas exécutées.

    J'apporte à votre connaissance un élément supplémentaire à savoir que notre serveur de socket exécute chaque demande dans des threads secondaires et aujourd'hui je me demande finalement si ce problème ne se produirait pas quand deux threads exécutent en parallèle une tâche d'impression. Donc mes prochains tests vont consister à mettre en place des sémaphores pour voir si ça change quelque chose.

    Si vous avez d'autres idées ou avis, ils sont naturellement les bienvenues, merci.

Discussions similaires

  1. message d'erreur pendant impression
    Par hanitax dans le forum Langage
    Réponses: 5
    Dernier message: 25/06/2013, 18h11
  2. [AC-2003] Message d'erreur à l'impression
    Par Xtine dans le forum IHM
    Réponses: 2
    Dernier message: 03/02/2010, 15h49
  3. Message d'erreur intempestif
    Par jean-paul lepetit dans le forum Access
    Réponses: 14
    Dernier message: 25/09/2006, 13h07
  4. authentification incorrecte et message d'erreur intempestif
    Par PuppeT mAsTer dans le forum Langage
    Réponses: 11
    Dernier message: 17/07/2006, 18h23
  5. WebBrowser Impression Message d'erreur
    Par Tempotpo dans le forum Web & réseau
    Réponses: 16
    Dernier message: 19/04/2006, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo