L'exemple fourni ici montre une implémentation des CustomPages. Le besoin métier rencontré est le suivant : des livreurs doivent disposer d'une liste de commandes correspondant à des livraisons à 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 commandes dans leur MercatorPenguin et envoyer les livraisons effectuées. En cours de journée, si une connexion est retrouvée, cette liste des commandes peut être actualisée.

Un clic sur le bouton "Synchro" :
- télécharge les nouvelles commandes,
- envoie à Mercator ERP les commandes terminé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 commandes déjà téléchargées.
Quand l'utilisateur de MercatorPenguin sélectionne une commande, le second écran s'ouvre. Il peut effectuer des modifications dans cette commande :
- indiquer une note,
- cocher les articles commandés qui ont été effectivement livrés,
- ajouter un ou plusieurs articles au départ d'une liste d'articles (fixe dans cet exemple),
- indiquer que la commande est terminée.
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 la commande.
Le projet OfflineOrders reprend le code de cette bibliothèque de classes MAUI.
La synchronisation est capable d'envoyer les modifications enregistrées localement des commandes terminé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 OfflineOrdersServer (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\OfflineOrders.dll</MainAssembly>
</Android>
<iOS>
<MainAssembly><Other\OfflineTasks\iOS\OfflineOrders.dll</MainAssembly>
</iOS>
<ClassName>OfflineOrders.OrdersListPage</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 :
0000003245.zip (133 Kb - 03/10/2024)