Aller directement à la fin des métadonnées
Aller au début des métadonnées

You are viewing an old version of this content. View the current version.

afficher les différences View Version History

Vous regardez la version actuelle de cette page. (v. 1) Actuel »

Résumé

Manipulation de l'entité Opportunity (Opportunités) en lecture/écriture/suppression via un objet métier depuis une application externe.

Remarque

Avant la Summer' 22, les opportunités étaient gérées par le webhook Deal.

Tables

Les tables utilisées sont :

  • sw_data_deal : Table des opportunités/affaires

Les tables liées sont :
/

Critères d'activation

WHK_Opportunity est défini dans la gestion des webhooks du studio.

Règles métier

verb: PUT

  • La date de création est mise par défaut à la date du jour (creationDate) si non fournie lors d'une création

  • Le statut est mis par défaut à 'Active' (generictype_ID_status = ACTIVE) si non fourni lors d'une création

  • L'ajout d'éléments (dealelement) n'est pas autorisé pour une opportunité

Fonctionnement

settings parameters

"settings":
{
  "getPartners": "1" // pour le verb GET et LIST permet de retourner les informations des partenaires de l'opportunité
}

verb: GET
resultType: simple

  "opportunity":{
    "codedeal": "PRJ000011",
    "customer_ID": "C0000001",
    "label": "Vitrine de magasin",
    "creationDate": "2021-12-01 00:00:00"
    "generictype_ID_dealType": "Type projet 1",
    "generictype_ID_status": "ACTIVE",
    "dealNumber": "PRJ000011"
  }

verb: GET
resultType: extended

  "opportunity":{
    "codedeal": "AFR000011",
    "customer_ID": "C0000001",
    "label": "Vitrine de magasin",
    "creationDate": "2021-12-01 00:00:00",
    "generictype_ID_dealType": "Type projet 1",
    "generictype_ID_status": "ACTIVE",
    "dealNumber": "PRJ000011",
    "description": "",    
    "closingDate": "",
    "amount": "300",
    "probability": "55",
    "generictype_ID_lossReason": "",
    "customer_ID_introducer": "",
    "baseuser_ID": "MOREL",
    "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": "Type projet 1",
    "originalCode": "PRJ",
    "dataType": "DEAL_DEALTYPE",
    "description": "",
    "translationKey": "",
    "generictype_ID_parent": "Project",
    "tag":"",
    "orderNumber":""
  },
  "generictype_status": {
    "codegenerictype": "OPPORTUNITY_STATUS-1",
    "label": "Active",
    "originalCode": "1",
    "dataType": "OPPORTUNITY_STATUS",
    "description": "3",
    "translationKey": "GenType_OPPORTUNITY_STATUS_ACTIVE",
    "generictype_ID_parent": "",
    "tag": "ACTIVE",
    "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": ""
  },
  "baseuser":{
    "codebaseuser":"25",
    "lastName":"MOREL",
    "firstName":"Vincent",
    "initials":"MV",
    "baseusertree_ID":"Région 2",
    "productdepot_ID":"Dépôt Vincent MOREL",
    "productdepot_ID_current":"",
    "email":"vincent@morel.com",
    "phoneNumber":"",
    "faxNumber":"",
    "address1":"",
    "address2":"",
    "postalCode":"",
    "city":"",
    "position":"Représentant",
    "department":"Commercial",
    "structureNav":"1",
    "supervisor":"0",
    "useMileageRate":"",
    "account":"",
    "analyticSection":"",
    "lastGPSDate":"",
    "gpsLongitude":"",
    "gpsLatitude":"",
    "gpsPrecision":"",
    "gpsUpdateDate":"",
    "gpsManual":"",
    "generictype_ID_country":"",
    "generictype_ID_province":"",
    "baseculture_ID":"",
    "branchoffice_ID":"",
    "resourcetype_ID":"",
    "teamtype_ID":""
  }
}]

verb: PUT

{
  "opportunity": {
    "codeopportunity": "PRJ000011", /* Code globalement unique de l'opportunité (Varchar (255))*/
    "customer_ID": "C0000001", /* Code client (ForeignKey () - sw_data_customer.codecustomer)*/
    "label": "Vitrine de magasin", /* Libellé (Varchar (255))*/
    "generictype_ID_opportunityType": "DEAL_DEALTYPE-PRJ", /* Code type d'opportunité (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = DEAL_DEALTYPE) et generictype_ID_parent = PROJECT*/
    "opportunityNumber": "PRJ000011", /* N° d'opportunité (Varchar (64))*/
    "description": "", Description (Text (65535))*/
    "creationDate" : "2021-12-01", /* 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_LOSTREASON)*/
    "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": "OPPORTUNITY_STATUS-1", /* Statut (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = OPPORTUNITY_STATUS)*/    
    "realClosingDate": "", /* Date de fin réelle (DateTime ())*/
    "opportunitystep_ID_current": "", /* Code étape actuelle (ForeignKey () - sw_data_dealstep.codedealstep)*/   
    "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)*/	        
    "internalcodeopportunity": null /* Code opportunité 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",
    ...
  } 
}

verb: LIST
resultType: simple, extended reprendre les définitions du GET

"filters:" {
  "codeOpportunity": "value", filter is equal
  "opportunityNumber": "value", filter is equal
  "label": "value", filter is contains
  "creationDate": "value", filter is greater or equal to
  "creationDateBetween": "value1|value2", filter is between value1 and value2
  "codeCustomer": "value", filter is equal
  "opportunityType": "value", filter is equal
  "codeStatus": "value" filter is equal
},
"orderBy": "value"

Valeurs possibles pour le tri "orderBy" :

  • opportunityNumberAsc : par n° d'affaire/opportunité ascendant

  • labelAsc : par intitulé ascendant

  • creationDateAsc : par date de création ascendant

  • creationDateDesc : par date de création descendant

  • Aucune étiquette