Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Paramétrage des bundles de type "Notification"

0000002791     -      15/01/2020

Mercator permet le paramétrage de bundles destinés à MercatorPenguin, de type "notification". Ce paramétrage peut contenir plusieurs étapes. Cela permettra à l'utilisateur, par exemple, d'obtenir le détail d'un enregistrement de l'étape précédente. Ce type de bundle peut contenir jusque 9 étapes.

Ces bundles fonctionnent exactement comme les bundles de type "liste", à la seule différence qu'à l'étape initiale, il n'existe pas de code XAML pour la recherche des données. Ces bundles ne contiennent donc pas, dans la partie supérieure de l'écran de la première étape, un formulaire de recherche. Les paramètres SQL de la recherche sont en effet passés par le code C#, déclenché depuis Mercator, qui envoie la notification.

Pour envoyer une notification, il faut rédiger un code C# lié à un évènement de Mercator. Par exemple 

  • la sauvegarde d'un nouveau document de la gestion commerciale (une commande web, par exemple)
  • une ouverture ou une clôture de caisse
  • ...

Une notification est donc toujours initialisée par du code C# dans Mercator. Pour cela, il faut utiliser une de ces méthodes :

Zoom
public static int MercatorPenguin.NotificationClient.Send(string message, string bundleId, Dictionary<string, object> dicoParams, string[] onlyTheseIdUsers = null, ResultMode resultMode = ResultMode.Stop);
public static int MercatorPenguin.NotificationClient.Send(string message, Guid bundleId, Dictionary<string, object> dicoParams, string[] onlyTheseIdUsers = null, ResultMode resultMode = ResultMode.Stop);
public static Task<int> MercatorPenguin.NotificationClient.SendAsync(string message, string bundleId, Dictionary<string, object> dicoParams, string[] onlyTheseIdUsers = null, ResultMode resultMode = ResultMode.Notify);
public static Task<int> MercatorPenguin.NotificationClient.SendAsync(string message, Guid bundleId, Dictionary<string, object> dicoParams, string[] onlyTheseIdUsers = null, ResultMode resultMode = ResultMode.Notify);

 

Les paramètres passés à ces méthodes sont 

  • message : le contenu du message qui sera affiché dans la notification sur le mobile.
  • bundleId : l'identifiant du bundle de notification dans la table PENGUIN_BUNDLES.
  • dicoParams : dictionnaire contenant les paramètres SQL et leur valeur. Ceci remplace le formulaire de recherche des bundles de type "liste".
  • onlyTheseIdUsers  : paramètre optionnel contenant la liste des ID de la table USERS correspondant aux utilisateurs à qui on souhaite envoyer la notification. Si ce paramètre n'est pas spécifié, alors tous les utilisateurs disposant de ce bundle dans leur profil Mercator recevront cette notification.
  • resultMode :
    • none : aucun résultat ou message d'erreur n'est présenté à l'utilisateur. Dans ce cas, les erreurs éventuelles sont disponibles dans Api.LastError.
    • Stop : une boîte de dialogue affiche, soit un message d'erreur, soit le nombre de notifications envoyées.
    • Notify : un popup apparaissant dans la partie inférieure droite de l'écran de Mercator reprend, soit un message d'erreur, soit le nombre de notifications envoyées.

Les méthodes async permettent une exécution asynchrone.

Pour qu'un utilisateur reçoive des notifications, il est nécessaire que ces conditions soient remplies 

  • le bundle de notification utilisé doit avoir été associé au profil de l'utilisateur dans Mercator.
  • si le bundle a été récemment créé, il est nécessaire que l'utilisateur rafraîchisse la liste des bundles sur son mobile, en la tirant vers le bas. Attention, ces bundles ne sont toutefois pas visibles.
  • si le code C# utilise le paramètre onlyTheseIdUsers, il faut que cet array contienne l'identifiant Mercator de cet utilisateur (users.id).
  • dans le mobile, il faut avoir activé la réception des notifications. Cela se fait dans l'écran d'information. Le mobile est apte à recevoir des notifications si la mention "ID = ..." est bien reprise sous l'interrupteur des notifications.
  • sous iOS, il faut que l'application MercatorPenguin soit autorisée à recevoir des notifications. Cela s'active automatiquement en acceptant les notifications lors de la première activation de l'interrupteur des notifications.

Ci-dessous deux exemples de code minimaux pour lancer une notification :

Zoom
dicoParams.Add("@message", "contenu passé à l'étape 1 du bundle");
MercatorPenguin.NotificationClient.Send("Ceci est le contenu du message.", "eb2ee38e-a21f-4b48-8d26-37a6f5391596", dicoParams);

 

Zoom
dicoParams.Add("@message", "contenu passé à l'étape 1 du bundle");
string[] onlyThisUser = new string[1] { "1RXN0HUV8R" };
MercatorPenguin.NotificationClient.Send("Ceci est le contenu du message.", "eb2ee38e-a21f-4b48-8d26-37a6f5391596", dicoParams, onlyThisUser);

 

Le code ci-dessus peut être utilisé avec ce bundle. Il sera toutefois nécessaire d'adapter dans le code C# la valeur du bundleId à celle effectivement présente dans votre base de données.

Installation rapide : le fichier Message simple.pngb peut être lu via le bouton "Ouvrir" situé dans le bas de l'écran de paramétrage.