Procédure pas à pas : ajout d'une page d'application à un workflow
Cette procédure pas à pas montre comment ajouter une page d’application qui affiche des données dérivées d’un workflow à un projet de workflow. Elle s’appuie sur le projet décrit dans la rubrique Procédure pas à pas : créer un workflow avec des formulaires d’association et d’initiation.
Cette procédure pas à pas décrit les tâches suivantes :
Ajout d’une page d’application ASPX à un projet de workflow SharePoint.
Obtention de données à partir du projet de workflow et manipulation de ces données.
Affichage des données dans une table sur la page de l’application.
Notes
Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.
Prérequis
Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :
Éditions prises en charge de Microsoft Windows et SharePoint.
Visual Studio.
Vous devez également terminer le projet dans la rubrique Procédure pas à pas : créer un workflow avec des formulaires d’association et d’initiation.
Modifier le code du workflow
Tout d’abord, ajoutez une ligne de code au workflow pour définir la valeur de la colonne Résultat sur le montant de la note de frais. Cette valeur est utilisée plus loin dans le calcul du résumé des notes de frais.
Pour définir la valeur de la colonne de résultat dans le workflow
Chargez le projet terminé à partir de la rubrique Procédure pas à pas : création d’un workflow avec des formulaires d’association et d’initiation dans Visual Studio.
Ouvrez le code pour Workflow1.cs ou Workflow1.vb (en fonction de votre langage de programmation).
En bas de la méthode
createTask1_MethodInvoking
, ajoutez le code suivant :
Créer une page d’application
Ensuite, ajoutez un formulaire ASPX au projet. Ce formulaire affiche les données obtenues à partir du projet de workflow de notes de frais. Pour ce faire, vous allez ajouter une page d’application. Une page d’application utilise la même page maître que les autres pages SharePoint, ce qui signifie qu’elle ressemblera à d’autres pages du site SharePoint.
Pour ajouter une page d’application au projet
Choisissez le projet ExpenseReport, puis, dans la barre de menus, Projet>Ajouter un nouvel élément.
Dans le volet Modèles, choisissez le modèle Page d’application, utilisez le nom par défaut de l’élément de projet (ApplicationPage1.aspx), puis choisissez le bouton Ajouter.
Dans le code XML d’ApplicationPage1.aspx, remplacez la section
PlaceHolderMain
par les éléments suivants :<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"> <asp:Label ID="Label1" runat="server" Font-Bold="True" Text="Expenses that exceeded allotted amount" Font-Size="Medium"></asp:Label> <br /> <asp:Table ID="Table1" runat="server"> </asp:Table> </asp:Content>
Ce code ajoute une table à la page avec un titre.
Ajoutez un titre à la page de l’application en remplaçant la section
PlaceHolderPageTitleInTitleArea
par les éléments suivants :<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" > Expense Report Summary </asp:Content>
Coder la page de l’application
Ensuite, ajoutez du code à la page de l’application de résumé des notes de frais. Lorsque vous ouvrez la page, le code analyse la liste des tâches dans SharePoint pour les dépenses qui ont dépassé la limite de dépense allouée. Le rapport répertorie chaque élément avec la somme des dépenses.
Pour coder la page d’application
Choisissez le nœud ApplicationPage1.aspx, puis, dans la barre de menus, Affichage>Code pour afficher le code derrière la page de l’application.
Remplacez les instructions using ou Import (selon votre langage de programmation) en haut de la classe par les éléments suivants :
Ajoutez le code suivant à la méthode
Page_Load
:try { // Reference the Tasks list on the SharePoint site. // Replace "TestServer" with a valid SharePoint server name. SPSite site = new SPSite("http://TestServer"); SPList list = site.AllWebs[0].Lists["Tasks"]; // string text = ""; int sum = 0; Table1.Rows.Clear(); // Add table headers. TableHeaderRow hr = new TableHeaderRow(); hr.BackColor = Color.LightBlue; TableHeaderCell hc1 = new TableHeaderCell(); TableHeaderCell hc2 = new TableHeaderCell(); hc1.Text = "Expense Report Name"; hc2.Text = "Amount Exceeded"; hr.Cells.Add(hc1); hr.Cells.Add(hc2); // Add the TableHeaderRow as the first item // in the Rows collection of the table. Table1.Rows.AddAt(0, hr); // Iterate through the tasks in the Task list and collect those // that have values in the "Related Content" and "Outcome" // fields - the fields written to when expense approval is // required. foreach (SPListItem item in list.Items) { string s_relContent = ""; string s_outcome = ""; try { // Task has the fields - treat as expense report. s_relContent = item.GetFormattedValue("Related Content"); s_outcome = item.GetFormattedValue("Outcome"); } catch { // Task does not have fields - skip it. continue; } if (!String.IsNullOrEmpty(s_relContent) && !String.IsNullOrEmpty(s_outcome)) { // Convert amount to an int and keep a running total. sum += Convert.ToInt32(s_outcome); TableCell relContent = new TableCell(); relContent.Text = s_relContent; TableCell outcome = new TableCell(); outcome.Text = "$" + s_outcome; TableRow dataRow2 = new TableRow(); dataRow2.Cells.Add(relContent); dataRow2.Cells.Add(outcome); Table1.Rows.Add(dataRow2); } } // Report the sum of the reports in the table footer. TableFooterRow tfr = new TableFooterRow(); tfr.BackColor = Color.LightGreen; // Create a TableCell object to contain the // text for the footer. TableCell ftc1 = new TableCell(); TableCell ftc2 = new TableCell(); ftc1.Text = "TOTAL: "; ftc2.Text = "$" + Convert.ToString(sum); // Add the TableCell object to the Cells // collection of the TableFooterRow. tfr.Cells.Add(ftc1); tfr.Cells.Add(ftc2); // Add the TableFooterRow to the Rows // collection of the table. Table1.Rows.Add(tfr); } catch (Exception errx) { System.Diagnostics.Debug.WriteLine("Error: " + errx.ToString()); }
Avertissement
Veillez à remplacer « TestServer » dans le code par le nom d’un serveur valide qui exécute SharePoint.
Tester la page d’application
Ensuite, déterminez si la page d’application affiche correctement les données de notes de frais.
Pour tester la page d’application
Choisissez la touche F5 pour exécuter et déployer le projet sur SharePoint.
Choisissez le bouton Accueil, puis choisissez le lien Documents partagés dans la barre QuickLaunch pour afficher la liste Documents partagés sur le site SharePoint.
Pour représenter les notes de frais de cet exemple, chargez de nouveaux documents dans la liste Documents en choisissant le lien Documents sous l’onglet LibraryTools en haut de la page, puis le bouton Charger un document dans le ruban de l’outil.
Une fois que vous avez chargé des documents, instanciez le workflow en choisissant le lien Bibliothèque sous l’onglet LibraryTools en haut de la page, puis en le bouton Paramètres de la bibliothèque dans le ruban de l’outil.
Dans la page Paramètres de la bibliothèque de documents, choisissez le lien Paramètres de workflow dans la section Autorisations et gestion.
Dans la page Paramètres du workflow, choisissez le lien Ajouter un workflow.
Dans la page Ajouter un workflow, choisissez le workflow ExpenseReport - Workflow1, entrez un nom pour le workflow, comme ExpenseTest, puis choisissez le bouton Suivant.
Le formulaire Association de workflow s’affiche. Utilisez-le pour signaler le montant de la limite de dépenses.
Dans le formulaire Association, entrez 1000 dans la zone Limite d’approbation automatique, puis choisissez le bouton Associer le workflow.
Choisissez le bouton Accueil pour revenir à la page d’accueil SharePoint.
Choisissez le lien Documents partagés dans la barre QuickLaunch.
Choisissez l’un des documents chargés pour afficher une flèche déroulante, sélectionnez-le, puis choisissez l’élément Workflows.
Choisissez l’image en regard d’ExpenseTest pour afficher le formulaire d’initiation du workflow.
Dans la zone de texte Dépense totale, entrez une valeur supérieure à 1 000, puis choisissez le bouton Démarrer le workflow.
Lorsqu’une dépense déclarée dépasse le montant des dépenses allouées, une tâche est ajoutée à la liste des tâches. Une colonne nommée ExpenseTest avec la valeur Terminé est également ajoutée à l’élément de note de frais dans la liste Documents partagés.
Répétez les étapes 11 à 13 avec d’autres documents de la liste Documents partagés. (Le nombre exact de documents n’est pas important.)
Affichez la page d’application de résumé des notes de frais en ouvrant l’URL suivante dans un navigateur web : http://SystemName/_layouts/ExpenseReport/ApplicationPage1.aspx.
La page récapitulative des notes de frais répertorie toutes les notes de frais qui ont dépassé le montant alloué, le montant du dépassement et le montant total de tous les rapports.
Contenu connexe
- Créer des pages d’application pour SharePoint.
- Créer des composants WebPart pour SharePoint.
- Créer des contrôles réutilisables pour des composants WebPart ou des pages d’application.
- Procédure pas à pas : créer un workflow avec des formulaires d’association et d’initiation
- Guide pratique pour créer une page d’application
- Développer des solutions SharePoint