L'exemple fourni ici montre une implémentation des CustomPages. Le besoin métier rencontré est le suivant : des techniciens prestant à l'extérieur de l'entreprise doivent disposer d'une liste d'actions indiquant les tâches à effectuer en clientèle. Ces utilisateurs ont parfois une connectivité limitée qui ne leur permet pas d'avoir une connexion internet à tout instant. Lorsque la connexion est possible, au moins en début et fin de journée, ils peuvent recevoir des tâches dans leur MercatorPenguin et envoyer les tâches effectuées. En cours de journée, si une connexion est retrouvée, cette liste des tâches peut être actualisée.

Un clic sur le bouton "Synchro" :
- télécharge les nouvelles tâches,
- envoie à Mercator ERP les tâches clôturées et les retire de cette liste.
Dans ce développement qui ne vaut que pour l'exemple qu'il donne, il n'est pas prévu de mise à jour de tâches déjà téléchargées.
Dans le customizer du modèle d'action, ce simple code avertit l'utilisateur dans Mercator ERP à l'ouverture de la tâche, que celle-ci a été envoyée et est donc susceptible d'être modifiée dans le MercatorPenguin d'un utilisateur.
void actionEngineActionForm_FullInitialized(object sender, EventArgs e)
{
MercatorUi.Forms.Action.ActionForm actionForm = (MercatorUi.Forms.Action.ActionForm)sender;
actionForm.FullInitialized -= actionEngineActionForm_FullInitialized;
if (actionForm.ActionEngine.ActionsRecord.SENT_OFFLINE)
Dialogs.Stop("Attention : cette action a été téléchargée en mode offline par un utilisateur de MercatorPenguin. Les modifications effectuées ici seront perdues lors de la prochaine synchronisation !", actionForm);
}
Quand l'utilisateur de MercatorPenguin sélectionne une action, le second écran s'ouvre. Il peut effectuer des modifications dans cette action :
- changer le moment de l'intervention,
- indiquer une note,
- charger une photo,
- indiquer que l'action est faite.
La sauvegarde est effectuée localement dans l'appareil hébergeant MercatorPenguin, sous la forme d'un simple fichier texte contenant une représentation json de l'action.
Le projet OfflineTasks reprend le code de cette bibliothèque de classes MAUI.
La synchronisation est capable d'envoyer les modifications enregistrées localement des actions clôturées dans Mercator ERP. Cela se fait grâce à la possibilité d'exécuter du code sur mesure dans l'instance de Mercator depuis une CustomPage. Le code à faire fonctionner dans l'instance de Mercator est compilé à partir du projet OfflineTasksServer (bibliothèque de classes Windows)
Le bundle permettant l'accès à ces fonctionnalités est le suivant :
XAML Recherche :
<m:SearchButton IsVisible="False" />
Requête SQL :
select 1
XAML ListViewCell :
<CustomPage>
<Android>
<MainAssembly><Other\OfflineTasks\Android\OfflineTasks.dll</MainAssembly>
</Android>
<iOS>
<MainAssembly><Other\OfflineTasks\iOS\OfflineTasks.dll</MainAssembly>
</iOS>
<ClassName>OfflineTasks.TasksListPage</ClassName>
<NoData>True</NoData>
</CustomPage>
Les assemblies sont disposées comme ceci, dans "Gestion > Fichiers SQL > Autres" :

Voir aussi : Démarrage de MercatorPenguin sans vérification des informations d'identification
A télécharger :
0000003244.zip (132 Kb - 03/10/2024)