Comment-voir-sur-une-carte-les-enregistrements-de-mes-objets-personnalisés

Comment voir sur une carte les enregistrements de mes objets personnalisés ?

<blank>

<blank>

Plan de lecture

<blank>

L'article ci-dessous montre les étapes pour ajouter une carte aux enregistrements (dans la partie "détail" ou via page dédiée) d'un objet personnalisé. Afin d'illustrer les propos, nous prendrons l'exemple d'un objet personnalisé fictif : "Chantier"  (nom d’API : Chantier__c).

<blank>


Ajouter des champs personnalisés sur l’objet.

La première étape consiste à enrichir l'objet cible en attribuant des champs personalisés reconnus par Opti-Time for Salesforce.

  • Aller dans la configuration de Salesforce
  • Cliquer sur Gestionnaire d'objet
  • Cliquer sur l'objet personnalisé (Chantier pour notre exemple) cible
  • Cliquer sur Champs et relations

La liste des champs et relations apparait à l'écran.

  • Cliquer sur Nouveau et créer les 6 champs avec le type listé dans le tableau ci-dessous.

* Ces 6 champs doivent obligatoirement être présents pour pouvoir afficher les enregistrements Chantier sur une carte.

<blank>


<blank>

Lier les champs personnalisés avec Opti-Time for Salesforce

Lorsque les champs sont créés, il convient maintenant de les lier à Opti-Time for Salesforce

  • Cliquer sur l’onglet Administration
  • Cliquer sur Mapping d’objets et de champs
  • Sélectionner l’objet personnalisé cible (dans notre exemple "Chantier")
  • Lier les champs de type "adresse" ainsi que le champ "Géolocalisation"
  • Cliquer sur Ajouter
  • Cliquer sur Sauvegarder

<blank>

<blank>


Ajouter 2 pages Visualforce

Ajouter une page afin de visualiser la carte dans le détail d'un enregistrement

Visualforce

  • Aller dans la configuration de Salesforce
  • Cliquer dans le champ Recherche Rapide 
  • Chercher le terme Visualforce, et cliquer sur Pages Visualforce
  • Cliquer sur Nouveau
  • Ajouter une etiquette de type [Nom de l'objet]+CarteDetail (le nom de l'etiquette n'a pas d'incidence sur la suite).
  • Cliquer sur Visualforce markup et coller les lignes de code suivantes, en y ajoutant le nom de l'objet.
  • Enregistrer

<apex:page standardController="[Nom de l'objet]__c">
    <apex:includeScript value="/lightning/lightning.out.js" />
    <div id="optitimeFrame"></div>
    <script>
    window.onload = function() {
        $Lightning.use("otcloud:MapApp", function() {
            $Lightning.createComponent("otcloud:Map",
                {
                  "objectType" : "[Nom de l'objet]__c",
                "objectIds" : "{!id}",
                "vfHost" : "{!URLFOR($Page.otcloud__OT_Lex_Map)}".substring(8,"{!URLFOR($Page.otcloud__OT_Lex_Map)}".indexOf('/apex/'))
                },
              "optitimeFrame",
              function(cmp) {}
            );
        });
        var headerHeight = document.getElementsByClassName('bPageHeader').length > 0 ? document.getElementsByClassName('bPageHeader')[0].clientHeight : 0;
        var footerHeight = document.getElementsByClassName('bPageFooter').length > 0 ? document.getElementsByClassName('bPageFooter')[0].clientHeight : 0;
        var bodyStyle = getComputedStyle(document.body);
        var pageHeight = parseInt(document.getElementById('optitimeFrame').parentNode.parentNode.clientHeight) - parseInt(bodyStyle.paddingTop);
        document.getElementById('optitimeFrame').style.height = Math.max(window.innerHeight - headerHeight - footerHeight - 30, pageHeight) + 'px';
    }
    </script>
</apex:page>
Présentation de page

  • Aller dans la configuration de Salesforce
  • Cliquer sur Gestionnaire d'objet
  • Cliquer sur l'objet personnalisé (Chantier pour notre exemple) cible
  • Modifier la présentation de page pour ajouter la page Visualforce que vous venez de créer
Tester

 

Une fois que les enregistrements Chantier ont été géocodés (via l’onglet Administration, Géocodage batch). Au moment d'ouvrir le détail d’un chantier, le chantier est représenté sur la carte.

Ajouter une page afin de visualiser une liste de chantier sur une carte.

Visualforce

  • Aller dans la configuration de Salesforce
  • Cliquer dans le champ Recherche Rapide 
  • Chercher le terme Visualforce, et cliquer sur Pages Visualforce
  • Cliquer sur Nouveau
  • Ajouter une etiquette de type [Nom de l'objet]+CarteListe (le nom de l'etiquette n'a pas d'incidence sur la suite).
  • Cliquer sur Visualforce markup et coller les lignes de code suivantes, en y ajoutant le nom de l'objet.
  • Enregistrer

<apex:page standardController="[Nom de l'objet]__c" recordSetVar="customs">
    <apex:includeScript value="/lightning/lightning.out.js" />
    <div id="optitimeFrame"></div>
    <script>
        window.onload = function() {
            var ids = "<apex:outputText value="{!customs}"/>".replace('[','').replace(']','').split(', ');
            $Lightning.use("otcloud:MapListApp", function() {
                $Lightning.createComponent("otcloud:MapList",
                  {
                      "objectIds":ids.join(','),
                      "objectType": "[Nom de l'objet]__c",
                    "vfHost" : "{!URLFOR($Page.otcloud__OT_Lex_MapList)}".substring(8,"{!URLFOR($Page.otcloud__OT_Lex_MapList)}".indexOf('/apex/'))
                  },
                  "optitimeFrame",
                  function(cmp) {
                  }
                );
            });
            var headerHeight = document.getElementsByClassName('bPageHeader').length > 0 ? document.getElementsByClassName('bPageHeader')[0].clientHeight : 0; 
            var footerHeight = document.getElementsByClassName('bPageFooter').length > 0 ? document.getElementsByClassName('bPageFooter')[0].clientHeight : 0; 
            document.getElementById('optitimeFrame').style.height = Math.max(window.innerHeight - headerHeight - footerHeight - 20, (parseInt(document.getElementById('optitimeFrame').parentNode.parentNode.clientHeight)-10)) + 'px'; 
          } 
       </script> 
</apex:page>

 

Bouton de liste

  • Aller dans la configuration de Salesforce
  • Cliquer sur Gestionnaire d'objet
  • Cliquer sur l'objet personnalisé (Chantier pour notre exemple) cible
  • Cliquer sur Boutons, Liens et Actions
  • Cliquer sur Nouveau Bouton ou lien
  • Nommer le "Carte" et lier le à la page Visualforce precedement créée.
  • Modifier la présentation de page pour ajouter la page Visualforce que vous venez de créer

Tester

Dans l’onglet Chantiers, en sélectionnant plusieurs chantier puis en cliquant sur le bouton de liste « Carte », la liste des chantiers est représentée sur une carte.

<blank>


Ajouter un objet personnalisé dans l'onglet Opti-Time

Il est également possible d’utiliser l’objet personnalisé dans l’onglet Opti-Time.

Pour cela, se rendre dans l’onglet Administration, Présentation, Types d'objets affichés dans les recherches de l'onglet Opti-Time, ajouter l’objet personnalisé dans la liste des objets sélectionnés.

<blank>


 

Pour savoir comment géocoder des objets, consultez les rubriques suivantes de l'aide Opti-Time for Salesforce :


Retour à l'aide Opti-Time for Salesforce