Pièce jointe introuvable suite à l'exécution d'un agent

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

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Raziel » 15 Jan 2004 à 14:54

Question : Pk modifier le docuement après l'avoir analysé ?Si c'est juste pourque ton agent ne les retraite pas la fois suivante, tu peux utiliser la méthode UpdateProcessedDoc contenu dans la classe Notessession.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Oguruma59 » 15 Jan 2004 à 14:57

enfin c'est peut être dans cette procédure qu'il faut placer le detach de l'objet soit par une fonction spécifique avec les paramètres nécessaire dont att as variant ou as NotesEmbeddedObject et là dans ce traitement tu appelles la méthode att.ExtractFile( emplacement_du_fichier_extrait )tu fais les deux en un...a+
Oguruma59
 

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Nicolas » 15 Jan 2004 à 18:19

il me semble (je n'en suis pas sur) que l'utilisation de getUnprocessedDocuments pose problème lorsque que l'on modifie le code source de l'agent (où son nom ?), dans ce cas il re-traite des documents déjà traités. Je n'en suis pas sûr, il faudra que je teste cela !Merci pour l'idée
Nicolas
 

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Nicolas » 15 Jan 2004 à 18:43

Je pensais aussi utiliser "EmbeddedObjects", mais en consultant l'aide sur cette méthode, j'ai trouvé ce petit blabla qui ne me dit rien de bon :Unlike the EmbeddedObjects property in NotesRichTextItem, this property does not include file attachments or OLE/1 objects created in Notes Release 3.This property does include OLE/2 and OLE/1 objects created in Notes Release 4. It also includes objects in the document that were originally embedded in the document's form. Such objects must have been activated, modified, and re-saved in order to be returned by this property (otherwise they remain a part of the form, not the document).Cette méthode permet-t-elle de récupérer absolument toutes les pièces jointes ? Je connais pas trop le sujet mais apparemment il existe pas mal de sortes différentes de pièces jointes...En fait le CDC c'est ça : créer un agent qui , pour chaque mail reçu dans une BAL notes, insère un enregistrement en base DB2 sur un AS/400, avec les infos suivantes: date, heure, expéditeur, sujet, nb de pièces jointes, nom des pièces jointes.Dans un 2e temps peut-être qu'il faudra détacher ces pièces jointes mais je n'en suis pas là.Bon, en tous cas je pense que maintenant j'ai assez d'éléments pour aller un peu plus loin dans mes tests, il ne me reste plus qu'à trouver le temps...Merci et à +
Nicolas
 

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Oguruma59 » 15 Jan 2004 à 18:58

humumum.... ça ressemble a du "flicage" de mail ça on dit, c'est demandé par le RSSI ?cela dit, fait attention à la CNIL...il est vrai que la methode a fait défaut dans le passé mais.. bon je n'ai pas eu de pb avec...ça mérite la peine d'essayersi je peux t'aider dans le dév... je dirai qu'il me plait bcp... et ça me permet d'occuper mes journées en attendant l'offre divinej'ai eu une mission de ce genre où j'étais chargé de faire attach/détach automatique, je peux te filer la base mail si tu veux t'en inspirer...laisse emaila+
Oguruma59
 

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Nicolas » 16 Jan 2004 à 10:34

hé hé, non non rassures-toi c'est pas du flicage de mail (sinon j'aurais aussi ajouté en base le body du mail, tant qu'à faire !), c'est une boite qui est dédiée à une application qui envoie des flux...Si vraiment le sujet te passionne tu peux toujours me filer un coup de main, mais ceci dit le seul problème qui me reste à résoudre pour l'instant c'est cette question de pièce jointe qui n'est plus accessible.Le détachement de ces pièces jointes n'est pas, urgent du tout (c'est même pas sûr qu'on en ait besoin)Pour ceux que ça peut interresser voici le code de mon agent :------------------Option PublicOption DeclareUselsx "*LSXODBC"%INCLUDE "lserr.lss"------------------Sub Initialize On Error Goto TrtErreur Dim session As New NotesSession Dim db As NotesDatabase Dim collec As NotesDocumentCollection Dim doc As NotesDocument Dim con As New ODBCConnection Dim qry As New ODBCQuery Dim res As New ODBCResultSet Dim object As NotesEmbeddedObject Dim adresseFrom, sujet, code, listePJ As String Dim cnt As Variant Dim nbPJ As Integer '-------------- ' Début '-------------- Set db = session.CurrentDatabase Set collec = db.UnprocessedDocuments ' eh oui je l'utilise quand même, question performances ça évite tout de même de re-lire à chaque fois tous les mails de la base... Print "#-- MailCheck --- Début - " + Cstr(collec.count) + " mails à vérifier." Set doc = collec.GetFirstDocument() If (doc Is Nothing) Then Exit Sub End If ' => "Connection" en local sur l'as400 (le nom "S*******" apparait par la commande WRKRDBDIRE sur l'as400). con.autocommit=True If (con.connectto("S*******","PROFIL","password")) Then Print ("MailCheck : Connected to AS400") Set qry.Connection = con Set res.Query = qry Else Print ("Erreur TFDOM : " + Cstr(con.Error) +Cstr(con.GetExtendedErrorMessage)) Exit Sub End If ' Boucle de lecture des mails reçus While Not(doc Is Nothing) If (doc.checked(0)<>"OK") Then ' On remplace les quotes par des doubles quotes pour SQL400... adresseFrom = ReplaceSubstring (doc.INetFrom(0), "'", "''") If (adresseFrom ="") Then adresseFrom =ReplaceSubstring (doc.From(0), "'", "''") End If sujet= ReplaceSubstring (doc.subject(0), "'", "''") code="" If (doc.FailureReason(0)<>"") Then code="ECHEC" End If listePJ="" nbPJ=0 ' toutes les pièces jointes: ' c'est là que ça marche pas donc je l'ai mis en commentaires: ' Forall i In doc.Items ' If ( i.type = ATTACHMENT) Then ' nbPJ=nbPJ+1 ' listePJ=listePJ+"/"+i.Values(0) ' End If ' End Forall ' listePJ= ReplaceSubstring (listePJ, "'", "''") qry.sql ="INSERT INTO BIBLIO.FICHIER VALUES(10000*year(curdate()) + 100*month(curdate()) + day(curdate()), 10000*hour(curtime())+100*minute(curtime()) +second(curtime()), '(CodeApplication)', '"+adresseFrom+"', '"+sujet+"', '"+code+"', "+Cstr(nbPJ)+", '"+listePJ+"')" If (Res.Execute) Then 'doc.subject=doc.subject(0)+" [-OK-]" doc.checked="OK" Call doc.save( True, True) End If End If Set doc = collec.GetNextDocument(doc) cnt=cnt+1 Wend ' FIN : Res.Close(Db_Close) Call con.disconnect Call con.disconnect Print "#-- MailCheck --- Fin : " + Cstr(cnt) + " mails détectés." Exit Sub TrtErreur: Print qry.sql Print ("AS400 : " + Cstr(con.Error) +Cstr(con.GetExtendedErrorMessage)) Print "Erreur : "+ Error + " (ligne " + Cstr(Erl) + " - erreur numero "+Cstr(Err)+")" Exit Sub End Sub------------------Function ReplaceSubstring( StringToScan As String, StringToReplace As String, ReplacementStr As String) As String' Remplace toutes les occurences de StringToReplace dans StringToScan par ReplacementStr Dim ResultStr As String Dim pos As Integer, size As Integer ResultStr = StringToScan ' on travaille sur une copie de la chaine passée en paramètre pos = Instr( StringToScan , StringToReplace ) ' position de la première occurence de StringToReplace size = Len( StringToReplace ) ' longueur en caractères de la chaine de remplacement ' Tant qu'on trouve des occurences de StringToReplace, on les remplace ' APPEL RECURSIF If pos <> 0 Then ResultStr = Mid$( ResultStr, 1, pos-1) & ReplacementStr & ReplaceSubstring(Mid$( ResultStr, pos+size), StringToReplace , ReplacementStr ) End If ReplaceSubstring = ResultStr End Function------------------------Voilà voilà
Nicolas
 

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar oguruma » 16 Jan 2004 à 12:18

je vois qu'il y a déja eu bcp de taffje vois ce que je peux faire,veux ma base à titre d'exemple ?
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Re: Pièce jointe introuvable suite à l'exécution d'un agent

Messagepar Nicolas » 16 Jan 2004 à 14:18

Pourquoi pas...Merci bien
Nicolas
 

Précédent

Retour vers Développement

cron