Vous êtes sur la page 1sur 94

Manuel d'utilisation Force.

com: Salesforce Summer '10

Manuel d'utilisation Force.com

Copyright 2000-2010 salesforce.com, inc. Tous droits rservs. Salesforce.com, le logo "no software" et Team Edition sont des marques
dposes, et AppExchange, "Success On Demand" et "The Business Web" sont des marques de commerce de salesforce.com, inc. Toutes
les autres marques mentionnes dans ce document sont la proprit de leur dtenteur respectif.

Manuel d'utilisation Force.com | Table des matires | i

Table des matires


propos du Manuel d'utilisation Force.com........................................................................................................................................3
Didacticiel n 1 : Cration d'une application Entrept..........................................................................................................................5
tape 1 : Cration d'un objet personnalis Article....................................................................................................................5
tape 2 : Ajout des champs Description, Prix et Inventaire total..............................................................................................7
tape 3 : Cration d'un onglet...................................................................................................................................................9
tape 4 : Cration d'une sous-application Entrept................................................................................................................10
tape 5 : Cration d'un enregistrement Article.......................................................................................................................11
Rsum....................................................................................................................................................................................12
Didacticiel n 2 : Ajout de relations.....................................................................................................................................................13
tape 1 : Cration d'un objet personnalis Relev de facture..................................................................................................13
tape 2 : Cration d'un objet lment de ligne.......................................................................................................................16
tape 3 : Association des objets...............................................................................................................................................17
tape 4 : Ajout de relevs de facture la sous-application......................................................................................................18
tape 5 : Cration d'un enregistrement Facture......................................................................................................................18
Rsum....................................................................................................................................................................................20
Didacticiel n 3 : Utilisation de formules et de rgles de validation.....................................................................................................21
tape 1 : Calcul d'une valeur pour chaque Elment de ligne...................................................................................................21
tape 2 : Calcul d'une valeur pour le Relev de facture avec un champ rcapitulatif de cumul...............................................22
tape 3 : Contrle d'inventaire avec une rgle de validation...................................................................................................23
tape 4 : Test de la rgle de validation.....................................................................................................................................25
tape 5 : Amlioration de la rgle de validation......................................................................................................................26
Rsum....................................................................................................................................................................................27
Didacticiel n 4 : Utilisation de workflow et d'approbations................................................................................................................28
tape 1 : Renseignement du prix d'lment de ligne l'aide d'une rgle de workflow............................................................29
tape 2 : Mise jour de l'inventaire total lors d'une commande.............................................................................................30
tape 3 : Test des rgles de workflow......................................................................................................................................32
tape 4 : Cration d'un modle d'e-mail.................................................................................................................................33
tape 5 : Cration d'un processus d'approbation.....................................................................................................................34
tape 6 : Cration d'un profil de scurit personnalis............................................................................................................36
tape 7 : Cration d'un utilisateur...........................................................................................................................................37
tape 8 : Test du processus d'approbation...............................................................................................................................38
Rsum....................................................................................................................................................................................40
Didacticiel n 5 : Ajout d'une logique commerciale avec Apex............................................................................................................41
tape 1 : Cration d'une dfinition de dclencheur Apex.......................................................................................................42
tape 2 : Dfinition d'une variable de liste..............................................................................................................................43
tape 3 : Itration sur une liste et modification du prix..........................................................................................................44
tape 4 : Test du dclencheur..................................................................................................................................................45
Rsum....................................................................................................................................................................................46
Didacticiel n 6 : Ajout de tests l'application....................................................................................................................................47
tape 1 : Cration d'une classe de test Apex...........................................................................................................................48
tape 2 : Ajout de mthodes de test la classe........................................................................................................................48

Manuel d'utilisation Force.com | Table des matires | ii


tape 3 : Ecriture du code excutant le dclencheur...............................................................................................................49
tape 4 : Excution du test......................................................................................................................................................50
tape 5 : Affichage de la couverture de code et amlioration des tests....................................................................................51
Rsum....................................................................................................................................................................................53
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce..........................................................54
tape 1 : Activation du Mode de dveloppement de Visualforce............................................................................................54
tape 2 : Cration d'une page Visualforce...............................................................................................................................55
tape 3 : Ajout d'une ressource statique Feuille de style.........................................................................................................56
tape 4 : Ajout d'un contrleur la page................................................................................................................................58
tape 5 : Affichage de la Feuille d'inventaire en tant que page Visualforce.............................................................................59
Rsum....................................................................................................................................................................................61
Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites..........................................................................................62
tape 1 : Cration d'une page de catalogue de produits..........................................................................................................62
tape 2 : Enregistrement d'un nom de domaine Force.com....................................................................................................64
tape 3 : Cration d'un site Force.com....................................................................................................................................65
tape 4 : Configuration et test du site.....................................................................................................................................65
Rsum....................................................................................................................................................................................67
Didacticiel n 9 : Cration d'une boutique..........................................................................................................................................68
tape 1 : Cration d'un contrleur..........................................................................................................................................68
tape 2 : Ajout de mthodes au contrleur.............................................................................................................................69
tape 3 : Cration de la boutique............................................................................................................................................70
tape 4 : Bonus - Mise jour de la page avec AJAX...............................................................................................................72
Rsum....................................................................................................................................................................................73
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com............................................75
tape 1 : Configuration des informations personnelles Salesforce.com...................................................................................76
tape 2 : Cration d'une Configuration de porte-documents hors-ligne................................................................................77
tape 3 : Gnration de votre WDSL Entreprise et tlchargement d'un certificat client.....................................................79
tape 4 : Installation et lancement de Adobe Flash Builder for Force.com.............................................................................80
tape 5 : Cration d'un projet Force.com Stratus....................................................................................................................80
tape 6 : Dfinition des attributs du composant Stratus Application.....................................................................................82
tape 7 : Cration d'un composant Window Suivi Inventaire................................................................................................83
tape 8 : Test de la sous-application Suivi Inventaire..............................................................................................................87
Rsum....................................................................................................................................................................................89
Annexe................................................................................................................................................................................................90
Cration et connexion un environnement test sandbox........................................................................................................90
Cration d'un projet dans l'IDE Force.com.............................................................................................................................90
Distribution de votre application.............................................................................................................................................91

Manuel d'utilisation Force.com | propos du Manuel d'utilisation Force.com | 3

propos du Manuel d'utilisation Force.com


Le Manuel d'utilisation Force.com prsente comment crer une application dans une srie de didacticiels. Vous pouvez utiliser
la plate-forme Force.com pour laborer toutes sortes d'applications, mais la plupart des applications partagent certaines
caractristiques, notamment :

Une base de donnes pour modliser les informations dans l'application


Une logique commerciale et un workflow pour effectuer des tches spcifiques dans certaines conditions
Une interface utilisateur pour prsenter les donnes et les fonctionnalits aux utilisateurs connects votre application
Un site Internet public pour montrer les donnes et les fonctionnalits sur le Web

Les didacticiels sont axs sur l'laboration d'un systme trs simple de gestion d'un entrept. Vous allez dvelopper entirement
l'application, c'est--dire que vous allez commencer par laborer un modle de base de donnes pour le suivi des articles. Vous
allez ensuite ajouter une logique commerciale : des rgles de validation pour s'assurer que le stock est suffisant, un workflow
pour mettre jour l'inventaire lors d'une vente, des approbations pour envoyer des notifications par e-mail pour les valeurs de
facturation importantes et une logique de dclenchement pour mettre jour les prix dans les factures en cours. Une fois la base
de donnes et la logique commerciale termines, vous allez crer une interface utilisateur pour montrer l'inventaire d'un produit
au personnel, un site Web public pour prsenter un catalogue de produits, puis les premiers lments d'une boutique simple.
Pour le dveloppement hors ligne et l'intgration la sous-application, nous avons ajout un dernier didacticiel qui prsente
l'utilisation de Adobe Flash Builder for Force.com.
Chaque didacticiel repose sur les didacticiels prcdents selon une progression logique dans le dveloppement de l'application,
et prsente en mme temps une fonctionnalit particulire de la plate-forme. Cela parat beaucoup, mais vous allez rapidement
apprcier la simplicit des points abords.

Choix d'un environnement de dveloppement


Le manuel est conu pour tre utilis dans une organisation Developer Edition qui offre l'ensemble des fonctionnalits et
fonctions requises. Pour vous abonner gratuitement une organisation Developer Edition, accdez la page
developer.force.com/join.
Vous pouvez toutefois utiliser la version Free Edition, en tenant compte des points ci-dessous.

Certains didacticiels ncessitent l'utilisation d'un environnement test sandbox. Il est par consquent plus facile de terminer
tous les didacticiels au sein d'une organisation test sandbox. Si vous n'avez pas encore cr d'environnement test sandbox,
reportez-vous Cration et connexion un environnement test Sandbox la page 90.
Vous ne pouvez pas utiliser la version Free Edition pour terminer le Didacticiel n 10 : Cration d'une sous-application de
bureau avec Adobe Flash Builder for Force.com. En tant qu'aperu pour dveloppeur, Adobe Flash Builder for Force.com
est disponible uniquement dans Developer Edition.
Les images du manuel peuvent tre lgrement diffrentes de celles affiches sur votre cran. Par exemple, Developer
Edition utilise un onglet Dmarrer ici, tandis que Free Edition inclut un onglet Premiers pas. Dans la plupart des cas, les
diffrences sont insignifiantes.

Manuel d'utilisation Force.com | propos du Manuel d'utilisation Force.com | 4

Une fois l'application termine, vous pouvez migrer les modifications depuis votre environnement test vers un environnement
de production. Pour plus d'informations, reportez-vous Distribution de votre application la page 91.

Pour vous abonner une organisation Free Edition, accdez salesforce.com/form/signup/freeforce-platform.jsp.

Organisation du manuel
Les didacticiels de ce manuel se compltent et s'inscrivent dans une progression logique.
Didacticiel

Niveau

Dure estime

Didacticiel n 1 : Cration d'une application Entrept

Dbutant

20 30 minutes

Didacticiel n 2 : Ajout de relations

Dbutant

20 30 minutes

Didacticiel n 3 : Utilisation de formules et de rgles de validation

Dbutant

20 30 minutes

Didacticiel n 4 : Utilisation de workflow et d'approbations

Intermdiaire

30 45 minutes

Didacticiel n 5 : Ajout d'une logique commerciale avec Apex

Avanc

20 30 minutes

Avanc

20 30 minutes

Crer la sous-application

Ajouter une logique

Ecrire des tests


Didacticiel n 6 : Ajout de tests l'application
tendre l'interface utilisateur
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en Intermdiaire
utilisant Visualforce

30 45 minutes

Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites Intermdiaire

20 30 minutes

Didacticiel n 9 : Cration d'une boutique

30 minutes

Intermdiaire

Intgration hors ligne


Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Avanc
Flash Builder for Force.com.

30 minutes

Annexe
Cration et connexion un environnement test sandbox
Cration d'un projet dans l'IDE Force.com
Distribution de votre application

En savoir plus
Chaque tape se termine par une section facultative En savoir plus. Pour avancer rapidement, passez l'tape suivante. Si
toutefois vous souhaitez approfondir, ces sections contiennent de nombreuses informations utiles et des tapes supplmentaires
pour toffer votre sous-application.

Pour en savoir plus sur Force.com et accder un vaste ensemble de ressources, visitez le site Developer Force l'adresse
developer.force.com.
La dernire version de ce Manuel et des didacticiels complmentaires permettant d'tendre la sous-application sont
disponibles la page developer.force.com/workbook.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 5

Didacticiel n 1 : Cration d'une application Entrept


Niveau : Dbutant ; Dure : 20 30 minutes

Cette application repose sur ce que vous vendez : des articles. Vous commencez par crer un objet de donnes qui permet de
suivre tous les lments relatifs un article spcifique, par exemple son nom, sa description, son prix, etc. Dans la plate-forme
Force.com, ces objets de donnes sont appels objets personnaliss. Si vous matrisez le concept de bases de donnes, vous pouvez
comparer un objet personnalis un tableau.
Un objet contient des champs standard, ainsi que des crans qui permettent de rpertorier, d'afficher et de modifier les
informations relatives l'objet. Vous pouvez toutefois ajouter vos propres champs afin de suivre ou de rpertorier tout lment
de votre choix. Une fois ce didacticiel termin, vous disposerez d'une application fonctionnelle dote de son propre menu, d'un
onglet et d'un objet personnalis permettant de suivre le nom, la description et le prix de vos articles, ainsi que d'crans
d'affichage et modification de ces informations.

Voir aussi :
tape 1 : Cration d'un objet personnalis Article
tape 2 : Ajout des champs Description, Prix et Inventaire total
tape 3 : Cration d'un onglet
tape 4 : Cration d'une sous-application Entrept
tape 5 : Cration d'un enregistrement Article
Rsum

tape 1 : Cration d'un objet personnalis Article


La plate-forme Force.com inclut des objets standard prdfinis, mais vous pouvez galement crer des objets personnaliss
afin de suivre tout lment de votre choix. La premire tape consiste crer un objet personnalis capable de contenir les
informations sur l'article.
1. Lancez un navigateur et accdez la page https://login.salesforce.com.
2. Saisissez votre nom d'utilisateur (sous forme d'adresse de messagerie) et votre mot de passe.
3. Cliquez sur Configuration dans le coin suprieur droit, puis sur Crer Objets dans le menu latral pour afficher la page
Objets personnaliss.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 6

4. Cliquez sur Nouvel objet personnalis pour afficher l'assistant Nouvel objet personnalis.
5. Renseignez la dfinition de l'objet personnalis.

Dans le champ tiquette, saisissez Article.


Dans le champ tiquette - pluriel, saisissez Articles.
Laissez les autres champs inchangs.

6. Cliquez sur Enregistrer pour terminer la cration de l'objet.

En savoir plus
Une fois le nouvel objet personnalis enregistr, la page de dtails le l'objet personnalis s'ouvre. Observez l'image ci-dessous
pour vous familiariser avec l'objet personnalis Article.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 7

1. Page de dtails Article : cette page affiche toutes les informations utiles relatives votre objet personnalis Article. Vous
allez bientt ajouter des champs, des relations, des rgles de validation et d'autres fonctionnalits simples pour cet objet
personnalis.
2. Nom API : lors de la cration de l'objet Article, vous n'avez spcifi aucun nom d'API, il a t automatiquement gnr.
Ce nom sert rfrencer l'objet dans la programmation. Tous les objets personnaliss se terminent par __c, qui permet
de les diffrencier des objets standard et de faciliter leur identification.
3. Champs standard : certains champs, appels champs standard, sont automatiquement gnrs. Par exemple, l'objet Article
contient un champ standard Responsable, qui suit automatiquement le crateur de chaque enregistrement.
4. Champs personnaliss : vous n'avez pas encore dfini de champ personnalis, vous le ferez l'tape suivante. Si vous avez
devin que les noms des champs personnaliss se terminent par __c, bien vu !

Voir aussi :
Didacticiel n 1 : Cration d'une application Entrept
tape 2 : Ajout des champs Description, Prix et Inventaire total

tape 2 : Ajout des champs Description, Prix et Inventaire total


Un objet article doit contenir les champs qui permettent de suivre diverses informations, notamment la description, le cot et
la quantit en stock. Vous pouvez ajouter des champs afin de rpertorier ou de suivre tout lment de votre choix.
Suivez les tapes ci-dessous afin de crer des champs personnaliss pour la description, le prix et l'inventaire.
1. Crez le champ Description.
a. Accdez la liste associe Champs personnaliss & relations.
b. Cliquez sur Nouveau pour lancer l'assistant Nouveau champ personnalis.
c. Dans la zone Type de donnes, slectionnez Zone de texte, puis cliquez sur Suivant.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 8

d. Renseignez les dtails des champs personnaliss.

Dans le champ tiquette du champ, saisissez Description et appuyez sur la touche Tabulation.
Le champ Nom du champ doit tre automatiquement renseign avec le nom de champ : Description.
Slectionnez la case Obligatoire. L'une de vos rgles commerciales indique que vous ne pouvez pas crer d'article
sans fournir une description. Rendre le champ Description obligatoire satisfait cette rgle commerciale.
Vous pouvez renseigner les champs facultatifs Description et Texte d'aide. Il est recommand de renseigner
ces champs, mais nous les laissons de ct dans ce didacticiel pour gagner du temps.
Ne renseignez pas le champ Valeur par dfaut.

e. Cliquez sur Suivant, acceptez les valeurs par dfaut, puis cliquez de nouveau sur Suivant.
f. Cliquez sur Enregistrer et Nouveau pour enregistrer le champ Description et revenir la premire tape de l'assistant.
2. Crez le champ Prix.
a. Dans la zone Type de donnes, slectionnez Devise, puis cliquez sur Suivant.
b. Renseignez les dtails des champs personnaliss :

Dans le champ tiquette du champ, saisissez Prix.


Dans le champ Longueur, saisissez 16, puis saisissez 2 dans le champ Dcimales.
Slectionnez la case Obligatoire.

c. Laissez les autres champs inchangs, puis cliquez sur Suivant.


d. l'tape suivante, acceptez les valeurs par dfaut, puis cliquez sur Suivant.
e. l'tape suivante, cliquez sur Enregistrer et nouveau pour enregistrer le champ Prix et revenir la premire tape
de l'assistant.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 9

Remarque: Cette sous-application ne contient qu'un seul champ Prix que nous allons utiliser pour le cours et le
prix de dtail. Vous pouvez cependant crer un autre champ Cours si vous le souhaitez, il suffit de rpter les tapes
ci-dessus et d'utiliser le nom Cours.
3. Crez le champ Inventaire total.
a. Dans la zone Type de donnes, slectionnez Numro, puis cliquez sur Suivant.
b. Renseignez les dtails des champs personnaliss :

Dans le champ tiquette du champ, saisissez Inventaire total.


Slectionnez la case Obligatoire.

c. Acceptez les valeurs par dfaut des autres champs, puis cliquez sur Suivant.
d. l'tape suivante, acceptez les valeurs par dfaut, puis cliquez sur Suivant.
e. Cliquez sur Enregistrer pour crer le champ Inventaire et revenir la page Objet personnalis Article.

ce stade, nous disposons d'une prsentation claire de nos articles d'inventaire, avec un nom, une description et un prix. Nous
avons galement enregistr la quantit (Inventaire total) dont nous disposons pour chaque article.

En savoir plus
Peut-tre avez-vous remarqu que lors de la saisie de l'tiquette du champ, le systme a automatiquement renseign le
champ Nom du champ. Pourquoi avez-vous besoin des deux champs ? Une tiquette du champ est visible par l'utilisateur,
il doit tre facile lire et peut contenir des espaces. Le Nom du champ est utilis en interne, dans le code, et ne doit pas
contenir d'espace ou des caractres spciaux. Par exemple, le champ tiquet Client ph# : serait nomm Client_ph dans
le code (le systme remplace les espaces par des caractres de soulignement, et supprime les caractres # et : ).

Voir aussi :
Didacticiel n 1 : Cration d'une application Entrept
tape 1 : Cration d'un objet personnalis Article
tape 3 : Cration d'un onglet

tape 3 : Cration d'un onglet


Les onglets permettent de rechercher et d'organiser aisment les objets et les enregistrements. Dans cette tape, vous allez
crer un onglet pour l'objet personnalis Article. Lorsque les utilisateurs cliquent sur cet onglet, ils peuvent crer, afficher et
modifier les enregistrements.
1. Dans le menu de Configuration, cliquez sur Crer Onglets.
2. Dans la liste associe Onglets de l'objet personnalis, cliquez sur Nouveau pour lancer l'assistant Onglet Nouvel objet
personnalis.
3. Dans la liste droulante Objet, slectionnez Article.
4. Cliquez sur l'icne de recherche en regard du champ Style d'onglet, puis slectionnez l'icne Bote.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 10

5. Acceptez les autres valeurs par dfaut, puis cliquez sur Suivant.
6. Cliquez sur Suivant, puis sur Enregistrer pour terminer la cration de l'onglet.
Une fois l'onglet cr, il s'affiche en haut de l'cran.

En savoir plus
Lors de la cration d'un onglet, vous n'tes pas limit un ensemble d'icnes et de couleurs standard, vous pouvez slectionner
la couleur de votre choix et une image personnalise en cliquant sur Crer votre propre style.

Voir aussi :
Didacticiel n 1 : Cration d'une application Entrept
tape 2 : Ajout des champs Description, Prix et Inventaire total
tape 4 : Cration d'une sous-application Entrept

tape 4 : Cration d'une sous-application Entrept


Une application est un ensemble d'onglets. Dans cette tape, vous allez crer une application Entrept et lui ajouter un onglet.
Vous lui ajouterez plus tard des onglets supplmentaires.
1. Cliquez sur Configuration Crer Sous-applications.
2. Cliquez sur Nouveau pour lancer l'assistant Nouvelle sous-application personnalise.
3. Renseignez les dtails des champs de la sous-application.

Dans le champ tiquette de sous-application, saisissez Entrept.


Dans le champ Nom de la sous-application, saisissez Entrept.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 11

4. Cliquez sur Suivant.


5. Acceptez les valeurs par dfaut de cette page, en acceptant le logo par dfaut pour la sous-application, puis cliquez sur
Suivant.
6. Dans la liste Onglets disponibles, slectionnez l'onglet Articles, puis cliquez sur Ajouter pour l'ajouter la liste des onglets
slectionns.

7. Laissez le champ Onglet de destination par dfaut dfini sur l'onglet Accueil, puis cliquez sur Suivant.
8. Slectionnez la case Visible pour rendre l'application disponible pour tous les profils d'utilisateur.
9. Cliquez sur Enregistrer pour crer l'application Entrept.
Une fois l'application cre, elle s'affiche dans le menu Sous-applications Force.com, en haut droite de la page.

En savoir plus
Les onglets de cette application ne doivent pas obligatoirement tre associs. Vous pouvez modifier les applications personnalises
afin de regrouper un emplacement commun les onglets que vous utilisez le plus souvent. Par exemple, si vous avez souvent
recours l'onglet Dmarrer ici, vous pouvez l'ajouter la sous-application Entrept. Vous pouvez basculer vers l'une des
applications que vous avez cres, achetes ou installes en slectionnant simplement son nom dans le menu.

Voir aussi :
Didacticiel n 1 : Cration d'une application Entrept
tape 3 : Cration d'un onglet
tape 5 : Cration d'un enregistrement Article

tape 5 : Cration d'un enregistrement Article


ce stade, vous avez cr une application qui fonctionne. Lors de la dfinition d'un objet dans Force.com, la plate-forme
gnre automatiquement une interface utilisateur qui permet de crer, de lire, de mettre jour et de supprimer des
enregistrements. Observez maintenant le fonctionnement de votre sous-application.
1. Slectionnez l'application Entrept dans le menu des sous-applications Force.com.

Manuel d'utilisation Force.com | Didacticiel n 1 : Cration d'une application Entrept | 12

2. Cliquez sur l'onglet Articles, puis cliquez sur Nouveau pour crer un produit.
3. Renseignez tous les champs.

Dans le champ Nom de l'article, saisissez Wee Jet.


Dans le champ Description, saisissez Un petit avion.
Dans le champ Prix, saisissez 9,99.
Dans le champ Inventaire total, saisissez 2000.

comme indiqu sur l'image suivante.

4. Cliquez sur Enregistrer.

En savoir plus
Votre entrept peut fonctionner avec un seul article, mais il serait plus raliste de lui ajouter des articles. Crez davantage
d'articles. Astuce : utilisez le bouton Enregistrer et Nouveau pour crer rapidement des enregistrements.

Voir aussi :
Didacticiel n 1 : Cration d'une application Entrept
tape 4 : Cration d'une sous-application Entrept
Rsum

Rsum
Flicitations ! Vous venez de crer une application Entrept qui permet de suivre les produits que vous possdez en stock.
Comme vous l'avez constat, il est facile d'utiliser l'interface en ligne pour crer un objet personnalis, des champs et un onglet,
puis de les organiser dans une application permettant de crer et de suivre les informations associes vos articles. Bien que
l'application soit trs incomplte, elle contient dj de nombreuses fonctionnalits intgres, notamment la possibilit d'afficher
et de crer des articles.
L'tape suivante prsente l'utilisation d'une facture afin de suivre les mouvements d'entre et de sortie des articles dans l'entrept.

Voir aussi :
Didacticiel n 1 : Cration d'une application Entrept
tape 5 : Cration d'un enregistrement Article

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 13

Didacticiel n 2 : Ajout de relations


Niveau : Dbutant ; Dure : 20 30 minutes

Ce didacticiel prsente comment crer deux objets, un relev de facture et un lment de ligne, puis comment les associer dans
une relation principal-dtails. Cette relation permet de composer plusieurs lments de ligne et de les associer un seul relev
de facture. Chaque lment de ligne indique la quantit d'units vendues pour un article particulier. Vous allez par consquent
ajouter une relation entre les articles et les objets d'lments de ligne.
Si vous matrisez le concept de bases de donnes relationnelles, vous pouvez comparer une relation des cls trangres, la
diffrence que Force.com effectue la mise en uvre sous-jacente pour vous, vous vous contentez de dfinir les associations
entre les objets.

Prrequis
Sous-application Entrept
Vous devez commencer par crer une application Entrept de base en suivant les instructions du Didacticiel n 1 :
Cration d'une application Entrept la page 5.

Voir aussi :
tape 1 : Cration d'un objet personnalis Relev de facture
tape 2 : Cration d'un objet lment de ligne
tape 3 : Association des objets
tape 4 : Ajout de relevs de facture la sous-application
tape 5 : Cration d'un enregistrement Facture
Rsum

tape 1 : Cration d'un objet personnalis Relev de facture


Un relev de facture est requis pour les mouvements d'entre et de sortie d'inventaire dans l'entrept. Dans cette tape, vous
allez crer un relev de facture avec un numro unique, un statut et une description.
1. Cliquez sur Configuration Crer Objets.
2. Cliquez sur Nouvel objet personnalis, puis dfinissez l'objet personnalis.

Dans le champ tiquette, saisissez Relev de facture


Dans le champ tiquette - pluriel, saisissez Relevs de facture
Dans le champ Nom de l'enregistrement, saisissez Numro de facture
Dans le champ Type de donnes, slectionnez Numro automatique

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 14

Dans le champ Format d'affichage, saisissez FACT-{0000}


Dans le champ Numro de dbut, saisissez 1.

3. Laissez les autres valeurs inchanges, puis cliquez sur Enregistrer.


4. Ajoutez un champ Statut.
a. Accdez la liste associe Champs personnaliss & relations, puis cliquez sur Nouveau.
b. Dans la zone Type de donnes, slectionnez Liste de slection, puis cliquez sur Suivant.
c. Renseignez les dtails des champs personnaliss.

Dans le champ tiquette du champ, saisissez Statut.


Saisissez les valeurs de liste de slection suivantes dans la zone fournie, une entre par ligne.
En cours Ferm Ngociation En attente

Slectionnez la case Utiliser la premire valeur comme valeur par dfaut.

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 15

d. Cliquez sur Suivant.


e. Dans la zone Scurit au niveau du champ, slectionnez Lecture seule, puis cliquez sur Suivant.
f. Cliquez sur Enregistrer et Nouveau.
5. Crez maintenant un champ Description facultatif.
a.
b.
c.
d.

Dans la zone Type de donnes, slectionnez Zone de texte, puis cliquez sur Suivant.
Dans les champs tiquette du champ et Nom du champ, saisissez Description.
Cliquez sur Suivant, acceptez les valeurs par dfaut, puis cliquez de nouveau sur Suivant.
Cliquez sur Enregistrer pour accder la page de dtails de l'objet Relev de facture.

Votre objet Relev de facture doit dsormais inclure deux champs personnaliss, comme illustr ici.

En savoir plus
Notez comment nous avons dfini le type de donnes du nom de la facture sur Numro automatique et dfini un Format
d'affichage. La plate-forme attribue automatiquement un numro chaque enregistrement unique cr, en commenant par
le numro de dbut que vous avez spcifi. Le format affich se prsente comme suit : FACT-002.

Voir aussi :
Didacticiel n 2 : Ajout de relations
tape 2 : Cration d'un objet lment de ligne

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 16

tape 2 : Cration d'un objet lment de ligne


Chaque facture est compose d'un nombre d'lments de ligne de facture, qui reprsente la quantit d'articles vendus un prix
spcifique. Vous allez crer l'objet lment de ligne, puis l'associer aux objets Relev de facture et Articles.
1. Cliquez sur Configuration Crer Objets.
2. Cliquez sur Nouvel objet personnalis, puis dfinissez l'objet personnalis.

Dans le champ tiquette, saisissez lment de ligne


Dans le champ tiquette - pluriel, saisissez lments de ligne
Modifiez le Nom de l'enregistrement en Numro de l'lment de ligne.
Laissez le champ Type de donnes dfini sur Texte.

3. Laissez les autres valeurs inchanges, puis cliquez sur Enregistrer.


4. Ajoutez un champ Prix unitaire en lecture seule. Ce champ est en lecture seule car la valeur sera rcupre partir de l'objet
Article dans un autre didacticiel. Nous l'appelons Prix unitaire pour le diffrencier du champ Prix de l'objet Article.
a. Accdez la liste associe Champs personnaliss & relations, puis cliquez sur Nouveau.
b. Dans la zone Type de donnes, slectionnez Devise, puis cliquez sur Suivant.
c. Renseignez les dtails des champs personnaliss.

Dans le champ tiquette du champ, saisissez Prix unitaire.


Dans le champ Longueur, saisissez 16, puis saisissez 2 dans le champ Dcimales.

d. Cliquez sur Suivant.


e. Slectionnez Lecture seule pour tous les profils, cliquez sur Suivant, puis cliquez sur Enregistrer et Nouveau.
Remarque: Si l'option Lecture seule n'est pas disponible, vous avez probablement slectionn par erreur
Obligatoire. Cliquez sur Prcdent et dsactivez Obligatoire.

5. Rptez les tapes ci-dessus pour ajouter un champ Units vendues.

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 17

a.
b.
c.
d.

Dans la zone Type de donnes, slectionnez Numro, puis cliquez sur Suivant.
Dans le champ tiquette du champ, saisissez Units vendues, puis cliquez sur Suivant.
Cliquez sur Suivant, en acceptant les valeurs par dfaut.
Cliquez sur Enregistrer pour revenir la page de dtails de l'objet personnalis lment de ligne.

En savoir plus
ce stade, vous avez cr trois objets personnaliss : Article, Relev d'inventaire et Elment de ligne. Dans chacun de ces
objets, vous avez cr des champs personnaliss pour reprsenter du texte, des chiffres et une devise. Tous ces champs ont un
lment en commun : les valeurs sont fournies par l'utilisateur. Vous avez galement cr deux champs personnaliss contenant
des valeurs gnres par le systme : la liste de slection Statut qui s'ouvre sur En cours et le champ Numro de facture qui est
automatiquement attribu par le type de donnes Numrotation automatique. l'tape suivante, vous allez crer deux champ
supplmentaires. Contrairement aux champs prcdents, leurs valeurs proviennent d'autres objets.

Voir aussi :
Didacticiel n 2 : Ajout de relations
tape 1 : Cration d'un objet personnalis Relev de facture
tape 3 : Association des objets

tape 3 : Association des objets


Vous disposez maintenant de tous les objets reprsentant le modle de donnes et vous souhaitez par consquent les associer.
L'lment de ligne est associ un Relev de facture (un relev est compos d'un nombre d'lments de ligne) et un Article
(dans un lment de ligne, le prix provient de l'article).
1. Dans la page de dtails de l'objet lment de ligne, accdez la liste associe Champs personnaliss & relations, puis
cliquez sur Nouveau.
2. Dans la zone Type de donnes, slectionnez Relation principal-dtails, puis cliquez sur Suivant.
3. Dans le champ Associ , slectionnez votre objet personnalis Article, puis cliquez sur Suivant.
4. Acceptez les valeurs par dfaut dans les trois crans qui suivent en cliquant sur Suivant.
5. Dsactivez la case en regard de Prsentation de Article afin de ne pas afficher Elments de ligne dans la liste
associe Article.
6. Cliquez sur Enregistrer et Nouveau.
7. Dans la zone Type de donnes, slectionnez Relation principal-dtails, puis cliquez sur Suivant.
8. Dans le champ Associ , slectionnez votre objet personnalis Relev de facture, puis cliquez sur Suivant.
9. Acceptez les valeurs par dfaut dans les crans qui suivent en cliquant sur Suivant, puis cliquez sur Enregistrer pour revenir
la page de dtails Elment de ligne.

En savoir plus
Vous venez de crer deux relations principal-dtails en associant les enregistrements Relev de facture aux enregistrements
lments de ligne de facture et en associant les lments de ligne de facture aux Articles. Les relations principal-dtails

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 18

prennent galement en charge les champs rcapitulatifs de cumul, qui permettent de regrouper les informations sur les
enregistrements enfant. Vous utiliserez cette fonctionnalit dans un didacticiel ultrieur.

Voir aussi :
Didacticiel n 2 : Ajout de relations
tape 2 : Cration d'un objet lment de ligne
tape 4 : Ajout de relevs de facture la sous-application

tape 4 : Ajout de relevs de facture la sous-application


Comme vous l'avez fait pour l'objet personnalis Article, vous allez crer un onglet pour l'objet Relev de facture et l'ajouter
votre sous-application Entrept. Cet onglet affichera l'interface utilisateur que Force.com gnre automatiquement pour cet
objet.
1. Dans le menu de Configuration, cliquez sur Crer Onglets.
2. Dans la liste associe Onglets de l'objet personnalis, cliquez sur Nouveau pour lancer l'assistant Onglet Nouvel objet
personnalis.
3. Dans la liste droulante Objet, slectionnez Relev de facture.
4. Cliquez sur l'icne de recherche en regard du champ Style d'onglet, puis slectionnez l'icne Formulaire.
5. Acceptez les autres valeurs par dfaut, puis cliquez sur Suivant deux fois.
6. Dans la page Ajouter aux applications personnalises, dsactivez toutes les cases l'exception de Entrept. L'onglet
Relevs de facture est ajout votre sous-application Entrept.
7. Cliquez sur Enregistrer pour terminer la cration de l'onglet.
Votre onglet Relevs de facture fait dsormais partie de votre sous-application.

Voir aussi :
Didacticiel n 2 : Ajout de relations
tape 3 : Association des objets
tape 5 : Cration d'un enregistrement Facture

tape 5 : Cration d'un enregistrement Facture


Comme vous l'avez constat dans le didacticiel prcdent, la plate-forme gnre automatiquement une interface utilisateur
pour les objets que vous crez pour vous permettre d'afficher, de modifier, de supprimer et de mettre jour les enregistrements.
Comme vous avez galement associ les objets, l'interface utilisateur reprsente galement un outil de navigation entre les
enregistrements associs.
1. Cliquez sur l'onglet Relevs de facture.
2. Cliquez sur Nouveau.

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 19

3. Dans le champ Description, saisissez Premire facture, puis cliquez sur Enregistrer.
La page de dtails de votre relev de facture doit se prsenter comme dans l'illustration ci-dessous.

Notez que le numro de facture a t automatiquement attribu et que l'interface utilisateur affiche une liste associe lments
de ligne vide dessous. Le Relev de facture est li l'Elment de ligne via un champ principal-dtails. Vous avez cr cette
relation qui explique la prsence d'une liste associe dans la page de dtails Relev de facture. Vous allez ensuite ajouter un
lment de ligne la facture.
1. Cliquez sur Nouvel lment de ligne.
2. Renseignez les champs.

Dans le champ Numro de l'lment de ligne, saisissez 1.


Dans le champ Prix unitaire, saisissez 10.
Dans le champ Units vendues, saisissez 4.
Cliquez sur l'icne de recherche en regard du champ Article, puis slectionnez un produit.

3. Cliquez sur Enregistrer.

En savoir plus
Vous vous demandez peut-tre pourquoi le Numro de l'lment de ligne est un champ de texte alors que vous saisissez des
valeurs. Si les lments de ligne sont numrots, pourquoi ne pas dfinir le champ sur la numrotation automatique, comme
les Relevs de facture ? Pour rpondre simplement, il est plus facile d'utiliser du texte avec des enregistrements et ce didacticiel

Manuel d'utilisation Force.com | Didacticiel n 2 : Ajout de relations | 20

doit rester convivial. Si vous le souhaitez, vous pouvez dfinir le champ Elment de ligne sur la numrotation automatique, ce
qui rendra toutefois le Didacticiel n 8, Cration d'une page Web publique en utilisant les Sites, plus complexe.

Voir aussi :
Didacticiel n 2 : Ajout de relations
tape 4 : Ajout de relevs de facture la sous-application
Rsum

Rsum
Dans ce didacticiel, vous avez cr des relations entre les objets dans votre modle de donnes. Les relations fonctionnent
comme des cls trangres dans des bases de donnes relationnelles, mais de faon plus abstraite, en vous laissant grer les
lments importants (les relations) plutt que la mise en uvre sous-jacente. Les relations principal-dtails permettent de
regrouper les informations. Le didacticiel suivant prsente comment calculer le prix de chaque lment de ligne de facture
dans le relev de facture. Les relations offrent galement l'avantage suivant : vous pouvez accder aux enregistrements associs
dans une interface utilisateur et un langage de requte. Nous en reparlerons.
Vous venez de crer l'application de base ; vous pouvez maintenant ajouter une logique commerciale l'aide de formules et de
rgles de validation dans le Didacticiel n 3 : Utilisation de formules et de rgles de validation la page 21.

Voir aussi :
Didacticiel n 2 : Ajout de relations
tape 5 : Cration d'un enregistrement Facture

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 21

Didacticiel n 3 : Utilisation de formules et de rgles de


validation
Niveau : Dbutant ; Dure : 20 30 minutes

La plate-forme Force.com permet de crer des formules et des rgles de validation de champ qui facilitent la gestion et
l'optimisation de la qualit des donnes saisies dans votre sous-application. Les champs de formule et les rgles de validation
de champ utilisent des fonctions intgres qui permettent de manipuler automatiquement vos donnes, de les valider et de
calculer d'autres valeurs bases sur vos donnes. Les fonctions que vous utilisez dans les champs de formule et les rgles de
validation de champ ressemblent celles que vous utilisez dans un tableur pour rfrencer des valeurs dans d'autres champs
d'une feuille de calcul, effectuer des calculs et renvoyer un rsultat. Toutefois, avec les champs de formule et les rgles de
validation de champ, vous rfrencez des champs dans les enregistrements de votre sous-application.
Dans ce didacticiel, vous allez amliorer la sous-application Entrept an ajoutant un champ de formule qui calcule
automatiquement la valeur totale de chaque lment de ligne. Vous allez galement utiliser cette nouvelle valeur d'lment de
ligne et une proprit des relations principal-dtails pour calculer automatiquement le total d'une facture. Pour terminer, vous
allez ajouter une formule qui effectue un contrle d'inventaire, afin de vous empcher de crer un lment de ligne pour une
quantit d'articles suprieure votre stock.

Prrequis
Sous-application Entrept
Vous devez commencer par crer une application Entrept de base en suivant les instructions du Didacticiel n 2 : Ajout
de relations la page 13.

Voir aussi :
tape 1 : Calcul d'une valeur pour chaque Elment de ligne
tape 2 : Calcul d'une valeur pour le Relev de facture avec un champ rcapitulatif de cumul
tape 3 : Contrle d'inventaire avec une rgle de validation
tape 4 : Test de la rgle de validation
tape 5 : Amlioration de la rgle de validation
Rsum

tape 1 : Calcul d'une valeur pour chaque Elment de ligne


Dans cette tape, vous allez ajouter un nouveau champ calcul appel Valeur l'lment de ligne. Ce champ multipliera le
nombre d'articles par le prix et agira comme un total pour chaque lment de ligne.

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 22

1.
2.
3.
4.
5.
6.
7.

Accdez l'objet personnalis Elment de ligne en cliquant sur Configuration Crer Objets Elment de ligne.
Accdez la liste associe Champs personnaliss & relations, puis cliquez sur Nouveau.
Choisissez le type de champ Formule, puis cliquez sur Suivant.
Dans les champs tiquette du champ et Nom du champ, saisissez Valeur.
Dans la zone Type de renvoi de la formule, slectionnez Devise.
Cliquez sur Suivant.
Dans la liste droulante Insrer un champ de fusion, slectionnez Prix unitaire. La valeur Prix_unitaire__c
s'affiche dans la zone de texte.
8. Cliquez sur la liste droulante Insrer un oprateur, puis slectionnez Multiplication.
9. Dans la liste droulante Insrer un champ de fusion, slectionnez Units vendues. La valeur Prix_unitaire__c *
Unit_s_vendues__c s'affiche dans la zone de texte.

10. Cliquez sur Suivant deux fois, puis cliquez sur Enregistrer.
Lorsque vous revenez la page de dtails de l'objet personnalis, notez le nouveau champ appel Valeur.

En savoir plus
Le type de champ Formule est trs pratique pour calculer automatiquement les valeurs de champ partir d'autre valeurs,
comme nous l'avons fait ici. La formule que vous avez saisie ne prsentait pas de difficult : une simple multiplication de deux
valeurs de champ dans le mme enregistrement. Il existe galement un onglet Formule avance qui permet de crer des formules
plus complexes.

Voir aussi :
Didacticiel n 3 : Utilisation de formules et de rgles de validation
tape 2 : Calcul d'une valeur pour le Relev de facture avec un champ rcapitulatif de cumul

tape 2 : Calcul d'une valeur pour le Relev de facture avec un champ


rcapitulatif de cumul
Vous disposez maintenant du total de chaque lment de ligne ; il est naturel d'ajouter ces totaux afin d'obtenir le total de la
facture. Puisque ces lments de ligne ont une relation principal-dtails avec le relev de facture, nous pouvons utiliser un
champ rcapitulatif de cumul pour calculer cette valeur. Le rcapitulatif de cumul est un type de champ spcial qui permet de
regrouper les informations relatives aux objets (enfant) de dtails associs. Dans ce cas, vous calculez la valeur de chaque lment
de ligne.

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 23

1. Revenez la page de l'objet personnalis Relev de facture en cliquant sur Configuration Crer Objets Relev
de facture.
2. Accdez la liste associe Champs personnaliss & relations, puis cliquez sur Nouveau.
3. Slectionnez le type de champ Rcapitulatif de cumul, puis cliquez sur Suivant.
4. Dans le champ tiquette du champ, saisissez Valeur de facture, puis cliquez sur Suivant.
5. Dans la liste Objet synthtis, slectionnez Elments de ligne
6. Dans le champ Slectionner le type de cumul, slectionnez SUM.
7. Dans la liste Champ synthtiser, slectionnez Valeur.
8. Vrifiez que votre cran se prsente comme dans l'illustration ci-dessous, puis cliquez sur Suivant.

9. Cliquez de nouveau sur Suivant, puis cliquez sur Enregistrer.

En savoir plus
Si vous revenez l'enregistrement du relev de facture, notez le nouveau champ de rcapitulatif de cumul qui affiche la valeur
totale de tous les lments de ligne de facture. Si un sablier est affich en regard du champ, attendez quelques secondes, puis
actualisez la page. Vous pouvez tester cette nouvelle fonctionnalit en ajoutant un autre lment de ligne.

Voir aussi :
Didacticiel n 3 : Utilisation de formules et de rgles de validation
tape 1 : Calcul d'une valeur pour chaque Elment de ligne
tape 3 : Contrle d'inventaire avec une rgle de validation

tape 3 : Contrle d'inventaire avec une rgle de validation


Les champs que vous dfinissez dans des objets peuvent tre dots de rgles de validation crits dans le mme langage de
formule que vous avez utilis pour crer le champ de formule. Les rgles de validation peuvent servir dterminer quelle plage
de saisie est valide et afficher un message l'utilisateur lorsqu'une valeur de champ n'est pas valide. L'valuation des formules
de condition d'erreur doit tre True lorsque vous souhaitez afficher un message l'utilisateur.
1. Revenez la page de l'objet personnalis Elment de ligne en cliquant sur Configuration Crer Objets Elment
de ligne.
2. Accdez la liste associe Rgles de validation, puis cliquez sur Nouveau.

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 24

3. Dans le champ Nom de rgle, saisissez Commande en stock.


4. Dans la zone Formule de condition d'erreur, cliquez sur Insrer un champ pour ouvrir la fentre contextuelle Insrer un
champ.
a.
b.
c.
d.
e.

Slectionnez Elment de ligne > dans la premire colonne.


Slectionnez Article > dans la deuxime colonne.
Slectionnez Inventaire total dans la troisime colonne.
Cliquez sur Insrer.
Tapez le symbole infrieur < pour obtenir la formule :
Article__r.Inventaire_total__c <

f.
g.
h.
i.

Cliquez de nouveau sur Insrer un champ.


Slectionnez Elment de ligne > dans la premire colonne.
Slectionnez Units vendues dans la deuxime colonne.
Cliquez sur Insrer, puis vrifiez que le code se prsente comme suit :
Article__r.Inventaire_total__c < Unit_s_vendues__c

5. Cliquez sur Vrifier la syntaxe pour vous assurer de l'absence d'erreur. Si des erreurs sont dtectes, corrigez-les avant de
continuer.
6. Dans le champ Message d'erreur, saisissez Vous avez command un nombre d'articles suprieur
la quantit en stock.
7. Pour l'option Emplacement de l'erreur, activez Champ, puis slectionnez Units vendues dans la liste droulante.

8. Cliquez sur Enregistrer.

En savoir plus
Vous pouvez saisir une formule directement dans la zone Formule de condition d'erreur, cependant, comme vous l'avez constat
ici, vous pouvez aisment parcourir les objets disponibles et slectionner les composants ncessaires pour la formule. Analysons
la formule que vous avez cre.

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 25

Article__r : puisque l'objet Article est associ l'objet Elment de ligne, la plate-forme fournit automatiquement un

champ de relation qui permet de naviguer depuis un enregistrement Elment de ligne vers un enregistrement Article, ce
que fait le champ Article__r.
Inventaire_total__c : il s'agit du champ que vous avez cr pour suivre le montant total du stock dans un enregistrement
Article.
Article__r.Inventaire_total__c : indique au systme de rcuprer la valeur du champ Inventaire total dans un
enregistrement Article associ.
Unit_s_vendues__c : correspond au champ Units vendues dans l'enregistrement actuel (Elment de ligne).

Une fois regroups, ces lments constituent une formule qui vrifie si l'inventaire total dans l'enregistrement Article associ
est infrieur la quantit d'units vendues. Comme indiqu la page Formule de condition d'erreur, vous devez fournir une
formule qui renvoie True si vous souhaitez afficher une erreur. La formule est vraie lorsque l'inventaire total est infrieur aux
units vendues.

Voir aussi :
Didacticiel n 3 : Utilisation de formules et de rgles de validation
tape 2 : Calcul d'une valeur pour le Relev de facture avec un champ rcapitulatif de cumul
tape 4 : Test de la rgle de validation

tape 4 : Test de la rgle de validation


Vous allez maintenant tester la rgle de validation cre l'tape 3.
1.
2.
3.
4.

Cliquez sur l'onglet Relevs de facture, puis slectionnez une facture existante.
Accdez la zone Elments de ligne, puis cliquez sur Modifier en regard d'un ou des lments de ligne.
Modifiez la valeur Units vendues avec un chiffre suprieur la quantit en stock.
Cliquez sur Enregistrer. Une erreur devrait s'afficher indiquant que la quantit d'articles en stock est insuffisante. Cliquez
sur Annuler.

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 26

5. Cliquez sur Annuler.

Voir aussi :
Didacticiel n 3 : Utilisation de formules et de rgles de validation
tape 3 : Contrle d'inventaire avec une rgle de validation
tape 5 : Amlioration de la rgle de validation

tape 5 : Amlioration de la rgle de validation


La logique de la formule de validation est imparfaite ! Imaginez que vous modifiez un enregistrement et diminuez la quantit
d'units vendues. Dans ce cas, aucun contrle de l'inventaire n'est ncessaire. l'inverse, si vous augmentez la quantit d'units
vendues, il suffit de vrifier que les articles supplmentaires sont disponibles en stock. Vous pouvez amliorer la rgle de
validation en lui ajoutant ces scnarios en utilisant la fonction ISNEW() dans votre formule, qui dtermine si vos crez un
enregistrement. S'il ne s'agit pas d'un nouvel enregistrement, vous devez utiliser la fonction PRIORVALUE() qui indique la
valeur prcdente du champ, avant sa modification.
1. Revenez la page de l'objet personnalis Elment de ligne en cliquant sur Configuration Crer Objets Elment
de ligne.
2. Dans la liste associe Rgles de validation, cliquez sur Modifier en regard du champ Commande en stock.
3. Remplacez la formule existante par la formule suivante :
IF( ISNEW(), Article__r.Inventaire_total__c < Unit_s_vendues__c , IF ( Unit_s_vendues__c
< PRIORVALUE(Unit_s_vendues__c), FALSE, Article__r.Inventaire_total__c <
(Unit_s_vendues__c - PRIORVALUE(Unit_s_vendues__c)) ) )

4. Cliquez sur Vrifier la syntaxe pour vous assurer de l'absence d'erreur.


5. Cliquez sur Enregistrer.

En savoir plus
Examinons cette formule plus en dtails.

IF est une condition qui excute l'une des deux alternatives selon la condition.
ISNEW est la condition. Cette fonction renvoie True si vous crez un enregistrement, sinon elle renvoie False.
Si ISNEW est True, vous contrlez simplement l'inventaire comme vous l'avez fait prcdemment. Pour les nouveaux

enregistrements, vous devez vrifier que vous n'avez pas vendu plus d'articles que vous en avez en stock.
Si ISNEW est False, vous savez que vous effectuez une mise jour d'un enregistrement existant, vous ne crez pas un
enregistrement. Par consquent, vous effectuez une autre vrification conditionnelle afin de dterminer si la quantit d'units
a augment ou diminu, en la comparant la valeur prcdente avec la fonction PRIORVALUE.
Si la valeur prcdente est suprieure, vous avez mis jour l'enregistrement et diminu ses units. Puisque votre stock est
suffisant, vous renvoyez FALSE pour indiquer l'absence d'chec de validation.

Manuel d'utilisation Force.com | Didacticiel n 3 : Utilisation de formules et de rgles de validation | 27

Si la valeur prcdente est infrieure, vous avez augment la quantit d'units et vous devez vrifier si l'inventaire est suffisant
pour couvrir la diffrence entre la nouvelle valeur et l'ancienne.

Voir aussi :
Didacticiel n 3 : Utilisation de formules et de rgles de validation
tape 4 : Test de la rgle de validation
Rsum

Rsum
Dans ce didacticiel, vous avez cr des champs de formule et des rgles de validation qui amliorent et valident les donnes de
votre sous-application. Pour la premire formule, vous avez cr un sous-total pour chaque lment de ligne en multipliant le
prix d'un produit par la quantit d'units commandes. Comme une facture peut inclure plusieurs lments de ligne, vous avez
cr un champ rcapitulatif de cumul afin d'ajouter automatiquement les sous-totaux d'lments de ligne.
Vous avez galement appris comment dfinir une rgle de validation pour vrifier la disponibilit des articles en stock. La
premire version de cette rgle tait simple, mais vous l'avez amliore pour l'utiliser avec des enregistrements nouveaux et
avec des enregistrements existants comprenant des mises jour. Ces types de modifications peuvent s'appliquer n'importe
quel champ de votre sous-application afin de vrifier la conformit des donnes avec critres spcifiques.

Voir aussi :
Didacticiel n 3 : Utilisation de formules et de rgles de validation
tape 5 : Amlioration de la rgle de validation

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 28

Didacticiel n 4 : Utilisation de workflow et d'approbations


Niveau : Intermdiaire ; Dure : 30 45 minutes

Votre socit travaille plus efficacement si elle bnficie de procdures internes normalises et de processus commerciaux
automatiss. Dans votre sous-application Force.com, vous pouvez utiliser des rgles de workflow et des processus d'approbation
afin d'automatiser vos procdures et processus. Ils permettent de gagner du temps, mais galement d'imposer cohrence et
conformit dans les pratiques commerciales de votre socit.
Les rgles de workflow peuvent lancer des actions (telles que des alertes par e-mail, des tches, des mises jour de champ et
des messages sortants) bases sur des dclencheurs temporels, des critres et des formules. Les processus d'approbation peuvent
automatiser toutes les approbations de votre organisation, qu'ils soient simples ou complexes.
Dans ce didacticiel, vous allez crer et tester deux rgles de workflow. Le premier transmet le prix actuel d'un article vers
l'enregistrement d'lment de ligne cr, et le deuxime actualise l'inventaire lorsque vous mettez jour un lment de ligne
de produit. Vous allez galement crer un processus d'approbation qui demande l'approbation explicite d'un responsable si la
facture dpasse 2 000 .

Prrequis
Formules et validation
Vous devez commencer par crer un champ rcapitulatif de cumul et des rgles de validation en suivant les instructions
du Didacticiel n 3 : Utilisation de formules et de rgles de validation la page 21.

Voir aussi :
tape 1 : Renseignement du prix d'lment de ligne l'aide d'une rgle de workflow
tape 2 : Mise jour de l'inventaire total lors d'une commande
tape 3 : Test des rgles de workflow
tape 4 : Cration d'un modle d'e-mail
tape 5 : Cration d'un processus d'approbation
tape 6 : Cration d'un profil de scurit personnalis
tape 7 : Cration d'un utilisateur
tape 8 : Test du processus d'approbation
Rsum

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 29

tape 1 : Renseignement du prix d'lment de ligne l'aide d'une rgle


de workflow
ce stade, vous avez cr l'lment de ligne et les objets Articles avec des champs Prix. Vous avez galement marqu le champ
Prix d'lment de ligne en lecture seule, mme si vous ne l'avez pas remarqu dans l'interface car l'utilisateur par dfaut est un
administrateur ayant accs toutes les donnes. Vous allez maintenant crer une rgle de workflow pour renseigner le prix
unitaire de la ligne avec celui de l'article au moment de la cration de l'lment de ligne. Vous pouvez crer aisment cette
logique complexe avec une rgle de workflow dclarative.
1. Cliquez sur Configuration Crer Workflow & approbations Rgles de workflow. Si la page Prsentation du
workflow s'affiche, cliquez sur Continuer.
2. Dans la page Toutes les rgles de workflow, cliquez sur Nouvelle rgle.
3. l'tape 1 de l'assistant Rgle de workflow, slectionnez l'objet Elment de ligne, puis cliquez sur Suivant.
4. Dans le champ Nom de rgle, saisissez Elment de ligne cr.
5. Dans la zone Critres d'valuation, slectionnez Uniquement lors de la cration d'un
enregistrement.
6. Dans le champ Critres de la rgle, slectionnez l'valuation de la formule est positive.
7. Dans la zone de texte, saisissez true.
8. Assurez-vous que la page se prsente comme dans l'illustration ci-dessous, puis cliquez sur Enregistrer et Suivant.

9. l'tape 3 de l'assistant Rgle de workflow, dans la section Actions de workflow immdiates, cliquez sur Ajouter une
action de workflow, puis slectionnez Nouvelle mise jour du champ. L'assistant Nouvelle mise jour du
champ s'ouvre.
10. Dans le champ Nom, saisissez Insrer le prix de l'article.
11. Dans la liste droulante Champ mettre jour, slectionnez Elment de ligne dans la premire case et Prix
unitaire dans la deuxime.
12. Slectionnez Utiliser une formule pour dfinir la nouvelle valeur.
13. Cliquez sur Afficher l'diteur de formule.
14. Cliquez sur Insrer un champ.
15. Slectionnez Elment de ligne > dans la premire colonne, Article > dans la deuxime et Prix dans la troisime.
16. Cliquez sur Insrer.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 30

17. Cliquez sur Enregistrer pour fermer l'assistant Nouvelle mise jour du champ et revenir l'tape 3 de l'assistant du
workflow.
18. Dans la page Spcifier les actions de workflow, cliquez sur Termin.
19. Dans la page Rgle de workflow, cliquez sur Activer.
Important: Ne pas activer une nouvelle rgle de workflow est une erreur frquente. Si la rgle n'est pas active,
ses critres ne sont pas valus lorsque les enregistrements sont crs ou enregistrs.

En savoir plus
Si vous crez maintenant un nouvel lment de ligne et l'affichez, vous pouvez constater que son prix unitaire est
automatiquement dfini sur le prix de l'enregistrement de l'article associ. Puisque vous tes un administrateur, un champ de
saisie s'affiche pour le prix. Vos utilisateurs ne voient pas ce champ car il est en lecture seule.
Cette rgle de workflow s'excute uniquement lors de la cration d'un enregistrement (jamais aprs) car nous ne voulons pas
augmenter le prix indiqu sur la facture une fois l'article ajout la facture. Le client serait pour le moins surpris de dcouvrir
un prix suprieur celui annonc. Toutefois, si le prix baissait, le client apprcierait d'tre tenu inform de tout changement.
Vous dfinirez cette fonction ultrieurement.
Vous vous demandez peut-tre pourquoi nous avons cr un rgle dont les formules sont toujours values sur True. C'est
parce-que nous souhaitons mettre jour le champ chaque fois qu'un enregistrement est cr, ce qui est toujours vrai. Vous
pouvez utiliser une formule pour valuer une expression, ce qui n'tait pas ncessaire dans notre exemple.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 2 : Mise jour de l'inventaire total lors d'une commande

tape 2 : Mise jour de l'inventaire total lors d'une commande


Vous allez prfrer que la gestion de l'inventaire total des enregistrements d'articles soit automatique. Lors de la cration de
factures (dont le statut par dfaut est En cours ), vous allez vouloir reflter les mises jour des lments de ligne dans le

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 31

champ Inventaire total que vous avez cr dans l'objet Article. Vous pouvez le faire avec une autre rgle de workflow. La seule
difficult est la modification de la valeur de l'inventaire total. Si vous crez un lment de ligne, vous devez diminuer l'inventaire
total par le nombre d'units vendues. Cependant, si vous mettez jour un lment de ligne, vous devez ajuster l'inventaire
total avec la diffrence entre l'ancienne et la nouvelle quantits d'units vendues.
1.
2.
3.
4.
5.
6.

Cliquez sur Configuration Crer Workflow & approbations Rgles de workflow.


Si l'cran Prsentation du workflow s'affiche, cliquez sur Continuer ou passez l'tape suivante.
Dans la page Toutes les rgles de workflow, cliquez sur Nouvelle rgle.
l'tape 1 de l'assistant Rgle de workflow, slectionnez l'objet Elment de ligne, puis cliquez sur Suivant.
Dans le champ Nom de rgle, saisissez Elment de ligne mis jour.
Dans la zone Critres d'valuation, slectionnez chaque cration ou modification d'un
enregistrement.
7. Dans le champ Critres de la rgle, slectionnez critres suivants sont remplis.
8. Dans la liste droulante Champ, slectionnez Relev de facture: Statut. Dans la liste droulante Oprateur,
slectionnez gal . En regard de Valeur, cliquez sur l'icne de recherche, puis slectionnez En cours. Cliquez sur
Insrer les lments slectionns.
9. Assurez-vous que l'cran se prsente comme dans l'illustration ci-dessous, puis cliquez sur Enregistrer et Suivant.

10. l'tape 3 de l'assistant Rgle de workflow, dans la section Actions de workflow immdiates, cliquez sur Ajouter une
action de workflow, puis slectionnez Nouvelle mise jour du champ. L'assistant Nouvelle mise jour du champ s'ouvre.
11. Dans le champ Nom, saisissez Mettre jour l'inventaire du stock.
12. Dans la premire liste droulante, Champ mettre jour, slectionnez Article. Dans la deuxime, slectionnez
Inventaire total.
13. Slectionnez Utiliser une formule pour dfinir la nouvelle valeur.
14. Cliquez sur Afficher l'diteur de formule.
15. Saisissez le code suivant :
IF ( ISNEW(), Article__r.Inventaire_total__c - Unit_s_vendues__c ,
Article__r.Inventaire_total__c - (Unit_s_vendues__c - PRIORVALUE(Unit_s_vendues__c)) )

16. Cliquez sur Vrifier la syntaxe et corrigez toute erreur ventuelle.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 32

17. Cliquez sur Enregistrer pour fermer l'assistant Nouvelle mise jour du champ et revenir l'tape 3 de l'assistant du
workflow.
18. Dans la page Spcifier les actions de workflow, cliquez sur Termin.
19. Dans la page Rgle de workflow, cliquez sur Activer.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 1 : Renseignement du prix d'lment de ligne l'aide d'une rgle de workflow
tape 3 : Test des rgles de workflow

tape 3 : Test des rgles de workflow


Vous pouvez vrifier le fonctionnement de vos workflow en crant un lment de ligne, puis vous assurer que son prix unitaire
est automatiquement dfini et que l'inventaire total du stock a diminu.
1. Cliquez sur l'onglet Relevs de facture.
2. Cliquez sur l'enregistrement de facture cr prcdemment.
3. Cliquez sur Nouvel lment de ligne, puis saisissez les valeurs ci-dessous.

Dans le champ Numro de l'lment de ligne, saisissez 2.


Laissez le champ Prix unitaire vide.
Dfinissez Units vendues sur 1000.
En regard du champ Article, cliquez sur l'icne de recherche, puis slectionnez l'enregistrement de l'article Wee Jet.

4. Cliquez sur Enregistrer.


5. Cliquez sur l'lment de ligne 2. Notez que le prix unitaire est dfini sur une valeur identique celle de l'enregistrement
Wee Jet.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 33

6. Ouvrez maintenant l'enregistrement d'article Wee Jet en cliquant sur le lien Wee Jet. Notez que l'Inventaire total
est pass de 2 000 1 000.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 2 : Mise jour de l'inventaire total lors d'une commande
tape 4 : Cration d'un modle d'e-mail

tape 4 : Cration d'un modle d'e-mail


L'une des rgles commerciales que vous souhaitez appliquer votre workflow est l'approbation du responsable pour toutes les
factures dont le total dpasse 2 000 . Pour mettre en uvre cette rgle, vous devez crer deux lments supplmentaires : un
e-mail envoyer au responsable lorsqu'une facture dpasse 2 000 et un processus d'approbation que le responsable doit suivre.
Remarque: Si votre devise par dfaut n'est pas dfinie sur Euros, appliquez votre devise cet exemple.

Dans cette tape, vous allez crer le modle d'e-mail que la rgle de workflow doit utiliser pour gnrer et envoyer l'e-mail.
Vous allez crer le processus d'approbation dans les tapes suivantes.
1.
2.
3.
4.
5.
6.
7.

Cliquez sur Configuration Modles de communication Modles de message.


Cliquez sur Nouveau modle.
l'tape 1 de l'assistant Modle du message, slectionnez Texte, puis cliquez sur Suivant.
Activez la case Disponible.
Dans le champ Nom du modle de message, saisissez Modle facture importante.
Dans le champ Objet, saisissez Une facture importante a t soumise.
Dans le champ Corps du message, saisissez le code et le texte suivants :
{!Relev_de_facture__c.OwnerFullName} a soumis pour approbation un Relev de facture qui
dpasse le total {!Relev_de_facture__c.Valeur_de_facture__c} du
{!Relev_de_facture__c.LastModifiedDate}

8. Vrifiez que votre cran se prsente comme dans l'illustration ci-dessous, puis cliquez sur Enregistrer.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 34

En savoir plus
Le texte du corps de l'e-mail que vous avez saisi prend en charge les champs de fusion, par exemple
{!Relev_de_facture__c.Valeur_de_facture__c}. Lors de la gnration de l'e-mail, cette valeur est remplace
dynamiquement par la valeur relle de la facture qui a gnr le processus d'approbation.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 3 : Test des rgles de workflow
tape 5 : Cration d'un processus d'approbation

tape 5 : Cration d'un processus d'approbation


Dans cette tape, vous allez crer un processus d'approbation qui ncessite l'approbation explicite du responsable si une facture
dpasse 2 000 . La cration et l'utilisation d'un processus d'approbation sont aussi faciles que la cration d'une rgle de
workflow.
1. Cliquez sur Configuration Crer Workflow & approbations Processus d'approbation.
2. Dans la liste droulante Grer les processus d'approbation pour, slectionnez Relev de facture.
3. Cliquez sur Crer un processus d'approbation et slectionnez l'option Utiliser l'assistant de dmarrage
automatique dans la liste droulante.
4. Dans le champ Nom, saisissez Valeur facture importante.
5. En regard du champ Modle d'e-mail d'attribution de l'approbation, cliquez sur l'icne de recherche et
slectionnez le Modle facture importante que vous venez de crer.
6. Saisissez les valeurs suivantes dans la zone Spcifier les critres d'entre.
a. Dans la liste droulante Champ, slectionnez Valeur de facture.
b. Dans la liste droulante Oprateur, slectionnez suprieur .
c. Dans le champ Valeur, saisissez 2000.
7. Slectionnez l'option Attribuer automatiquement un approbateur l'aide d'un champ de hirarchie
personnalis ou standard, puis Responsable dans le champ de relation hirarchique. Cette option permet

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 35

d'attribuer le rle d'approbateur au responsable de l'utilisateur qui dmarre le processus d'approbation. Vous allez crer un
utilisateur Alain Durand l'tape suivante.

8. Cliquez sur Enregistrer.


9. Un avertissement vous invite activer le processus d'approbation. Cliquez sur OK. Vous avez termin la cration du
processus d'approbation, mais avant de pouvoir l'excuter, vous devez dfinir les actions excutes lors de la soumission
initiale, de l'approbation et du refus des enregistrements.
10. Cliquez sur Afficher la page de dtails sur le processus d'approbation.
11. Crez des actions de mise jour de champ en cliquant sur Ajouter une nouvelle action et en slectionnant Mise jour
du champ pour chaque liste associe du tableau ci-dessous. Configurez chaque action de mise jour de champ comme
indiqu.
Liste associe

Nom

Actions de soumission initiale Dfinir le statut


d'approbation
initiale

Champ mettre jour

Options de liste de slection

Statut

Slectionner Une valeur


spcifique, puis En
attente.

Actions d'approbation finale Dfinir le statut


Statut
d'approbation finale

Slectionner Une valeur


spcifique, puis Ferm.

Actions de refus final

Slectionner Une valeur


spcifique, puis En
cours.

Dfinir le statut de Statut


refus final

12. Cliquez sur Enregistrer.


13. Cliquez sur Processus d'approbation pour revenir la liste des approbations.
14. Cliquez sur Activer pour activer le processus d'approbation.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 36

En savoir plus
Des actions par dfaut sont associes certaines tapes d'approbation. Les actions de soumission initiale et d'approbation finale
verrouillent l'enregistrement, alors que l'action de refus final dverrouille l'enregistrement. Ceci est logique : si un enregistrement
est soumis pour approbation, il ne doit pas tre modifiable durant l'approbation. S'il est refus, il doit tre dverrouill pour
lui apporter des modifications.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 4 : Cration d'un modle d'e-mail
tape 6 : Cration d'un profil de scurit personnalis

tape 6 : Cration d'un profil de scurit personnalis


Un profil est un ensemble d'autorisations et d'autres paramtres associs un utilisateur ou un groupe d'utilisateurs. Votre
organisation est associe des profils standard prdfinis. Si vous crez un objet personnalis, les autorisations d'accs cet
objet ( Lire , Crer , Modifier et Supprimer ) sont dsactives pour la plupart des profils. Ce paramtre de scurit
par dfaut permet de bloquer l'accs de tous les utilisateurs aux objets personnaliss et leurs donnes tant que l'autorisation
n'est pas explicitement accorde. Vous pouvez modifier ces autorisations dans des profils personnaliss, mais pas dans des
profils standard.
Dans cette tape, vous allez crer un profil personnalis que vous pouvez attribuer aux utilisateurs qui doivent accder aux
objets personnaliss de la sous-application Entrept. Dans le nouveau profil personnalis, vous allez ensuite activer les
autorisations d'objet pour permettre aux utilisateurs d'accder aux objets. Vous crerez un utilisateur l'tape suivante.
1. Cliquez sur Configuration Gestion des utilisateurs Profils.
2. Cliquez sur Nouveau.
3. Dans le champ Profil existant, slectionnez Utilisateur standard. Si vous utilisez la version Free Edition, slectionnez
Force.com - Free User.
4. Dans le champ Licence utilisateur Nom du profil, saisissez Utilisateur de base.
5. Dans la page de dtails du nouveau profil, cliquez sur Modifier.
6. En bas de la page, dans la zone Autorisations de l'objet personnalis, activez les cases Lecture, Crer, Modifier et Supprimer
pour les objets Relevs de facture, Elments de ligne et Articles.
7. Vrifiez que votre cran se prsente comme dans l'illustration ci-dessous, puis cliquez sur Enregistrer.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 37

En savoir plus
Vous venez de crer et de modifier aisment un profil personnalis. Pour modifier de nombreux modles, vous pouvez utiliser
la gestion de profils avance afin de crer une vue de liste personnalise de vos profils et de les modifier dans la vue. Pour plus
d'informations, reportez-vous Modification de profils l'aide de listes de profils dans l'aide en ligne de Salesforce.com.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 5 : Cration d'un processus d'approbation
tape 7 : Cration d'un utilisateur

tape 7 : Cration d'un utilisateur


Lors de la cration d'une application Force.com, elle est automatiquement active pour permettre la connexion de plusieurs
utilisateurs. Vous pouvez dsormais personnaliser l'application en la configurant selon le profil de l'utilisateur connect. Vous
pouvez par exemple accorder un accs en lecture seule aux champs un groupe d'utilisateurs spcifique, ou les rendre invisibles.
Vous pouvez galement imposer un strict partage de donnes pour permettre un utilisateur d'afficher ses enregistrements ou
ceux de son responsable.
Dans cette tape, vous allez crer un utilisateur et l'associer votre compte d'utilisateur actuel via le champ Responsable. Cette
configuration permet de s'assurer que si le nouvel utilisateur cre une facture respectant certaines conditions, la facture est
achemine vers son responsable.
1. Cliquez sur Configuration Gestion des utilisateurs Utilisateurs.
2. Dans la page Tous les utilisateurs, cliquez sur Nouvel utilisateur.
3. Saisissez les informations suivantes :

Dans le champ Prnom, saisissez Alain.


Dans le champ Nom, saisissez Durand.
Dans le champ Alias, saisissez adurand.
Dans le champ Adresse e-mail, saisissez votre adresse e-mail pour vous permettre de recevoir les demandes
d'approbation achemines vers Alain Durand.
Le champ Nom d'utilisateur est renseign par dfaut avec votre adresse e-mail, mais vous devez crer un nom
d'utilisateur unique pour Alain, sous la forme d'une adresse e-mail imaginaire.
Remarque: Notez le nom d'utilisateur d'Alain (son adresse e-mail imaginaire), vous allez bientt vous connecter
sous son identit.

Dans le champ Responsable, slectionnez l'utilisateur cr lors de l'inscription l'organisation.


Dans le champ Licence utilisateur, slectionnez Salesforce.
Dans le champ Profil, slectionnez Utilisateur de base.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 38

4. Cliquez sur Enregistrer.


Vous devriez recevoir un message de confirmation de la cration du nouvel utilisateur. Vous devez effectuer une tape
supplmentaire pour terminer le processus d'approbation. Ne vous connectez-pas immdiatement Alain Durand, car vous
avez encore besoin de votre accs administrateur.
Dans la version Free Edition, pour permettre Alain Durand de se connecter et d'utiliser la sous-application Entrept, vous
devez modifier le profil Utilisateur de base en consquence. Les utilisateurs de Free Edition ayant accs une seule
sous-application, Entrept doit tre slectionne par dfaut (si vous utilisez Developer Edition, passez cette tape).
1. Cliquez sur Configuration Gestion des utilisateurs Profils.
2. En regard du profil Utilisateur de base, cliquez sur Modifier.
3. En regard de Entrept, slectionnez Par dfaut.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 6 : Cration d'un profil de scurit personnalis
tape 8 : Test du processus d'approbation

tape 8 : Test du processus d'approbation


Vous pouvez maintenant prparer le processus d'approbation et l'excuter. Si Alain Durand cre une facture avec un total
suprieur 2 000 , il peut cliquer sur le bouton Soumettre pour approbation dans le relev de facture. La sous-application
envoie un e-mail son responsable ( l'aide du modle d'e-mail cr prcdemment) et verrouille l'enregistrement, empchant
ainsi Alain d'effectuer de nouvelles modifications.
Lorsqu'il se connecte, le responsable peut approuver (ou refuser) la facture. S'il l'approuve, vous pouvez mettre jour le statut
de la facture sur Ferm. Dans le cas contraire, vous conservez le statut initial En cours. Dans un scnario rel, votre processus
commercial peut exiger l'envoi d'un e-mail au propritaire de la facture et demander une confirmation, entre autres.
Avant de tester le processus d'approbation, vous devez vous assurer que votre page d'accueil peut afficher les lments ncessitant
une approbation.
1. Cliquez sur Configuration Personnalisation Accueil Prsentations de page d'accueil.
2. Cliquez sur Modifier en regard de votre prsentation de page d'accueil (si vous utilisez Free Edition, cliquez sur Modifier
en regard de VolunteerForce Home Page).

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 39

3. Slectionnez l'option lments approuver, si elle est dsactive.


4. Cliquez sur Suivant, puis sur Enregistrer.
Pendant le dveloppement de l'application, vous tes connect en tant qu'administrateur. Pour crer un enregistrement et
tester le processus d'approbation, vous devez vous dconnecter du compte administrateur et vous connecter en tant qu'utilisateur
standard.
1. Connectez-vous en tant que Alain Durand. S'il s'agit de votre premire connexion sous cette identit, vous serez probablement
invit changer de mot de passe.
2. Slectionnez la sous-application Entrept.
3. Cliquez sur l'onglet Relevs de facture.
4. Cliquez sur Nouveau, puis crez un relev de facture.
5. Ajoutez un Nouvel lment de ligne et une quantit d'units suffisante pour obtenir un total de facture suprieur 2 000
.
6. Cliquez sur Enregistrer.
7. Cliquez sur Soumettre pour approbation.
8. Dconnectez-vous de l'application.
Un e-mail est envoy l'administrateur dsign d'Alain Durand, soit vous-mme dans ce didacticiel. Comme vous tes
administrateur, vous pouvez vrifier cet envoi dans votre bote de rception. Lorsque vous vous connectez l'application en
tant qu'administrateur, vous pouvez accder la demande d'approbation en attente sous l'onglet Accueil (faites dfiler la page
pour l'afficher). L'enregistrement est verrouill jusqu' l'approbation de la facture par le responsable. Un champ Approbation
permet au responsable d'approuver ou de refuser la facture, puis de continuer le workflow. Approuvez la facture.

En savoir plus
La page de dtails Processus d'approbation permet d'afficher un diagramme de processus d'approbation ainsi que les actions
dclenches chaque tape.
1. Dans la Configuration, cliquez sur Processus d'approbation, puis slectionnez le processus que vous avez cr.
2. Cliquez sur Afficher le diagramme. Le diagramme de processus d'approbation s'affiche dans une nouvelle fentre de
navigateur.

Manuel d'utilisation Force.com | Didacticiel n 4 : Utilisation de workflow et d'approbations | 40

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 7 : Cration d'un utilisateur
Rsum

Rsum
Les rgles de workflow et les processus d'approbation permettent d'automatiser vos processus commerciaux et d'appliquer vos
normes. La rgle de workflow met automatiquement jour le prix et l'inventaire dans diffrents objets. Le processus d'approbation
est excut ds qu'une condition est remplie et envoie une alerte par e-mail au destinataire dsign.
Important: Si vous utilisez la version Free Edition, les didacticiels qui suivent ncessitent un dveloppement dans
un environnement test sandbox. Si vous ne dveloppez pas dans un environnement test sandbox, suivez les instructions
de l'tape Cration et connexion un environnement test sandbox la page 90. La copie de votre environnement
test sandbox ne duplique pas les enregistrements pour vous. Par consquent, une fois connect, crez de nouveau
l'enregistrement Wee Jet de l'Etape 5 : Cration d'un enregistrement Article la page 11 ainsi que le Relev de facture
de l'Etape 5 : Cration d'un enregistrement Facture la page 18.

Voir aussi :
Didacticiel n 4 : Utilisation de workflow et d'approbations
tape 8 : Test du processus d'approbation

Manuel d'utilisation Force.com | Didacticiel n 5 : Ajout d'une logique commerciale avec Apex | 41

Didacticiel n 5 : Ajout d'une logique commerciale avec


Apex
Niveau : Avanc ; Dure : 20 30 minutes

Apex est un langage de programmation fortement typ, orient objet et de type Java qui s'excute sous Force.com. Apex
permet d'ajouter une logique commerciale programme aux applications. Par exemple, vous pouvez l'utiliser pour rdiger des
dclencheurs, des services Web et des contrleurs de programme dans la couche interface utilisateur de votre sous-application.
Vous avez dj ajout une logique commerciale en utilisant l'environnement de workflow dclaratif. Dans ce didacticiel, vous
allez crer une logique supplmentaire en utilisant le langage Apex, qui est idal pour grer de multiples enregistrements et
une logique complexe.
L'tude de cas sur laquelle nous allons nous appuyer stipule que lors de la baisse du prix d'un article, les clients bnficient de
la rduction. Pour cela, vous crez un dclencheur Apex qui met jour toutes les factures en cours ds que le prix de l'article
diminue. Un dclencheur est un ensemble de codes qui s'excutent un moment donn du cycle de vie d'un enregistrement.
Dans notre cas, vous allez crer un dclencheur qui s'excute aprs la mise jour d'un article.
Il existe deux faons de dvelopper des applications dans Force.com : vous pouvez utiliser l'environnement en ligne, comme
vous l'avez fait jusqu' prsent, ou utiliser l'IDE Force.com. Si l'IDE n'est pas install, son installation va tre prendre du
temps. Cependant, si vous matrisez l'IDE, vous connaissez les fonctionnalits Syntax highlighting (mise en vidence de la
syntaxe), Code insight (prdiction de code) et bien d'autres, qui optimisent la productivit du dveloppement, notamment en
quipe.
Remarque: Si vous utilisez la version Free Edition, l'ensemble du dveloppement doit tre effectu dans votre
environnement test sandbox. Si vous n'avez pas encore cr d'environnement test sandbox, reportez-vous Cration
et connexion un environnement test Sandbox la page 90.

Prrequis
Connaissances de base
Pour ce didacticiel, il est prfrable de matriser les notions de base de langages de programmation oriente objet tels
que Java ou C#, sans tre indispensable. Ce didacticiel peut galement tre accompli dans l'IDE Force.com, par consquent,
matriser Eclipse peut tre utile mais n'est pas indispensable.
Configuration logicielle requise
Vous pouvez utiliser l'IDE Force.com pour ce didacticiel. Dans ce cas, Eclipse 3.3 ou 3.4 et le composant IDE Force.com
sont requis : wiki.developerforce.com/index.php/Force.com_IDE. Pour crer un projet, reportez-vous Cration d'un
projet dans l'IDE Force.com la page 90.

Manuel d'utilisation Force.com | Didacticiel n 5 : Ajout d'une logique commerciale avec Apex | 42

Les autorisations Mode dveloppeur , Modifier toutes les donnes et Auteur Apex
Puisque ce didacticiel s'appuie sur le langage Apex, assurez-vous de disposer des autorisations requises pour crer des
classes Apex.

Voir aussi :
tape 1 : Cration d'une dfinition de dclencheur Apex
tape 2 : Dfinition d'une variable de liste
tape 3 : Itration sur une liste et modification du prix
tape 4 : Test du dclencheur
Rsum

tape 1 : Cration d'une dfinition de dclencheur Apex


Vous devez commencer pas crer la dfinition du dclencheur, qui contient le nom du dclencheur, l'objet affect et une action
qui lance le dclencheur. Vous pouvez crer des dclencheurs dans l'interface Web ou dans l'IDE Force.com. Les instructions
sont fournies pour les deux outils.
Pour crer un dclencheur dans l'interface Web :
1.
2.
3.
4.

Cliquez sur Configuration Crer Objets dans le menu latral.


Cliquez sur votre objet personnalis Article.
Dans la page de dtails Article, accdez Dclencheurs, puis cliquez sur Nouveau.
Remplacez <name> et <events> afin d'obtenir le code suivant :
trigger HandleProductPriceChange on Article__c (after update) {
}

5. Si vous utilisez l'interface Web, cliquez sur Enregistrement rapide, qui enregistre votre travail et vous permet de continuer.
L'enregistrement de votre travail ce stade permet galement de vrifier le code saisi, car si la syntaxe est incorrecte, le
systme n'enregistre pas.
Pour crer le dclencheur dans l'IDE Force.com :
1. Dans le Package Explorer, cliquez avec le bouton droit sur votre projet, puis cliquez sur New Apex Trigger.
2. Dans la bote de dialogue, saisissez HandleProductPriceChange pour le nommer.
3. Dans la liste droulante Object, slectionnez Article__c.
Remarque: Si cet objet ne figure pas dans la liste des objets, cliquez sur Refresh Objects (ignorez l'avertissement
relatif la slection d'une opration).
4. Slectionnez after update.

Manuel d'utilisation Force.com | Didacticiel n 5 : Ajout d'une logique commerciale avec Apex | 43

5. Cliquez sur Finish. Le fichier s'ouvre dans l'diteur.

En savoir plus
Votre dclencheur ne lance aucune opration pour le moment, mais il est prt pour accepter toute logique que vous souhaitez
excuter lors de la mise jour d'un enregistrement Article. Avant de passer la logique du dclencheur, dtaillons et examinons
chaque partie de la dfinition du dclencheur.

HandleProductPriceChange : correspond au nom du dclencheur.


on Article__c : correspond l'objet sur lequel le dclencheur agit, soit l'objet personnalis Article__c dans notre

cas.

(after update) : correspond l'action qui lance le dclencheur. Les dclencheurs Apex sont excuts en rponse des

actions sur les donnes, telles que des insertions, des mises jour et des suppressions, avant ou aprs l'un de ces vnements.
Le dclencheur que vous dfinissez est excut aprs la mise jour d'un enregistrement.
{ } : le code insr entre accolades est appel body (corps) et dtermine l'action du dclencheur. Vous allez coder le
dclencheur l'tape suivante.

Voir aussi :
Didacticiel n 5 : Ajout d'une logique commerciale avec Apex
tape 2 : Dfinition d'une variable de liste

tape 2 : Dfinition d'une variable de liste


Vous devez commencer par dfinir une variable de liste qui contient un liste d'lments de ligne. Les lments de ligne ne sont
pas tous ncessaires. Slectionnez uniquement ceux qui figurent dans l'ensemble des enregistrements qui a dclench l'excution
de ce code et dont le statut est Ngociation.
1. Entre les accolades de votre dfinition de dclencheur, saisissez le commentaire suivant, puis instruisez une variable de
liste.
// mettre jour les lments de ligne associs des factures en cours
List<El_ment_de_ligne__c> openLineItems = [ ];

Remarque: Pour gagner du temps, nous n'allons rien commenter ici, mais il est recommand de commenter votre
code.
2. Entre les parenthses carres, saisissez une requte qui rcupre les informations depuis votre objet personnalis Elment
de ligne.
List<El_ment_de_ligne__c> openLineItems = [SELECT j.Prix_unitaire__c, j.Article__r.Prix__c
FROM El_ment_de_ligne__c j WHERE j.Relev_de_facture__r.Statut__c = 'Ngociation' AND
j.Article__r.id IN :Trigger.new FOR UPDATE];

Manuel d'utilisation Force.com | Didacticiel n 5 : Ajout d'une logique commerciale avec Apex | 44

Remarque: Comme nous essayons d'ajuster notre exemple de code la page, il contient des sauts de ligne non
indispensables dans le code. Apex ignore les espaces, par consquent, le format de votre code peut diffrer. En
outre, Apex n'est pas sensible la casse, par consquent, vous pouvez saisir par exemple select au lieu de SELECT.

En savoir plus
La liste openLineItems contient une liste d'enregistrements de votre objet personnalis El_ment_de_ligne__c. Le
contenu de cette liste est dtermin par la requte insre entre les accolades, qui est crite en langage SOQL (Salesforce
Object Query Language). Examinons cette requte en dtails.

SELECT : dtermine quels champs sont rcuprs dans l'objet.


FROM : dtermine le ou les objets auxquels vous souhaitez accder. Le j dans El_ment_de_ligne__c j est un alias
: il correspond un raccourci pratique qui permet de se rfrer El_ment_de_ligne__c avec j .
WHERE : correspond au dbut de l'instruction de la condition. Dans notre cas, vous souhaitez renvoyer uniquement les

enregistrements dont le statut est Ngociation.


AND : correspond la deuxime condition de l'instruction. Elle rcupre les ID uniques des nouveaux enregistrements. Le
code utilise une variable spciale, Trigger.new, qui est automatiquement initialise avec les identificateurs des
enregistrements mis jour.
FOR UPDATE : indique la plate-forme de verrouiller les enregistrements, afin d'empcher les autres programmes et
utilisateurs de les mettre jour. Le verrou reste en place jusqu'au terme du dclencheur.

Voir aussi :
Didacticiel n 5 : Ajout d'une logique commerciale avec Apex
tape 1 : Cration d'une dfinition de dclencheur Apex
tape 3 : Itration sur une liste et modification du prix

tape 3 : Itration sur une liste et modification du prix


l'tape prcdente, vous avez cr une liste d'lments de ligne, puis vous l'avez stocke dans une variable appele
openLineItems. Vous pouvez maintenant itrer sur la liste l'aide d'une boucle for et modifier le prix initial d'un article
si le nouveau prix est infrieur.
1. Dclarez une boucle for.
for (El_ment_de_ligne__c li: openLineItems) { }

2. Entre les accolades, saisissez une instruction conditionnelle if.


for (El_ment_de_ligne__c li: openLineItems) { if ( li.Article__r.Prix__c <
li.Prix_unitaire__c ){ } }

3. Entre les accolades de la boucle for, saisissez le code qui met le prix jour.
for (El_ment_de_ligne__c li: openLineItems) { if ( li.Article__r.Prix__c <
li.Prix_unitaire__c ){ li.Prix_unitaire__c = li.Article__r.Prix__c; } }

Manuel d'utilisation Force.com | Didacticiel n 5 : Ajout d'une logique commerciale avec Apex | 45

4. La boucle for est termine. Vous allez maintenant mettre jour les lments de ligne. Avant la dernire accolade du
dclencheur, ajoutez le code suivant :
update openLineItems;

5. Durant le dveloppement, vous laissez le dclencheur inactif. Pour l'essayer, vous devez l'activer.

Si vous utilisez l'interface Web, slectionnez la case Est actif, qui est disponible une fois le dclencheur enregistr.
Si vous utilisez l'IDE, cliquez sur l'onglet Metadata, puis modifiez la valeur de statut en Active.

6. Vrifiez que votre code se prsente comme dans l'illustration ci-dessous, puis cliquez sur Enregistrer.
trigger HandleProductPriceChange on Article__c (after update) {
List<El_ment_de_ligne__c> openLineItems = [SELECT j.Prix_unitaire__c,
j.Article__r.Prix__c FROM El_ment_de_ligne__c j WHERE j.Relev_de_facture__r.Statut__c =
'Ngociation' AND j.Article__r.id IN :Trigger.new FOR UPDATE];
for (El_ment_de_ligne__c li: openLineItems) { if ( li.Article__r.Prix__c <
li.Prix_unitaire__c ){ li.Prix_unitaire__c = li.Article__r.Prix__c; } } update
openLineItems; }

En savoir plus
L'instruction finale, update openLineItems, met jour les enregistrements dans la base de donnes. Cette opration est
simple, mais quid de la boucle for ?

for (El_ment_de_ligne__c li: openLineItems) { } : itre sur la liste pour ouvrir l'lment de ligne. Lors de
l'itration, l'lment de ligne actuel est attribu la variable li.
if (li.Article__r.Prix__c < li.Prix_unitaire__c ) { } : vrifie si le prix de l'enregistrement de l'article

est infrieur au prix actuel. Vous souhaitez excuter une action uniquement si la condition est vraie.
li.Prix_unitaire__c = li.Article__r.Prix__c; : cette instruction finale met jour le prix unitaire dans
l'lment de ligne actuel (attribu la variable li) avec le nouveau prix de l'article.

Voir aussi :
Didacticiel n 5 : Ajout d'une logique commerciale avec Apex
tape 2 : Dfinition d'une variable de liste
tape 4 : Test du dclencheur

tape 4 : Test du dclencheur


Nous allons maintenant tester le dclencheur dans la sous-application. Vous devez commencer par crer un relev de facture
et commande au moins un produit ou modifier un produit existant. La seule exigence est de modifier le champ de statut du

Manuel d'utilisation Force.com | Didacticiel n 5 : Ajout d'une logique commerciale avec Apex | 46

relev de facture sur Ngociation. Vous devez ensuite diminuer le prix unitaire d'un article utilis dans l'un des lments de
ligne de cette facture, puis vrifier que les valeurs de l'lment de ligne et de la facture sont mises jour.
1.
2.
3.
4.
5.

Cliquez sur l'onglet Relevs de facture.


Cliquez sur le nom d'un relev de facture existant.
Changez son Statut en Ngociation, puis cliquez sur Enregistrer.
Notez la valeur totale de la facture. Cliquez ensuite sur un Elment de ligne et notez son Prix unitaire.
Cliquez sur l'onglet Articles, puis slectionnez l'enregistrement Wee Jet (ou tout autre article utilis dans les lments de
ligne).
6. Modifiez l'enregistrement en diminuant le prix unitaire. Pour simuler une rduction extrme, saisissez 0,01.
7. Revenez la facture et l'Elment de ligne.
8. Notez la modification automatique des valeurs de l'lment de ligne et de la facture.

En savoir plus
Vous avez peut-tre remarqu que ce dclencheur est un peu dispendieux : il s'initialise puis fonctionne dans une liste de tous
les enregistrements d'lments de ligne qui appartiennent aux relevs de facture en cours de ngociation. Cependant, la mise
jour d'un enregistrement de l'article n'entrane pas systmatiquement la mise jour de l'enregistrement par le dclencheur.
Par exemple, si vous mettez jour la description de l'enregistrement de l'article ou augmentez son prix, ces conditions n'affectent
pas le dclencheur. L'idal serait que le dclencheur itre sur l'ensemble Trigger.new (la liste des enregistrements Articles
qui ont t mis jour), crant ainsi un nouvel ensemble d'enregistrements respectant le critre du prix, puis qu'il rcupre
ensuite les enregistrements d'lments de ligne associs.

Voir aussi :
Didacticiel n 5 : Ajout d'une logique commerciale avec Apex
tape 3 : Itration sur une liste et modification du prix
Rsum

Rsum
Dans ce didacticiel, vous avez dvelopp l'application en ajoutant une logique commerciale qui met jour toutes les factures
en cours lorsque le prix unitaire d'un article diminue. Pour cela, vous avec dfini un dclencheur qui s'excute ds qu'un
enregistrement d'article est sauvegard avec un prix unitaire infrieur. Les dclencheurs sont trs utiles dans des scnarios tels
que la mise jour de multiples enregistrements dans des conditions particulires. Plusieurs dclencheurs peuvent tre associs
un objet dclencher en fonction d'vnements et de conditions diffrents.
Lors de la cration de dclencheurs Apex, il est important de disposer de tests automatiques qui vrifient leur fonctionnement.
Vous allez apprendre comment effectuer un test dans le Didacticiel n6 : Ajout de tests l'application la page 47.

Voir aussi :
Didacticiel n 5 : Ajout d'une logique commerciale avec Apex
tape 4 : Test du dclencheur

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 47

Didacticiel n 6 : Ajout de tests l'application


Niveau : Avanc ; Dure : 20 30 minutes

Les test reprsente l'une des tapes les plus importantes dans le dveloppement d'une application. Il permet de vrifier le
comportement de votre code, en s'assurant qu'il n'abuse pas des ressources disponibles. Le test est bnfique pour vous (il
permet d'avoir confiance dans les applications que vous crivez), mais il est galement bnfique pour la plate-forme. De son
ct, la plate-forme ncessite de tester tout code Apex que vous crivez avant de le dployer dans un environnement de
production. Des tests sont galement excuts avant la publication d'une nouvelle version de la plate-forme, afin de vrifier
l'absence de tout problme de rtrocompatibilit.
Pour faciliter le test, Apex prend en charge des tests d'unit, qui valident la programmation du comportement du code ainsi
que les rsultats attendus. Tout code Apex inclut un ensemble de limites qui dtermine la quantit de ressources consommes.
Par exemple, le nombre de requtes excutables dans un dclencheur est limit. Les tests de bonne qualit valident le
comportement du code, mais vrifient galement qu'il ne dpasse pas ces limites. Dans ce didacticiel, vous allez crire et
excuter un test d'unit, qui essaie le dclencheur Apex que vous venez de crer.

Prrequis
Didacticiel Apex
Vous devez crer un dclencheur Apex en suivant les instructions du Didacticiel n 5 : Ajout d'une logique commerciale
avec Apex la page 41.
Configuration logicielle requise
Vous pouvez utiliser l'IDE Force.com pour ce didacticiel. Dans ce cas, Eclipse 3.3 ou 3.4 et le composant IDE Force.com
sont requis : wiki.developerforce.com/index.php/Force.com_IDE. Pour crer un projet, reportez-vous Cration d'un
projet dans l'IDE Force.com la page 90.

Voir aussi :
tape 1 : Cration d'une classe de test Apex
tape 2 : Ajout de mthodes de test la classe
tape 3 : Ecriture du code excutant le dclencheur
tape 4 : Excution du test
tape 5 : Affichage de la couverture de code et amlioration des tests
Rsum

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 48

tape 1 : Cration d'une classe de test Apex


Toutes les units testes sont incluses dans des classes Apex. Dans cette tape, vous allez crer la classe qui comprend les tests
d'units.
Pour crer une classe Apex dans l'interface Web :
1. Cliquez sur Configuration Dvelopper Classes Apex.
2. Cliquez sur Nouveau.
3. Dans le volet de l'diteur, saisissez le code suivant :
@isTest private class TestHandleProductPriceChange { }

4. Cliquez sur Enregistrement rapide pour enregistrer et poursuivre l'dition.


Pour crer une classe Apex dans l'IDE Force.com :
1.
2.
3.
4.

Dans l'IDE, cliquez avec le bouton droit sur le dossier de votre projet. Cliquez ensuite sur New Apex Class.
Dans la page Create Apex Class, saisissez TestHandleProductPriceChange pour la nommer.
Dans le champ Template, slectionnez Test Class.
Cliquez sur Finish pour crer la classe.

En savoir plus
L'annotation @isTest indique Force.com que tout le code compris dans la classe Apex permet de tester le reste de votre
code. Vous allez ensuite crer des mthodes de test dans cette classe, qui excutent les tests.

Voir aussi :
Didacticiel n 6 : Ajout de tests l'application
tape 2 : Ajout de mthodes de test la classe

tape 2 : Ajout de mthodes de test la classe


Vous allez maintenant ajouter la classe une mthode charge d'excuter le test. Le dclencheur que vous avez cr, et que
vous souhaitez tester, fonctionne uniquement lorsque les enregistrements sont mis jour. Par consquent, commencez par
crer des enregistrements de test dans la base de donnes. Vous souhaitez que la mthode cre un Relev de facture ainsi que
des enregistrements Articles et Elment de ligne, puis les ajouter la base de donnes.
1. Commencez par crer la mthode de test qui doit contenir vos trois procdures de test. Entre les accolades, saisissez le
code suivant :
static testMethod void testPriceChange()

Remarque: Si vous utilisez l'IDE, remplacez le commentaire et le code gnrs.

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 49

2. Entre les accolades, insrez le code ci-dessous, qui cre un relev de facture et l'insre dans la base de donnes.
Relev_de_facture__c invoice = new Relev_de_facture__c(Statut__c = 'Ngociation'); insert
invoice;

3. Sous insert invoice, ajoutez le code qui cre les enregistrements d'articles.
Article__c[] products = new Article__c[]{ new Article__c(Name = 'item 1', Description__c
= 'test product 1', Prix__c = 10, Inventaire_total__c = 10), new Article__c(Name = 'item
2', Description__c = 'test product 2', Prix__c = 11, Inventaire_total__c = 10) }; insert
products;

4. Sous insert products, saisissez le code pour ajouter des lments de ligne.
El_ment_de_ligne__c[] lineItems = new El_ment_de_ligne__c[] { new
El_ment_de_ligne__c(Relev_de_facture__c = invoice.id, Article__c = products[0].id,
Prix_unitaire__c = 10, Unit_s_vendues__c = 3), new El_ment_de_ligne__c(Relev_de_facture__c
= invoice.id, Article__c = products[1].id, Prix_unitaire__c = 11, Unit_s_vendues__c =
6) }; insert lineItems;

Vous venez de configurer les donnes. Notez le statut du relev de facture, que vous avez cr, dfini sur Ngociation, qui
correspond la condition requise pour lancer le dclencheur. Vous devez maintenant crire le code qui doit remplir les autres
conditions requise pour le dclencheur : vous devez diminuer le prix d'un article. Vous allez le faire l'tape suivante.

Voir aussi :
Didacticiel n 6 : Ajout de tests l'application
tape 1 : Cration d'une classe de test Apex
tape 3 : Ecriture du code excutant le dclencheur

tape 3 : Ecriture du code excutant le dclencheur


Tel qu'il se prsente, le code de votre mthode de test n'est pas trs utile : il ne stimule pas le dclencheur, qui agit uniquement
lors de la mise jour du prix d'un enregistrement Article.
1. Aprs insert lineItems;, ajoutez les lignes suivantes.
products[0].prix__c = 20; Test.startTest(); update products; Test.stopTest();

Remarque: Ce code modifie le prix d'une enregistrement Article, en l'augmentant. Il appelle ensuite startTest(),
qui fait partie du framework de test et marque dans le code le dbut de votre test. Le systme ne considre pas le
code de configuration et les oprations de base de donnes qui prcdent comme faisant partie du test. Le test
permet galement de vrifier que votre code ne dpasse pas certaines limites administratives, qui dfinissent les
ressources que votre code Apex peut utiliser. Lorsque le dbut et la fin du test sont marqus, le systme ne prend
pas en compte votre code de configuration dans les limites administratives, ce qui permet de reflter avec plus de
prcision comment le code se comporterait dans un environnement de production.

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 50

2. Vous venez de mettre jour les produits. Vous devez maintenant vrifier si le prix des lments de ligne a chang. Il ne
devrait pas avoir chang, car le prix a augment dans le code de configuration. Ajoutez le code suivant aprs
Test.stopTest();
lineItems = [SELECT id, prix_unitaire__c FROM El_ment_de_ligne WHERE id IN :lineItems];
system.assert(lineItems[0].prix_unitaire__c == 10);

3. Vrifiez que votre code se prsente comme dans l'illustration ci-dessous, puis cliquez sur Enregistrer.
@isTest private class TestHandleProductPriceChange {
static testMethod void testPriceChange() { Relev_de_facture__c invoice = new
Relev_de_facture__c (Statut__c = 'Ngociation'); insert invoice;
Article__c[] products = new Article__c[]{ new Article__c(Name = 'item 1',
Description__c = 'test product 1', Prix__c = 10, Inventaire_total__c = 10), new
Article__c(Name = 'item 2', Description__c = 'test product 2', Prix__c = 11,
Inventaire_total__c = 10) }; insert products; El_ment_de_ligne__c[] lineItems = new
El_ment_de_ligne__c[] { new El_ment_de_ligne__c(Relev_de_facture__c = invoice.id,
Article__c = products[0].id, Prix_unitaire__c = 10, Unit_s_vendues__c = 3), new
El_ment_de_ligne__c(Relev_de_facture__c = invoice.id, Article__c = products[1].id,
Prix_unitaire__c = 11, Unit_s_vendues__c = 6) }; insert lineItems;
products[0].prix__c = 20; Test.startTest(); update products; Test.stopTest();
lineItems = [SELECT id, prix_unitaire__c FROM El_ment_de_ligne WHERE id IN
:lineItems]; system.assert(lineItems[0].prix_unitaire__c == 10);

Voir aussi :
Didacticiel n 6 : Ajout de tests l'application
tape 2 : Ajout de mthodes de test la classe
tape 4 : Excution du test

tape 4 : Excution du test


Force.com dispose d'un framework (cadre d'applications) de test qui permet d'excuter des tests et de vrifier la couverture du
code. Vous allez maintenant excuter les tests et observer la couverture du code qui en rsulte.
Remarque: Ces tapes sont prsentes dans l'interface Web , mais vous pouvez galement excuter des tests dans
l'IDE Force.com en cliquant avec le bouton droit sur le Package Explorer et en slectionnant Force.com Run Tests.
La suite de ce didacticiel utilise l'interface Web, mais vous pouvez aisment suivre les tapes dans l'IDE.
1. Accdez votre classe de test en cliquant sur Configuration Dvelopper Classes Apex, puis sur votre classe de test
TestHandleProductsPriceChange.
2. Cliquez sur Excuter le test. Un rsultat semblable l'illustration ci-dessous s'affiche.

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 51

Ce rsultat donne plusieurs informations importantes :

Il indique si vos tests ont russi ou non. Si la condition boolenne de l'instruction system.assert, que vous avez ajoute
au test, avait chou, ce rsultat serait indiqu ici. L'ajout de nombreuses assertions est une mthode efficace pour test le
comportement attendu de votre code.
Il renvoie des informations sur l'excution du test. En parcourant le journal de dbogage, vous pouvez par exemple constater
que votre rgle de validation Commande_en_stock a t dclenche. Vous pouvez observer les enregistrements crs, le
nombre de requtes excutes et davantage.
Il indique la couverture du code : le nombre de lignes de code excutes dans d'autres classes ou dclencheurs.

Notez galement que le rsultat indique une couverture de 80 % pour le dclencheur HandleProductPriceChange. Cette
couverture est suffisante pour le dploiement, mais nous recherchons la perfection. l'tape suivante, nous allons afficher la
couverture du code afin de dtecter les emplacements auxquels vous devez ajouter des tests pour obtenir un taux de 100 %.

Voir aussi :
Didacticiel n 6 : Ajout de tests l'application
tape 3 : Ecriture du code excutant le dclencheur
tape 5 : Affichage de la couverture de code et amlioration des tests

tape 5 : Affichage de la couverture de code et amlioration des tests


Vous avez crit deux sries de code. Vous avez un dclencheur, que nous allons appeler code de production, et un code dans la
classe de test, que nous allons appeler code de test. Le terme couverture de code se rapporte la proportion du code de production
couverte par votre code de test. En d'autre termes, lorsqu'un utilisateur excute votre code de test, excute-t-il le code de
production dans son intgralit ou en partie seulement ? S'il excute une partie du code seulement, cela peut indiquer la prsence
de bogues dans la partie non teste de votre code de production. Pour illustrer ces concepts, vous pouvez afficher un graphique
de couverture de code.

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 52

Remarque: Si vous utilisez l'IDE Force.com pour ce didacticiel, continuez avec l'IDE. Le dveloppement simultan
dans l'IDE et dans l'interface Web ncessite une synchronisation avec le serveur chaque passage de l'une l'autre.
La synchronisation est aise, il suffit de cliquer avec le bouton droit sur votre classe et de slectionner Force.com
Synchronize with Server, mais il est encore plus facile de s'en passer !
1. Dans la section Couverture de code, cliquez sur 80.

2. La page Couverture de code s'ouvre. Le surlignage bleu marque les lignes de code qui ont t couvertes (excutes) selon
notre mthode de test. Le surlignage rouge marque les lignes qui n'ont pas t excutes. Dans notre cas, le ligne 12 n'a pas
t excute car nous ne diminuons pas le prix d'un article, mais nous l'augmentons.

3. Cette ligne rouge indique clairement que votre test n'est pas complet. Modifions maintenant la mthode de test afin
d'amliorer la couverture de code. Fermez le fentre Couverture de code, puis cliquez sur Configuration Dvelopper
Classes Apex et slectionnez votre classe de test TestHandleProductPriceChange.
4. Cliquez sur Modifier.
5. Remplacez le code compris entre products[0] et l'accolade suivante par le code ci-dessous :
products[0].prix__c = 20; // augmenter le prix products[1].prix__c = 5;
prix Test.startTest(); update products; Test.stopTest();

// diminuer le

lineItems = [SELECT id, prix_unitaire__c FROM El_ment_de_ligne__c WHERE id IN :lineItems];


System.assert(lineItems[0].prix_unitaire__c == 10); // inchang
System.assert(lineItems[1].prix_unitaire__c == 5);
// chang !

6. Cliquez sur Enregistrer.


7. Cliquez ensuite sur Excuter le test. Vous obtenez une couverture de code de 100 %.

Voir aussi :
Didacticiel n 6 : Ajout de tests l'application
tape 4 : Excution du test
Rsum

Manuel d'utilisation Force.com | Didacticiel n 6 : Ajout de tests l'application | 53

Rsum
Dans ce didacticiel, vous avez cr des tests pour le dclencheur Apex et observ comment les outils de test intgrs peuvent
aider obtenir une couverture de code de 100 %. La cration de tests d'units lors du dveloppement est ncessaire pour le
dploiement et reprsente aussi l'une des cls de la russite long terme d'un dploiement.
Il est toutefois important de noter que la couverture de code n'est pas le seul objectif d'un test. Vous devez galement valider
tous les scnarios possibles et il en manque un au test que vous venez de crer. En l'tat, le test vrifie uniquement les relevs
de facture dont le statut est Ngociation. Il devrait galement contrler les autres valeurs de statut. Par exemple, si le statut
d'un relev de facture n'est pas Ngociation, l'augmentation ou la diminution du prix ne devrait avoir aucun effet.

Voir aussi :
Didacticiel n 6 : Ajout de tests l'application
tape 5 : Affichage de la couverture de code et amlioration des tests

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 54

Didacticiel n 7 : laboration d'une interface utilisateur


personnalise en utilisant Visualforce
Niveau : Intermdiaire ; Dure : 30 45 minutes

Visualforce est un framework (cadre d'applications) d'interface utilisateur base sur des composants pour la plate-forme
Force.com. Dans les didacticiels prcdents, nous avons labor et tendu votre application en utilisant une interface utilisateur
gnre automatiquement. Visualforce offre beaucoup plus de contrle sur l'interface utilisateur grce un cadre d'affichage
qui comprend un langage de balisage semblable l'HTML, une bibliothque de composants rutilisables, qui peuvent tre
tendue, et un modle de contrleur bas sur un Apex. Visualforce prend en charge le style Model-View-Controller (MVC)
pour la conception de l'interface utilisateur, qui est trs flexible.
Dans ce didacticiel, vous allez utiliser Visualforce afin de crer une nouvelle interface utilisateur pour l'application Entrept,
qui affiche une feuille d'inventaire permettant de rpertorier chaque article en stock et de mettre jour les quantits. L'objectif
de la feuille d'inventaire est de mettre jour le systme informatique avec les dcomptes physiques des articles, s'ils changent.

Prrequis
Connaissances de base
Pour ce didacticiel, il est prfrable de matriser les langages de balisage tels que HTML et XML, sans tre indispensable.

Voir aussi :
tape 1 : Activation du Mode de dveloppement de Visualforce
tape 2 : Cration d'une page Visualforce
tape 3 : Ajout d'une ressource statique Feuille de style
tape 4 : Ajout d'un contrleur la page
tape 5 : Affichage de la Feuille d'inventaire en tant que page Visualforce
Rsum

tape 1 : Activation du Mode de dveloppement de Visualforce


Le Mode de dveloppement incorpore un diteur de page Visualforce dans votre navigateur. Il permet d'afficher en mme
temps le code et un aperu de la page. Le Mode de dveloppement ajoute galement un diteur Apex pour l'dition des
contrleurs et des extensions.
1. Cliquez sur Configuration Mes informations personnelles Informations personnelles.
2. Cliquez sur Modifier.
3. Slectionnez la case Mode de dveloppement, puis cliquez sur Enregistrer.

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 55

Voir aussi :
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce
tape 2 : Cration d'une page Visualforce

tape 2 : Cration d'une page Visualforce


Dans cette tape, vous allez crer une page Visualforce qui servira de feuille d'inventaire.
1. Dans votre navigateur, ajoutez /apex/Feuille_Inventaire l'URL de votre instance Salesforce.com. Par exemple,
si votre instance Salesforce.com est https://na1.salesforce.com, la nouvelle URL devient
https://na1.salesforce.com/apex/Feuille_Inventaire. Le message d'erreur suivant s'affiche : La page Apex
Feuille_Inventaire n'existe pas.

2. Cliquez sur le lien Create Page Feuille_Inventaire pour crer la page.


3. Cliquez sur le lien Page Editor dans le coin infrieur gauche de la page. L'onglet Page Editor affiche le code et un aperu
de la nouvelle page (qui contient un texte par dfaut), comme dans l'illustration ci-dessous.

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 56

4. Changez le terme Congratulations de la balise <h1> en Feuille d'inventaire et supprimez les commentaires.
Le code de la page doit se prsenter comme suit :
<apex:page>
<h1>Feuille d'inventaire</h1>
</apex:page>

5. Cliquez sur l'icne Enregistrer en haut de la fentre Page Editor. La page est recharge pour appliquer vos modifications.

En savoir plus
Notez que le code de la page est trs semblable un code HTML. Une page Visualforce combine des balises HTML, telles
que <h1>, des balises Visualforce spcifiques commenant par <apex:>

Voir aussi :
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce
tape 1 : Activation du Mode de dveloppement de Visualforce
tape 3 : Ajout d'une ressource statique Feuille de style

tape 3 : Ajout d'une ressource statique Feuille de style


Afin d'amliorer la prsentation de votre application Entrept, vous allez utiliser une feuille de style (fichier CSS) personnalise
qui spcifie la couleur, la police et la mise en page du texte sur la page. La plupart des pages Web et des concepteurs de pages
Web utilisent la norme Web CSS. Nous avons cr une feuille CSS pour vous. Pour que vos pages rfrencent une feuille de
style, vous devez la charger en tant que ressource statique. Une ressource statique est un fichier ou un ensemble de fichiers stock
dans Force.com. Une fois ajoute en tant que ressource statique, une feuille de style peut tre rfrence par n'importe quelle
page Visualforce.
Pour ajouter une feuille de style en tant que ressource statique :
1. Dans votre navigateur, accdez developer.force.com/workbook/styles. Tlchargez le fichier et enregistrez-le sur votre
Bureau.
2. Depuis la sous-application, cliquez sur Configuration Dvelopper Ressources statiques, puis cliquez sur Nouveau.
3. Dans le champ Nom, saisissez Styles.

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 57

4. Cliquez sur Parcourir, puis recherchez le fichier Styles.zip que vous venez de tlcharger.
5. Dans la liste de slection Contrle du cache, slectionnez Public.

6. Cliquez sur Enregistrer.


Remarque: Si vos pages Visualforce sont publies dans un site Web publique, Force.com utilise un rseau global de
distribution de contenu pour conserver des copies de vos fichiers statiques dans des serveurs cache.
Vous devez maintenant modifier votre page Visualforce pour rfrencer la feuille de style.
1. Comme vous l'avez fait pour crer la page, ajoutez le texte /apex/Feuille_Inventaire l'URL de votre instance
Salesforce.com.
2. Modifiez les attributs de la balise <apex:page> et saisissez le code suivant pour supprimer la feuille de style standard,
l'en-tte et le menu latral.
<apex:page standardStylesheets="false" showHeader="false" sidebar="false">

3. Vous devez maintenant indiquer la page l'emplacement de la feuille de style. Insrez une ligne sous la premire balise
<apex:page>, puis tapez <apex:
4. L'diteur est dot d'une fonction de mise en vidence de la syntaxe, qui affiche une liste droulante d'lments disponibles
dans ce contexte. Commencez taper stylesheet, puis slectionnez apex:stylesheet lorsque le code s'affiche dans
la liste droulante.

5. Spcifiez maintenant l'emplacement de la feuille de style comme indiqu ci-dessous.


<apex:stylesheet value="{!URLFOR($Resource.styles, 'styles.css')}" />

6. Vrifiez que votre code se prsente comme suit :


<apex:page standardStylesheets="false" showHeader="false" sidebar="false">
<apex:stylesheet value="{!URLFOR($Resource.styles, 'styles.css')}" />
<h1>Feuille d'inventaire</h1>
</apex:page>

7. Cliquez sur l'icne Enregistrer en haut de la fentre Page Editor.

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 58

Notez la nouvelle prsentation de la page avec une police et un emplacement diffrents pour le titre, et l'absence d'en-tte et
de menu latral.

En savoir plus
Examinons plus en dtails le code de la feuille de style.

$Resources est une variable globale laquelle Visualforce a accs. $Resource.styles permet de rfrencer la ressource

intitule Styles que vous avez cre prcdemment.


La fonction URLFOR() indique l'emplacement de la ressource statique, ainsi qu'un fichier dans cette ressource, et calcule
l'URL qui doit tre gnre dans votre page finale. Si vous avez reconnu la syntaxe, c'est que vous l'avez dj rencontre
en valuant dynamiquement les valeurs lors du rendu de la page Visualforce.

Voir aussi :
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce
tape 2 : Cration d'une page Visualforce
tape 4 : Ajout d'un contrleur la page

tape 4 : Ajout d'un contrleur la page


Grce au modle de conception Contrleur-Vue-Modle de Visualforce, il est ais de sparer la vue et son style de la base de
donnes et de la logique sous-jacentes. Avec ce modle, la vue (la page Visualforce) interagit avec un contrleur. Dans le cas
prsent, le contrleur est gnralement une classe Apex, qui prsente quelques fonctionnalits de la page. Par exemple, le
contrleur peut contenir une logique qui doit tre excute lors d'un clic sur un bouton. En gnral, un contrleur interagit
galement avec le modle (la base de donnes), en prsentant les donnes que la vue souhaite afficher.
Tous les objets Force.com comprennent des contrleurs standard par dfaut que vous pouvez utiliser pour interagir avec les
donnes associes l'objet. Par consquent, il est rarement ncessaire d'crire soi-mme le code du contrleur. Vous pouvez
tendre les contrleurs standard afin d'ajouter de nouvelles fonctionnalits ou de crer de tout nouveaux contrleurs personnaliss.
Dans ce didacticiel, vous allez utiliser le contrleur par dfaut.
1. Si Page Editor n'est pas ouvert dans votre page Visualforce, cliquez sur Page Editor pour modifier la page.
2. Modifiez votre code afin d'activer le contrleur standard Article__c standard en changeant la premire balise <apex:page>.
L'diteur ignore les espaces entre les balises, vous pouvez saisir le texte sur une nouvelle ligne.
<apex:page standardStylesheets="false" showHeader="false" sidebar="false"
standardController="Article__c">

3. Ajoutez ensuite la dfinition du contrleur de liste standard.


<apex:page standardStylesheets="false" showHeader="false" sidebar="false"
standardController="Article__c" recordSetVar="products">

4. Cliquez sur l'icne Enregistrer en haut de la fentre Page Editor. La page n'affiche aucune modification. Cependant, vous
avez indiqu que la page doit utiliser un contrleur et dfini la variable products. Par consquent, la variable sera disponible
dans le corps de la page et reprsentera une liste d'enregistrements Article.

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 59

En savoir plus
L'attribut recordSetVar active un contrleur de liste standard qui fournit une prise en charge de contrleur supplmentaire
pour rpertorier un nombre d'enregistrements avec la pagination. Sa valeur, que vous avez dfinie sur products , permet
d'inclure une nouvelle variable, products, l'ensemble des enregistrements afficher dans la page Visualforce.

Voir aussi :
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce
tape 3 : Ajout d'une ressource statique Feuille de style
tape 5 : Affichage de la Feuille d'inventaire en tant que page Visualforce

tape 5 : Affichage de la Feuille d'inventaire en tant que page Visualforce


Toutes les fonctionnalits sont dsormais en place pour toffer la page Visualforce. Elle affiche un tableau de tous les
enregistrements d'articles, avec un champ de saisie qui permet de mettre jour l'inventaire.
1. Sur une nouvelle ligne, sous la balise </h1>, commencez taper <apex:f , puis slectionnez la balise <apex:form>
lorsqu'elle s'affiche dans la liste droulante. Le formulaire permet de mettre jour le tableau.
2. Appuyez sur Entre et notez que le systme gnre automatiquement les balises ouvrante et fermante.
3. Placez le curseur entre les balises, puis crez un tableau de donnes. Commencez taper <apex:d, puis slectionnez
dataTable dans la liste droulante.
4. Vous devez maintenant ajouter des attributs la balise dataTable. L'attribut de valeur indique les lments de la liste
sur lesquels le composant dataTable doit effectuer une itration. L'attribut var attribue chaque lment de cette liste,
pour une seule itration, la variable pitem. L'attribut rowClasses affecte des noms de feuille de style CSS des lignes
alternatives. Sur une ou plusieurs lignes de la balise, saisissez :
<apex:dataTable value="{!products}" var="pitem" rowClasses="odd,even">

5. Vous allez maintenant dfinir chaque colonne, puis dterminer l'origine des donnes en recherchant le champ appropri
dans la variable pitem. Ajoutez le code suivant entre les balises dataTable ouvrante et fermante.
<apex:dataTable value="{!products}" var="pitem" rowClasses="odd,even"> <apex:column
headerValue="Produit"> <apex:outputText value="{!pitem.name}"/> </apex:column>
</apex:dataTable>

6. Cliquez sur Enregistrer ; le tableau s'affiche.

L'attribut headerValue a simplement fourni un titre d'en-tte pour la colonne, qui est suivi d'une liste de lignes : une
ligne pour chaque enregistrement d'article. L'expression {!pitem.name} indique que vous souhaitez afficher le champ
de nom sur la ligne actuelle.

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 60

7. Ajoutez maintenant deux colonnes supplmentaires aprs la balise fermante de la premire colonne.
<apex:column headerValue="Inventaire"> <apex:outputField
value="{!pitem.Inventaire_total__c}"/> </apex:column> <apex:column headerValue="Dcompte
physique"> <apex:inputField value="{!pitem.Inventaire_total__c}"/> </apex:column>

Remarque: La deuxime colonne est un champ inputField, pas outputField. Le champ inputField affiche
une valeur, mais il permet galement de la modifier.
8. Cliquez sur Enregistrer pour gnrer une feuille d'inventaire ! Elle rpertorie les enregistrements d'articles, affiche l'inventaire
actuel et fournit un champ de saisie pour le dcompte physique.
9. Pour parfaire la prsentation, ajoutez un bouton permettant de modifier le dcompte physique de n'importe quelle ligne,
puis actualisez les valeurs de la page. Pour cela, saisissez le code suivant directement au-dessus de la ligne </apex:form>.
<br/> <apex:commandButton action="{!quicksave}"

value="Actualiser le dcompte" />

En savoir plus

Le composant dataTable produit un tableau avec des lignes, chaque ligne tant trouve en effectuant une itration sur
la liste. La contrleur standard que vous utilisez pour cette page a t dfini sur Article__c et recordSetVar a t
dfini sur products. Le contrleur renseigne ainsi automatiquement la variable de la liste de produits avec les
enregistrements d'articles rcuprs dans la base de donnes. Le composant dataTable utilise cette liste.
Vous devez rfrencer la ligne actuelle pendant que vous effectuez une itration sur la liste. Cette instruction var="pitem"
attribue une variable appele pitem qui contient la ligne actuelle.
Les attributs rowClasses et styleClass utilisent simplement certains styles de la feuille CSS que vous avez charge
dans la ressource statique. Vous pouvez les retirer sans risque, seule la prsentation en souffrira !
Chaque contrleur standard dispose de diverses mthodes pour tous les objets Force.com. Le composant commandButton
affiche le bouton et invoque une mthode appele quicksave dans le contrleur standard, qui met jour les valeurs dans
les enregistrements. Ici, vous mettez jour le dcompte physique du produit et procdez un enregistrement rapide, qui
actualise le produit avec le nouveau dcompte.
La mise en page n'est pas prsente dans cet exemple, mais la fonctionnalit existe. Si vous disposez d'un nombre
d'enregistrements parcourir suffisant, ajoutez le code suivant sous commandButton pour l'action de page-flipping
(tournage de page).
<apex:commandLink action="{!next}" value="Suivant" rendered="{!hasNext}" />

Voir aussi :
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce
tape 4 : Ajout d'un contrleur la page
Rsum

Manuel d'utilisation Force.com | Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce | 61

Rsum
Flicitations ! Vous avez cr une nouvelle interface pour votre application Entrept en crant une page Visualforce qui utilise
un contrleur standard. Votre page est hautement configurable. Par exemple, vous pouvez aisment changer les donnes
affiches dans chaque ligne en modifiant les composants de la colonne. La page utilise galement de nombreuses fonctionnalits
fournies en arrire-plan par le contrleur standard. Par exemple, le contrleur interroge automatiquement la base de donnes
pour rechercher tous les enregistrements d'articles et les attribuer la variable products. Il fourni galement un outil de
sauvegarde des donnes via l'enregistrement rapide.
Vous avez cr quelques composants Visualforce. Vous pouvez dsormais publier ces fonctionnalits dans un site Web. Vous
allez dcouvrir cette tape dans le Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites.

Voir aussi :
Didacticiel n 7 : laboration d'une interface utilisateur personnalise en utilisant Visualforce
tape 5 : Affichage de la Feuille d'inventaire en tant que page Visualforce

Manuel d'utilisation Force.com | Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites | 62

Didacticiel n 8 : Cration d'une page Web publique en


utilisant les Sites
Niveau : Intermdiaire ; Dure : 20 30 minutes

L'application que vous venez de crer ncessite que vous vous connectiez pour l'utiliser. Bien que Force.com prenne en charge
votre application dans un environnement multi-utilisateurs, vous devez parfois liminer la connexion, par exemple sur un site
Web public.
Les Sites permettent de crer des sites Web publics et des applications directement intgrs votre organisation sans que les
utilisateurs se connectent avec un nom d'utilisateur et un mot de passe. Vous pouvez publier des informations stockes dans
votre organisation via l'URL de marque de votre choix. Vous pouvez galement adapter la prsentation des pages du site la
marque de votre organisation. Les sites tant hbergs sur des serveurs Force.com, aucun problme d'intgration ne se pose.
Puisque les sites sont crs sur des pages natives, la validation des donnes dans les informations collectes est automatiquement
excute. Vous pouvez galement permettre aux utilisateurs de s'inscrire, ou de se connecter, de faon transparente un portail
associ depuis votre site public.
Dans ce didacticiel, vous allez crer une page Visualforce, activer des Sites pour votre organisation, enregistrer votre nom de
domaine Force.com et publier la page Visualforce que vous avez cre en tant que catalogue de produits public en ligne.

Prrequis
Didacticiel Visualforce
Vous devez crer la page Visualforce en suivant les instructions du Didacticiel n 7 : laboration d'une interface utilisateur
personnalise en utilisant Visualforce la page 54.

Voir aussi :
tape 1 : Cration d'une page de catalogue de produits
tape 2 : Enregistrement d'un nom de domaine Force.com
tape 3 : Cration d'un site Force.com
tape 4 : Configuration et test du site
Rsum

tape 1 : Cration d'une page de catalogue de produits


Dans cette tape, vous allez cloner la page d'inventaire que vous avez cre prcdemment. La nouvelle page Catalogue de
produits affichera la description et le prix au lieu de l'inventaire et du dcompte.

Manuel d'utilisation Force.com | Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites | 63

1. Cliquez sur Configuration Dvelopper Pages. Si l'diteur Visualforce est toujours ouvert, cliquez sur le bouton
Retour de votre navigateur jusqu' la page Configuration.
2. Slectionnez la page Feuille_Inventaire que vous avez cre.
3. Cliquez sur Cloner.
4. Dans l'diteur Page Editor, changez les champs tiquette et Nom en Catalogue.
5. Toujours dans l'diteur Page Editor, modifiez le contenu de la balise <h1> en Catalogue de produits.
6. Recherchez le lignes suivantes :
<apex:column headerValue="Inventaire"> <apex:outputField
value="{!pitem.Inventaire_total__c}"/> </apex:column>

7. Changez Inventaire en Description et Inventaire_total__c en Description__c. Vous conservez le mme


tableau, mais en changeant l'en-tte et les donnes. Le code doit se prsenter comme suit :
<apex:column headerValue="Description"> <apex:outputField value="{!pitem.Description__c}"/>
</apex:column>

8. Vous allez maintenant effectuer des modifications similaires dans la colonne suivante pour afficher le prix. Changez
Dcompte physique en Prix. Changez inputfield en outputfield. Changez Inventaire_total__c en
Prix__c, comme indiqu ci-dessous.
<apex:column headerValue="Prix"> <apex:outputField value="{!pitem.Prix__c}"/>
</apex:column>

9. Pour terminer, supprimez les balises <apex:form> ouvrante et fermante, et <apex:commandButton>, car vous ne
souhaitez pas accepter de saisie dans cette page.
10. Vrifiez que votre code se prsente comme indiqu ci-dessous, puis cliquez sur Enregistrer.
<apex:page standardStylesheets="false" showHeader="false" sidebar="false"
standardController="Article__c" recordSetVar="products">
<apex:stylesheet value="{!URLFOR($Resource.styles, 'styles.css')}" />
<h1>Catalogue de produits</h1>
<apex:dataTable value="{!products}" var="pitem" rowClasses="odd,even"> <apex:column
headerValue="Produit"> <apex:outputText value="{!pitem.name}"/> </apex:column> <apex:column
headerValue="Description"> <apex:outputField value="{!pitem.Description__c}"/>
</apex:column> <apex:column headerValue="Prix"> <apex:outputField
value="{!pitem.Prix__c}"/> </apex:column> </apex:dataTable>
</apex:page>

En savoir plus
ce stade, notez plusieurs points importants.

De nombreux composants de la plate-forme Force.com peuvent tre clons et, comme vous l'avez constat, le clonage d'une
page Visualforce est ais.
Les contrleurs standard de la page Visualforce rendent toutes vos donnes aisment accessibles. Il suffit de modifier deux
valeurs dans le tableau pour afficher les donnes de champs diffrents.

Manuel d'utilisation Force.com | Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites | 64

Avez-vous remarqu qu'il est facile de modifier un champ d'entre en champ de sortie ? Le contrleur standard Visualforce
est puissant, mais vous pouvez l'tendre pour crer des fonctionnalits personnalises, et vous pouvez mme crer votre
propre contrleur.

Voir aussi :
Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites
tape 2 : Enregistrement d'un nom de domaine Force.com

tape 2 : Enregistrement d'un nom de domaine Force.com


Votre domaine Force.com unique, qui hberge votre site, est form partir du prfixe de domaine unique vous enregistrez, plus
de force.com. Par exemple, si vous choisissez masociete comme prfixe de domaine, votre nom de domaine est
http:/www.masociete.force.com.
Pour commencer, enregistrez le domaine Force.com de votre socit en procdant comme suit.
1. Cliquez sur Configuration Dvelopper Sites.
2. Saisissez un nom unique pour votre domaine Force.com. Ce nom ne peut contenir que des caractres de soulignement et
alphanumriques, et il doit tre unique dans votre organisation. Il doit commencer par une lettre, ne pas inclure despace,
ne pas se terminer pas un trait de soulignement et ne doit pas contenir deux traits de soulignement conscutifs. Salesforce.com
recommande d'utiliser le nom de votre socit ou une variante, par exemple masociete.
ATTENTION: Une fois votre nom de domaine Force.com enregistr, vous ne pouvez pas le modifier.
Les noms de domaine de Free Edition sont attribus automatiquement et ne peuvent pas tre mis jour. Crez
une adresse Web personnalise si vous souhaitez utiliser un nom de domaine personnalis.
3. Cliquez sur Vrifier la disponibilit pour confirmer que le nom de domaine saisi est unique. S'il est dj utilis, vous tes
invit le modifier.
4. Lisez, puis acceptez les Conditions d'utilisation des Sites en cochant la case.
5. Cliquez sur Enregistrer mon domaine Force.com. Une fois les Conditions d'utilisation acceptes et votre domaine
Force.com enregistr, les modifications lies la cration du site sont consignes dans le journal d'audit et la liste associe
Historique du site de votre organisation. L'entre en vigueur de votre enregistrement peut prendre jusqu' 48 heures.
Flicitations ! Vous tes prt crer votre premier site Force.com.

Voir aussi :
Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites
tape 1 : Cration d'une page de catalogue de produits
tape 3 : Cration d'un site Force.com

Manuel d'utilisation Force.com | Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites | 65

tape 3 : Cration d'un site Force.com


Comme votre domaine est enregistr, vous pouvez slectionner la page Visualforce Catalogue de produits que vous venez de
crer comme page d'accueil de votre site.
1. Accdez la page Sites en cliquant sur Configuration Dvelopper Sites.
2. Cliquez sur Nouveau. La page Modifier le site s'affiche.
3. Dans la page Modifier le site, renseignez les informations relatives au site :
a. Dans les champs tiquette du site and Nom du site, saisissez Catalogue.
b. Dans le champ Page d'accueil du site actif, saisissez Catalogue.
c. Slectionnez la case Actif.

4. Cliquez sur Enregistrer.

Voir aussi :
Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites
tape 2 : Enregistrement d'un nom de domaine Force.com
tape 4 : Configuration et test du site

tape 4 : Configuration et test du site


Vous avez cr votre site et dsign une page par dfaut. Vous allez bientt pouvoir l'essayer.
La plate-forme comprend plusieurs dispositifs de contrle pour la scurit des donnes. L'un des contrles empche l'affichage
des donnes, mme dans les pages publiques, tant que vous n'activez pas explicitement leur affichage. Dans cette tape, vous
allons basculer ce paramtre de scurit pour l'objet Article, puis visiter votre nouveau site.
1. Accdez aux Sites en cliquant sur Configuration Dvelopper Sites.
2. Cliquez sur le lien URL de site du site Catalogue de produits. Cette action ouvre un nouvel onglet ou une nouvelle
fentre (selon votre navigateur). Cependant, au lieu de la page Catalogue de produits, une grande page Autorisation requise

Manuel d'utilisation Force.com | Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites | 66

s'affiche. Le visiteur anonyme du site Web n'est pas encore autoris visualiser les donnes prsentes dans la page.
Corrigeons ce problme. Revenez la page de configuration.
3. Cliquez sur le lien tiquette du site, qui doit se nommer Catalogue.

4. Cliquez sur Paramtres d'accs public, puis cliquez sur Modifier dans la section Dtails du profil.

5. Accdez la section Autorisations de l'objet personnalis, puis slectionnez l'autorisation Lecture pour l'objet Articles.

6. Cliquez sur Enregistrer.


7. Revenez votre site Web et actualisez votre navigateur pour afficher votre page.

Remarque: Si un message d'autorisation requise s'affiche, vous n'avez probablement pas activ votre Page
d'accueil du site actif sur Catalogue l'tape prcdente.

En savoir plus

Vous avez attribu une page Visualforce unique au site et vous l'avez dfinie comme page d'accueil de ce site. Vous pouvez
maintenant crer des pages Visualforce supplmentaires et les attribuer galement au site. Par exemple, si vous ajoutez la
page Meme au site, vous pouvez accder cette page avec une URL semblable
http://workbook-developer-edition.na1.force.com/Meme (selon votre nom domaine bien entendu).
Force.com enregistre le nombre de vues de page d'un site Developer Edition et lui impose une limite de bande passante
quotidienne.

Manuel d'utilisation Force.com | Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites | 67

Les Sites permettent d'utiliser un serveur de distribution de contenu global afin d'accder et de mettre en cache rapidement
les pages de votre site dans des environnements de production. Il vous suffit de modifier le composant page pour insrer
une instruction cache.
<apex:page cache="true" expires="600">

Voir aussi :
Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites
tape 3 : Cration d'un site Force.com
Rsum

Rsum
Flicitations, vous avez cr un site Web public ! Tout internaute dans le monde peut accder au site que vous venez de crer,
et parcourir votre page d'accueil. Pour crer le site, vous avez clon une page Visualforce, puis activ votre organisation Developer
Edition pour la fonctionnalit Sites. Vous avez ensuite enregistr un nom de domaine Force.com unique, enregistr la page
comme page d'accueil, modifi la scurit et test le site pour vrifier son fonctionnement.
Vous disposez d'un site avec un catalogue de produits. L'tape logique suivante est de permettre aux personnes de commander
des articles. Vous allez le faire dans le Didacticiel n 9 : Cration d'une boutique la page 68.

Voir aussi :
Didacticiel n 8 : Cration d'une page Web publique en utilisant les Sites
tape 4 : Configuration et test du site

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 68

Didacticiel n 9 : Cration d'une boutique


Niveau : Intermdiaire ; Dure : 30 minutes

Apex est un langage de programmation orient objet. Apex permet de crer des classes et des mthodes, de faire des appels
la base de donnes, de crer de services Web, d'envoyer des e-mails et davantage. Dans ce didacticiel, vous allez crer une
simple page d'une boutique Visualforce utilisant un contrleur que vous allez crire en Apex. Vous allez galement crer une
classe Apex, dcouvrir une autre syntaxe Apex et apprendre comment transmettre des valeurs entre une page Visualforce et
son contrleur.

Prrequis
Sous-application Entrept
Vous devez commencer par crer une application Entrept de base en suivant les instructions du Didacticiel n 2 : Ajout
de relations la page 13.
Configuration logicielle requise
Vous pouvez utiliser l'IDE Force.com pour ce didacticiel. Dans ce cas, Eclipse 3.3 ou 3.4 et le composant IDE Force.com
sont requis : wiki.developerforce.com/index.php/Force.com_IDE. Pour crer un projet, reportez-vous Cration d'un
projet dans l'IDE Force.com la page 90.
Les autorisations Mode dveloppeur , Modifier toutes les donnes et Auteur Apex
Puisque ce didacticiel s'appuie sur le langage Apex, assurez-vous de disposer des autorisations requises pour crer des
classes Apex.

Voir aussi :
tape 1 : Cration d'un contrleur
tape 2 : Ajout de mthodes au contrleur
tape 3 : Cration de la boutique
tape 4 : Bonus - Mise jour de la page avec AJAX
Rsum

tape 1 : Cration d'un contrleur


Au lieu d'utiliser le contrleur par dfaut, comme vous l'avez fait dans le didacticiel prcdent, vous allez crire vous-mme le
code du contrleur. Gnralement, les contrleurs rcuprent les donnes afficher dans une page Visualforce et contiennent
un code qui est excut en rponse des actions de page, par exemple un clic sur un bouton.

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 69

Votre boutique rudimentaire va inclure deux mthodes : getProducts(), qui renvoie les produits affichs dans votre boutique,
et shop(), qui s'excute lorsque les produits ont t slectionns.
Pour crer une classe dans l'interface Web :
1. Cliquez sur Configuration Dvelopper Classes Apex.
2. Cliquez sur Nouveau.
3. Ajoutez le code suivant comme dfinition de la classe, puis cliquez sur Enregistrement rapide.
public class Boutique {
}

Pour crer la classe dans l'IDE Force.com :


1. Dans l'IDE, cliquez avec le bouton droit sur le dossier du projet, puis slectionnez New Apex Class.
2. Dans la page Create Apex Class, saisissez Boutique pour la nommer.
3. Cliquez sur Finish.
Vous disposez dsormais d'une classe rudimentaire pour votre contrleur. Elle ne comprend ni mthode ni champ, vous les
ajouterez l'tape suivante.

Voir aussi :
Didacticiel n 9 : Cration d'une boutique
tape 2 : Ajout de mthodes au contrleur

tape 2 : Ajout de mthodes au contrleur


l'tape prcdente, vous avez cr un contrleur personnalis. Vous allez maintenant lui ajouter des mthodes. Pour commencer,
vous allez ajouter la mthode shop(). Cette mthode n'a aucun effet pour le moment, mais elle sera utile comme espace
rserv pour l'action excute lors d'un clic sur le bouton Boutique. Vous souhaitez galement que la boutique affiche des
articles, avec un dcompte, pour permettre l'utilisateur final de slectionner une quantit pour chaque article qu'il souhaite
acheter.
1. Ajoutez le code suivant la classe (juste aprs la ligne public class Boutique {).
public PageReference shop() { return null; }

2. Dans la classe actuelle ( la ligne suivante), dfinissez un champ qui contient une liste de DisplayMerchandise, ainsi
qu'une classe interne appele DisplayMerchandise pour contenir les donnes.
DisplayMerchandise[] products; public class DisplayMerchandise { public Article__c
merchandise { get; set; } public Decimal count { get; set; } public
DisplayMerchandise(Article__c item) { this.merchandise = item; } }

3. la ligne suivante, dfinissez la mthode getProducts(), qui va initialiser les produits.


public DisplayMerchandise[] getProducts() { if (products == null) { products = new
DisplayMerchandise[]{}; for (Article__c item : [SELECT id, name, description__c, prix__c

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 70

FROM Article__c WHERE Inventaire_total__c > 0]) { products.add(new


DisplayMerchandise(item)); } } return products; }

4. Vrifiez que votre code se prsente comme indiqu ci-dessous, puis cliquez sur Enregistrer.
public class Boutique { public PageReference shop() { return null; }
DisplayMerchandise[] products;
public class DisplayMerchandise { public Article__c merchandise { get; set; } public
Decimal count { get; set; } public DisplayMerchandise(Article__c item) { this.merchandise
= item; } }
public DisplayMerchandise[] getProducts() { if (products == null) { products = new
DisplayMerchandise[]{}; for (Article__c item : [SELECT id, name, description__c, prix__c
FROM Article__c WHERE Inventaire_total__c > 0]) { products.add(new
DisplayMerchandise(item)); } } return products; } }

Vous avez dsormais termin la dfinition d'un simple contrleur. Il utilise des classes et des mthodes Apex standard pour
accder la base de donnes.

En savoir plus
La classe DisplayMerchandise enveloppe le type Article que vous avez dj dans la base de donnes, en ajoutant un
nouveau champ dcimal. Le constructeur vous permet de crer une instance DisplayMerchandise en passant un
enregistrement Article existant. La variable d'instance products est dfinie en tant que liste d'instances DisplayMerchandise.
La mthode getProducts() excute une requte (le texte entre crochets, galement appele requte SOQL) qui renvoie
tous les enregistrements Articles dont l'inventaire total est positif. Elle itre ensuite sur les enregistrements renvoys par la
requte, en les ajoutant une liste de produits DisplayMerchandise qui est ensuite renvoye.

Voir aussi :
Didacticiel n 9 : Cration d'une boutique
tape 1 : Cration d'un contrleur
tape 3 : Cration de la boutique

tape 3 : Cration de la boutique


Votre boutique utilise une autre page Visualforce, vous allez la crer maintenant.
1. Dans la barre d'adresse de votre navigateur, ajoutez /apex/Boutique la fin de votre instance. Par exemple :
https://na1.salesforcecom/apex/Boutique. Un message d'erreur que vous connaissez s'affiche.
2. Cliquez sur le lien Create Page Boutique.
3. Cliquez sur l'onglet Page Editor en bas de la fentre.
4. Remplacez le texte de l'diteur par le code suivant :
<apex:page standardStylesheets="false" showHeader="false" sidebar="false"
controller="Boutique" > <apex:stylesheet value="{!URLFOR($Resource.styles,
'styles.css')}"/> <h1>Boutique</h1> <apex:form>
</apex:form> </apex:page>

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 71

Remarque: L'attribut controller="Boutique" indique la page Visualforce que vous crez d'utiliser la classe
Apex Boutique pour son contrleur.
5. Vous tes prt insrer le contenu du formulaire entre les balises form ouvrante et fermante. Vous allez crer un tableau
qui itre sur les produits et un bouton qui appelle la mthode shop. Saisissez le code ci-dessous la ligne suivante, entre
les balises form ouvrante et fermante :
<apex:dataTable value="{!products}" var="pitem" rowClasses="odd,even"> <apex:column
headerValue="Produit"> <apex:outputText value="{!pitem.merchandise.name}"/> </apex:column>
<apex:column headerValue="Prix"> <apex:outputText value="{!pitem.merchandise.prix__c}"/>
</apex:column> <apex:column headerValue="Quantit"> <apex:inputText
value="{!pitem.count}"/> </apex:column> </apex:dataTable> <br /> <apex:commandButton
action="{!shop}" value="Acheter" />

6. Cliquez sur Enregistrer. Votre Boutique doit se prsenter comme dans l'illustration ci-dessous.

En savoir plus
Nous avons utilis ici de nombreux lments. Examinons-les plus en dtails.

L'attribut de valeur dataTable est dfini sur products , qui indique que le tableau doit itrer sur une liste appele
products. Puisque vous utilisez un contrleur personnalis, Visualforce recherche automatiquement une mthode appele
getProducts() dans votre contrleur Apex.
La mthode getProducts() de votre contrleur renvoie une grappe d'objets DisplayMerchandise. Chaque grappe
forme une nouvelle ligne et est attribue la variable pitem de la page Visualforce durant l'itration de dataTable.

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 72

La page Visualforce contient une action, {!shop}. Comme il s'agit d'une action, une mthode portant un nom identique
est utilise dans le contrleur Apex.

Voir aussi :
Didacticiel n 9 : Cration d'une boutique
tape 2 : Ajout de mthodes au contrleur
tape 4 : Bonus - Mise jour de la page avec AJAX

tape 4 : Bonus - Mise jour de la page avec AJAX


Cette tape est facultative. Elle montre comment Visualforce renvoie de faon transparente des donnes votre contrleur,
dans lesquelles elles peuvent tre traites. Par exemple, la mthode shop() que vous avez crite dans le contrleur a accs aux
quantits d'articles saisies par l'utilisateur final dans la page Visualforce. Cette tape prsente comment accder ces donnes
dans le contrleur. Vous allez simplement afficher de nouveau les donnes sur la page ( l'aide d'une mise jour de page AJAX
agrable). Dans un scnario rel, vous pouvez par exemple envoyer la commande par e-mail, appeler un service Web, ajouter
les articles un panier d'achat, et ainsi de suite.
1. Accdez votre page Visualforce en utilisant son URL, par exemple https://na1.salesforce.com/apex/Boutique.
2. Cliquez sur l'onglet Page Editor.
3. Modifiez votre page en ajoutant le code ci-dessous aprs la ligne </apex:form>.
<apex:outputPanel id="msg">{!message}</apex:outputPanel>

Vous venez de crer un volet de sortie identifi par msg, qui affiche un article partir du contrleur appel "message",
qui n'est pas encore cr.
4. Cliquez sur Enregistrer. L'diteur indique que vous n'avez aucune mthode ou proprit appele message et vous invite
en crer une.
5. Cliquez sur Crer une proprit Apex 'Boutique.message'.

6. Modifiez maintenant la balise commandButton pour inclure un attribut reRender.


<apex:commandButton action="{!shop}" reRender="msg" value="Acheter" />

Vous avez modifi la page Visualforce afin d'utiliser une mise jour AJAX existante. Elle met jour le volet identifi par "msg"
aprs avoir appel la mthode shop() du contrleur. Modifiez maintenant la mthode shop() afin de mettre jour la
proprit du message affiche dans le volet avec une liste d'lments slectionns.
1. Cliquez sur l'onglet Contrleur en regard de l'onglet Page Editor.
2. Recherchez la mthode shop() (lignes 4 6) et remplacez-la avec le code suivant :
public PageReference shop() { message = 'Vous avez achet : '; for (DisplayMerchandise
p: products) { if (p.count > 0) { message += p.merchandise.name + ' (' + p.count + ')
'; } } return null; }

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 73

Remarque: Notez que ce code utilise simplement la variable products. Visualforce s'assure automatiquement
que les donnes modifies dans l'interface utilisateur sont refltes par les donnes de la variable products.
3. Cliquez sur l'icne Enregistrer.
4. Testez maintenant le panier d'achat. Ajoutez une quantit un article, puis cliquez sur Acheter. Notez le champ de texte
qui s'affiche sous la liste des articles, indiquant la quantit de produits achets.

En savoir plus
Ce simple ajout prsente de nombreuses fonctionnalits puissantes.

Comme vous l'avez vu dans cette tape, Visualforce a automatiquement reflt les modifications apportes aux donnes
du formulaire dans la variable products. Cette fonctionnalit est trs puissante et permet d'laborer rapidement des formulaires
et d'autres pages de saisie complexes.
Lorsque vous cliquez sur le bouton Acheter, le volet est mis jour sans actualisation complte de l'cran. L'effet AJAX,
qui ncessite gnralement une manipulation JavaScript complexe, a t ralis avec un simple attribut reRender.

Voir aussi :
Didacticiel n 9 : Cration d'une boutique
tape 3 : Cration de la boutique
Rsum

Rsum
Apex est un langage puissant de programmation oriente objet, qui comprend de nombreuses fonctionnalits habituellement
disponibles dans des langages similaires tels que Java. Dans ce didacticiel, vous avez cr une classe Apex et utilis quelques
fonctionnalits du langage, telles que les grappes, l'itration et l'interrogation de la base de donnes. Si vous avez effectu
l'tape bonus, vous avez modifi la page Visualforce pour utiliser les donnes renvoyes au contrleur afin d'afficher un message
en utilisant une mise jour AJAX, sans actualisation de la page entire.
Vous pouvez ensuite crer un portail authentifi pour permettre aux personnes de se connecter votre site, de crer un nom
d'utilisateur et un mot de passe, et d'acheter des articles. Pour cela, vous devez crer un portail, que nous ne prsentons pas
dans ce manuel. Nous avons toutefois inclus des tapes dtailles pour prsenter la cration d'un portail fonctionnant avec la
sous-application que vous avez cre. Visitez la page developer.force.com/workbook pour consulter le didacticiel consacr au
portail et d'autres complments ce manuel.

Manuel d'utilisation Force.com | Didacticiel n 9 : Cration d'une boutique | 74

Vous pouvez galement distribuer votre sous-application en l'intgrant un package publier ou en la dployant dans une
organisation de production. Pour plus d'informations, reportez-vous Distribution de votre application la page 91.

Voir aussi :
Didacticiel n 9 : Cration d'une boutique
tape 4 : Bonus - Mise jour de la page avec AJAX

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 75

Didacticiel n 10 : Cration d'une sous-application de


bureau avec Adobe Flash Builder for Force.com.
Niveau : Avanc ; Dure : 30 minutes

Adobe Flash Builder for Force.com est un ensemble d'outils qui permet de dvelopper des sous-applications Force.com Stratus,
applications de bureau fonctionnant sous l'environnement Adobe Integrated Runtime (AIR), qui exploitent la logique et les
capacits de base de donnes Force.com. Les sous-applications Force.com Stratus peuvent fonctionner en ligne et hors ligne.
Elles sont par consquent idales pour les utilisateurs qui ne disposent pas toujours d'une connexion Internet, mais qui doivent
accder aux donnes de vos sous-applications Force.com.
Ce didacticiel montre comment utiliser Adobe Flash Builder for Force.com afin de crer une sous-application Force.com
Stratus de base appele Suivi inventaire, qui fournit un accs hors ligne aux donnes des articles. La sous-application doit
permettre aux responsables d'effectuer un suivi d'inventaire sur des Tablet PC lorsqu'ils se dplacent dans un entrept quip
d'une connexion Wi-Fi irrgulire. Elle inclura les fonctionnalits de sous-application Force.com Stratus standard ci-dessous.

Un cran de connexion qui demande aux utilisateurs leurs identifiants et tablit une connexion avec Force.com lorsqu'ils
sont en ligne.
Une interface de rsolution des conflits permettant aux utilisateurs de grer aisment les conflits qui se produisent lorsque
les valeurs de la sous-application Force.com Stratus violent les rgles de validation ou sont en conflit avec les modifications
effectues par d'autres utilisateurs.
Une barre d'tat qui informe les utilisateurs de la connexion Internet de la sous-application Force.com Stratus et indique
le nombre de conflits de donnes et d'erreurs non rsolus.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 76

Pour crer la sous-application, nous allons utiliser les technologies Adobe Flash, telles que MXML et les composants
ActionScript, avec les classes Force.com Stratus gnres par Adobe Flash Builder for Force.com. Il n'est cependant pas
ncessaire de connatre MXML et ActionScript pour crer la sous-application Inventaire Stratus. Ce didacticiel contient le
code dont vous avez besoin pour crer et utiliser votre premire sous-application Force.com Stratus.
ATTENTION: Adobe Flash Builder for Force.com est actuellement disponible uniquement dans les organisations
Developer Edition en tant qu'aperu pour dveloppeur. Les fonctionnalits peuvent changer profondment avant sa
disponibilit complte. Dans l'aperu du dveloppeur, n'utilisez pas Adobe Flash Builder for Force.com pour crer des
sous-applications destines des environnements de production.

Voir aussi :
tape 1 : Configuration des informations personnelles Salesforce.com
tape 2 : Cration d'une Configuration de porte-documents hors-ligne
tape 3 : Gnration de votre WDSL Entreprise et tlchargement d'un certificat client
tape 4 : Installation et lancement de Adobe Flash Builder for Force.com
tape 5 : Cration d'un projet Force.com Stratus
tape 6 : Dfinition des attributs du composant Stratus Application
tape 7 : Cration d'un composant Window Suivi Inventaire
tape 8 : Test de la sous-application Suivi Inventaire
Rsum

tape 1 : Configuration des informations personnelles Salesforce.com


Les sous-applications Force.com Stratus exploitent la technologie de Connect Offline dans Force.com. Pour dvelopper ou
utiliser une sous-application Force.com Stratus, vous devez slectionner l'option Utilisateur hors ligne dans vos
informations personnelles Salesforce.com.
1. Dans Salesforce.com, accdez Configuration Gestion des utilisateurs Utilisateurs.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 77

2. Cliquez sur Modifier en regard de votre nom.


3. Activez la case Utilisateur hors ligne.

4. Cliquez sur Enregistrer.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 2 : Cration d'une Configuration de porte-documents hors-ligne

tape 2 : Cration d'une Configuration de porte-documents hors-ligne


Votre sous-application de bureau Force.com accde uniquement aux donnes Force.com spcifies dans la configuration de
porte-documents hors-ligne qui vous a t attribue dans Salesforce.com. La sous-application Suivi Inventaire doit accder
aux donnes des articles. Par consquent, vous devez crer une configuration de porte-documents hors-ligne qui inclut l'objet
Article.
1. Dans Salesforce.com, cliquez sur Configuration Administration d'ordinateur de bureau Configurations des
porte-documents hors-ligne.
2. Cliquez sur Nouvelle configuration du porte-documents hors connexion.
3. Saisissez un nom pour votre configuration du porte-documents hors ligne, tel que Donnes de la sous-application
Suivi Inventaire.
4. Slectionnez la case Actif.
5. Slectionnez votre nom dans la liste Membres disponibles, puis cliquez sur Ajouter pour le dplacer vers la liste
Membres attribus.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 78

6. Cliquez sur Enregistrer. La page de dtails Configuration des porte-documents hors-ligne s'affiche.
7. Cliquez sur Modifier dans la liste associe Ensembles de donnes.
8. Cliquez sur Ajouter.
9. Slectionnez Article, puis cliquez sur OK.
10. Slectionnez Nom de l'article dans la liste de slection Organiser par.

11. Cliquez sur Termin.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 79

En savoir plus
Les configurations de porte-documents hors-ligne sont des ensembles de paramtres qui dterminent les enregistrements
disponibles dans les sous-applications Force.com Stratus et dans Connect Offline Force.com. Connect Offline est une application
cliente qui permet d'accder un sous-ensemble de donnes Force.com l'aide de la mme interface de navigateur que le
systme en ligne, mais sans connexion Internet. Connect Offline permet d'afficher, de modifier, de crer et de supprimer des
comptes, des activits, des contacts, des opportunits, des pistes et des enregistrements d'objet personnalis (groupes de relations
incluses). Vous pouvez galement ajouter et mettre jour des produits et des planifications dans les opportunits.
Vous pouvez crer plusieurs configurations de porte-documents et associer chacune d'elles un utilisateur et un profil
spcifique afin de rpondre simultanment aux besoins de diffrents types d'utilisateurs hors ligne. Par exemple, une configuration
peut inclure des pistes et des opportunits pour les commerciaux, et une autre inclure des comptes et les opportunits associes
pour les responsables de compte.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 1 : Configuration des informations personnelles Salesforce.com
tape 3 : Gnration de votre WDSL Entreprise et tlchargement d'un certificat client

tape 3 : Gnration de votre WDSL Entreprise et tlchargement d'un


certificat client
Les services Web sont des formes d'intgration courantes et Force.com fournit un ensemble puissant de fonctionnalits qui
prennent en charge les appels de services Web entrants et sortants. Force.com gnre galement automatiquement un point
de terminaison de service Web qui permet d'accder aux donnes de votre application. WSDL Entreprise fait rfrence au
langage de dfinition de services Web, qui dcrit vos objets Force.com. Il correspond gnralement tout lment requis lors
de l'intgration un autre systme, car il dcrit tous les objets et le service Web.
Adobe Flash Builder for Force.com permet d'importer votre WSDL Entreprise dans des projets de dveloppement. Lors de
l'importation de votre WSDL, Adobe Flash Builder for Force.com gnre des classes ActionScript pour chaque objet de votre
WSDL Entreprise, ce qui permet de rfrencer des objets Force.com dans votre code ActionScript.
Nous allons importer plus tard notre WDSL Entreprise dans notre projet de dveloppement afin de crer une classe pour
l'objet Article. Pour le moment, enregistrez une copie locale de votre WDSL Entreprise actuel. Tlchargez galement un
certificat client Salesforce.com, qui autorise les applications clientes accder Force.com.
1.
2.
3.
4.
5.

Dans Salesforce.com, cliquez sur Configuration Dvelopper API.


Cliquez sur Gnrer WDSL Entreprise.
Dans votre navigateur, cliquez sur Fichier Enregistrer sous.
Nommez le fichier entreprise.wsdl, puis cliquez sur Enregistrer.
Cliquez sur Gnrer Certificat client pour gnrer et enregistrer le certificat client pour votre ordinateur.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 2 : Cration d'une Configuration de porte-documents hors-ligne
tape 4 : Installation et lancement de Adobe Flash Builder for Force.com

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 80

tape 4 : Installation et lancement de Adobe Flash Builder for Force.com


Adobe Flash Builder for Force.com s'installe en tant que version autonome d'Adobe Flash Builder, l'environnement de
dveloppement intgr d'Adobe (IDE) bas sur la plate-forme Eclipse.
1.
2.
3.
4.

Tlchargez le fichier zip Adobe Flash Builder for Force.com depuis le site developer.force.com/flashbuilder.
Dcompressez le contenu du fichier zip.
Double-cliquez sur le programme d'installation.
Une fois l'installation termine double-cliquez sur le raccourci Adobe Flash Builder for Force.com de votre Bureau.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 3 : Gnration de votre WDSL Entreprise et tlchargement d'un certificat client
tape 5 : Cration d'un projet Force.com Stratus

tape 5 : Cration d'un projet Force.com Stratus


Une fois Adobe Flash Builder for Force.com install, un nouveau type de projet, appel Force.com Stratus Project est disponible
dans Flash Builder. Les projets Force.com Stratus permettent d'importer votre WSDL Entreprise et de gnrer automatiquement
des classes ActionScript pour vos objets Salesforce.com. Flash Builder fournit galement des conseils de code et des avertissements
du compilateur bass sur votre WSDL.
1. Dans Flash Builder, slectionnez Fichier Nouveau projet. L'assistant Nouveau projet s'ouvre.
2. Slectionnez Force.com Stratus Project dans le dossier Flash Builder, puis cliquez sur Suivant.

3. Saisissez Suivi inventaire dans Nom du projet, puis slectionnez Application de bureau (excution dans
Adobe AIR).
4. Cliquez sur Suivant.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 81

5. Acceptez les paramtres par dfaut pour le dossier de sortie, puis cliquez sur Suivant.
6. Saisissez com.salesforce.SuiviInventaire dans le champ ID d'application. L'environnement d'excution
AIR et le systme d'exploitation identifient l'application. Pour garantir un ID d'application unique, utilisez la notation
inverse du nom de domaine.
7. Cliquez sur Terminer pour continuer.

8. Slectionnez votre WSDL Entreprise, puis cliquez sur Suivant.


Une fois le projet Force.com Stratus cr, l'arborescence suivante s'affiche dans l'Explorateur de pack de Flash Builder.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 82

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 4 : Installation et lancement de Adobe Flash Builder for Force.com
tape 6 : Dfinition des attributs du composant Stratus Application

tape 6 : Dfinition des attributs du composant Stratus Application


Chaque sous-application Force.com Stratus est contenue dans un composant Stratus Application. Le composant Stratus
Application connecte la sous-application Force.com Stratus Force.com, fournit la connexion Force.com et la fonctionnalit
d'authentification, et gre la synchronisation initiale des donnes entre Force.com et la sous-application Force.com Stratus.
Les projets Force.com Stratus ont un fichier main.mxml par dfaut qui contient un modle Stratus Application que vous
pouvez modifier pour votre sous-application Suivi Inventaire. Modifiez les attributs de l'lment
stratus:StratusApplication dans ce fichier.
1. Ouvrez le fichier main.mxml situ dans src (package par dfaut) s'il n'est pas dj ouvert.
2. Dfinissez l'attribut stratusName sur Suivi Inventaire. Il contrle le nom qui s'affiche dans la barre de titre de
l'application.
3. Dfinissez l'attribut requiredTypes sur Article__c. Cet attribut dtermine les objets dans votre sous-application
Force.com que la sous-application Force.com Stratus rfrence.
4. Votre code final doit se prsenter comme suit :
<?xml version="1.0" encoding="utf-8"?> <stratus:StratusApplication
xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:stratus="com.salesforce.stratus.*"
stratusName="Suivi Inventaire" stratusClass="services.stratus.Stratus"
mainWindowClass="MainWindow" requiredTypes="Article__c" > </stratus:StratusApplication>

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 83

5. Enregistrez le fichier.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 5 : Cration d'un projet Force.com Stratus
tape 7 : Cration d'un composant Window Suivi Inventaire

tape 7 : Cration d'un composant Window Suivi Inventaire


L'interface utilisateur de Suivi Inventaire est compose de deux parties. La partie infrieure contient une liste d'enregistrements
d'articles. Lorsque vous slectionnez un enregistrement dans cette liste, ses dtails s'affichent dans la partie suprieure. Vous
pouvez cliquer sur les dtails d'un enregistrement pour les modifier. Un bouton Enregistrer, sous les dtails de l'enregistrement,
permet de valider ces modifications dans Force.com.
La logique de la fonctionnalit principale de la sous-application Suivi Inventaire repose sur ActionScript et MXML qui utilisent
deux ensembles de composants Adobe, Spark et Halo, ainsi que des composants Stratus. Les composants Stratus sont gnrs
par Adobe Flash Builder for Force.com. Ils simplifient le processus d'accs la logique et aux donnes Force.com dans votre
code.
Vous allez saisir la logique de l'application dans le composant par dfaut Window qui est gnr par Adobe Flash Builder for
Force.com lorsque vous crez un projet Force.com Stratus. Le composant par dfaut Window se trouve dans le fichier
MainWindow.mxml. Le code par dfaut est :
<?xml version="1.0" encoding="utf-8"?> <s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
xmlns:stratus="com.salesforce.stratus.*" showStatusBar="false" backgroundColor="#e7e7e7"
width="800" height="600" windowComplete="onWindowComplete()" >
<s:layout> <s:VerticalLayout/> </s:layout> <s:VGroup width="100%" height="100%"
paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"> <s:Label
text="Emplacement de votre contenu"/> </s:VGroup> <fx:Script> <![CDATA[ import
com.salesforce.stratus.StratusMessage; private function onWindowComplete():void {
}new StratusMessage(StratusMessage.STATUS_INFO, "Application initialise").showAsStatus();
// emplacement de votre code
}
]]> </fx:Script> <stratus:StatusBar/> </s:Window>

Le code par dfaut comprend :

Un composant Spark Window qui spcifie les espaces de noms, la couleur de l'arrire-plan et les dimensions de la
sous-application Force.com Stratus. Le composant comprend galement un attribut windowComplete qui dtermine la
fonction excute lorsqu'un utilisateur se connecte. L'attribut showStatusBar, qui dtermine si l'application restitue la
barre d'tat Flash Builder standard, est dfini sur false pour permettre l'application d'afficher la barre d'tat Stratus la
place.
Un composant Spark Layout qui organise les lments de mise en page selon leurs paramtres individuels.
Un composant Spark VerticalLayout qui organise les lments de mise en page dans une squence verticale, de haut
en bas, avec des espaces en option entre les lments et un remplissage en option autour de la squence d'lments.
Un composant Spark VGroup qui cre un regroupement vertical des lments de l'interface utilisateur.
Un composant Spark Label qui cre une tiquette pour le regroupement vertical.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 84

Un composant XML Script dans lequel vous pouvez saisir l'ActionScript. Ce composant contient l'ActionScript par
dfaut qui initialise les donnes lorsque la sous-application Force.com Stratus s'ouvre.
Un composant Stratus StatusBar qui restitue une barre d'tat en bas de la sous-application Force.com Stratus.

Modifiez le code par dfaut afin de mettre en oeuvre la logique de la sous-application Suivi Inventaire comme suit :
1. Supprimez le composant Label.
<s:Label text="Emplacement de votre contenu"/>

2. Dans le composant VGroup, ajoutez un composant Stratus FieldContainer. Les composants Stratus FieldContainer
regroupent les donnes et simplifient le processus de manipulation de plusieurs champs dans une seule opration. Le
composant FieldContainer que vous crez ici restitue galement les dtails de l'enregistrement slectionn en haut de
l'cran.
Dfinissez la largeur du composant FieldContainer sur 100% et saisissez l'ID _editFieldContainer. Vous allez
rfrencer l'ID FieldContainer plus loin dans le code.
<stratus:FieldContainer id="_editFieldContainer" width="100%"> </stratus:FieldContainer>

3. Dans le composant FieldContainer, ajoutez un composant LabelAndField pour chaque champ de l'objet Article
que vous souhaitez afficher, puis rfrencez chaque champ par son nom d'API Force.com interne. Un composant
LabelAndField est un composant Stratus qui restitue la valeur du champ Salesforce.com avec son tiquette. Les champs
que vous crez avec le composant FieldAndLabel fonctionnent automatiquement dans les sous-applications Force.com
Stratus de la mme faon que dans l'interface utilisateur Salesforce.com. Par exemple, les champs de date affichent un
calendrier sur un simple clic. Les champs respectent galement les dpendances de champ et fournissent automatiquement
l'dition en ligne, les dtails de survol, les notifications d'erreur ainsi que le texte d'aide de l'icne Info.
<stratus:LabelAndField field="Article__c.Name" /> <stratus:LabelAndField
field="Article__c.Description__c" /> <stratus:LabelAndField field="Article__c.Prix__c"
/> <stratus:LabelAndField field="Article__c.Inventory_total__c" />

4. Une fois les composants LabelAndField ajouts, assurez-vous d'insrer l'lment fermant FieldContainer si vous ne
l'avez pas dj fait.
</stratus:FieldContainer>

5. Ajoutez ensuite un bouton Spark standard, tiquetez-le Enregistrer et configurez-le pour excuter une fonction appele
onEditSaveClick. que vous allez crire plus loin.
<s:Button label="Enregistrer" click="onEditSaveClick()"/>

6. Sous le bouton Enregistrer, dans l'interface utilisateur Suivi Inventaire, vous souhaitez restituer une liste d'enregistrements
d'articles. Vous utilisez pour cela un composant ActionScript DataGrid. Saisissez le code comme suit :
<mx:DataGrid id="_dataGrid" width="100%" height="100%" dataProvider="{_gridDataProvider}"
itemClick="onDataGridItemClick()"> <mx:columns> <mx:DataGridColumn dataField="Nom"/>
<mx:DataGridColumn dataField="Description__c" headerText="Description"/> <mx:DataGridColumn
dataField="Prix__c" headerText="Prix"/> <mx:DataGridColumn dataField="Inventaire_total__c"
headerText="Inventaire total"/> </mx:columns> </mx:DataGrid>

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 85

Notez que l'attribut dataProvider rfrence une variable que vous allez crer plus loin et l'attribut itemClick rfrence
une fonction que vous allez galement crer plus loin.
7. Le composant final dans l'lment VGroup est le composant Stratus StatusBar, qui fait partie du code par dfaut. Laissez
ce composant inchang et assurez-vous d'ajouter l'lment fermant VGroup.
<stratus:StatusBar/> </s:VGroup>

8. L'interface utilisateur de la sous-application Suivi Inventaire est en place. Vous devez toutefois ajouter l'ActionScript qui
rcupre les donnes Salesforce.com et les enregistre dans la sous-application Force.com Stratus. Commencez l'ActionScript
en important les classes dont vous avez besoin pour l'ActionScript dans la section <![CDATA[ de l'lment <fx:Script>.
Le code se prsente comme suit :
import mx.collections.ArrayCollection; import mx.data.IManaged; import
com.salesforce.stratus.StratusWrapper; import com.salesforce.stratus.StratusResponder;
import services.stratus.Article__c; import com.salesforce.stratus.StratusMessage;

Les classes sont les suivantes :

ArrayCollection : classe wrapper ActionScript qui expose une grappe en tant que collection accessible et qui peut

tre manipule.
IManaged : interface ActionScript qui fournit le contrat pour un objet gr.
StratusWrapper : composant Stratus qui enveloppe la fonctionnalit Data Management Service (DMS) d'Adobe,
un composant cl de la plate-forme Adobe AIR qui fournit un modle de gestion de la synchronisation des donnes
client-serveur.
StratusResponder : composant Stratus qui s'assure que les fonctions responder NULL ne gnrent aucun problme
interne.
Article__c : classe ActionScript de l'objet Article gnre par Adobe Flash Builder for Force.com.
StratusMessage : composant Stratus qui fournit des messages d'erreur et d'information contextuels et standard,
notamment lors de conflit de donnes.

9. Crez une variable qui contient les donnes d'articles. Le code utilisera cette variable pour afficher les donnes dans la liste.
[Bindable] private var _gridDataProvider:ArrayCollection = null;

10. Crez une variable que votre code peut utiliser pour accder la fonctionnalit DMS.
private var _stratusWrapper:StratusWrapper;

11. La fonction onWindowComplete() dans le code par dfaut interroge la base de donnes lors du chargement de l'application.
Modifiez cette fonction pour renvoyer de faon spcifique les donnes des articles. La fonction complte se prsente comme
suit :
public function onWindowComplete():void { new StratusMessage(StratusMessage.STATUS_INFO,
"Application initialise").showAsStatus(); _stratusWrapper = StratusWrapper.getInstance();
_stratusWrapper.query("select * from Article__c", new StratusResponder(
function(rows:ArrayCollection):void { _gridDataProvider = rows; }, null )); }

Vous avez rfrenc une fonction appele attribut WindowComplete dans l'lment Window au dbut de cette tape du
didacticiel.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 86

12. Crez une fonction nomme onEditSaveClick qui copie en mmoire, depuis l'interface utilisateur, les modifications
qu'un utilisateur effectue dans les donnes.
private function onEditSaveClick():void {
_editFieldContainer.fieldCollection.updateObject(new StratusResponder(commitToDB, null));
}

Cette fonctionnalit est dclenche par un utilisateur en cliquant sur le bouton Enregistrer. Cette fonction excute galement
une simple validation des donnes saisies par l'utilisateur. Si les donnes sont valides, la fonction appelle la fonction
commitToDB.
13. Crez la fonction commitToDB, qui valide les donnes dans la mmoire de la base de donnes et les efface du composant
FieldContainer.
private function commitToDB(managedObject:IManaged):void {
_stratusWrapper.save(managedObject, new StratusResponder(
function(result:StratusMessage):void { _editFieldContainer.fieldCollection.clear(); },
null )); }

14. Crez une fonction qui restitue les donnes FieldContainer dans la sous-application Force.com Stratus. Rfrencez le
composant FieldContainer avec l'ID que vous avez dfini plus haut (_editFieldContainer).
private function onDataGridItemClick():void { var merchandise:Article__c =
_dataGrid.selectedItem as Article__c;
_editFieldContainer.fieldCollection.render(merchandise); }

15. Enregistrez le fichier.


Votre code final doit se prsenter comme suit :
<?xml version="1.0" encoding="utf-8"?> <s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
xmlns:stratus="com.salesforce.stratus.*" showStatusBar="false" width="800" height="600"
backgroundColor="#e7e7e7" windowComplete="onWindowComplete()">
<s:layout> <s:VerticalLayout/> </s:layout>
<s:VGroup width="100%" height="100%" paddingBottom="10" paddingLeft="10" paddingRight="10"
paddingTop="10"> <stratus:FieldContainer id="_editFieldContainer" width="100%">
<stratus:LabelAndField field="Article__c.Name" /> <stratus:LabelAndField
field="Article__c.Description__c" /> <stratus:LabelAndField field="Article__c.Prix__c" />
<stratus:LabelAndField field="Article__c.Inventaire_total__c" /> </stratus:FieldContainer>
<s:Button label="Enregistrer" click="onEditSaveClick()"/> <mx:DataGrid id="_dataGrid"
width="100%" height="100%" dataProvider="{_gridDataProvider}"
itemClick="onDataGridItemClick()"> <mx:columns> <mx:DataGridColumn dataField="Nom"/>
<mx:DataGridColumn dataField="Description__c" headerText="Description"/> <mx:DataGridColumn
dataField="Prix__c" headerText="Prix"/> <mx:DataGridColumn dataField="Inventaire_total__c"
headerText="Inventaire total"/> </mx:columns> </mx:DataGrid> <stratus:StatusBar/> </s:VGroup>
<fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.data.IManaged;
import com.salesforce.stratus.StratusWrapper; import com.salesforce.stratus.StratusResponder;
import com.salesforce.stratus.StratusMessage; import services.stratus.Article__c;
[Bindable] private var _gridDataProvider:ArrayCollection = null; private var
_stratusWrapper:StratusWrapper;
public function onWindowComplete():void { new StratusMessage(StratusMessage.STATUS_INFO,
"Application initialise").showAsStatus(); _stratusWrapper = StratusWrapper.getInstance();
_stratusWrapper.query("select * from Article__c", new StratusResponder(
function(rows:ArrayCollection):void { _gridDataProvider = rows; }, null )); }

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 87

private function onEditSaveClick():void {


_editFieldContainer.fieldCollection.updateObject(new StratusResponder(commitToDB, null));
}
private function commitToDB(managedObject:IManaged):void {
_stratusWrapper.save(managedObject, new StratusResponder( function(result:StratusMessage):void
{ _editFieldContainer.fieldCollection.clear(); }, null )); }
private function onDataGridItemClick():void { var merchandise:Article__c =
_dataGrid.selectedItem as Article__c; _editFieldContainer.fieldCollection.render(merchandise);
} ]]> </fx:Script> </s:Window>

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 6 : Dfinition des attributs du composant Stratus Application
tape 8 : Test de la sous-application Suivi Inventaire

tape 8 : Test de la sous-application Suivi Inventaire


La sous-application Suivi Inventaire est prte et peut tre teste.
1. Assurez-vous de disposer d'une connexion Internet.
2. Dans Flash Builder, cliquez avec le bouton droit sur le projet Suivi Inventaire, puis slectionnez Excuter en tant que
Application de bureau. L'cran de connexion de la sous-application Suivi Inventaire s'affiche.

3. Dans l'cran de connexion, saisissez le nom d'utilisateur et le mot de passe de la sous-application Force.com, puis cliquez
sur Connexion. L'interface utilisateur Suivi Inventaire s'affiche.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 88

4. Slectionnez un enregistrement dans la liste et modifiez ses donnes, puis cliquez sur Enregistrer.
5. Connectez-vous la sous-application Force.com et vrifiez que vos modifications sont affiches.
6. Pour tester les capacits de rsolution des conflits de donnes, modifiez un champ dans votre sous-application Force.com,
cliquez sur Enregistrer, puis modifiez le mme champ dans la sous-application Suivi Inventaire en utilisant une valeur
diffrente. Lorsque vous cliquez sur Enregistrer dans la sous-application Suivi Inventaire, notez l'alerte de la barre d'tat
qui signale un conflit.

7. Cliquez sur Rsoudre dans la barre d'tat pour lancer l'interface de rsolution des conflits.

Manuel d'utilisation Force.com | Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com. | 89

L'interface de rsolution des conflits permet de visualiser les valeurs dans Salesforce.com et dans la sous-application Suivi
Inventaire. Slectionnez la valeur que vous souhaitez conserver, puis cliquez sur Continuer vers le rcapitulatif.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 7 : Cration d'un composant Window Suivi Inventaire
Rsum

Rsum
Dans ce didacticiel, vous avez cr une sous-application Force.com Stratus qui permet aux utilisateurs de visualiser et de
modifier les donnes Force.com avec et sans connexion Internet. Ce didacticiel prsente les notions fondamentales de Adobe
Flash Builder for Force.com avec peu de code. Vous pouvez videmment utiliser Adobe Flash Builder for Force.com pour
crer des sous-applications Force.com Stratus beaucoup plus puissantes afin d'optimiser l'interaction entre les utilisateurs et
vos sous-applications Force.com.

Voir aussi :
Didacticiel n 10 : Cration d'une sous-application de bureau avec Adobe Flash Builder for Force.com.
tape 8 : Test de la sous-application Suivi Inventaire

Manuel d'utilisation Force.com | Cration et connexion un environnement test sandbox | 90

Annexe
Cration et connexion un environnement test sandbox
Si vous utilisez la version Free Edition, vous devez effectuer l'ensemble du dveloppement dans un environnement test sandbox.
Pour crer cet environnement :
1.
2.
3.
4.
5.

Connectez-vous votre organisation Free Edition.


Cliquez sur Configuration Gestion des donnes Sandbox.
Cliquez sur Nouveau.
Saisissez un Nom, par exemple Dv.
Cliquez sur Lancer la copie.

La cration d'une copie d'organisation de production prend un peu de temps. Pour suivre la progression, actualisez votre
navigateur et observez le champ Statut. Si vous ne souhaitez pas attendre, poursuivez vos activits et nous vous enverrons
un e-mail une fois la copie termine.
Lorsque l'environnement test sandbox est disponible, connectez-vous comme suit :
1. Si vous tes pass une autre page durant la copie de l'environnement sandbox, cliquez sur Configuration Gestion des
donnes Sandbox.
2. En regard de l'environnement sandbox, cliquez sur Connexion.
3. Votre navigateur ouvre une page de connexion. Saisissez votre mot de passe, puis cliquez sur Connexion.

En savoir plus
Une fois connect, notez que le champ Nom d'utilisateur est diffrent de votre nom d'utilisateur habituel. Force.com
ajoute automatiquement votre nom sandbox pour vous permettre de vous connecter plusieurs environnements test sandbox.
Notez galement que l'URL dans la barre d'adresse de votre navigateur a chang. Chaque environnement test sandbox possde
sa propre instance, qui est diffrente de celle utilise par votre organisation habituelle.

Cration d'un projet dans l'IDE Force.com


Pour crer un projet dans l'IDE Force.com :
1. Slectionnez File New Force.com Project.
2. Saisissez les identifiants de votre organisation.
a. Saisissez le nom d'un projet. Une organisation peut avoir plusieurs noms de projet. Il est prfrable d'identifier chaque
projet avec un nom explicite. Appelez notre projet Manuel utilisation.
b. Saisissez le nom d'utilisateur permettant de se connecter en tant qu'administrateur. Il se prsente sous la forme d'une
adresse de messagerie.
c. Saisissez votre mot de passe.
d. Si vous utilisez un environnement test sandbox pour vos activits de dveloppement, slectionnez Sandbox dans la
liste droulante du champ Environnement.
e. Cliquez sur Suivant.

Manuel d'utilisation Force.com | Distribution de votre application | 91

Remarque: Si vous obtenez une erreur LOGIN_MUST_USE_SECURITY_TOKEN, cela signifie que votre
adresse IP actuelle n'est pas reconnue dans une plage rseau de confiance. Vous devez rinitialiser votre jeton de
scurit. Dans l'interface utilisateur de Salesforce.com, cliquez sur Configuration Mes informations personnelles
Rinitialiser mon jeton de scurit, puis suivez les instructions affiches.
3. Dans la page Project Content, cliquez sur Finish pour rcuprer les composants Apex et Visualforce.

Distribution de votre application


Votre application tant termine, nous allons vous prsenter diffrentes mthodes de distribution. Si vous dveloppez cette
application pour l'installer dans plusieurs organisations, vous pouvez l'intgrer un package. Si vous la dveloppez pour l'installer
dans une seule organisation, vous pouvez la dployer.

propos des packages


Les packages correspondent des porte-documents qui contiennent vos composants, votre code ou vos applications. Il permettent
de publier une application dans plusieurs organisations. La plate-forme Force.com offre deux types de packages, non grs et
grs :

Les packages non grs permettent de distribuer des copies de composants intgrs, qui comprennent l'ensemble du code
source. Ces packages sont gnralement gratuits, sans option de mise niveau. Une fois le package non gr install dans
une autre organisation, en tant qu'diteur, vous n'avez aucun contrle sur l'utilisation des composants intgrs.
Les packages grs permettent de distribuer des copies de composants intgrs en gardant le contrle de la proprit
intellectuelle et des licences. Vous pouvez galement distribuer aisment des mises niveau pour les clients qui ont install
d'anciennes versions de l'application. Les packages grs sont plus efficaces pour distribuer des applications dans Force.com
AppExchange.

Pour plus d'informations sur les packages, reportez-vous Prsentation des packages dans l'aide en ligne de Force.com.

propos du dploiement
Pour dployer votre code dans une organisation de production dont vous possdez les identifiants de connexion, vous disposez
des deux options suivantes :

Si vous matrisez l'interface ligne de commande, utilisez l'Outil de migration Force.com pour le dploiement. Pour plus
d'informations, reportez-vous au guide wiki.developerforce.com/index.php/Migration_Tool_Guide.

Manuel d'utilisation Force.com | Distribution de votre application | 92

Si vous prfrez une interface graphique, utilisez l'IDE Force.com. Pour plus d'informations, reportez-vous la page
wiki.developerforce.com/index.php/Force.com_IDE.

Vous aimerez peut-être aussi