Loading
Insurance
InsCensusServiceStd:updateMembersWithPlans

InsCensusServiceStd:updateMembersWithPlans

Utilisez ce service pour remplir un recensement de groupe avec les membres principaux, leurs personnes à charge et leur plan pré-inscrit. Ce service met à jour les GroupCensusMember existants par memberKey et crée des enregistrements GroupCensusMemberPlan pour les enregistrements GroupCensusMember existants. Il utilise le ContractGroupPlans spécifié dans le JSON d'entrée pour mettre à jour les plans de chaque GroupCensusMember.

Classe: InsCensusService​​Std

Méthode : updateMembersWithPlans

Fonctionnement

  1. Le service transmet censusId et census input JSON pour mettre à jour les membres avec des plans.

  2. Le JSON de recensement comprend deux listes - headers et members.

    1. headers est la liste des métadonnées des champs comprenant fieldId, type, label et name. Voici le nom d'API du champ (avec l'espace de noms des champs de package géré et personnalisés). Le headers doit contenir des ContactGroupPlanId.

    2. members est la liste des membres à mettre à jour dans le recensement. Le members doit contenir des ContactGroupPlanId séparés par un point-virgule(;) pour plusieurs plans.

  3. Le service appelle updateMembers par MemberKey pour enregistrer les données des membres, en analysant les membres dans l'objet JSON.

  4. Le service ajoute la isNewMember true pour tous les nouveaux membres. Il remplit également l'ID de chaque GroupCensusMember.

  5. Le service appelle ensuite InsCensusServiceStd: addPlanSelections pour créer des GroupCensusMemberPlan pour chaque membre. Il accepte également des couvertures facultatives par participant afin que les participants principaux et les personnes à charge soient inscrits à différentes couvertures dans le même régime.

updateMembers par MemberKey

  1. Le service analyse les données des membres avec les champs fournis dans headers. headers doit contenir toutes les métadonnées des champs utilisées dans la liste des membres.

  2. Le service sépare les membres principaux et les membres dépendants en fonction de leur RelationshipToPrimaryMember.

    1. Si la liste des membres contient des membres principaux et des personnes dépendantes, l'entrée doit avoir des SourceSystemIdentifier pour tous les membres. Tous les membres doivent avoir un SourceSystemIdentifier unique. De plus, toutes les personnes à charge doivent avoir un PrimaryMemberSource ou un PrimaryGroupCensusMemberId (si le membre principal est déjà présent au recensement).

    2. Si la liste combine des membres principaux et des membres dépendants, assurez-vous que chaque membre dépendant et membre principal existe dans la liste des membres.

  3. Le service traite les nouveaux GroupClass. Si le service contient des GroupClass.Name au lieu de GroupClassId, il récupère les GroupClass avec le nom et crée un GroupClass portant le même nom s'il est introuvable.

    1. Si le service contient des GroupClass.Name, incluez également des AccountId dans les données des membres.
    2. header pour GroupClass.Name: {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}.

    3. Si le GroupClass fourni n'est pas valide, une erreur est renvoyée. La GroupClass est considérée comme valide si :

      • GroupClass est lié au compte de groupe du membre.

      • La période effective du contrat est comprise entre la StartDate et la EndDate de GroupClass.

      • Les StartDate et EndDate du contrat sont récupérés en utilisant des ContractId fournis en entrée de service

  4. Les services traitent les PrimaryMemberSource pour les personnes dépendantes avec PrimaryGroupCensusMemberId.

    1. Si le service contient à la fois PrimaryMemberSource et PrimaryGroupCensusMemberId, il prend en compte PrimaryGroupCensusMemberId comme source et met à jour PrimaryMemberSource de dépendant pour inclure SourceSystemIdentifier principal.

  5. Le service enregistre d'abord tous les membres principaux.

  6. Il analyse les dépendants pour identifier les dépendants orphelins (dépendants sans PrimaryMemberSource).

  7. Il enregistre toutes les personnes dépendantes valides.

  8. Le service met à jour les DependentCount de tous les membres principaux de la liste des membres.

Options distantes

Option

Description

censusId 

Obligatoire

ID du recensement avec les membres à mettre à jour.

Confirme que le contractId appartient au compte/recensement.

census

Obligatoire.

Saisissez JSON avec les détails des membres à mettre à jour.

contractId 

Obligatoire

ID du contrat actuel du compte.

Confirme que les plans de chaque membre font partie du contrat.

onlySaveMembersWithValidProducts

Booléen

Si true, les nouveaux membres sans entrée dans GroupCensusMemberPlan sont supprimés.

duplicateKeys

Facultatif

Liste de champs de génération de MemberKey pour identifier les membres existants.

Champs par défaut de la liste : FirstName, Lastname, Email, GroupCensusId.

Entrée Sortie de service
Non censusId Le service renvoie une erreur : Specify a censusId.

Aucun JSON d'entrée de recensement

Le service renvoie une erreur : The census input is missing.

Valeur de PrimaryMemberSource fournie au membre principal Le service renvoie une erreur : The PrimaryMemberSource must be null for primary members.
headers manquant dans le recensement des entrées Le service renvoie une erreur : The header node is missing in the census input.
members manquant dans le recensement des entrées Le service renvoie une erreur : The members node is missing in the census input.
Pour les dépendants orphelins (les dépendants sans PrimaryMemberSource ni PrimaryGroupCensusMemberId) Le service renvoie une erreur : Dependent has no primary member.

Aucun contractId ou contractId non valide

Le service ne met à jour aucun plan de membre.

ContractGroupPlanId non valide pour le contrat spécifié

Le service ne crée aucun plan de membre.

Si onlySaveMembersWithValidProducts est true et que le membre est nouveau, le service procède comme suit :

  • Supprime le membre sans plan valide.
  • Crée un membre s'il a au moins un plan valide.
ContractGroupPlanId non valide pour le membre (en raison d'un désabonnement)

Le plan de membre n'est pas créé

Si onlySaveMembersWithValidProducts est true et que le membre est nouveau, le service procède comme suit :

  • Supprime le membre sans plan valide.
  • Crée un membre s'il a au moins un plan valide.
Le membre principal se désabonne d'un type de produit

La IsOptOutAllPlans est prioritaire, suivie de la OptOutPlanTypes

  • Si IsOptOutAllPlans = true, le service ne crée pas de plan de membre, même si vous spécifiez un produit pour l'inscription.
  • Si IsOptOutAllPlans = false et qu'un produit est spécifié pour l'inscription du membre, mais que son type de produit est identique à l'entrée de désabonnement, le service ne crée pas de plan de membre.

Si le membre principal se désabonne d'un type de produit, les personnes dépendantes se désabonnent également de ce type de produit.

Un membre dépendant se désabonne d'un type de produit

La IsOptOutAllPlans est prioritaire, suivie de la OptOutPlanTypes

  • Si IsOptOutAllPlans = true, le service ne crée pas de plan de membre, même si vous spécifiez un produit pour l'inscription.
  • Si IsOptOutAllPlans = false et qu'un produit est spécifié pour l'inscription du membre, mais que son type de produit est identique à l'entrée de désabonnement, le service ne crée pas de plan de membre.

Si le membre principal se désabonne d'un type de produit, les personnes dépendantes se désabonnent également de ce type de produit.

Si IsOptOutAllPlans = true pour un membre principal, la même sortie est applicable pour les personnes dépendantes associées.

JSON d'entrée

Voici à quoi ressemble le format du JSON d'entrée :

{
  "census": {
    "headers": [
      {
        "type": "STRING",
        "label": "Last Name",
        "fieldId": "",
        "name": "Lastname"
      },
      {
        "type": "STRING",
        "label": "First Name",
        "fieldId": "",
        "name": "FirstName"
      },
      {
        "type": "DOUBLE",
        "label": "FTE",
        "fieldId": "",
        "name": "FullTimeEquivalent"
      },
      {
        "type": "PICKLIST",
        "label": "Gender",
        "fieldId": "",
        "name": "Gender"
      },
      {
        "type": "DATE",
        "label": "Birthday",
        "fieldId": "",
        "name": "Birthdate"
      },
      {
        "type": "PICKLIST",
        "label": "Relationship To Primary",
        "fieldId": "",
        "name": "RelationshipToPrimaryMember"
      },
      {
        "type": "BOOLEAN",
        "label": "Is Opt-out All Plans",
        "fieldId": "",
        "name": "IsOptOutAllPlans"
      },
      {
        "type": "MULTIPICKLIST",
        "label": "Opt-Out Plan Types",
        "fieldId": "",
        "name": "OptOutPlanTypes"
      },
      {
        "type": "ENTITYID",
        "label": "Account",
        "fieldId": "",
        "name": "AccountId"
      },
      {
        "type": "EMAIL",
        "label": "Email",
        "fieldId": "",
        "name": "Email"
      },
      {
        "type": "STRING",
        "label": "Primary Member Identifier",
        "fieldId": "",
        "name": "PrimaryMemberSource"
      },
      {
        "type": "STRING",
        "label": "Member Identifier",
        "fieldId": "",
        "name": "SourceSystemIdentifier"
      },
      {
        "type": "ENTITYID",
        "label": "Contract Group Plan",
        "fieldId": "",
        "name": "ContractGroupPlanId"
      }    
    ],
    "members": [
      {
        "MemberKey": "cd64a62573825ee11b87ce91110aa576",
        "Lastname": "KoffinsUpdated",
        "FirstName": "RajUpdated",
        "FullTimeEquivalent": 1,
        "Gender": "Male",
        "Birthdate": "1965-10-13",
        "SourceSystemIdentifier": "1.primary",
        "PrimaryMemberSource": null,
        "Email": "testrajUpdated@mail.com",
        "ContractGroupPlanId":"a4D4P000000hbjSUAQ;a4D4P000000hbjSUAQ"      
      },
      {
        "MemberKey": "f2f8735bbb66b3f7d7b2bae794c00650",
        "Lastname": "Koffins",
        "FirstName": "KrisUpdated",
        "Gender": "Male",
        "Birthdate": "2010-05-13",
        "RelationshipToPrimaryMember": "Child",
        "SourceSystemIdentifier": "1.child",
        "PrimaryMemberSource": "1.primary",
        "Email": "testkrisUpdated@mail.com",
        "ContractGroupPlanId":"a4D4P000000hbjSUAQ;a4D4P000000hbjSUAQ"      
      },
      {
        "Lastname": "WarnerUpdated",
        "MemberKey": "5a5bc4e3c05cf461a65a2d7fdc0ab8e0",
        "FirstName": "Christopher",
        "FullTimeEquivalent": 0.75,
        "Gender": "Male",
        "Birthdate": "1985-10-13",
        "SourceSystemIdentifier": "2.primary",
        "PrimaryMemberSource": null,
        "Email": "testchristopherUpdated@mail.com",
        "ContractGroupPlanId":"a4D4P000000hbjSUAQ;a4D4P000000hbjSUAQ"
      },
      {
        "Lastname": "WarnerUpdated",
        "MemberKey": "157b2052fc732d8261984c2922a3261b",
        "FirstName": "Steph",
        "Gender": "Male",
        "Birthdate": "1985-10-13",
        "RelationshipToPrimaryMember": "Spouse",
        "SourceSystemIdentifier": "2.spouse",
        "PrimaryMemberSource": "2.primary",
        "Email": "teststephUpdated.com",
        "ContractGroupPlanId":"a4D4P000000hbjSUAQ;a4D4P000000hbjSUAQ"
      }
    ]
  }
}

JSON de sortie

Le service renvoie un message de réussite si le flux est terminé, sinon il renvoie l'erreur en cas d'exception.

  • censusMemberIds : La liste des GroupCensusMemberIds de membres sauvés.

  • erreurs : La liste des membres avec des erreurs. Chaque élément de liste comprend les données et les erreurs du membre d'entrée.

  • ​ ​ ​ relatedFieldsUpdateSuccessCount : Nombre de membres principaux pour lesquels le DependentCount est mis à jour par service.

  • ​ ​ ​ relatedFieldsUpdateErrorCount : Nombre d'organes principaux pour lesquels la mise à jour DependentCount renvoie des erreurs.

  • relatedFieldsUpdateErrors : La liste des erreurs renvoyées lors de la mise à jour de la DependentCount des membres principaux.

  • memberPlanIds : La liste des GroupCensusMemberPlanIds insérés avec succès.

{
  "result": "success",
  "relatedFieldsUpdateErrors": [],
  "relatedFieldsUpdateErrorCount": 0,
  "relatedFieldsUpdateSuccessCount": 2,
  "errors": [
    {
      "error": "[Email]: INVALID_EMAIL_ADDRESS - Email: invalid email address: teststephUpdated.com",
      "Birthdate": "1985-10-13",
      "Gender": "Male",
      "Lastname": "WarnerUpdated",
      "RelationshipToPrimaryMember": "Spouse",
      "MemberKey": "157b2052fc732d8261984c2922a3261b",
      "SourceSystemIdentifier": "2.spouse",
      "FirstName": "Steph",
      "Email": "teststephUpdated.com",
      "PrimaryMemberSource": "2.primary",
      "ContractGroupPlanId":"a4D4P000000hbjSUAQ;a4D4P000000hbjSUAQ"
    }
  ],
  "censusMemberIds": [
    "0r6RO00000005pZYAQ",
    "0r6RO00000005paYAA",
    "0r6RO00000005pbYAA"
  ],
  "memberPlanIds":[
    "a4B4P000006jKsMUAU",
    "a4B4P000006jKsNUAU",
    "a4B4P000006jKsOUAU",
    "a4B4P000006jKsPUAU",
    "a4B4P000006jKsQUAU",
    "a4B4P000006jKsRUAU"
  ],
  "errorCode": "INVOKE-200",
  "error": "OK"
}
 
Chargement
Salesforce Help | Article