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

Forms Oracle Discussion :

Forms 10g/base oracle 10 : Edition sur un client (WEBUTIL_HOST)


Sujet :

Forms Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Points : 21
    Points
    21
    Par défaut Forms 10g/base oracle 10 : Edition sur un client (WEBUTIL_HOST)
    Bonjour tous,

    Je recupère un modèle (document word) sur le serveur, je genère les données de fusion dans un fichier texte sur le serveur, je copie les deux sur le poste client pour la fusion avec une macro derrière. A la fin, je recopie sur le serveur.

    Sur le poste où j'ai fait le développement, aucun souci. Avec l'URL de l'appli, j'ai fait le test sur d'autres postes et j'ai une erreur microsoft word fichier introuvable...
    J'ai mis des points d'arrêts dans ma procédure et aucun problème. Je recopie bien les fichiers du serveur sur le poste client, le fichier de données est généré correctement et tout marche bien partout.
    Bref! Je me suis rendu compte qu'avec un point d'arrêt après le WEBUTIL_HOST, j'arrive quand même à m'afficher le document word quelque soit le poste sur lequel je me connecte. Ce n'est pas la meilleure solution et je ne comprends pas le problème surtout que sur le poste de développement tout marche à merveille sans point d'arrêt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    LC$Cmd := 'cmd /c start "" /WAIT "' || LC$Fic ;
    Ret := WEBUTIL_HOST.blocking( LC$Cmd ) ;
    LN$But := WEBUTIL_HOST.Get_return_Code( Ret ) ;
    --pause;
    ...
    Avec un PAUSE après le WEBUTIL_HOST, ça marche quand même sur les autres postes et j'avoue que je ne comprends pas.

    Merci par avance pour votre AIDE

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Points : 21
    Points
    21
    Par défaut
    Merci pour votre réponse

    synchronize ne résout pas le problème.

    Citation Envoyé par SheikYerbouti Voir le message
    Je précise que mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    LC$Cmd := 'cmd /c start "" /WAIT "' || LC$Fic ;				 
    Ret := WEBUTIL_HOST.blocking( LC$Cmd ) ;
    LN$But := WEBUTIL_HOST.Get_return_Code( Ret ) ;
    ...
    se trouve dans un fichier indépendant (bibliothèque attachée à des fmb).

    Cependant en faisant une boucle bidon ça marche sur tous les autres postes. Sur mon poste de développement aucun souci et c'est ce que je n'arrive toujours pas à comprendre.

    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
     
    ...
    LC$Cmd := 'cmd /c start "" /WAIT "' || LC$Fic ;				 
    Ret := WEBUTIL_HOST.blocking( LC$Cmd ) ;
    LN$But := WEBUTIL_HOST.Get_return_Code( Ret ) ;
     
    --Je contourne le problème par une perte de temps mais ce n'est pas propre
    --Voir peut être avec un timer
    --t number := 0 dès le départ
    for i in 1..5000000 loop
       null; 
       -- ou bien t:=t+1;
    end loop
     
    if LN$But <> 0 then
    ...
    N'est-il pas possible d'attendre la fin d'un programme lancé sous oracle forms avant de continuer la suite?

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Sinon, il y a encore l'inexpliquable improbabilité suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         Clear_Message;
         message('xxx', no_acknowledge);
         Clear_Message;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Points : 21
    Points
    21
    Par défaut
    Merci, mais je n'ai pas ce bout de code dans mon programme.

    Quand je rajoute le point d'arrêt ou la boucle inutile, ça semble marcher sur les autres postes.

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    C'était une autre proposition de code pour remplacer votre instruction pause.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Points : 21
    Points
    21
    Par défaut
    Merci mais ce code ne marche pas aussi.
    J'ai redemarré les composants système, le serveur, ... et aucun résultat.

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Sinon, vous pouvez remplacer votre boucle bidon par une temporisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBMS_LOCK.Sleep(1); -- ou 2 ou plus...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Points : 21
    Points
    21
    Par défaut
    Merci pour votre réponse.
    Je me demande si le problème ne vient pas de ma macro. J'ai rajouté un temporisateur mais sans résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    ActiveDocument.SaveAs Me.Path & "\" & "rslt" & Me.Name 
    'temporiser pendant 3s
    'sleep(3)	
        Windows(Le_Fichier).Close (False)
    Le comble est que j'ai réinstallé OAS Forms Reports StandAlone 10g sur un autre poste et avec mon code de départ tout marche a merveille. Il n y a ni point d'arrêt, ni boucle inutile, ... Quelque soit le poste, tout fonctionne très bien.

    Au fait, une différence de version du JRE du serveur et du poste client, empêche t-elle un fonctionnement normal de la librairie webutil?

    Il y a quelque chose qui m'échappe quelque part.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Points : 21
    Points
    21
    Par défaut
    Un temporisateur au niveau de la macro n'était pas concluant avec quelques valeurs testées.
    La boucle inutile ne marche pas non plus à tous les coups. Par contre cette temporisation au niveau forms fonctionne correctement jusqu'à présent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBMS_LOCK.Sleep(10);
    Jusqu'à présent je n'arrive pas à comprendre qu'il faille rajouter une ligne de plus pour que ça marche sur les autres postes à partir d'un premier serveur. Alors que sur un autre serveur sans une ligne de plus, tout marche correctement avec les mêmes configurations des fichiers paramètres (formsweb.cfg, default.env,mon_exemple.env, forms.conf, ....). Bref!

    Encore merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insertion avec forms 10G d'oracle
    Par sanouphil dans le forum Oracle
    Réponses: 3
    Dernier message: 12/11/2010, 09h39
  2. forms 10g : capture d'une signature sur écran tactile
    Par mquodbach dans le forum Forms
    Réponses: 0
    Dernier message: 16/08/2010, 11h58
  3. Réponses: 6
    Dernier message: 27/04/2009, 14h43
  4. Export / Import Base Oracle Express Edition 10 g ?
    Par Pikatch dans le forum Administration
    Réponses: 3
    Dernier message: 06/06/2008, 12h59
  5. Réponses: 4
    Dernier message: 02/01/2006, 17h58

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