MODULE

LOTUS NOTES

Version 4

DEVELOPPEMENT


E@SII1997

Table des matières

Pourquoi Lotus Notes pour développer des applications ?
La structure
Les actions simples.
Les formules
Les programmes Lotus Script
Les masques et sous-masques
Création de tableaux
Création de champ
Choix des options générales des champs
Choix de la police du champ
Choix de l'alignement du texte dans un champ
Choix de la pagination (saut de page , ligne solidaire, etc ...)
Choix du fait de la pas afficher le champ à l'écran
Création d'une section
Création d'une zone de présentation
Création d'une zone sensible
Zone sensible de liaison
Texte en incrustation
Bouton
Formule en incrustation
Action en incrustation
Création d'une action dans un masque
Les vues et dossiers
Créer une hiérarchie de vues ou dossiers
Sélectionner les documents à afficher dans une vue
Contenu d'une colonne
Créer une nouvelle colonne
Effectuer un tri et des totaux dans une colonne
Modifier le titre d'une colonne
Modifier la largeur d'une colonne
Paramètre généraux d'une colonne
Changer la police du texte des colonnes
Choix de l'affichage si les données de la colonne sont des nombres
Choix de l'affichage si les données de la colonne sont des dates
Choix de la police d'affichage des titres
Mettre le nom de colonne en tant que champ
Mettre à jour l'affichage de votre vue
Création d'une action dans une vue
Les navigateurs
Les autres
Les champs partagés
Les agents
L'importation / exportation
Le Workflow
La méthode centrifuge
La méthode centripète
La méthode médium


Pourquoi Lotus Notes pour développer des applications ?

Lotus Notes Version 4 est un logiciel groupware de gestion de documents. Il peut être assimiler à un SGBD, pour sa vision de la gestion de base de données et à un langage de 4ème génération pour sa facilité de développement d'application (page écran, action par boutons, etc ..). Comme sur un SGBD, il vous faut définir des tables, des champs, des écrans, et des requêtes. Lotus notes à un avantage par rapport aux autres SGBD du marcher, tel que (Access, Oracle Forms, Approach, ...), il intègre des fonctionnalités d'aide au développement de bases, d'aide au développement d'applications et de puissante fonctionnalité d'indexation documentaire et de compatibilité avec divers format de fichiers existant. Ce qui en fait un outils puissant, mais par un manque de fonctionnalité poussé en SGDB et développement reste un produit médium entre les SGBD et les langages de 4ème générations. Les manques sont par exemples (en SGBD: l'analyse Merise, les requêtes SQL, la possibilité de gestion de tables, ...; en développement: un manque dans les fonctionnalités de Lotus Script, un manque d'événement sur les zones, ...).

Conclusion : Lotus Notes Version 4 est un bon outils pratique de développement d'application basé sur la gestion de base de données et documents hétérogènes.

La structure

La structure est la partie principale d'une application Lotus Notes (si vous créer une base Notes à partir du modèle -vide-, vous ne pouvez rien faire sur votre base, car il n'y a aucune structure).

Pour faire apparaître la partie structure d'une base de documents :
Vue Afficher Structure


Dans la structure se trouvent différentes équerres ayant chacune une signification :

Les Agents (Mécanique d'automatisations de taches)

Masques (écran de saisie).

Vue (Requête de visualisation).

Dossier (Requête de visualisation).

Champs partagés (Champs invisible mais appartenant à chaque document).

Navigateur (Boutons de Vue).

Autres (Icônes, textes).

Dans le menu de gauche, au dessus de la structure se trouve l'application elle même. Tel que l'utilisateur va l'utiliser.

Les actions simples.

les actions simples sont des sous-programmes déjà développer sous Notes 4.

les actions ne sont généralement pas nombreuses.

Image d'actions simples :


Dans les actions simples des masques l'on peut :

Copier un document dans une base.

Copier un document dans un dossier.

Envoyer le document par mail.

Envoyer un courrier.

Envoyer un récapitulatif par bulletin (envoyer une vue par mail).

Exécuter un agent.

Exécuter une fonction Notes.

Marquer le document comme lu ou non-lu.

Modifier le champ d'un document.

Modifier le champ d'un masque.

Placer le document dans un dossier.

Répondre à l'expéditeur d'un courrier.

Retirer un document d'un dossier.

Supprimer un document d'une base.

Dans les actions simples des navigateurs l'on peut :

Ouvrir un autre navigateur.

Ouvrir une vue.

Créer un alias pour un dossier.

Ouvrir une liaison (ouvrir un fichier extérieur).


Les formules

le mode de programmation par formules est une façon d'utiliser des fonctions limitées développer dans Notes 4.

Parmi les formules, il existe des fonctions et des commandes

Dans les fonctions vous avez deux types de fonctions (avec et sans paramètres):

la liste des fonctions se trouve dans le programmer's guide Part 2

Une fonction s'écrit @nomfonction(paramètres)

fonctionUtilisation ParamètresValeur de retour
AbsValeur Absoluenombre entier
AllSélectionne tout les champs
AlldescendantsSélectionne les doc réponses

Utilisé pour les critères de sélection

authorAuteur chaîne
containscontient une sous chaîne (chaîne, sous chaîne)1 trouvé, 0 non
createddate de création du doc date
dateretourne la date d'un type date (type date) ex: @date(@now)date
dayretourne le jour(type date) date
dbcolumnretourne une liste des éléments d'une colonne d'une vue ("";"";"vue"; numéro colonne) liste élément
dbexistsretourne l'existence d'une base ("serveur":"base") 1 trouvé
dbmanagerliste des gestionnaires (utilisateurs, groupes, serveurs) liste de chaînes
deletefieldsupprime un champ uses :

FIELD numchamp:=@deletefield

isnewdocretourne si le doc est un nouveau document 1 oui, 0 non
isrespondedocretourne si le doc est une réponse 1 oui
leftretourne la chaîne de gauche (chaîne, nombre de caractères)

(chaîne, sous chaîne)

chaîne
mailsendEnvoi un document (pour;cc;ccc;sujet;remarque;champs à envoyer;options [priorityHigh, low, includedoclink] etc ...
maxretourne le plus grand de 2 nombres (nb1;nb2)nombre
minretourne le plus petit de 2 nombre (nb1;nb2)nombre
middleretourne la chaîne du milieu (chaîne; sous chaîne 1; sous chaîne 2) chaîne
monthretourne le mois (date)date
nameretourne le champ voulue d'un nom ex: @name([CN];@username)

@Name([OU];@username)

chaîne
noteidnuméro interne du document integer
nowdate, heure aujourd'hui date
promptaffiche une boite de messages ([OK] ou [YesNo];"titre";"message") 1 pour Yes et Ok

0 pour No

-1 pour Cancel

repeatrépète une chaîne n fois

utilisé pour le graphe

ex : repeat("|";diskspace)
rightretourne une chaîne se trouvant à droite d'une chaîne (chaîne, nombre)

(chaîne, sous chaîne)

chaîne
setfieldmet une valeur dans un champ (champ, valeur)
texttonumberconversion chaîne en nombre (chaîne)nombre
texttotimeconversion chaîne en date (chaîne)date
timeheure courante date
todaydate courante date
tomorrowdemain date
usernamenom de l'utilisateur courant chaîne
userprivilegesdroit de l'utilisateur courant

1,2,3,4,5,6

nombre ou liste de nombre
yearannée d'une date (date)date
yesterdayhier date

les commandes:

Les commandes sont des équivalents au commande menu, il peut y avoir de paramètres mais il n'y a pas de valeur de retour.

un commande s 'écrit

@command([nom commande];paramètres)

Fileexitquitte le document
FileSaveSauve le document

Règles générales des formules :

Dans le mode formule, vous pouvez accéder à un champ de document par les fonctions

écriture dans un champ

FIELD nomchamp:=valeur;

SELECT @all

ou

@Setfield(nomchamp;valeur)

lecture d'un champ

x:=nomchamp

x est une variable dynamique qui est créer à son utilisation et qui disparaît lors de la fin de l'exécution de la formule.

Il n'existe pas de boucle dans le mode formules.

les conditions se font par la fonction

@if(condition1;vrai;faux)

vous pouvez imbriquer des si par @if(condition1;vrai1;condition2;vrai2;condition3;vrai3;faux)

Les programmes Lotus Script

Pourquoi Utiliser Lotus Script alors qu'il offre les mêmes fonctions que les formules de Lotus Notes 4 ?

L'intérêt du Script Notes 4 est de pouvoir travailler avec des objets dynamiques.

Par exemple: lors de l'exécution d'un agent de traitement workflow, vous désirer envoyer à une personne une liste de documents. Si vous utiliser les formules votre liste doit être prédéfinie dans les vue de l'application, par contre si vous utilisez le script vous pouvez créer une vue dynamique qui disparaîtras une fois le script terminé.

Les programmes Lotus Script sont basé sur le concept de programmation objets.

Les termes principaux de la programmations objets sont :

Les classes, objets, méthodes, propriétés;

l'héritage.

l'instance.

Lotus Notes contient des classes, méthodes, propriété par défaut.

Un objet peut être considérer comme un tiroir de bureau dans lequel se trouve des méthodes (outils) et des propriétés (Papier avec de informations)

Visualisation D'objets

Héritage

Une instance est la création physique d'un objet en mémoire machine, car un objet en tant que tel est un modèle et avec ce modèle on créer une instance d'objet. Ci-dessous l'instance d'objet Notesdatabase porte le nom de db.

Exemple Notes :

Set db = New Notesdatabasecréation d'une instance d'un objet base notes
call db.open(VALEOVT_RMS2,Info)Ouverture de la base info grâce à la méthode open de l'objet Notesdatabase
dim k as NotesviewCréation d'un instance d'un objet view
set k=db.getview(Liste Catégorie) Ouverture de la vue Liste catégorie grâce à la méthode Getview de la base Notesdatabase

Les masques et sous-masques

Définition d'un sous-masque: un sous-masque est un modèle de masque (dans un masque vous pouvez intégrer un sous-masque)

Un masque Notes a plusieurs utilités. Un masque sert tout d'abord à créer une table (chaque champ de votre masque est un champ d'une table de base de données). Ensuite le masque sert à créer une page écran de saisie des données (c'est sur ce point que Notes est innovant, c'est l'un des premiers logiciels à créer à la fois le masque et la base en une opération)

Mise en place du fond de page

Vous pouvez taper directement du texte

Création de tableaux

Création Tableaux

Saisir le nombre de lignes et colonnes

Création de champ

Création Champ

Saisir le nom du champ

Choisir le type de donnés du champ

-texte (texte non formaté)

-nombre (nombre)

-un nombre peut être a virgule fixe, scientifique, monétaire, etc ...

-temps (date heure)

un temps peut avoir plusieurs format
Date et heure
Date
Heure
Date du jour et heure

Format de date jj/mm/aa, jj/mm, mm/aa

Format horaire hh:mm ou hh:mm:ss

Fuseau horaire Afficher le fuseau horaire ou non

-mots clés (Liste de choix)

-la liste des mots clés peut êtres défini au départ

(entrez vos choix (un par lignes))

-Par une formule (choisir via une formule)

Par exemple (@dbcolumn(""; "" ;"Nom d'une vue"; numéro colonne))

Ce qui donne en choix la liste des mots contenu dans la colonne "numéro de colonne" de la vue "nom d'une vue".

-choisir via le carnet d'adresse

-choisir via la liste des contrôles d'accès

-choisir via une vue

comme dbcolum ci-dessus sauf qu'il n'est pas autorisé de valeur non répertorier donc un utilisateur ne peut pas créer de nouveaux mots clefs.

-Texte enrichi (texte formaté avec polices, alignement, etc ...)

-Auteurs (nom du ou des auteur(s) du document)

-Noms (nom d'une ou plusieurs personne(s))

-Lecteurs ( nom du ou des lecteur(s))

Choix de recherche des noms par

Carnet d'adresse

Contrôle d'accès

Vue

Les champs peuvent êtres

Modifiables : en saisie

Calculé : calculé tout le temps

Calculé à l'affichage : calculé a l'ouverture du document

Calculé à la création : calculé à la création du document

Les champs peuvent êtres à valeurs multiples (possédé des valeurs séparer par un point virgule)

Choix des options générales des champs

Options (choix d'un message d'aide)

Cocher la case mettre se champ en évidence par défaut si vous voulez que ce champ soit le premier saisi.

Vous pouvez sécuriser l'accès au champ de diverses manières (droit éditeur, chiffrement, signature)

Choix de la police du champ

puis choisir le style d'affichage

Choix de l'alignement du texte dans un champ

puis choisir l'alignement (centré, gauche, droite) les marges, etc ...

Choix de la pagination (saut de page , ligne solidaire, etc ...)

Très important pour les sections, et impressions


Choix du fait de la pas afficher le champ à l'écran

Si le document est ouvert en lecture, en écriture, en prévisualisation

et d'après une formule ( cf. créer un action dans une vue)



Création d'une section

Une section est une zone qui se déroule si l'on clique dessus ( ainsi l'on peut cacher à un ou plusieurs utilisateurs , une zone complète du document)

Création Section

Standard ou Accès contrôler

Pour une section standard vous ne pouvez que la cacher auprès des utilisateurs non autorisés, en entrant une formule (cf. création d'un action dans un vue)

Pour une section à accès autorisé, vous pouvez autoriser des accès plus fin à cette zone, autorisé l'accès soit en écriture, en lecture, etc ...

Les différent onglets éditeurs, non éditeurs ne sont là que pour choisir le type d'affichage de la section lorsque vous avez ou n'avez pas les droit d'éditeurs (auto afficher la section ou non, etc ...)

Création d'une zone de présentation

une zone de présentation est un cadre dans lequel l'on peut créer un document, ou insérer un dessin du presse papier.

Création Zone de présentation

Création d'une zone sensible

une zone sensible peut être :

Zone sensible de liaison

liaison sur un autre document .

Pour cela il faut avoir copier l'autre document en tant que copier comme liaison

Texte en incrustation

Texte afficher lorsque vous cliquer sur la zone sensible

Bouton

Création d'un bouton dans lequel vous mettre une formule ou un programme Script à exécuter, voir Application informatique, document demande de maintenance , bouton visa.

Formule en incrustation

Formule à exécuter si l'utilisateur clique sur la zone (texte) sensible .

Action en incrustation

Action (Action simple, formule ou Script) à exécuter si l'utilisateur clique sur la zone sensible.

Création d'une action dans un masque

Lorsqu'un masque est visible à l'écran, vous pouvez afficher des boutons afin que l'utilisateur soit dirigé dans les commandes qu'il peut effectuer.

Par exemple dans l'application informatique, l'utilisateur peut sauver ou enregistrer suivant si il vient de créer le document ou si il modifie le document. (Pour l'utilisateur ça ne change rien mais pour l'application il y a une différence. Sauver (sauve le document et le place dans le dossier adéquate), Enregistre (sauve le document)

Pour créer une action faire :

création action

Donner un titre à votre bouton

Choisissez une icône à votre bouton

Il est possible de cacher ce bouton dans des cas bien précis (manque de droits)

grâce à l'onglet Cacher:

cocher la case : cacher l'action si la formule est vérifiée

puis saisir votre formule

(ex: @if(@contains(@useraccess(@dbname);  "5 "; "6 "; "7 ")<1 )

Interdit l'accès aux personnes n'étant pas Gestionnaire, concepteur ou éditeur

Ensuite il vous faut saisir l'action simple, la formule ou le programme Script que le bouton doit exécuter.

Les vues et dossiers

Une vue est une requête effectuée sur tout les documents.

un dossier est une requête effectuée que sur un nombre définie de document (qui ont été copier dans le dossier)

Une vue est constituée de colonne dans chaque colonne vous allez choisir d'y afficher un champ, un calcul, etc ...

Créer une hiérarchie de vues ou dossiers

Création Vue ou Dossier

cocher la case partagée

Mettre dans le titre Racine\branche1\...\nom de la vue ou dossier

Allez dans option si vous voulez que votre vue ou dossier prenne modèle sur une vue ou un dossier déjà existant.

Sélectionner les documents à afficher dans une vue

Editer la vue par structure Vues Double clic sur la vue

ou structure Dossier Double clic sur le dossier

Choisir dans définir View Sélection

cocher simple

ajouter critère

Choisir le type de critère (par champ, par masque)

Ex: par masque, seul les documents crées par les masques choisi seront visibles dans la vue ou dossier




Contenu d'une colonne

Pour y afficher un champ vous n'avez qu'a choisir le champ dans champ



Pour y afficher un calcul mettre le calcul dans formule



Si vous voulez faire un graphique

(cf. visualiser et interpréter statistique dans le module administration)

Si vous voulez afficher:

le nom de l'auteur

la date de création

le numéro de la fiche (document) dans la vue

la taille du document

etc ...

fonction simple

Créer une nouvelle colonne

Création insérer ou ajouter un nouvelle colonne

Effectuer un tri et des totaux dans une colonne

Cliquer sur la colonne

conception propriété de la colonne

Tri

Vous pouvez effectuer un tri par ordre croissant ou décroissant

Vous pouvez faire une rupture dans le tri

ex: avec rupture (catégorisé)

Routevoiture
camion
vélo
Airavion
hélicoptère

ex: sans rupture (standard)

Routevoiture
Routecamion
Routevélo
Airavion
Airhélicoptère

Vous pouvez choisir de trier les majuscules en premier, de prendre en compte les accents en cochant les cases.

Vous pouvez donner à l'utilisateur la possibilité de faire un tri provisoire en cochant la case cliquer sur le titre de la colonne à trier

Attention si plusieurs colonnes sont triées simultanément, le choix de niveau de tri se fait de la colonne gauche à droite

Enfin, vous pouvez effectuer des totaux, moyenne de fin de colonne.

Astuce: si vous voulez afficher le total du nombre de fiche afficher, créer une colonne avec la valeur 1 et un total, puis cocher la case cacher les li. de détails (les 1 ne seront pas affichés).

Modifier le titre d'une colonne

Cliquer sur la colonne

conception propriété de la colonne

Général

Saisir un titre

Modifier la largeur d'une colonne

Cliquer sur la colonne

conception propriété de la colonne

Général

Saisir la taille de la colonne et cocher redimentionnable, si vous voulez que l'utilisateur puisse changer sa taille.

Paramètre généraux d'une colonne

Cliquer sur la colonne

conception propriété de la colonne

Général

Vous avez la possibilité de cacher une colonne qui vous sert seulement à faire un tri.

Si vous cochez n'afficher que les réponses, seul les résultats des colonnes à droite de celle que vous avez sélectionner s'afficheront.

si vous voulez afficher un petit triangle pour dérouler les lignes ayant le même nom (rupture). cocher la case

Afficher les doublons lorsque la ligne peut être détaillée

Changer la police du texte des colonnes

Cliquer sur la colonne

conception propriété de la colonne

Choisissez votre forme d'écriture préférée.

Choix de l'affichage si les données de la colonne sont des nombres

Cliquer sur la colonne

conception propriété de la colonne

Choisissez le type de nombre à virgule fixe, Affichage scientifique ou monétaire (F).

Affichage en %, nombre négatif entre (), et choix du séparateur de milliers

Choix de l'affichage si les données de la colonne sont des dates

Cliquer sur la colonne

conception propriété de la colonne

Choisissez votre format de date.

Choix de la police d'affichage des titres

Cliquer sur la colonne

conception propriété de la colonne

Titre

Choisissez votre style d'écriture préféré et cliquer sur Appliquer à tous pour appliquer votre style à tous les titres de la vue.

Mettre le nom de colonne en tant que champ

Cliquer sur la colonne

conception propriété de la colonne

Mettre dans le champ nom le nom que vous voulez attribuer au champ.

Mettre à jour l'affichage de votre vue


Création d'une action dans une vue

Lorsqu'une vue est visible à l'écran, vous pouvez afficher des boutons afin que l'utilisateur soit dirigé dans les commandes qu'il peut effectuer.

Par exemple dans l'application informatique, l'utilisateur peut créer une demande de maintenance lorsqu'il visionne une vue des demandes de maintenance :

Regarder bien en haut à gauche, le bouton Nouvelle Demande, qui est une action de la vue demande de maintenance\ par catégorie


Pour créer une action comme celle-ci faire :

création action

Donner un titre à votre bouton

Choisissez une icône à votre bouton

Il est possible de cacher ce bouton dans des cas bien précis (manque de droits)

grâce à l'onglet Cacher:

cocher la case : cacher l'action si la formule est vérifiée

puis saisir votre formule

(ex: @if(@contains(@useraccess(@dbname);  "5 "; "6 "; "7 ")<1 )

Interdit l'accès aux personnes n'étant pas Gestionnaire, concepteur ou éditeur

Ensuite il vous faut saisir l'action simple, la formule ou le programme Script que le bouton doit exécuter.

Les navigateurs

Les navigateurs sont une nouvelles manière de parcourir les vues, dossiers et documents.

Un navigateur est une ou plusieurs zone(s) sensible(s) (généralement avec une icône) qui, lorsque l'on clique dessus effectue une action simple tel que afficher une vue, saisir une nouvelle fiche, etc ..

Une fois un navigateur créer, on peut l'afficher par :

Vue Afficher nom du navigateur

Les autres

Dans autres vous pouvez modifier l'icône de la base

Vous pouvez créer un texte de présentation de la base qui serrât ouvert lors de la première ouverture de la base.

Les champs partagés

Les champs partagés sont des champs appartenant à tout les documents, même si ils ne sont pas affichés sur le document, ils font partie intégrante de la structure de chaque document.

Ils sont utilisés pour faire des champs de reconnaissance de document (form, auteur, date de création, ...).

Les agents

Les agents sont des Actions Simples, des formules ou des scripts qui sont exécutés manuellement ou sont planifiés. Ils peuvent servir à faire des purges, des archivages de documents ou du workflow.




Dans un agent vous devez spécifier son nom, son type de planification, la liste des documents à traiter en cas de modification de document.

Puis l'action, la formule ou le script à exécuter.

L'importation / exportation

L'importation se fait de fichier Lotus 1-2-3 ou texte vers des documents Notes

Vous avez

1 fichier source

une base Notes

et un fichier de définition de colonnes qui fait la correspondance entre les données brutes et les champs du masque de la base notes

Format du fichier .col de définition de colonnes

Pour lotus 1-2-3

WKSCOL A correspond à la colonne A d'une feuille de calcul 1-2-3

ex:

Nomchamp : WKSCOL A

Ensuite vous pouvez ajouter à la fin du fichier .col des calculs par fonction Notes

FORMULASTART

mettre vos formules

FORMULAEND

exemple de fichier .col pour l'importation des demandes au format Lotus 1-2-3

; fichier de définition pour importation de demande lotus 1-2-3 Version 4

; importation des colonnes lotus dans des champs

Numerodemande : WKSCOL A
Objet_de_la_demande : WKSCOL B
Catégorie : WKSCOL C
Date : WKSCOL D
Demandeur : WKSCOL E
ctprojet : WKSCOL F TYPE NUMBER
DateReal : WKSCOL G TYPE TEXT
;datefinrealisation : WKSCOL H
Decisionpencharge : WKSCOL I
;calcul des champs de format différent
FORMULASTART
FIELD coutprojet:=@if(ctprojet<1;"Moins de 1 jour";
ctprojet<4;"de 1 a 3 jours";
ctprojet<8;"de 4 a 7 jours";
ctprojet<16;"de 8 a 15 jours";
ctprojet<31;"de 16 a 30 jours";"plus de 30 jours");
mdt:=@left(datereal;"/");
findate:=@right(datereal;2);
debutdate:=@middle(datereal;"/";"/");
FIELD DateRealisation:=@texttotime(debutdate+"/"+ @if(mdt="Jan";"01"; mdt="Fév";"02"; mdt="Mar";"03"; mdt="Avr";"04";
mdt="Mai";"05"; mdt="Jun";"06"; mdt="Jui";"07"; mdt="Aou";"08"; mdt="Sep";"09"; mdt="Oct";"10"; mdt="Nov";"11";"12")+"*"+
findate);
FORMULAEND


Fin du fichier .col

Ce fichier transfère les colonnes dans des champs en laissant à part la colonne H et en transformant les colonnes F et G n'ayant pas un format correct pour le document Notes.

Exécuter l'importation

Fichier Importer

Choisir le type de fichier (Lotus)

Sélectionner le fichier

cliquer sur importer

Sélectionner le masque à utiliser

Cocher défini fichier de format

Saisir le nom du fichier col (ex : Transfert.col)

Cliquer sur Ok





Le Workflow

Le WorkFlow est un principe de transmission automatique ou semi-automatique de documents.

Automatique veut dire que le document est envoyé à quelqu'un, lorsque ce document se trouve dans un état précis , la transmission semi-automatique est une transmission dont le destinataire est choisi automatiquement mais le moment de l'envoi est décidé par l'expéditeur.

Plusieurs méthodes de workflow existent (la méthode centrifuge, médium et centripète)

Ex :

La méthode centrifuge


Avantages :
Accès direct au document.

Travail en local.

Blocage natif du document transféré

Inconvénient :

Risque de perte du document (par effacement), car le destinataire a tout les droits.

Base éclaté pendant le flux de document.

l'expéditeur ne peut consulter le document modifier par le destinataire.

le document doit contenir son masque ce qui entraine de grosse bases Notes.

les champs ne peuvent êtres transférés tels quels (le document est envoyé en tant que texte en ligne)


Programmation du workflow

choix de la méthode centrifuge: il vous faut utiliser des boutons, visibles que pour certaines personnes et attribuer à ces boutons des envois de documents.

Attention : chaque document est envoyé sous la forme d'un texte en ligne, les masques ne peuvent êtres envoyé avec action simple et formules

Les méthodes par action simple et formules ne font que l'envoi de champ du document courant vers un destinataire

La méthode par Lotus script permet de faire du workflow car le document entier est envoyé par le mail ainsi que son masque. Le document résultant reçu dans la boite aux lettres est un document ne contenant plus les masques des champs (aucune saisie de champs ne peut être faite), mais contient (les cases à cocher, les cases boutons et les boutons)

Méthode par action simple:

1- créer sur le document 1 bouton

2- créer un champ SendTo

3- pour le bouton

cacher le bouton par la fonction dans la propriété

@if(!@Name([CN];@Username)="nom utilisateur")


choisissez Action Simple

puis

Ajouter action (modifier le champ SendTo)

Valeur : nom du destinataire

Ajouter action (Envoyer le document)

Remarque : seul les champs appelés Body et Subject seront envoyés.




Méthode par formule :

1- créer sur le document 1 bouton

Mettre la formule @MailSend("nom destinataire";"";"";"";""; Champ à envoyer)



Méthode par Lotus Script :

1- créer sur le document 1 bouton par personnes destinataires du document

2- pour chaque bouton

Dim woks As New notesuiworkspace Création d'une instance de classe d'espace de travail notes
Dim uidoc As notesuidocumentCréation d'un instance non initialisé d'un document de type document courant
Set uidoc=woks.currentdocumentmise dans l'objet uidoc du document courant afficher à l'écran
Call uidoc.fieldsettext("SendTo","admin") Remplissage du champ SendTo du document (avec le nom du destinataire)
Call uidoc.sendEnvoi du document courant par courrier

La méthode centripète


Avantages :
Consultation toujours possible.

Pas de mouvement de document (il reste dans la base).

Lien possible de la base avec une autre base ODBC.

Rappel sur tout les documents non traités.

Utilisation possible de CC:MAIL en sous couche de transfert par courrier.

Inconvénient :

Pas d'accès direct au document (accès par un lien).

Doublon des rappels dans le courrier.

L'utilisateur doit aller vers le document.

Notification automatique même si l'expéditeur ne veut pas transmettre son dossier.

Choix de la méthode centripète : il vous faut utiliser des agents qui recherches les documents intéressant dans la base et envoi par courriers des liens sur ces documents (aux personnes concerné)

Dans la méthode par action simple, c'est la vue qui sélectionne les documents à envoyer.

Méthode par action simple

1- Créer un agent

2- Donner un titre à l'agent

3- Choisir une planification de l'agent (un nouveau document, toutes les heures, tout les jours, etc ...)

4- Choisir les documents intéressant pour l'agent (les nouveaux documents, tout les documents, ...)

5- Puis faire ajouter action (Envoyer le récapitulatif du bulletin)

6- Choisir un destinataire

7- choisir la vue des documents à envoyer (ligne en dessous de joindre le récapitulatif de chaque document)




le fait d'utiliser le lotus script permet de créer des listes de documents à envoyer dynamique

Pour ce faire il faut que la base contienne un dossier "tempo"

Méthode par Lotus Script:

1- Créer un agent

2- Donner un titre à l'agent

3- Choisir une planification de l'agent (un nouveau document, toutes les heures, tout les jours, etc ...)

4- Choisir les documents intéressant pour l'agent (les nouveaux documents, tout les documents, ...)

5- Puis cliquer sur script

Programme script d'envoi de document

Dim session As New notessession Création d'une instance de session notes
Dim db As notesdatabaseCréation d'une instance de base notes
Dim collection As notesdocumentcollection Création d'une instance de collection de document
Dim doc As notesdocumentCréation d'une instance d'un document
Dim fold As notesviewCréation d'une instance de vue ou dossier
Dim sélection As StringCréation d'une variable chaîne de caractère
Dim datetime As notesdatetimeCréation d'une instance de type date
Set db = session.currentdatabaseInitialisation de la base de donnée
Set docfin = New notesdocument(db)Création d'une instance de document
Set ritem=New notesrichtextitem(docfin,"Body") Création d'une zone richtext dans le document
Set datetime = New notesdatetime ( "") Initialisation de la variable date
Call datetime.setnowMise de la variable date à la date d'aujourd'hui
Call datetime.adjustday(-365)Enlève 365 jours la variable date
sélection = " form=""Demande de Maintenance Informatique"" & VisaAcq=""Non"" " Création d'une variable sélection
Set collection = db.search ( sélection, datetime,0) Sélection des documents répondant à la sélection et dont la date de création est supérieur à datetime
If (collection.count >0) Thensi des documents ont été sélectionnés
Call ritem.appendtext("LISTE DES DEMANDES DE MAINTENANCE NON TRAITEE (qui ont moins de 1 an)") Mise de texte dans le document à envoyer
Call ritem.addnewline(2)Ajout de 2 lignes
Call ritem.appendtext("lien")
Call ritem.addtab(1)Ajout d'une tabulation
Call ritem.appendtext("Date de création")
Call ritem.addtab(1)
Call ritem.appendtext("Numéro de demande")
Call ritem.addtab(1)
Call ritem.appendtext("Objet de la demande")
Call ritem.addnewline(2)
For j=1 To collection.countboucle de 1 au nombre de documents sélectionnés
Set doc=collection.getnthdocument(j) mise dans doc du document sélectionné numéro j
Call doc.putinfolder("tempo") mise du document dans le dossier tempo
Nextfin boucle
Set fold=db.getview("tempo") Initialisation de l'objet fold = dossier tempo
Set doc=fold.getfirstdocument mise dans doc le 1er doc du dossier tempo
While Not ( doc Is Nothing)tant qu'il y à un document dans le dossier tempo
Call ritem.appenddoclink(doc,"Document dans la base " & db.title) mise d'un lien sur le document dans le document final
Call ritem.addtab(1)ajout d'une tabulation dans le document final
Call ritem.appendtext(doc.date(0)) ajout du champ date du document du dossier dans le document final
Call ritem.addtab(2)
Call ritem.appendtext(doc.nodem(0))
Call ritem.addtab(3)
Call ritem.appendtext(doc.objet_de_la_demande(0))
Call ritem.addnewline(1)
Call doc.removefromfolder("tempo") enlever le document du dossier tempo
Set doc=fold.getfirstdocument mise à jour de la variable doc = premier doc du dossier tempo
Wendfin tantque
docfin.subject = "Essai" ajout d'un sujet au document final
docfin.form ="mémo" ajout d'un type au document final
Call docfin.send(False,"admin") envoi du document final à admin ( par courrier)
End If




La méthode médium


Avantages :
Accès direct au document.

Pas de mouvement de document (il reste dans la base).

Consultation toujours possible.

Lien possible de la base avec une autre base ODBC

Utilisation possible de CC:MAIL en sous couche de transfert par courrier

Notification lorsque l'expéditeur le décide

Inconvénient :

Notification que sur un document.


Choix de la méthode médium : il vous faut utiliser des boutons visibles, que pour certaines personnes et envoyer grâce à ces boutons des liens sur des documents de la bases.

Méthode par Lotus Script :

1- Créer 1 bouton par personne destinataire

2- Pour chaque bouton

Cacher le bouton pour les personnes non autorisées

Ici le bouton n'est visible que pour l'utilisateur admin

3- Associer à chaque bouton le programme suivant

Dim woks As New notesuiworkspace Création d'une instance de classe d'espace de travail notes
Dim uidoc As notesuidocumentCréation d'un instance non initialisé d'un document de type document courant
Dim session As New notessessionCréation d'une instance de session notes
Dim db As notesdatabaseCréation d'une instance de base notes
Dim doc As notesdocumentCréation d'une instance d'un document
Set uidoc=woks.currentdocumentmise dans l'objet uidoc du document courant afficher à l'écran
Set db = session.currentdatabaseInitialisation de la base de donnée
Set docfin = New notesdocument(db)Création d'une instance de document
Set ritem=New notesrichtextitem(docfin,"Body") Création d'une zone richtext dans le document
Call ritem.appendtext("Double cliquer sur le document de travail") Mise de texte dans le document à envoyer
Set doc=uidoc.documentmise dans doc du document courant
Call doc.save(FALSE,FALSE)Sauve le document courant
Call ritem.appenddoclink(doc,"Document dans la base " & db.title) mise d'un lien sur le document dans le document final
docfin.subject = "Document à traité" ajout d'un sujet au document final
docfin.form ="mémo"ajout d'un type au document final
Call docfin.send(False,"admin") envoi du document final à admin ( par courrier)