event 66

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

event 66

Messagepar kagura31 » 21 Sep 2009 à 14:23

Bonjour,

Je travaille actuellement sur une dll en C.
La dll fonctionne sur un évènement 66.
Après plusieurs testes, il me semble que ça correspond à l'action "insert" (quand je passe un mail sélectionné en lu ou non lu manuellement).
Mon problème, c'est que ca fonctionne sur le serveur, mais pas sur la base mail répliquée en local.

Lotus bloque au moment où j'utilise NSFDbOpen, le chemin est mail\kandoche.nsf

Est ce quelqu'un aurait des renseignements sur le fonctionnement de l'evenement 66? ou serait me dire comment le faire fonctionner sur une base local ?

Cordialement
Dernière édition par kagura31 le 06 Oct 2009 à 14:43, édité 1 fois.
kagura31
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 115
Inscrit(e) le : 12 Avr 2006 à 15:08
Localisation : Lyon

Messagepar Jérome Deniau » 22 Sep 2009 à 08:28

Si tu trappes l'événement 66 dans ton extension, c'est que tu sais ce que tu sois obtenir non? Si ton nsfdbopen crash c'est que le paramètre que tu récupère dans ta fonction déclenché par l'événement 66 n'est pas un poointeur sur un document et que donc dans ce cas....... crash.

A mon avis en local le problème peut-être:
erreur de structure, absence de la table des non-lus, etc..

Donc tu as dû compilé avec debug + le fichier SYM (utiliser MAP2iSym de IBMeuh), copié la dll et le fichier sym sur le poste. L'avantage c'est que le nsd contient le pourquoi du comment généralement un crash de NSFDbOpen peut venir d'un path name erroné (très rare) ou d'une erreur sur le pointeur de retour pour obtenir le handle de la base.
Jérome Deniau
 

Messagepar kagura31 » 23 Sep 2009 à 09:55

Je n'ai pas ecris la DLL.
Ils utilisent évenement 66 et je n'ai aucun renseignement.
Ce que fais la DLL c'est mettre des mails lu en non-lu et inversement.

J'ai modifié le chemin pour la fonction NSFDbOpen : !! + le chemin vers la base mail en local.
Là ca fonctionne.

Par contre, j'ai une erreur sur NSFDbUpdateUnread.
Il m'affiche " this function is inappropriate for file system directories"
kagura31
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 115
Inscrit(e) le : 12 Avr 2006 à 15:08
Localisation : Lyon

Messagepar Jérome Deniau » 23 Sep 2009 à 10:55

En local cela ne synchronisera pas les marqueurs de non-lus avec le desktop de l'utilisateur, donc quand il ouvrira la base sur son client le desktop, remettra les marqueurs de non-lus dans l'état précédent stocké sur son bureau. A valider en 8 mais je pense que c'est le même fonctionnement.

Sinon pour le message "this function is inappropriate for file system directories" cela peut venir de plusieurs choses:
- la base a été renommée entre temps (rare, très)
- l'utilisateur n'est que Editeur sur sa bàl et/ou le serveur d'administration de sa bàl ne correspond pas à celui de sa fiche (dans le names.nsf du serveur) ou en rapport avec son document site (names local) -> j'ai un doute là dessus...


Mais à mon avis c'est un problème de droit ou de conf de propriétés de la base si le pointeur de la base est correct et si le code status = SECKFMGetUserName (UserName); a bien été exécuté avant pour récupérer le user courant, voir l'exemple misc\unread de l'api c
Jérome Deniau
 

Messagepar kagura31 » 30 Sep 2009 à 14:45

Merci pour la réponse.
Après mult essaie, mon souci vient que quand je réalise l'event 66, Notes se bloque toujours sur NSFDbOpen.

Je vais essayer de partir autrement.
Connaissez vous une fonction qui permet de récupérer les mails sélectionnés dans la vue?
kagura31
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 115
Inscrit(e) le : 12 Avr 2006 à 15:08
Localisation : Lyon

Messagepar kagura31 » 06 Oct 2009 à 14:33

kagura31
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 115
Inscrit(e) le : 12 Avr 2006 à 15:08
Localisation : Lyon


Retour vers Développement

cron