Toutes mes fonctions commencent par un commentaire de contexte de la fonction.
/-----------------------------------// créé par : jean Marc Urrutibehety (specialisteinternet.fr)//
Nom de la fonction : Fct10_Wk10 Création et maj des communes vers Creator
// Workflow :WK10_Création et MAj vers Creator/
/ Module : CPCommuneAssoc
// Commentaires : Permet de gérer la synchronisation unidirectionnelle des donnes de CRM vers Creator.
// ID Test :
//----------------------------
Ce bloc de commentaires en début de fonction est primordial pour faciliter la maintenance du code.
- Cela permet de mieux situer le contexte d’utilisation de cette fonction lorsque j”interviens plusieurs mois après sa création.
- Cela permet de donner le contrôle du code au Client. Si celui-ci souhaite changer de prestataire le nouveau venu aura sa tâche facilitée.
- Cela me permet de formaliser le besoin et les objectifs de la fonction.
// Récupération des informations de la commune sur CRMcommune = zoho.crm.getRecordById("CPCommuneAssoc",id_commune);
//info commune;commune_name = commune.get("Nom_commune");
//info commune_name;commune_CP = commune.get("Code_postal");
//info commune_CP;commune_idz = ifNull(commune.get("IDZCreator"),"");
//info commune_idz;commune_insee = commune.get("Name");
info commune_insee;commune_id_creator = commune.get("IDZCreator");
info commune_id_creator;
Dans mon cas d’usage, il y a récupération d’informations sur un module attenant nommé Associations. Vous pouvez ignorer cette partie du code si ce n’est pas votre cas.
// Si il existe une association, prendre les infos sur celle-ci
if(commune.get("Association") != "")
{
info "je suis là"; assos_name = commune.get("Association").get("name");
//info assos_name; assos_id = commune.get("Association").get("id");
//info assos_id ; association = zoho.crm.getRecordById("Associations",assos_id);
//info association ; assos_creator_id = association.get("IDCreator"); info assos_creator_id;
}
//// Mappage des champs de Creator avec les données de CRM
otherParam = Map();
communeMap = Map();
communeMap.put("Code_commune_INSEE",commune_insee);
communeMap.put("Nom_commune",commune_name);
communeMap.put("Code_Postal2",commune_CP);
communeMap.put("IDZCCommuneCRM",id_commune);
communeMap.put("IDCreatorAssoc",assos_creator_id);
communeMap.put("AssociationsCRM",assos_creator_id);
communeMap.put("Nom_de_l_association",assos_name);
info communeMap;
Le mappage consiste à faire correspondre les champs de l’enregistrement entre les deux outils (CRM et Creator).
Je conseille de nommer les champs (dans la mesure du possible) de façon identique quelquesoit l’outil utilisé. Cela facilitera la lecture et le mappage.
Ce code est primordial, lors de la création d’un enregistrement dans Zoho Creator, je récupère l’ID de cet enregistrement et je copie cet ID dans un champ spécialement créé dans le Module CRM.Ceci me permet de savoir si un enregistrement dans la CRM a ou pas sa contrepartie dans Zoho Creator.
///// Vérification si la commune existe dans Creator à partir de son
IDexisteDansCreator = false;
communeInCreator = zoho.creator.getRecordById("reseaucosi2","store-locator",
"CPCommuneAssoc_Report",commune_id_creator,"zohocreator");
info "communeInCreator : " + communeInCreator;
if(communeInCreator != null)
{
if(communeInCreator.get("code") != 3100)
{
existeDansCreator = true;
commune_id_creator = communeInCreator.get("data").get("ID");
}
}
///// Si la commune n'existe pas dans Creator alors on effectue la création
if(existeDansCreator = false)
{
info "je suis bien ici ";
createCreator = zoho.creator.createRecord("reseaucosi2","store-locator","CPCommuneAssoc",communeMap,otherParam,"zohocreator");
info createCreator;
recup_id_creator = createCreator.get("data").get("ID").toString();
info recup_id_creator; create_id_creator = Map();
create_id_creator.put("IDZCreator",recup_id_creator);
updateCRM = zoho.crm.updateRecord("CPCommuneAssoc",id_commune,create_id_creator);
info updateCRM;
}
///// Si la commune existe alors on effectue un update sur celle-ci
else
{
info "je passe dans le Else";
upd = zoho.creator.updateRecord("reseaucosi2","store-locator","CPCommuneAssoc_Report",commune_id_creator,communeMap,otherParam,"zohocreator");
info "mise à jour dans Creator =" + upd;
}
Pour suivre cette série d'article : Cliquez ici pour aller sur l'article suivant