Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2008, 18h03   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 32
Points : 11
Points : 11
Par défaut [FORMS10g] Interprétation des variables globales

Bonjour et meilleurs voeux pour cette année 2008

Je soumets à votre savoir infini ce petit casse-tête qui, après acharnement thérapeutique, a eu raison de la mienne.

Dans mon appli, j'upload un fichier depuis le poste client (windows) sur le serveur d'application hébergeant mes forms (unix). J'ai une fonction qui s'occupe de ça et qui prend en paramètre le fichier local à envoyer ainsi que le chemin du répertoire de destination. Avant l'envoi, je vérifie que mon répertoire distant existe bien et qu'il est possible d'y accéder en écriture.
Le chemin du répertoire distant est lu dans un fichier ini et stocké dans une variable globale nommée global.repdist.

Mon problème vient de ma fonction de contrôle dudit répertoire.
Si je l'appelle en lui passant ma variable globale, il me renvoie une erreur comme quoi ce répertoire n'existe pas ou est innaccessible en écriture.
Par contre, si je l'appelle en lui passant mon répertoire distant tout de go (ie. en lui passant '/monprojet/fichiers/in/' par exemple), et bien le contrôle est validé et mon upload s'effectue.

Est-ce que quelqu'un peut m'expliquer ce phénomène et surtout comment le corriger ? J'aimerai bien ne pas avoir à passer mes paramètres de répertoires en dur dans mon code...

Quelques précisions quand même :
- mon répertoire distant existe bien et a les bons droits
- ma variable globale est bien initialisée, j'ai relevé sa valeur jusqu'à mon erreur et elle est correcte.
- j'ai essayé trim(:global.repdist) au cas où un caractère spécial se soit glissé dans ma variable lors de son initialisation en lisant mon fichier ini
- tout fonctionne correctement lorsque je lance ma forms depuis forms developer (via oc4j, sur windows)

Help !

Merci d'avance
pompidouwa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 09h26   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Meilleurs voeux à toi également

1. As-tu vérifier dans ta fonction la valeur de ton paramètre ?
2. As-tu essayer dans ta fonction d'utiliser directement la globale ?
3. Peux-tu nous mettre le code que tu utilises ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 10h13   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 32
Points : 11
Points : 11
Salut plaineR,

Je me sers du code de FileUploader trouvé sur le site d'oracle.
La fonction dont je me sers pour contrôler le répertoire est la suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FUNCTION checkOutputDirectory (outputDir IN VARCHAR2) RETURN BOOLEAN IS
   bRC BOOLEAN := TRUE;
   hDirectoryObj ORA_JAVA.JOBJECT;
  begin 
    IF outputDir IS NULL then
   	  mError :=  'Destination Directory must be specified';
   	  bRC := FALSE;
    end IF;
    hDirectoryObj := JFile.new(outputDir);
    IF NOT JFile.canWrite(hDirectoryObj) then 
  	  mError := outputDir || ' does not exist or is not writable';
  	  bRC := FALSE;
    end IF;
    RETURN bRC;
  end;
Mon anomalie vient de l'appel à canwrite qui renvoie true en passant mon chemin en chaîne de caractère et false en passant mon chemin via la variable globale.
J'ai affiché la valeur de outputDir juste avant le JFile.new(outputDir) et cette valeur est correcte (en tout cas à l'écran) quelle que soit la façon dont j'appelle la fonction...
pompidouwa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 11h28   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 32
Points : 11
Points : 11
Ne cherchez plus j'ai trouvé.

En fait, j'avais transféré mon fichier .ini via Filezilla et j'ai pas fait gaffe au mode qui était en Auto (donc binaire). Ce cochon m'a donc rajouté des ^M à la fin de chacune de mes lignes
Donc ma variable globale contenait la valeur /projet/fichiers/in/^M ce qui fait logiquement tiquer le contrôle d'existence du répertoire.

J'ai retransféré mon fichier ini en mode ascii et tout est rentré dans l'ordre.

Merci plaineR pour ton aide et bonne journée
pompidouwa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h29.


 
 
 
 
Partenaires

Hébergement Web