par AdminExpert » 17 Déc 2003 à 23:42
Pour ceux qui le désire, j'ai réalisé pour niclo la petite base notes d'exemple, je peux vous la faire parvenir zippée ; cependant pour ceux qui souhaitent partir du synop... completle voiciSynopsis de base de documents Lotus Notes - créé à 23:40:10 le 17/12/2003Informations de masqueNom : Profil agentPseudonyme : PADernière modification : 17/12/2003 22:53:41Commentaire : [Sans]Type : Document Inclure dans le menu Création : OuiInclure dans Recherche par masque : OuiMasque par défaut : NonMettre automatiquement à jour les champs : OuiEnvoi de documents à l'enregistrement : NonEnregistrement du masque dans documents : NonRécupérer contenus de champ existants : NonEnregistrer mises à jour comme réponses : NonConvertir versions antérieures en réponses : NonActiver les objets pendant la création : NonActiver les objets pendant l'édition : NonActiver les objets pendant la lecture : NonClés de chiffrement de document : [Sans]Liste d'accès aux docs créés avec ce masque : Tous les utilisateursListe d'accès à ce masque pour création : Tous les utilisateursSous-composants :Champ : PA_AgentType de données : TexteMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonFormule de conversion d'entrée : @UpperCase(PA_Agent);En script : NonChamp : PA_FichiersType de données : TexteSéparateurs de liste en entrée : VirguleSéparateur de liste à l'affichage : VirguleMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonChamp : PA_ObjetType de données : TexteMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonChamp : PA_BodyType de données : TexteMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonChamp : PA_SendToType de données : NomsSéparateurs de liste en entrée : VirguleSéparateur de liste à l'affichage : VirguleMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonChamp : PA_CopyToType de données : NomsSéparateurs de liste en entrée : VirguleSéparateur de liste à l'affichage : VirguleMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonChamp : PA_AdminFoncType de données : NomsSéparateurs de liste en entrée : VirguleSéparateur de liste à l'affichage : VirguleMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonCode JavaScript et HTML :[Aucun]Code LotusScript :[Aucun] Informations de vueNom : Liste des agentsPseudonyme : VAGENTSDernière modification : 17/12/2003 21:18:40Commentaire : [Sans]Vue par défaut : OuiRéponses non hiérarchisées : Désactivé(e)Etat à l'ouverture de la vue : DétailléeMarqueurs de documents non lus : AucunFréquence de mise à jour : AutomatiqueSuppression de l'index : JamaisListe d'accès à la vue : Tous les utilisateursFormules relatives à l'heure : NonFormule de sélection : SELECT Form = "PA";Sous-composants :Numéro de la colonne : 1Titre de la colonne : AgentFormule de la colonne : PA_AgentLargeur de colonne : 10 caractèresSéparateur de liste : Masqué : NonRéponses seulement : NonIcône : NonFormat de nombre : LibrePourcentage (valeur * 100)% : NonParenthèses pour nombres négatifs : NonPonctué au millier : NonFormat horaire : 17/12/2003 23:40:10Tri : Ordre croissantJustification : GaucheTotal : AucunMasquer valeurs détaillées : NonCode JavaScript et HTML :[Aucun]Code LotusScript :[Aucun] Informations de bibliothèque de codesNom : AutoAttachLibDernière modification : 17/12/2003 23:14:53Code LotusScript :Option PublicUse "ClassMail"Sub InitializeEnd SubSub AutoAttach Const VUEAGENT="VAGENTS" Dim Session As NotesSession Dim Db As NotesDataBase Dim Agent As NotesAgent Dim ViewProfil As NotesView Dim DocProfil As NotesDocument Dim AgtName As String Dim Msg As Mail '--- Trap des erreurs On Error Goto ErrHandle Print "Auto attachement en cours..." '--- Initialise la session Lotus Notes Set Session=New NotesSession Set Db=Session.CurrentDataBase '--- Détecte le nom de l'agent en cours d'exécution Set Agent = Session.CurrentAgent AgtName = agent.Name '--- On écrit dans le LOG.NSF --- Print "Agent " & AgtName & " démarré" '--- Initialise la vue contenant les documents profil --- Set ViewProfil=Db.GetView(VUEAGENT) If ViewProfil Is Nothing Then Print "La vue VAGENT est inconnue !!!" Goto Fin End If '--- On recherche le document profil --- Set DocProfil=ViewProfil.GetDocumentByKey(AgtName) If DocProfil Is Nothing Then Print "Aucun document profil pour l'agent ";AgtName Goto Fin End If '--- Construction du message, attachement des fichiers et envoi ! --- Set Msg=New Mail Msg.Subject=DocProfil.PA_Objet(0) Call Msg.SetBody(DocProfil.PA_Body) Call Msg.SetAttachement(DocProfil.PA_Fichiers) Call Msg.SetRecipients(DocProfil.PA_SendTo, DocProfil.PA_CopyTo, Null) Call Msg.Send(False) '--- Sur le même principe on peut envoyer un compte rendu à l'administrateur --- Set Msg=New Mail Msg.Subject="Agent " & AgtName Call Msg.SetBody("Traitement correctement effectué") Call Msg.SetRecipients(DocProfil.PA_AdminFonc,Null, Null) Call Msg.Send(False) '--- On sort proprement ! Goto FinErrHandle: '--- On écrit dans le LOG.NSF Print "Erreur ";Err;" : ";Error$ '--- Alerte administrateur Set Msg=New Mail Msg.Subject="Erreur Agent " & AgtName Call Msg.SetBody("Erreur n° " & Err & " - " & Error$) Call Msg.SetRecipients(DocProfil.PA_AdminFonc,Null, Null) Call Msg.Send(False) Resume FinFin: Print "Agent " & AgtName & " terminé" If Not (Msg Is Nothing) Then Delete MsgEnd Sub Nom : ClassMailDernière modification : 17/12/2003 21:25:04Code LotusScript :Option PublicPublic Class Mail Private MailSession As NotesSession Private MailDB As NotesDataBase Private MailDoc As NotesDocument Private RTBody As Variant Private RS As Variant Private ItemSendTo As NotesItem Private ItemCopyTo As NotesItem Private ItemBlindCopyTo As NotesItem Public Sub new Set MailSession=New NotesSession Set MailDB = MailSession.CurrentDataBase Set MailDoc=New NotesDocument(MailDB) Set RTBody = MailDoc.CreateRichTextItem( "Body" ) Set RS=MailSession.CreateRichTextStyle MailDoc.Form="Memo" End Sub Public Sub SetRecipients(SendTo As Variant, CopyTo As Variant, BlindCopyTo As Variant) Set ItemSendTo = New NotesItem( MailDoc, "SendTo", SendTo ) Set ItemCopyTo = New NotesItem( MailDoc, "CopyTo", CopyTo ) Set ItemBlindCopyTo = New NotesItem( MailDoc, "CopyTo", BlindCopyTo ) End Sub Public Property Set Subject As String MailDoc.Subject=Subject End Property Public Property Set ReturnReceipt As Integer MailDoc.ReturnReceipt=ReturnReceipt End Property Public Sub SetBody(Body As Variant) If Isarray(Body) Then Forall T In Body Call RTBody.AppendText( T ) Call RTBody.AddNewLine(1) End Forall Else Call RTBody.AppendText( Body ) Call RTBody.AddNewLine(1) End If End Sub Public Sub SetDocLink(Msg As String,DocLink As NotesDocument) Call RTBody.AddNewLine(1) Call RTBody.AppendText( Msg ) Call RTBody.AppendDocLink( DocLink, MailDoc.Subject(0)) End Sub Public Sub SetDocLinkDB(Msg As String,DocLink As NotesDataBase) Call RTBody.AddNewLine(1) Call RTBody.AppendText( Msg ) Call RTBody.AppendDocLink( DocLink, MailDoc.Subject(0)) End Sub Public Sub SetAttachement(F As Variant) If Isarray(F) Then Forall Attached In F Call RTBody.EmbedObject( EMBED_ATTACHMENT, "", Attached) End Forall Else Call RTBody.EmbedObject( EMBED_ATTACHMENT, "", F) End If End Sub Public Property Set Principal As String MailDoc.Principal=Principal End Property Public Property Set ReplyTo As String MailDoc.ReplyTo=ReplyTo End Property Public Sub SetColor(Color As Variant) RS.NotesColor=Color Call RTBody.AppendStyle(RS) End Sub Public Sub SetBold(isBold As Integer) RS.Bold=isBold Call RTBody.AppendStyle(RS) End Sub Public Sub SetItalic(isItalic As Integer) RS.Italic=isItalic Call RTBody.AppendStyle(RS) End Sub Public Sub Send(isSave) Call MailDoc.Send( isSave ) End Sub Public Sub Delete Set MailDoc=Nothing Set MailSession=Nothing Set MailDB=Nothing Set RTBody=Nothing Set RS=Nothing End Sub End Class Informations d'agentNom : AGENTTESTDernière modification : 17/12/2003 21:27:15Commentaire : [Sans]Agent partagé : OuiType : LotusScriptEtat : Activé(e)Déclencher : Lorsque vous le sélectionnez dans le menu Actions.S'applique à : Exécuter une fois (commandes @ autorisées)Code LotusScript :Option PublicUse "AutoAttachLib"Sub Initialize Call AutoAttachEnd Sub