Skip to main content

Défi

Manipuler des données de l’application

Scénario

Afin de s’assurer que seuls les services fournis sont facturés aux clients, le responsable du programme souhaite que l’application affiche la liste des services exécutés par le fournisseur de services. La liste doit comporter les informations suivantes :

  • Nom du service exécuté
  • Coût unitaire du service
  • Nombre de fois où le service a été exécuté
  • Coût total de chaque service
  • Coût total des services exécutés

Dans le flux Perform service, configurez le data transform CopySelectedServices afin de copier les services fournis du dossier Service vers le dossier Assistance request.

Le diagramme suivant affiche les relations du type Embedded data de Selected services dans le type de dossier Assistance Request, et la relation de données Services dans le type de dossier Service avec le type de données Services offered.

entity relationship diagram services offered

Vous trouverez dans le tableau suivant les identifiants dont vous avez besoin pour relever le défi :

Rôle Nom d’utilisateur Mot de passe
Développeur d’applications [email protected] pega123!
Note: Votre environnement de travail est susceptible de prendre en charge la réalisation de plusieurs défis. Par conséquent, la configuration montrée dans la vidéo de présentation du défi peut ne pas correspondre exactement à votre environnement.

Présentation du défi

Vous devez initier votre votre propre instance Pega pour compléter ce Défi.

L'initialisation peut prendre jusqu'à 5 minutes, donc soyez patient.

Détail des tâches

1 Configurer l’étape Review service summary

  1. Dans le volet de navigation d’App Studio, cliquez sur Case types > Assistance Request pour ouvrir le type de dossier (case type) Assistance request.
  2. Dans le type de dossier Assistance request, dans l’onglet Workflow, cliquez sur Review service summary pour ouvrir le volet des propriétés de l’étape.
  3. Dans le volet des propriétés de l’étape, à droite, cliquez sur Configure view pour afficher une boîte de dialogue.
  4. Dans la boîte de dialogue, cliquez sur Add field pour configurer un nouveau champ.
  5. Créez une relation de données à plusieurs enregistrements (multi-record data relationship) nommée Selected services. Dans la liste Type, sélectionnez Embedded data. Dans la liste Data object, sélectionnez Services offered. Cliquez sur le bouton d’option List of records pour définir une relation de données à plusieurs enregistrements. 
    selected-services
  6. Cliquez sur Submit & add another pour configurer un nouveau champ.
  7. Créez un champ de devise calculé (calculated currency field) nommé Invoiced total. Dans la liste Type, sélectionnez Currency.
  8. Développez la section Advanced, puis cochez la case This is a calculated field (read-only) .
  9. Dans la section Calculation, dans la liste déroulante Function, sélectionnez Sum of. Dans la liste déroulante Field, sélectionnez Line total.
  10. Cliquez sur Submit.
    Invoiced total field configuration
  11. Dans les Options pour les champs Description, Quantity, Service et Unit Cost, sélectionnez Read-only.
    Review service summary
  12. Cliquez sur Submit pour enregistrer les nouveaux champs et retourner à l’onglet Workflow du cycle de vie du dossier.
  13. Cliquez sur Save pour enregistrer vos modifications dans le cycle de vie du dossier.

2 Configurer le data transform CopySelectedServices

  1. Dans le volet de navigation d’App Studio, cliquez sur Case types > Service pour ouvrir le type de dossier Service.
  2. Dans le processus Perform service, cliquez sur Configure Process.
  3. Cliquez sur Open process in Dev Studio pour ouvrir la règle de flux Perform service dans le canevas de flux.
    Tip: Autrement, dans Dev Studio, dans l’App Explorer, développez Service > Process > Flow et cliquez sur PerformService pour ouvrir la règle de flux Perform service.
  4. Dans le canevas de flux, faites un clic droit sur le connecteur Select services, puis sélectionnez View Properties pour afficher la boîte de dialogue Connector properties.
     
    Select services connector View properties
  5. Dans la boîte de dialogue Connector properties, dans la zone Set properties, sélectionnez Apply data transform pour ajouter un data transform au connecteur.
  6. Dans le champ Data transform, saisissez CopySelectedServices pour nommer le data transform. 
    connector properties CopySelectedServices data transform
  7. À droite du champ Data transform, cliquez sur l’icône Open pour ouvrir l’onglet Create Data Transform.
  8. Dans l’onglet Create Data Transform, cliquez sur Create and open pour afficher un nouvel enregistrement data transform.
  9. Dans l’onglet Definition de l’enregistrement Data transform, configurez le data transform CopySelectedServices.
    1. Sur l’enregistrement data transform, dans la liste Action, sélectionnez For Each Page In pour effectuer des itérations sur les éléments d’une liste. Une deuxième ligne plus en retrait, nommée 1.1, s’affiche sur l’enregistrement.
    2. À la ligne intitulée 1, dans le champ Target, entrez ou sélectionnez .Services pour répéter les éléments dans la liste Services.
    3. Dans la colonne Source, cochez la case Also use each page as source context afin d’utiliser la page Services comme contexte source pour résoudre les références de propriété.
    4. À la ligne intitulée 1.1, dans la liste Actions, sélectionnez When pour configurer la condition de sélection d’une ligne. Une troisième ligne plus en retrait, nommée 1.1.1, s’affiche sur l’enregistrement.
    5. À la ligne intitulée 1.1, dans le champ Target, saisissez .Quantity>0 pour ne sélectionner que les lignes avec une quantité supérieure à zéro.
    6. À la ligne intitulée 1.1.1, dans la liste Actions, sélectionnez Append to pour ajouter le contenu de la ligne sélectionnée à une autre liste.
    7. À la ligne intitulée 1.1.1, dans le champ Target, saisissez pyWorkCover.SelectedServices pour copier le contenu de la ligne sélectionnée dans la relation de données Selected Services du dossier parent Assistance request.
    8. À la ligne intitulée 1.1.1, dans la liste Relation, sélectionnez current source page pour copier le contenu de la ligne sélectionnée dans la relation de données Services du dossier Service. 
      data-transform
    9. Au niveau de l’enregistrement Data transform, cliquez sur l’onglet Pages & Classes pour définir la page pyWorkCover, afin que le data transform puisse résoudre la référence de propriété Selected services.
    10. Dans le champ Page name, saisissez pyWorkCover comme nom de la page à définir.
    11. Dans le champ Class, saisissez ou sélectionnez GoGo-GoGoRoad-Work-AssistanceRequest pour définir le contexte de la page pyWorkCover comme classe du type de dossier Assistance Request. 
      page-classes
    12. Cliquez sur Save pour compléter la configuration du data transform.
  10. Cliquez sur l’onglet PerformService pour retourner à l’enregistrement de flux Perform service.
  11. Dans la boîte de dialogue Connector properties, cliquez sur Submit pour terminer la configuration du connecteur Select services qui exécute le data transform CopySelectedServices.
  12. Cliquez sur Save pour terminer la configuration de l’enregistrement de flux Perform service.

3 Définir les valeurs de propriété par défaut pour la quantité de services

  1. À partir de l’App Explorer, développez Service > Data Model > Data Transform, puis cliquez sur pyDefault pour ouvrir le data transform pyDefault.
    Note: Si vous ne voyez pas pyDefault, actualisez l’App Explorer en cliquant sur Options > Refresh App Explorer.
  2. Dans l'onglet Pages & Classes, saisissez pyWorkCover dans le champ Page name et GoGo-GoGoRoad-Work-AssistanceRequest dans le champ Class.
    pagename
  3. Dans l'onglet Definition, cliquez sur Add a row.
  4. Dans l'onglet Action, sélectionnez For Each Page In.
  5. Dans le champ Target, saisissez ou sélectionnez .Services.
  6. Cochez la case Also use each page as source context.
  7. Dans le champ Action de l'étape enfant, sélectionnez Set.
  8. Dans le champ Target, saisissez ou sélectionnez .Quantity.
  9. Dans le champ Source, saisissez 0.
    pydefault-2
  10. Cliquez sur Save pour enregistrer vos modifications dans la nouvelle version de pyDefault.

Vérifier votre travail

  1. Cliquez sur Create > New > Assistance Request
  2. Dans le formulaire Enter customer information, sélectionnez [email protected] comme Account ID.
  3. Faites avancer le dossier pour accéder à la vue Select Services et confirmez les valeurs par défaut dans chaque champ où la ligne Quantity est à 0.
  4. Saisissez les quantités indiquées dans l'image ci-dessous et vérifiez que le coût total est de 210.00 $. 
    services-screen
  5. Cliquez sur Submit pour terminer la tâche Select services et clôturez le dossier Service. La vue Review service summary s’affiche.
  6. Dans la vue Review service summary, vérifiez que le tableau Selected services affiche bien les trois lignes remplies du dossier Service et que la valeur du champ Invoice total est 210,00 $.
    Note: Dans les conditions réelles, assurez-vous que la liste des services sélectionnés dans le dossier Assistance Request est en lecture seule et ne permet pas aux utilisateurs d’ajouter ou de supprimer des éléments. Vous pouvez supprimer les contrôles Add item et Delete en modifiant la règle de section qui affiche la liste. La modification d’une règle de section n’est pas abordée dans ce défi.
    reviewServices
Note: La première ligne de la liste est vide en raison de l’initialisation de la liste Selected services. Vous pouvez supprimer la première ligne vide en effaçant le .SelectedServices(1).pyLabel créé par défaut dans le data transform pySetFieldDefaults, qui ne fait pas partie du périmètre de ce défi.

Ce défi vise à appliquer ce que vous avez appris dans le Module suivant :


Disponible dans les missions suivantes :

If you are having problems with your training, please review the Pega Academy Support FAQs.

Did you find this content helpful?

100% found this content useful

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice