PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV (précédentes versions) → Perte de contexte
Perte de contexte
Débuté par Jean-Luc MAUCORS, 17 oct. 2014 10:30 - 3 réponses
Posté le 17 octobre 2014 - 10:30
Bonjour,
J’ai développé en WEBDEV 16 un site de saisie de commande relié à une base HF Client/Serveur qui tourne très bien chez le client.
Après un mois sans ouvrir WEBDEV, j’ai repris le développement (pour changer de logo), je me suis aperçu de dysfonctionnement sur mon poste de certaines fonctions, liée semble-t-il à la lecture dans la base HF. Perte de contexte ?
Est-ce suite à une mise à jour de Window (Windows 7) ou de l’antivirus (ESET) ? Le problème persiste même si je désactive le pare-feu et l’anti-virus.
Dans WD160Admin, tous les tests et vérifications sont Ok.
j'ai restauré sur mon poste le projet avant modification, et les problèmes sont présents (alors qu'il n'existait pas un mois avant)
Sur un autre poste (même configuration Windows et anti-virus) j’ai installé Webdev et le projet, mais j’ai les mêmes dysfonctionnements.
Par exemple, pour valider une modification de commande en ligne j'ai l'impression qu'il n'arrive pas à retrouver la base HF (alors la commande déjà existante s'est bien affichée à l'ouverture de la page).


Comment « retrouver » le contexte, si possible sans toucher au code (puisque ça continue à marcher chez le client) ?
Merci d’avance
Posté le 17 octobre 2014 - 11:27
Bonjour Jean-Luc

pour commencer, il faudrait commencer par nous montrer les messages
d'erreur précis. Tes impressions ne vont pas être suffisantes...

Ensuite, nous montrer le code correspondant à l'erreur pourrait aussi
être utilise, histoire qu'on sache ce que tu fais et comment.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXReplication, votre système de réplication open source est
disponible sur mon site web !!!
WXShowroom.com : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 10/17/2014 2:30 AM, Jean-Luc MAUCORS wrote:
Bonjour,
J’ai développé en WEBDEV 16 un site de saisie de commande relié à une
base HF Client/Serveur qui tourne très bien chez le client.
Après un mois sans ouvrir WEBDEV, j’ai repris le développement (pour
changer de logo), je me suis aperçu de dysfonctionnement sur mon poste
de certaines fonctions, liée semble-t-il à la lecture dans la base HF.
Perte de contexte ?
Est-ce suite à une mise à jour de Window (Windows 7) ou de l’antivirus
(ESET) ? Le problème persiste même si je désactive le pare-feu et
l’anti-virus.
Dans WD160Admin, tous les tests et vérifications sont Ok.
j'ai restauré sur mon poste le projet avant modification, et les
problèmes sont présents (alors qu'il n'existait pas un mois avant)
Sur un autre poste (même configuration Windows et anti-virus) j’ai
installé Webdev et le projet, mais j’ai les mêmes dysfonctionnements.
Par exemple, pour valider une modification de commande en ligne j'ai
l'impression qu'il n'arrive pas à retrouver la base HF (alors la
commande déjà existante s'est bien affichée à l'ouverture de la page).


Comment « retrouver » le contexte, si possible sans toucher au code
(puisque ça continue à marcher chez le client) ? Merci d’avance
Membre enregistré
2 messages
Posté le 20 octobre 2014 - 10:31
Bonjour Fabrice,


Lors de l'impression/affichage d'un document PDF ou XLS), il n’y a pas toujours de message d’erreur : lorsque le code s’exécute, le « sablier » s’affiche un moment, mais rien ne se passe, et on récupère la main.
Ceci est valable quelques soit le document à imprimer (bon de commande, mais aussi statistiques, fiche d’un client, lignes d’écritures comptables etc…)

En insistant j’arrive à avoir un de ces messages d’erreur :
***********************************************
Le contexte auquel cette requête fait référence (7864) est invalide (votre session s'est terminée pour une raison inconnue).
(0059, ERR_BAD_CONTEXT_FOUND)

OU ***********************************************
Le contexte auquel cette requête fait référence (-2) est inconnu.

Le serveur a peut-être été redémarré depuis votre dernière requête.
(0054, ERR_BAD_CONTEXT_INVALID)
***********************************************


Je n'ai pas changé une ligne de code (juste changer des logos), (et sur des projets de test j'ai les mêmes problèmes)

Cependant voici le code concernant l’impression d’une commande fournisseur :
Merci de ton aide.
Jean-Luc

***************************************************************************************************************
***************************************************************************************************************
Voici le code du lien Imprimer ; (code serveur), pas de code navigateur avant (je l’ai neutralisé pour les tests)

SI BTN_ValiderCDE..Visible = Vrai ALORS
ExécuteTraitement("CELL_CORPS.BTN_ValiderCDE",trtClic)
FIN


iDestination(iPDFGénérique,ComplèteRep(gsRep_Temporaire) + "BCDE_" + DonneGUID() + ".PDF") // autre méthode d'avoir un nom unique

SI INT_Anglais = Vrai ALORS
iInitRequêteEtat(ETAT_BCDE_GB,H1.IDZHF_HA_Entete)
iImprimeEtat(ETAT_BCDE_GB,H1.IDZHF_HA_Entete)
FichierAffiche(iDernierFichier(),"application/pdf","BCDE_GB_" + H1.DO_Piece + ".PDF")
SINON

iInitRequêteEtat(ETAT_BCDE_FR,H1.IDZHF_HA_Entete)

iImprimeEtat(ETAT_BCDE_FR,H1.IDZHF_HA_Entete)

FichierAffiche(iDernierFichier(),"application/pdf","BCDE_FR_" + H1.DO_Piece + ".PDF")
FIN


fSupprime(iDernierFichier())



**************************************************************************
Code du lien BTN_ValiderCDE
**************************************************************************

PageVersFichier(PAGE_CDE_FICHE,ZHF_HA_Entete)

MAJ_enr_entete()
HModifie(ZHF_HA_Entete)

GR_nonmodif..Visible = Vrai
LIB_Lignes = "Lignes"


SI Enregistrer_lignes() = -1 ALORS
// rien
FIN


// Validation brouillon
// ---------------------
SI gsProfilage_Compte[[5]] = 1 ET H1.CDE_Validee = 0 ALORS
BTN_ValiderBrouillon..Visible = Vrai
SI H1.Brouillon = Faux ALORS
BTN_ValiderBrouillon..Libellé = "Rétablir le brouillon"
FIN
FIN

RETOUR

CAS ERREUR:
Erreur(ErreurInfo())

**************************************************************************
**************************************************************************
Procedure MAJ_enr_entete()

SI LIBF_NomFournisseur = "" ALORS
Info("Vous devez sélectionner un fournisseur.")
RETOUR
FIN
SI LIBF_NomFournisseur <> "" ALORS H1.Sage_Tiers_inexistant = Faux

SI Majuscule(Gauche(COMBO_DEVISE,3)) = "EUR" ALORS
H1.Montant_cde_HT = LIBF_MTT_HT
H1.Devise_HT =0
SINON
H1.Devise_HT = LIBF_MTT_HT
H1.Montant_cde_HT = LIBF_MTT_HT
FIN

H1.Cli_Contrat = gsClient_contrat
H1.Statut = 0
H1.DO_Date = DateSys()
H1.TypeDoc = 0

SI (H1.ADR_LIVRAiSON1 + H1.ADR_LIVRAiSON2 + H1.ADR_LIVRAiSON3 + H1.ADR_LIVRAiSON4 = "") ET LIBF_labo <>"" ALORS
HLitRecherche(ZHF_LABOS,Code_Labo,LIBF_labo,hIdentique)
SI HTrouve() ALORS
H1.ADR_LIVRAiSON1 = SansEspace(LB.CT_Adresse)
H1.ADR_LIVRAiSON2 = SansEspace(LB.CT_Complement)
H1.ADR_LIVRAiSON3 = SansEspace(LB.CT_CP_Ville + " " + LB.CT_CP_Ville)
H1.ADR_LIVRAiSON4 = SansEspace(LB.CT_Adresse3)
FIN

FIN

SI PAS DateValide(SAI_DateLivraison) ALORS SAI_DateLivraison = SAI_Date
SI SAI_DateLivraison < SAI_Date ALORS SAI_DateLivraison = SAI_Date

**************************************************************************
**************************************************************************
Procedure Enregistrer_lignes()
MaREQ_ILest une Source de Données
sCHM est une chaîne
nId_cde, iest un entier




// Enregistrement des lignes
// -------------------------
nId_cde = H1.IDZHF_HA_Entete
SI nId_cde = 0 ALORS RENVOYER -1

// MAJ statut
// ------------------
sCHM = "UPDATE ZHF_HA_LIGNES SET Statut = 1 WHERE IDZHF_HA_Entete = " + nId_cde
SI PAS HExécuteRequêteSQL(MaREQ_IL,hRequêteInterruptible,sCHM) ALORS
Info("Erreur : " + ErreurInfo())
RENVOYER -1
FIN
HAnnuleDéclaration(MaREQ_IL)

// remise en ordre éventuelle
POUR i = 1 _A_ TableOccurrence(TABLE_LignesHA)
COL_DL_LIGNE[i] = i * 10
FIN

POUR i = 1 _A_ TableOccurrence(TABLE_LignesHA)
SI COL_Id_ligne[i] = 0 ALORS
// nouvelle ligne
// ---------------------
HRAZ(ZHF_HA_LIGNES)
H2.IDZHF_HA_Entete = nId_cde
H2.AR_Ref = COL_Reference[i]
H2.Ref_ArticleWEB= Gauche(COL_REF_WEB[i],25)
H2.DL_Design= Gauche(COL_Libellé[i],50)
H2.DL_Ligne= COL_DL_LIGNE[i]
H2.DL_PrixUnitaire= COL_Prix_unitaire_net[i]
H2.DL_Qte= COL_Quantité[i]
H2.DL_No= 0

SI Majuscule(Gauche(COMBO_DEVISE,3)) = "EUR" ALORS
H2.Montant_HT= COL_Montant_HT[i]
H2.Devise_HT= 0
SINON
H2.Montant_HT= COL_Montant_HT[i]// oui pour éditer
H2.Devise_HT= COL_Montant_HT[i]
FIN

H2.SaisieWEB= Vrai
H2.Statut = 0
HAjoute(ZHF_HA_LIGNES)
SINON
// modifier ligne existante
// --------------------------------

HLitRecherche(ZHF_HA_LIGNES,IDZHF_HA_LIGNES,COL_Id_ligne[i],hIdentique)
SI HTrouve() ALORS

SI H2.DL_Design<> COL_Libellé[i] ET COL_Reference..Visible = Faux ALORS
H2.AR_Ref = ""
SINON
H2.AR_Ref = COL_Reference[i]
FIN
H2.DL_Design= Gauche(COL_Libellé[i],50)
H2.Ref_ArticleWEB= Gauche(COL_REF_WEB[i],25)

H2.DL_Ligne= COL_DL_LIGNE[i]
H2.DL_PrixUnitaire= COL_Prix_unitaire_net[i]
H2.DL_Qte= COL_Quantité[i]
H2.SaisieWEB= Vrai

SI Majuscule(Gauche(COMBO_DEVISE,3)) = "EUR" ALORS
H2.Montant_HT= COL_Montant_HT[i]
H2.Devise_HT= 0
SINON
H2.Montant_HT= COL_Montant_HT[i]
H2.Devise_HT= COL_Montant_HT[i]
FIN

H2.Statut = 0
HModifie(ZHF_HA_LIGNES)
SINON
Info("Erreur d'enregistrement : " + HErreur())
RENVOYER -1
FIN
FIN

SI ErreurDétectée() ALORS
Info("Erreur : " + ErreurInfo())
RENVOYER -1
FIN


FIN


// suppression effectives des lignes supprimées dans la table
// -----------------------------------------------------------
sCHM = "DELETE FROM ZHF_HA_LIGNES WHERE IDZHF_HA_Entete = " + nId_cde + " AND Statut = 1"
SI PAS HExécuteRequêteSQL(MaREQ_IL,hRequêteInterruptible,sCHM) ALORS
Info("Erreur : " + ErreurInfo())
RENVOYER -1
FIN
HAnnuleDéclaration(MaREQ_IL)

RENVOYER 0
Membre enregistré
2 messages
Posté le 24 octobre 2014 - 08:13
Résolu.

Bonjour,
la perte de contexte était due à un répertoire inaccessible dans lequel était généré les PDF avant affichage.

Merci.