[SCSM] Système de gestion de main courante, le making-of partie 2 : Création d’un formulaire complet avec Visual Studio et l’authoring tool

Cet article est le second de la série sur la création d’un système de gestion de main courante.

Nous allons maintenant créer le formulaire qui permettra de n’afficher que les informations pertinentes au lieu d’un formulaire généré automatiquement qui affichera tout et n’importe quoi.

Nous allons faire cela en deux étapes :

  • Création d’un formulaire vide dans Visual Studio
  • Ajout des contrôles dans le formulaire dans l’authoring tool

Pour créer la base du formulaire nous allons donc passer par Visual Studio, il est en effet impossible de créer un formulaire neuf dans l’authoring tool qui contienne les onglets « historique » et « related items ». Quand à l’effacement complet d’un formulaire existant ce n’est pas une solution propre.

Commencez par télécharger mon template Visual Studio pour créer des formulaires de CI, même si nous sommes en train de faire un Work Item cela fonctionnera très bien moyennant quelques réglages : Custom Form Visual Studio Template

Etapes

Résultat

Copiez le contenu du zip dans \My Documents\Visual Studio Version\Templates\ProjectTemplates\Visual C#

Créez un nouveau projet dans Visual Studio, recherchez « scsm » et choisissez SCSM_CI_CustomForm_Template.

Nommez le projet SCSM.Daybook.Form

Commencez par faire disparaitre les erreurs en résolvant les références

Pour cela, copiez les DLL fournies dans le zip du Template dans le dossier de votre projet, supprimez les références existantes et recréez-les.

Quand les références sont recrées toutes les erreurs disparaissent.

Vous pouvez désormais ouvrir « CI_Form.xaml » et modifier le formulaire à votre guise.

L’onglet « history » génère une erreur, cela est normal n’en tenez pas compte.

Nous ajouterons les labels et autres champs textes dans l’authoring tool, par contre les « expanders » (la flèche qui permet de plier/déplier) des bouts de formulaire n’est pas disponible dans l’authoring tool, placez-les et configurez-les donc dans Visual Studio.

Pour vous faciliter la vie dans l’Authoring tool, enlevez les « empty labels » pour les remplacer par des « dockpanel » avec une hauteur de 200 comme dans l’exemple ci-après.

Nous allons adapter le formulaire à un Work Item. Pour cela utilisez F7 pour afficher le code behind du XAML.

Modifiez le constructeur de l’onglet Related Items :

_relatedItemsPane = new
RelatedItemsPane(new
WorkItemRelatedItemsConfiguration(« RelatedWorkItems », « RelatedWorkItemSource », « RelatedConfigItems », « RelatedKnowledgeArticles », « FileAttachments »));



Une fois les modifications faites, générez le projet, récupérez votre dll et copiez-la sur votre machine avec l’authoring tool.

Reprenez votre management pack dans l’authoring tool.

Faites un clic droit sur « Forms » puis cliquez sur « Add Custom ».

Choisissez la classe de base « DayBook ».

Donnez un nom à votre formulaire, choisissez la DLL que vous venez de générer et le type custom_CI.

Nous retrouvons maintenant notre formulaire.

Modifiez les dockPanel afin de mettre leurs paramètres de hauteur et largeur sur « Auto »

Afin d’assurer un placement cohérent (sic) des éléments commencez par placer un « panel » dans chaque « dock panel ».

Faites-leur prendre toute la place en les mettant en « stretch » avec une hauteur et largeur sur « Auto ».

Nous allons pouvoir y ajouter nos éléments. Je vous laisse faire la decouverte des joies de l’alignement et des marges.

Pour un placement simple n’utilisez que l’alignement vertical « top » et jouez sur les marges.

Si un champ doit prendre toute la largeur mettez-le en alignement horizontal « stretch » et en hauteur « Auto ».

Dès que vous êtes satisfait de votre formulaire enregistrez le management pack.

Nous allons faire une dernière modification dans le xml du management pack afin d’activer les menus de l’onglet « related items ».

Editez le xml et ajoutez les références suivantes :

<Reference Alias= »CoreKnowledge »>

<ID>System.Knowledge.Library</ID>

<Version>7.5.3079.0</Version>

<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>

</Reference>

<Reference Alias= »SupportingItem »>

<ID>System.SupportingItem.Library</ID>

<Version>7.5.3079.0</Version>

<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>

</Reference>


L’authoring tool à crée automatiquement un type de projection quand nous avons ajouté le user picker. Il nous faut le compléter pour activer les related items (faites attention aux aliases) :

<TypeProjections>

<TypeProjection ID= »scsm.daybook.form_TypeProjection » Accessibility= »Public » Type= »Daybook »>

<Component Path= »$Context/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemAssignedToUser’]$ » Alias= »ComponentAlias_5734be2d_ad42_48ca_90ee_2a97e7a7e45f » />

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemHasFileAttachment’]$ » Alias= »FileAttachments »>

<Component Path= »$Target/Path[Relationship=’SupportingItem!System.FileAttachmentAddedByUser’]$ » Alias= »FileAttachmentAddedBy » />

</Component>

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemRelatesToWorkItem’]$ » Alias= »RelatedWorkItems »>

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemAffectedUser’]$ » Alias= »RWIAffectedUser » />

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemAssignedToUser’]$ » Alias= »RWIAssignedUser » />

</Component>

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemRelatesToWorkItem’ SeedRole=’Target’]$ » Alias= »RelatedWorkItemSource »>

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemAssignedToUser’]$ » Alias= »RelatedWorkItemAssignedTo » />

</Component>

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemAboutConfigItem’]$ » Alias= »RelatedConfigItems » />

<Component Path= »$Target/Path[Relationship=’Alias_16471c3a_ec1d_489d_99de_307e45d140a6!System.WorkItemAboutConfigItem’ TypeConstraint=’CoreKnowledge!System.Knowledge.Article’]$ » Alias= »RelatedKnowledgeArticles » />

</TypeProjection>

</TypeProjections>


Enregistrez et scellez le Management Pack.

Choisissez le dossier ou sera créé le management pack scellé.

Choisissez votre clé de scellement.

Nous allons ensuite créer un bundle qui inclura le fichier mp et la dll.

Téléchargez le script new-mpbfile.ps1

Placez le script et les fichiers à packager dans le même dossier.

Lancez la commande « new-mpbfile.ps1 .\fichier.mp nomdupack final »

Importez le mpb dans SCSM

Une réflexion sur “[SCSM] Système de gestion de main courante, le making-of partie 2 : Création d’un formulaire complet avec Visual Studio et l’authoring tool

  1. Pingback: MicrosoftTouch

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s