Verifier l'existance d'un Doc Profile En LS

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Verifier l'existance d'un Doc Profile En LS

Messagepar Ahamay » 19 Nov 2009 à 11:29

Hello,

Pour faire simple : Je travaille avec plusieurs documents profile type (DocAppProfile, DocSrvProfile, DocUsrProfile...) utilisés ou pas dans différentes db notes.

Bon, certaines bases possèdent plusieurs documents profile, d'autres un seul... certaines aucun.

Comment puis je tester l'existance potentiel de chacun de mes doc profile dans une base ?

J'arrive pas à trouver la propriété qui me permettrai ça... le seul moyen que j'ai trouvé c'est, pour chaque docprofile, de tester d'existance d'un ITEM du doc en question, mais bon cela implique de connaitre au moins 1 champ pour chacun des doc profile.... et puis je trouve pas ça super clean ! Ceci dit si je fait :

Set prodDocProfile = dbProd.GetProfileDocument("DocAppProfile")
If prodDocProfile.IsValid = false Then
OU BIEN
If Not prodDocProfile Is Nothing Then
...

bin ca marche pas..... ou plutot si, ca marche, il me trouve le docprofile a chaque fois, meme s'il n'existe pas dans la structure de la base !?

Moi ce que je voudrait c'est que prodDocProfile me renvoi un erreur (ou false, ou nothing) si le doc en question n'existe pas dans ma base....

j'ai été clair ?


thanx d'avance
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar Michael DELIQUE » 19 Nov 2009 à 11:35

salut

ouaip, le souci c'est que le dbProd.GetProfileDocument le créé automatiquement s'il n'est pas trouvé.

c'est marqué dans l'aide en ligne

par contre comment faire pour checké qu'un doc profil existe ou pas...

franchement je sais pas. mais la solution mérite un beau tip (et m'intéresser aussi !)
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 19 Nov 2009 à 11:36

re,

en passant par

Set notesDocumentCollection = notesDatabase.GetProfileDocCollection( profilename$ )

tu devrais y arriver non ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Ahamay » 19 Nov 2009 à 11:50

bah ouaip, j'étions bien rendu compte que le getProfile créé le doc en question s'il n'existe pas.... et il lui colle 4 pauv item qui se battent en duel lol....

Vais essayer en passant par la collection

Merci Michael
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar Michael DELIQUE » 19 Nov 2009 à 11:53

codé vite fais

essais ça


Code : Tout sélectionner
Function DocProfilGet(wProfilName As String, wUniqueKey As String) As NotesDocument
   
   Dim Session As NotesSession
   Dim DB As NotesDatabase
   Dim Collection As notesDocumentCollection
   
   On Error Goto ErreurHandle
   
   Set DocProfilGet = Nothing
   
   Set Session = New NotesSession
   Set DB = Session.CurrentDatabase
   Set Collection = DB.GetProfileDocCollection(wProfilName)
   
   If Collection Is Nothing Then
      Exit Function
   End If
   
   Select Case Collection.Count
   Case 0
      'on ne fait rien
   Case 1
      Set DocProfilGet = Collection.GetFirstDocument
   Case Else
      Set DocProfilGet = Collection.GetFirstDocument
      While Not DocProfilGet Is Nothing
         If DocProfilGet.Key = wUniqueKey Then
            Set Collection = Nothing
            Exit Function
         End If         
         Set DocProfilGet = Collection.GetNextDocument(DocProfilGet)
      Wend
   End Select
   
   Set Collection = Nothing
   
   
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Set DocProfilGet = Nothing
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar roubech » 19 Nov 2009 à 12:11

et par hasard :

[syntax="LotusScript"]Set prodDocProfile = dbProd.GetProfileDocument("DocAppProfile")
If prodDocProfile.IsNewNote Then
' ....
End if[/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Michael DELIQUE » 19 Nov 2009 à 12:31

pas bête !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Ahamay » 19 Nov 2009 à 14:30

Arf.... j'étais aussi parti sur l'idée du Count de la collection... mais IsnewNote fonctionne bien aussi....... :)

Big merci à tous.....

Et un ptit tips de plus un 8)
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar Michael DELIQUE » 19 Nov 2009 à 14:31

met les 2 solutions dans ton tips
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Ahamay » 19 Nov 2009 à 15:29

Bien chef....
mais lä, pas le temps.... suis charette !

J'le mets dans mes ToDo :)
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest


Retour vers Développement

cron