Résumé
Manipulation de l'entité Deal (Opportunités/Affaires) en lecture/écriture/suppression via un objet métier depuis une application externe.
Tables
Les tables utilisées sont :
sw_data_deal : Table des opportunités/affaires
Les tables liées sont :
sw_data_dealelement : Table des éléments d'opportunité/affaire
Critères d'activation
WHK_Deal est défini dans la gestion des webhooks du studio.
Fonctionnement
verb: GET
resultType: simple
"deal":{ "codedeal": "PJ000011", "customer_ID": "C0000001", "label": "Vitrine de magasin", "generictype_ID_dealType": "Type projet 1", "generictype_ID_status": "ACTIVE", "dealNumber": "PJ000011", "isProject": "1" }
verb: GET
resultType: extended
"deal":{ "codedeal": "PJ000011", "customer_ID": "C0000001", "label": "Vitrine de magasin", "generictype_ID_dealType": "Type projet 1", "generictype_ID_status": "ACTIVE", "dealNumber": "PJ000011", "isProject": "1", "description": "", "creationDate": "2020-09-18 00:00:00", "closingDate": "", "amount": "300", "probability": "55", "generictype_ID_lossReason": "", "customer_ID_introducer": "", "baseuser_ID": "", "amount2": "", "lossReasonComment": "", "realClosingDate": "", "dealstep_ID_current": "", "deal_ID_origin": "", "manualProbability": "0", "marketinglead_ID_origin": "", "customercontact_ID": "C0000001-DJ" }
verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables generictype_deal_type, customer, customercontact, baseuser et generictype_status
"related":[ { "generictype_dealType":{ "codegenerictype": "DEAL_DEALTYPE-PRJ", "label": "Project type 1", "originalCode": "PRJ", "dataType": "DEAL_DEALTYPE", "description": "", "translationKey": "", "generictype_ID_parent": "Project", "tag":"", "orderNumber":"" }, "customer":{ "codecustomer": "C0000001", "name": "ENTREPRISE DIJON GUICHARD", "baseuser_ID": "", "address1" :"33 Avenue du Drapeau", "address2": "", "address3": "", "postalCode": "21000", "city": "DIJON", "phoneNumber": "03 90 11 22 33", "faxNumber": "03 90 11 22 44", "mobilePhoneNumber": "06 90 11 22 33", "email": "contact@guichard.com", "deliveryDays": "1A;1B;2A;2B;3A;3B;4A;4B;5A;5B", "openingDays": "1A;1B;2A;2B;3A;3B;4A;4B;5A;5B", "siretNumber":" ", "vatIntra": "", "apeCode": "516K", "comment": "", "blocked": "0", "blockedComment": "", "message": "", "vacationStart": "", "vacationEnd": "", "gpsLongitude": "5.04372", "gpsLatitude": "47.33222", "accountNumber": "C0000001", "contactName": "", "currency_ID": "", "authorizedCredit": "0", "risk": "1", "underSurveillance": "", "workforce": "25", "customer_ID_paying": "", "pricecategory_ID": "", "discountRate": "0", "website": "<https://www.guichard.com",> "legalStatus": "Société Anonyme avec Directoire", "generictype_ID_brand": "", "generictype_ID_deliveryMode": "", "generictype_ID_paymentMean": "", "generictype_ID_country": "", "generictype_ID_province": "", "generictype_ID_customerType": "CTC", "generictype_ID_customerFamily": "", "confirmationEmail": "contact@guichard.com", "confirmationFax": "03 90 11 22 44", "generictype_ID_taxCode": "", "productdepot_ID": "", "generictype_ID_accountingCategory": "", "generictype_ID_customerPotential": "B", "generictype_ID_civility": "", "skype": "contact@guichard.com", "generictype_ID_role": "", "unused": "0", "customergroup_ID": "", "generictype_ID_referencing": "2", "generictype_ID_distribution": "SELF", "generictype_ID_market": "BIG", "area": "", "baseculture_ID": "FR-FR", "baseuser_ID_favoriteTechnician": "TECH-01", "branchoffice_ID": "SXB", "emailFormat": "", "isIndividual": "0", "facebook": "<https://www.facebook.com/guichard/",> "twitter": "<https://twitter.com/guichard",> "youtube": "<https://www.youtube.com/watch?v=6jGbnEwQJ54",> "linkedin": "<https://www.linkedin.com/company/guichard",> "activity": "" }, "customercontact":{ "codecustomercontact": "C0000001-DJ", "customer_ID": "C0000001", "lastName": "DENEIR", "firstName": "Jacques", "generictype_ID_civility": "Monsieur", "address1": "1b rue Darwin", "address2": "", "address3": "", "postalCode": "21000", "city": "DIJON", "phoneNumber": "05 55 79 56 92", "faxNumber": "05 55 79 56 11", "mobilePhoneNumber": "06 07 08 09 10", "email": "jdeneir@nebout.div", "gpsLongitude": "5.0384", "gpsLatitude": "47.33073", "description": "Acheteur direct", "generictype_ID_position": "Direction", "birthday": "1980-09-18 00:00:00", "generictype_ID_country": "FR", "generictype_ID_province": "", "mainContact": "0", "generictype_ID_service": "Direction", "skype": "", "baseculture_ID": "", "bouncedEmailDetected": "", "closedDate": "", "twitter": "", "linkedin": "" } }]
verb: PUT
{ "deal": { "codedeal": "PJ000011", /* Code globalement unique de l'affaire (Varchar (255))*/ "customer_ID": "C0000001", /* Code client (ForeignKey () - sw_data_customer.codecustomer)*/ "label": "Vitrine de magasin", /* Libellé (Varchar (255))*/ "generictype_ID_dealType": "DEAL_DEALTYPE-PRJ", /* Code type d'affaire (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = DEAL_DEALTYPE)*/ "dealNumber": "PJ000011", /* N° d'affaire (Varchar (64))*/ "description": "", Description (Text (65535))*/ "creationDate" : "2020-09-18", /* Date de création (DateTime ())*/ "closingDate": "", /* Date de fin (DateTime ())*/ "amount": "300", /* Montant (Double ())*/ "probability": "55", /* Probabilité (en %) (Int ())*/ "generictype_ID_lossReason": "", /* Code raison de la perte (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = DEAL_LOSSREASON)*/ "lossReasonComment": "", /* Commentaire perte (Text (65535))*/ "customer_ID_introducer": "", /* Code client apporteur d'affaire (ForeignKey () - sw_data_customer.codecustomer) "baseuser_ID": "", /* Code responsable (ForeignKey () - sw_data_baseuser.codebaseuser)*/ "amount2": "", /* Montant 2 (Double ())*/ "generictype_ID_status": "DEAL_STATUS-1",Statut (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = DEAL_STATUS)*/ "realClosingDate": "", /* Date de fin réelle (DateTime ())*/ "dealstep_ID_current": "", /* Code étape actuelle (ForeignKey () - sw_data_dealstep.codedealstep)*/ "deal_ID_origin": "", /* Code opportunité d'origine (ForeignKey () - sw_data_deal.codedeal)*/ "isProject": "1", /* Opportunité (Valeurs possibles : 0,1) (Bool ())*/ "manualProbability": "0", /* Probabilité manuelle (Valeurs possibles : 0,1) (Bool ())*/ "marketinglead_ID_origin": "", /* Code lead marketing d'origine (ForeignKey () - sw_data_marketinglead.codemarketinglead)*/ "customercontact_ID": "C0000001-DJ", /* Code contact client (ForeignKey () - sw_data_customercontact.codecustomercontact)*/ "internalCodeDeal": null, /* CodeDeal original de weavy s'il y a eu transcodage (Varchar (255)) */ "internalcustomer_ID": null, /* CodeCustomer original de weavy s'il y a eu transcodage (Varchar (255)) */ /* Optionnel : pour mettre à jour les champs dynamiques selon paramétrage */ /* Exemple 1 : */ "dynamicfields": [{ "fieldname": "prj10", "fieldvalue": "100000" }, { "fieldname": "prj30", "fieldvalue": "Jean-René Abraham" }, { ... }] /* Exemple 2 : */ /* A partir de la version SUMMER'21, le mappage direct des champs dynamiques est possible en utilisant le nom du champ en bdd */ "v_prj10": "100000", "v_prj30": "Jean-René Abraham", ... }, "dealelement": [ { "codedealelement": "PJ000011-0-1", /* Code globalement unique de l'élément d'affaire (Varchar (255))*/ "deal_ID": "PJ000011", /* Code affaire. Reprendre le code affaire du bloc json "deal" (ForeignKey () - sw_data_deal.codedeal)*/ "label" : "Elément 1", /* Libellé (Varchar (255))*/ "DataOrder": "10", /* Ordre d'affichage (Int ())*/ "originalCode": "1", /* Code de l'élément d'affaire à afficher (Varchar (255))*/ "dealelementstructure_ID": "", /* Code structure (ForeignKey () - sw_data_dealelementstructure.codedealelementstructure)*/ "dealelement_ID_parent": "" /* Code élément d'affaire parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_dealelement.codedealelement)*/ }, { "codedealelement": "PJ000011-0-1.1", /* Code globalement unique de l'élément d'affaire (Varchar (255))*/ "deal_ID": "PJ000011", /* Code affaire. Reprendre le code affaire du bloc json "deal" (ForeignKey () - sw_data_deal.codedeal)*/ "label" : "Elément 1.1", /* Libellé (Varchar (255))*/ "DataOrder": "11", /* Ordre d'affichage (Int ())*/ "originalCode": "1.1", /* Code de l'élément d'affaire à afficher (Varchar (255))*/ "dealelementstructure_ID": "", /* Code structure (ForeignKey () - sw_data_dealelementstructure.codedealelementstructure)*/ "dealelement_ID_parent": "PJ000011-0-1" /* Code élément d'affaire parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_dealelement.codedealelement)*/ }, { "codedealelement": "PJ000011-0-2", /* Code globalement unique de l'élément d'affaire (Varchar (255))*/ "deal_ID": "PJ000011", /* Code affaire. Reprendre le code affaire du bloc json "deal" (ForeignKey () - sw_data_deal.codedeal)*/ "label" : "Elément 2", /* Libellé (Varchar (255))*/ "DataOrder": "20", /* Ordre d'affichage (Int ())*/ "originalCode": "2", /* Code de l'élément d'affaire à afficher (Varchar (255))*/ "dealelementstructure_ID": "", /* Code structure (ForeignKey () - sw_data_dealelementstructure.codedealelementstructure)*/ "dealelement_ID_parent": "" /* Code élément d'affaire parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_dealelement.codedealelement)*/ }] }
verb: LIST
resultType: simple, extended reprendre les définitions du GET
"filters:" { "codeDeal": "value", filter is equal "dealNumber": "value", filter is equal "label": "value", filter is contains "codeCustomer": "value", filter is equal "dealType": "value", filter is equal "codeStatus": "value" filter is equal }, "orderBy": "value"
Valeur possibles pour le tri "orderBy" :
dealNumberAsc : par n° d'affaire/opportunité ascendant
labelAsc : par intitulé ascendant
creationDateAsc : par date de création ascendant
creationDateDesc : par date de création descendant
verb: DELETE
Une suppression d'une opportunité/affaire (sw_data_deal) va supprimer en cascade les éléments dans la table liée sw_data_dealelement.