Sommaire
1. Introduction
RSS en quelques mots
Le RSS ou encore le flux RSS est un système normalisé qui permet de mettre à disposition des informations.
Ces informations doivent être groupées dans un fichier ou dans un flux au format XML.
Ce flux en XML doit être formaté avec des balises précises dans une hiérarchie bien définie.
Le résultat peut être lu à n’importe quel moment, à la demande du client. C’est un mode « pull » et non pas un mode « push ».
La lecture d’un flux RSS demande une feuille de style : un XSL.
Ces flux sont utilisables avec Outlook, IE et les autres navigateurs ou tout autre programme de flux RSS. (il en existe d’innombrables).
Avec SILOG ERP
Dans Silog, le flux RSS est composé de tables dans la base de données.
Ces tables sont liées aux utilisateurs pour gérer un lien « qui veut quoi ».
Les tables pour les flux RSS reçoivent les évènements de SILOG qui seront transformés en rss.
Un serveur « web » est le moteur du système de distribution qui transforme à la volée le contenu des tables en flux RSS.
Le flux généré est complètement standard.
Pour que les flux rss fonctionnent, il faut au minimum :
Le serveur IIS doit être activé.
Les fichiers du site « web » livrés par SILOG..
Le Framework 3.5 au minimum est à mettre sur le serveur.
Adapter si besoin le code de ces fichiers avec le nom du serveur SQL et les mots de passe pour accéder à la base de données de Silog.
2. Technique
2.1. Tables utilisées
Les flux peuvent être archivés dans plusieurs tables qui ont toujours la même structure. La table par défaut se nomme : FLUXRSS.
Nous verrons plus bas dans la documentation que la table de stockage des flux peut être dynamique.
Il est en effet possible de définir une table réceptacle de FLUX générés par abonnement.
2.2. Les abonnements
Les abonnements possibles sont de 3 ordres :
Applicatif : cela correspond aux saisies de création, modification et suppression réalisées dans l’interface.
Transactionnel : cela correspond aux points d’entrés des programmes de l’ERP, comme par exemple la création d’un mouvement de stock, la génération automatique de facture…
L’abonnement à une transaction peut également être une règle de calcul.Listages : cela correspond à un abonnement programmé d’un listage généré par SilConsult. Cette fonctionnalité est disponible exclusivement en v8.03.
2.2. Pré-requis
Un serveur IIS doit être en service, les fichiers programme IIS fournis par SILOG doivent être installés dans ce serveur IIS. Voir la procédure d’installation du serveur IIS.
3. Les abonnements
3.1. Ouverture de l’application
L’application de déclaration des abonnements se nomme : « AFLUXRSS », et elle est accessible à partir du menu des Utilitaires.
SILOG ERP fournit 1240 abonnements sur les applications (évènements ouverture, fermeture, création, modification, suppression en-tête et corps, descente et remontée du corps.) et 132 abonnements sur les règles de transactions.
3.2. Création d’un abonnement « Application ».
Cliquez sur création puis valider.
Libellé : libellé informatif de l’abonnement.
Sélectionnez dans Type d’abonnement « APPLICATION ». Cette zone n’est accessible qu’en création., deux zones supplémentaires apparaissent.
Application : nom de l’application SILOG pour laquelle on veut créer un abonnement. La liste des applications est basée sur la table SILAPPLI, si votre application n’apparaît pas vous pouvez la saisir.
Si vous voulez créer un abonnement sur l’en-tête ou le corps, d’autres zones supplémentaires apparaissent.
Par défaut la zone « Nom de la table application » est renseigné avec le nom de la table concernée « entête » ou « corps » de l’application sélectionné. Cette zone n’est pas modifiable.
Remarque : le nom de la table, lorsqu’il est alimenté, permet de saisir des conditions lors de l’enregistrement des abonnements dans le corps de l’application.
Les évènements d’en-tête possibles sont :
Les évènements du corps possibles sont :
Par défaut la table FLUXRSS est celle utilisée par le programme si aucune table n’est précisée dans le champ « Nom Table rss ». Si vous saisissez un autre nom, le programme propose de créer la table. Dans notre exemple nous saisissons : FLUXRSS2.
La structure de la table FLUXRSS2 ainsi générée est identique à celle de la table par défaut FLUXRSS.
Dans les zones Titre et description, vous devez renseigner les informations que vous souhaitez que le flux retourne. Les variables de SILOG sont disponibles.
Ajouter une légende
Attention : Lorsque l’on réalise des flux RSS avec l’ERP, faire attention aux titres de chaque élément du flux.
Le flux RSS est un fichier construit avec des tags XML et la lecture se fait avec une feuille de style XSL ou XSLT. Le flux RSS est normalisé et permet à certaines applications de les gérer en abonnement. L’internet Explorer, Outlook, Firefox sont quelques exemples de ces applications permettant de recevoir ces abonnements.
Un abonnement à un flux RSS est le stockage de l’adresse du flux dans une application. A intervalles réguliers, l’application utilise l’adresse du flux pour aller chercher le contenu et permet d’afficher les nouveautés. Une nouveauté est « un nouveau titre ».
Lorsqu’on utilise directement l’adresse du flux (sqltorss.aspx ?...) dans le navigateur, la liste des flux est bien visible même si ces derniers ont des titres identiques, mais dès que l’on s’abonne à ces flux, seuls les titres différents sont visibles. En fait, le programme ne vous fait apparaître que ce qui est nouveau, sans les doublons.
Lorsque l’on génère les flux dans l’ERP, il faut faire attention à ce que le titre soit unique. Il faut éviter les titres du style « modification d’un article ».
De la même manière la référence de l’article n’est pas forcément suffisante car il se peut que l’article soit modifié deux fois ou plus entre deux lectures du flux par l’utilisateur.
Une solution consiste à ajouter la date et l’heure en entête du titre et la référence de l’élément. Par exemple « 31/01/2012 – 16 :32 - modification de l’article F4255 ».
Pour ajouter la date et l’heure dans le titre, utilisez ces variables :
STRTODAT$(p_dat_gpao$)+" - " + TIME$ + " - " + ”modification de l’article “ + f123456$
Notez que f123456$ n’est pas une vraie variable et n’est là que pour l’exemple.
Impératif : Encadrer les libellés texte par des guillemets doubles quottes. Dans l’exemple, « titre » va retourner le nom de l’utilisateur qui a modifié la fiche article. Variable g_c_user$
Dans « Description », le flux va retourner le nom de l’application g_nomapp$ et une nouvelle fonction de paramétrage a été ajoutée pour retourner la liste des valeurs modifiées pendant la modification.
Cette fonction se nomme : ListeValeursModifiées(). Elle peut prendre un paramètre numérique, précisant le nombre de valeur à retourner. Si aucun paramètre n’est renseigné, le programme retourne toutes les valeurs qui ont été modifiées.
Vous remarquez que description accepte du HTML. Ici par l’instruction correspondant à un retour chariot.
3.3. Création d’un abonnement « Transaction ».
En choisissant Type d’abonnement transaction, voici comment se présente l’écran.
Vous devez renseigner impérativement l’application, l’évènement et optionnellement le nom de la table application et le nom de la table RSS.
Remarque : le nom de la table, lorsqu’il est alimenté, permet de saisir des conditions lors de l’enregistrement des abonnements dans le corps de l’application.
Dans ce type d’abonnement l’évènement est un point d’entrée des programmes ou une règle de calcul créé pour les besoins de paramétrage client. Autrement dit, vous pouvez saisir ici une règle de calcul spécifique.
Nous allons paramétrer, l’abonnement ainsi :
La règle doit exister dans les programmes ou dans l’application Règle de calcul.
Pour l’exemple nous allons appeler la règle de calcul spécifique nommée “MAREGLE” à partir d’un bouton action de la fiche article.
La règle spécifique doit exister dans l’application “Règle de calcul.”.
Attention, la casse est importante, il faut donc recopier à l’identique le code de la règle de calcul dans la zone évènement du flux RSS.
Remarque :
L’exemple ci-dessous montre un abonnement de type transaction dont l’événement est un point d’entrée spécial dédié à l’application GRT.
3.4. Activation des abonnements.
Lors de la création d’un nouvel abonnement et dans les abonnements fournis par SILOG, la zone abonnement actif O/N est par défaut à Non.
Pour l’activer à Oui il vous suffit de cliquer sur le bouton à droite de l’écran.
Le premier clic passe Inactif à Actif.
Et inversement
3.5. Comment s’abonner ?
A cette étape nous avons créé un abonnement et la table FLUXRSS2 va être alimentée. Par contre, les utilisateurs ne se sont pas spécifiquement abonnés à ce flux.
Pour ce faire, sur chaque abonnement que vous créez et pour ceux fournis par SILOG, il faut descendre dans le corps de l’application.
Sélectionnez le code utilisateur,
S’il s’agit du premier abonnement de l’utilisateur, la fenêtre de saisie du mot de passe liée aux abonnements de l’utilisateur apparaît.
Saisir le mot de passe et confirmer :
Exemple :
Il est possible d’annuler la commande par le bouton « Annuler », dans ce cas, aucun mot de passe ne sera associé à l’utilisateur.
Lors du prochain abonnement de cet utilisateur, la saisie du mot de passe sera redemandée.
Le programme vérifie que les mots de passe sont bien renseignés.
Si le mot de passe de confirmation est différent du mot de passe saisi, le message ci-dessous apparaît :
Pour modifier un mot de passe, il faut être en modification de fiches. Et sélectionner
Dans l’exemple ci-dessous, l’utilisateur SILOG est abonné à ce flux. Pour le détail des autres rubriques voir Fonctionnalités avancées.
3.6. Visualisation d’un premier résultat.
3.6.1. Internet Explorer
Vous devez vous connecter à votre intranet en passant l’URL suivants :
En rouge les paramètres de votre système et réseau.
http://<monserveurintranet>/<NomdufichierSQLTORSS.aspx>?siloguser=<IdUser>&datatable=<TableFluxRSS> &SpecFlux=<Mot de passe utilisateur ERP>
Il faut créer une URL différente par base de données.
<monserveurintranet>: C’est le nom du serveur dans lequel a été mis les trois composants du programme. C’est le serveur IIS.
<NomdufichierSQLTORSS.aspx> : Nom du fichier SQLTORSS
<IdUser>: C’est l’identifiant numérique associé à l’utilisateur ERP, cet identifiant est visualisable dans l’abonnement de l’utilisateur.
<TableFluxRSS> : C’est le nom de la table que vous avez défini dans la gestion des Flux RSS de l’ERP. Par defaut cette table est « FLUXRSS » sans les guillemets.
<Mot de passe utilisateur ERP> : c’est le Mot de passe associé à l’utilisateur ERP. Le mot de passe utilisateur est le mot de passe indiqué pour chaque utilisateur dans l’application flux RSS, lors de l’abonnement de l’utilisateur au flux.
Seuls les paramètres rouges sont à modifier et à adapter.
Par défaut, le test de cette URL affiche un écran analogue à la copie d’écran ci-dessous.
Cela veut dire que le serveur est prêt à afficher des flux rss.
Nous allons modifier une fiche article.
Dans l’exemple, nous modifions, le seuil mini de cette fiche article en le passant à la valeur 9. Ensuite nous cliquons sur le bouton bleu « MA REGLE DE CALCUL ».
Ci-dessous copie d’écran suite à un rafraîchissement d’Internet Explorer.
3.6.2. Outlook
Vous pouvez également paramétrer votre messagerie pour réceptionner les flux rss de SILOG.
Sélectionnez par clic droit « Ajouter un nouveau flux RSS »dans le menu contextuel d’Outlook.
Cliquez sur « Ajouter » puis Validez le message ci-dessous.
Ou cliquez sur « Options avancées » pour programmer votre flux RSS provenant de SILOG, comme un flux RSS classique.
Voici ce que vous obtenez dans votre messagerie : des informations dynamiques provenant de SILOG.
4. Les fonctionnalités avancées
4.1. Gestion des conditions par utilisateurs
Les abonnements vous permettent d’affecter une table FLUX RSS par évènement ou par type d’abonnement ou par application ou groupe d’application.
Vous pouvez également créer une table Flux RSS par utilisateur ou mieux, par groupe d’utilisateurs puisqu’un même évènement peut être inséré plusieurs fois dans l’en-tête des abonnements. Exemple :
Attention : A utiliser avec modération, car la multiplication des tables flux pour un même évènement à des conséquences sur les performances.
A savoir que le flux généré à partir du serveur web interprète les conditions que l’on peut saisir dans le corps de l’application des abonnements.
Ces conditions sont à saisir en langage SQL, la zone « NomTableAppli » de l’entête doit être alimentée, sinon aucune condition ne sera interprétée par les flux RSS.
4.2. Exemples d’utilisation du HTML simple dans les titres et descriptions.
Si vous organiser votre serveur IIS pour stocker dans le répertoire « root », des images ou autres objets, le flux rss peut lire ces informations par lien HyperText ou directement dans les pages HTM suivant les cas.
Exemple : dans la description de modification de la fiche article on pose un HyperLien sur une image et le lien sur l’image, de l’article dont le nom est égal au code article.
Note :
si vous modifiez un abonnement il n’est prit en charge qu’au nouveau chargement de l’application.
Il est conseillé de mettre le chemin complet du site web.
Visualisation dans Internet Explorer.
Visualisation dans Outlook.
Comme nous l’avons vu ci-dessus, le chemin complet de l’image via le site web a été renseigné dans la fonction SRC, Outlook peut donc afficher la photo. Si le site n’est pas accessible depuis la messagerie Outlook alors la photo n’apparaîtrait pas. Exemple du cas de consultation des mails en déporté.
C’est pourquoi il est conseillé de placer un HyperLien plutôt que d’afficher les éléments dans la page.
4.3. Exemples de fonctions évoluées comme OBJECT.
Prenons l’exemple suivant :
Lors de la création ou de la modification d’une commande vente, l’utilisateur exporte l’édition de celle-ci en PDF à partir de Crystal Report.
Bien entendu le stockage du fichier doit être accessible par le serveur web.
Dans la zone description, nous plaçons la balise OBJECT (cf copie écran ci-dessous).
Si le plug-in PDF n’est pas installé dans votre navigateur et dans un lecteur de flux, vous visualisez le lien comme ci-dessous :
Dans l’écran d’accueil de l’ERP, voici ce que rend cette même syntaxe :
Le fichier PDF est directement intégré à la page HTML.
Et ainsi de suite vous pouvez créer des liens ou du contenu de document office : Word, Excel, PDF…
5. Fichiers d’exécution des flux sur serveur internet et intranet
Le flux RSS est généré par un programme dont le point d’entrée est « SQLToRSS.aspx ».
Le programme est composé des quatre fichiers « SQLtoRSS.aspx », « SQLtoRSS.aspx.vb », « Web.config » et « RSS.xslt ».
Ces fichiers sont fournis à partir de la version 7.60 E dans le répertoire « FluxRSS » de l’ERP.
Ces composants doivent être copiés dans le répertoire racine du serveur « IIS ». Par défaut ce répertoire est le suivant « C:\inetpub\wwwroot ».
5.1. Paramétrage des connexions aux bases de données
Le fichier « Web.config » doit contenir toutes les informations de connexion aux différentes bases de données.
A l’intérieur de la balise <connectionstring> se trouvent les paramètres de connexion aux différents serveurs. Il faut adapter la ligne suivante « ConnexionSilog » avec vos paramètres de connexion.
Exemple, 1 connexion :
<?xml version="1.0"?> <!-- Pour plus d'informations sur la configuration de votre application http://ASP.NET , consultez http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <connectionStrings> <add name="ConnexionSilog" connectionString="Database=BM760;Server=SRV-SQL-VIRT;User ID=SILOG;Password=SILOG"/> </connectionStrings> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration>
Il faut mettre le nom de la base, le serveur et le user ayant les droits sur les tables. Le user est un user SQL il ne s’agit pas d’un utilisateur ERP.
Par défaut, ce user se nomme : FLUXRSS et son password est FLUXRSS, mais comme l’exemple ci-dessus le montre, vous pouvez mettre l’utilisateur SQL de votre choix. C’est un user SQLServer.
Si plusieurs bases de données sont concernées, il faut compléter le fichier web.config avec toutes les connexions possibles.
Exemple, deux connexions :
<?xml version="1.0"?> <!-- Pour plus d'informations sur la configuration de votre application http://ASP.NET , consultez http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <connectionStrings> <add name="ConnexionSilog" connectionString="Database=BM760;Server=SRV-SQL-VIRT;User ID=SILOG;Password=SILOG"/> <add name="ConnexionSilog1" connectionString="Database=AA760;Server=SRV-SQL-VIRT;User ID=SILOG;Password=SILOG"/> </connectionStrings> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration>
Si vous possédez plusieurs bases de données, alors, il faut dupliquer le fichier « sqltorss.aspx », un fichier par connexion.
Il faut également dupliquer le fichier « SQLtoRSS.aspx.vb », un fichier par connexion.
C’est ce couple de fichiers qui permet la connexion à la base de données.
Exemple : sqltorssBM760.aspx et sqltorssBM760.aspx.vb , sqltorssAA760.aspx et sqltorssAA760.aspx.vb
Dans chacun des fichiers d’extension « vb », il faut, adapter la ligne suivante :
oCN.ConnectionString = ConfigurationManager.ConnectionStrings("ConnexionSilog").ConnectionString
Dans notre exemple : un fichier par nom de connexion :
Pour sqltorssBM760.aspx.vb :
oCN.ConnectionString = ConfigurationManager.ConnectionStrings("ConnexionSilog").ConnectionString
Pour sqltorssAA760.aspx.vb :
oCN.ConnectionString = ConfigurationManager.ConnectionStrings("ConnexionSilog1").ConnectionString