Page 1 sur 1
Lien vers un document

Publié:
23 Fév 2012 à 18:06
par jeulin
Bonjour à toutes et à tous,
j'ai un trou de mémoire. Il faut dire que je programme très peu, surtout pour "dépanner".
Quel est l'équivalent de la méthode ".AppendDocLink" en programmation frontale ?
Utilisation pour un envoi par mail à la sortie d'un document qui vient d'être modifié...
Un grand merci pour vos réponses et pardon pour cette question sans doute simpliste !
philippe
Re: Lien vers un document

Publié:
24 Fév 2012 à 08:20
par Michael DELIQUE
salut
en frontal tu as Call notesUIDocument.Send mais si tu regarde l'aide en ligne coté option ya pas grand chose
sinon tu peux passer par une formule : @MailSend( sendTo ; copyTo ; blindCopyTo ; subject ; remark ; bodyFields ; [ flags ] ) qui elle à plus d'option.
apres c'est que du dorsale
Re: Lien vers un document

Publié:
24 Fév 2012 à 15:52
par jeulin
Merci de cette réponse.
En effet, dans le premier cas, je n'ai pas trouvé comment lui préciser que je voulais attacher le lien vers le document.
Et dans le second cas,
autant @MailSend(" // " ; "" ; "" ; "Création de document" ; "Lien vers document : " ; "" ; [INCLUDEDOCLINK] ) } ) marche bien à partir d'un simple bouton,
autant eval = Evaluate( { @MailSend(" / / " ; "" ; "" ; "Création de document" ; "Lien vers document : " ; "" ; [INCLUDEDOCLINK] ) } ) ne marche pas dans un Querysave !
Le message part et est reçu mais sans lien attaché... Où serait donc le Schimlblick ?!?
Merci,
Philippe
Re: Lien vers un document

Publié:
24 Fév 2012 à 15:57
par Michael DELIQUE
quand tu fais un éval tu es en dorsal donc ton @mailsend n'a pas de document frontal a insérer.
va falloir que tu fasse ton envois de mail en dorsale
Re: Lien vers un document

Publié:
24 Fév 2012 à 16:47
par jeulin
Qu'entends-tu par là ? J'aimerais que lors d'une création ou d'une modification d'un document un petit message d'annonce parte vers un administrateur avec le lien pour lui simplifier la vie. Classique comme besoin... Je peux écrire un agent qui balayerait régulièrement une vue regroupant les derniers créés et modifiés
Je me souvenais d'un possible "Set Document = Source.Document" (après avoir déclaré "Dim Document As NotesDocument") permettant le passage du document ouvert frontal à un document utilisable en dorsal... Mais, pas de pot, avec "Call texte_riche.AppendDocLink(Document, "document à consulter")", j'obtiens en test un gentil "Type mismatch"...
Ah, la mémoire...
Philippe
Re: Lien vers un document

Publié:
24 Fév 2012 à 16:52
par Michael DELIQUE
re,
ça devrais le faire normalement.
il faut juste que ton document ai été enregistré avant.
une très vieille fonction que je n'ai pas utilisé depuis des années (ya encore des evaluate dedans). ça devrais t'aider
- Code : Tout sélectionner
Public Function MailSend_LS( wSendTo As String, wCopyTo As String, wBlindCopyTo As String, wSubject As String, wBody As String,wDocLink As Variant,wDoc As notesDocument, wCollection As NotesDocumentCollection,wnbEdit As Integer ) As Integer
%REM
Cette fonction envoi ou edite un mail, si WDocLink = true, des lien doc seron inséré via un document : wDoc ou une collection de document :wCollection 'Pour wSendTo, wCopyTo et wBlindCopy bien mettre une virgule apres chaque destinataire.
wSubject = l'objet du mail
wBody = le Corps du Mail
wDocLink = true, insert des liens doc des document sélectionés (wDoc, wCollection) passés en paramètre dans le mail
wDoc si un seule document est passé en paramètre
Wcollection si plusieur documents sont passé enparamètres
wnbEdit : False envois directement le mail sans l'afficher, true, affiche le mail por modification pat l'utilisateur
%end rem
Dim UIDoc As NotesUIDocument
Dim Doc As NotesDocument
Dim DocMail As NotesDocument
Dim DBMail As notesdatabase
Dim rtBody As notesRichTextItem
Dim Item As NotesItem
Dim vrValue As Variant
Dim Selection As String
Dim Selection2 As String
Dim I As Long
REM Dim UIWork As NotesUIWorkspace
On Error Goto CatchError
REM ouvre la boite mail
Set DBMail = DBOpenMailbox(False,"",True)
REM crée le mail
Set DocMail = DBMail.CreateDocument
Call DocMail.ReplaceItemValue("Form", "Memo")
Call DocMail.ReplaceItemValue("postedDate",Today())
Call DocMail.ReplaceItemValue("logo", MailLogo)
REM logo du mail
REM rempli le send to
vrValue= ""
vrValue = Evaluate_LS("@explode("""+wSendTo+""";"","")",DocMail)
Call DocMail.ReplaceItemValue("SendTo", vrValue)
REM rempli le copy to
vrValue = ""
vrValue = Evaluate_LS("@explode("""+wCopyTo+""";"","")",DocMail)
Call DocMail.ReplaceItemValue("CC" , vrValue)
REM rempli le blind copy
vrValue = ""
vrValue = Evaluate_LS("@explode("""+wBlindCopyTo+""";"","")",DocMail)
Call DocMail.ReplaceItemValue("BCC", vrValue)
vrValue = ""
Call DocMail.ReplaceItemValue("Subject", wSubject)
Set rtBody = DocMail.CreateRichTextItem("Body")
Call rtBody.Appendtext(wBody)
If wDocLink = True Then
REM insère le liendoc du coument source
Call rtBody.AddNewLine(2)
REM Call rtBody.Appendtext("Pour ouvrir un document double-cliquer sur l'icône.")
REM Call rtBody.AddNewLine(1)
If Not wDoc Is Nothing Then
Call rtBody.AppendDocLink(wDoc,"")
Call rtBody.Appendtext(", ")
End If
REM insere un liendoc pour caque document de la collection If Not wCollection Is Nothing Then
If wCollection.count>0 Then
Set Doc = wCollection.GetFirstDocument
While Not Doc Is Nothing
Call rtBody.AppendDocLink(Doc,"")
Call rtBody.Appendtext(", ")
Set Doc = wCollection.GetNextDocument(Doc)
Wend
End If
End If
If wnbEdit = False Then
REM envoi le mail
REM initialisation du champ ''SendTo''
DocMail.SendTo = ""
Set Item = Nothing
If Trim(wSendTo) <> "" Then
Set Item = DocMail.getFirstItem("SendTo")
Selection = Trim(Strleft(wSendTo,","))
Selection2 = Replace(wSendTo,Selection+",","")
While Trim(Selection)<>""
Call item.AppendToTextList(Selection)
Selection = Trim(Strleft(Selection2,","))
Selection2 = Replace(Selection2,Selection+",","")
Wend
End If
REM initialisation du champ ''CopyTo''
DocMail.CC = ""
Set Item = Nothing
If Trim(wCopyTo) <> "" Then
Set Item = DocMail.getFirstItem("CC")
Selection = Trim(Strleft(wCopyTo,","))
Selection2 = Replace(wSendTo,Selection+",","")
While Trim(Selection)<>""
Call item.AppendToTextList(Selection)
Selection = Trim(Strleft(Selection2,","))
Selection2 = Replace(Selection2,Selection+",","")
Wend
End If
REM initialisation du champ ''Blind CopyTo''
DocMail.BCC = ""
Set Item = Nothing
If Trim(wBlindCopyTo) <> "" Then
Set Item = DocMail.getFirstItem("BCC")
Selection = Trim(Strleft(wBlindCopyTo,","))
Selection2 = Replace(wSendTo,Selection+",","")
While Trim(Selection)<>""
Call item.AppendToTextList(Selection)
Selection = Trim(Strleft(Selection2,","))
Selection2 = Replace(Selection2,Selection+",","")
Wend
End If
REM enleve les doublons dans les destinataires
Call MailSuperUnique(DocMail,"ABBREVIATE")
Call DocMail.send(False)
MailSend_LS=True
Set DBMail = Nothing
Else
REM affiche le mail en edition
Call DocMail.ReplaceItemValue("SendTo", wSendTo)
Call DocMail.ReplaceItemValue("CC", wCopyTo)
Call DocMail.ReplaceItemValue("BCC", wBlindCopyTo)
Set rtBody = Nothing
Set rtBody = DocMail.CreateRichTextItem("wBody")
Call rtBody.Appendtext(wBody)
If wDocLink = True Then
If Not wDoc Is Nothing Then
Call rtBody.AddNewLine(2)
Call rtBody.Appendtext("Pour ouvrir un document double-cliquer sur l'icône.")
Call rtBody.AddNewLine(1)
Call rtBody.AppendDocLink(wDoc,"")
Call rtBody.Appendtext(", ")
End If
If Not wCollection Is Nothing Then
If wCollection.count>0 Then
Set Doc = wCollection.GetFirstDocument
While Not Doc Is Nothing
Call rtBody.AppendDocLink(Doc,"")
Call rtBody.Appendtext(", ")
Set Doc = wCollection.GetNextDocument(Doc)
Wend
End If
End If
End If
REM enleve les doublons dans les destinataires
Call MailSuperUnique(DocMail,"ABBREVIATE")
Set UIWork = New NotesUIWorkSpace
Set UIDOC = UIWork.EditDocument( True, DocMail, False)
End If
Exit Function
CatchError:
Set rtBody = Nothing
Set Item = Nothing
Set DocMail = Nothing
Set DBMail = Nothing
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
MailSend_LS = False
Exit Function
End Function
Re: Lien vers un document

Publié:
24 Fév 2012 à 16:55
par jeulin
Merci, je regarde...
Bon week-end !
Re: Lien vers un document

Publié:
24 Fév 2012 à 17:12
par Michael DELIQUE
j'ai regardé ma vieille fonction deplus pres, elle est vraimment pourri. mais ça te donnera un exemple
Re: Lien vers un document

Publié:
24 Fév 2012 à 17:26
par jeulin
Pas de problème, c'est sur du pourri que renaît régulièrement la vie...
Je vais donc analyser tout cela à tête reposée.
En plus, cela me rajeunit : 15 ans de Notes après... ccMail !

.
Merci !
Re: Lien vers un document

Publié:
24 Fév 2012 à 20:02
par roubech
tu peux préciser : tu veux envoyer un mail avec un lien doc à la création et/ou modification d'un doc
tu as déjà du code dans le bouton Save, l’évènement QuerySave ou l’évènement PostSave ? formule ou LS ?
pourquoi tu veux le faire en frontal ?