Loading
Insurance
InsCensusServiceStd:addMembers

InsCensusServiceStd:addMembers

Utilisez ce service pour ajouter des membres à un recensement de groupe en utilisant un JSON d'entrée.

Classe: InsCensusServiceStd​​

Méthode : addMembers

Fonctionnement

Le service prend les membres dans le JSON d'entrée du recensement et les ajoute au censusId​​ donné. Il renvoie la liste des ID des membres ajoutés ( censusMemberIds ).

  1. Le service analyse les données du membre.

    1. Analyse les données des membres avec les champs fournis dans les en-têtes. Les en-têtes doivent contenir toutes les métadonnées des champs utilisées dans la liste des membres.

    2. Sépare les membres principaux et les membres dépendants par RelationshipToPrimaryMember. 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 dépendantes doivent avoir des PrimaryMemberSource ou PrimaryGroupCensusMemberId (si le membre principal est déjà présent au recensement).

    3. Génère des MemberKey.

    4. Traite les nouveaux GroupClass. Si la GroupClass.Name est donnée au service au lieu de la GroupClassId, le service récupère la GroupClass avec le nom et crée un GroupClass portant le même nom s'il est introuvable. L'en-tête de GroupClass.Name est {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}. Si le GroupClass.Name donné n'est pas valide, une erreur est renvoyée. Le service utilise un nouveau quoteEffectiveDate de paramètre pour valider les GroupClass. La GroupClass est considérée comme valide si :

      Remarque
      Remarque Si GroupClass.Name est fourni, incluez également AccountId dans les données des membres.
      • GroupClass est lié au compte de groupe du membre.

      • quoteEffectiveDate se situe entre GroupClass StartDate et EndDate. Si quoteEffectiveDate n'est pas donné en tant que paramètre de service, cette validation est ignorée.

    5. Traite les PrimaryMemberSource pour les personnes dépendantes avec PrimaryGroupCensusMemberId. Si PrimaryMemberSource et PrimaryGroupCensusMemberId sont fournis dans les données des membres, le service consomme PrimaryGroupCensusMemberId en tant que source et met à jour la PrimaryMemberSource de dépendant pour inclure la SourceSystemIdentifier principale.

  2. Enregistre tous les membres principaux. Le service utilise MemberKey pour identifier les doublons. En cas de membre dupliqué, le service met à jour les champs de ce membre préexistant. La MemberKey doit être une combinaison unique de chaînes.

  3. Analyse les dépendants pour identifier les dépendants orphelins (dépendants sans PrimaryMemberSource).

  4. Enregistre toutes les personnes dépendantes valides. Le service utilise MemberKey pour identifier les doublons. Dans un enregistrement de membre dupliqué, le service met à jour les champs de ce membre préexistant au lieu de créer un enregistrement.

  5. Met à jour les DependentCount de tous les membres principaux dans la liste des membres.

Comportement de service

Comprenez comment les différentes entrées affectent les sorties de service.

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.

Options distantes

Option

Description

censusId

Obligatoire.

ID du recensement du groupe auquel ajouter des membres.

census

Obligatoire.

Entrée JSON des membres à ajouter.

Le JSON de recensement se compose de deux listes - en-têtes et membres. 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). members est la liste des membres à ajouter au recensement.

duplicateKey

Facultatif.

Liste de champs pour générer des MemberKey et identifier les doublons. Si aucune valeur n'est fournie, les champs par défaut inclus dans la liste sont : FirstName, Lastname, Email, GroupCensusId.

JSON d'entrée

Le JSON d'entrée est composé de deux listes - en-têtes et membres. 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). members est la liste des membres à ajouter au recensement.

{
    "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"
            }
        ],
        "members": [
            {
                "Lastname": "Koffins",
                "FirstName": "Raj",
                "FullTimeEquivalent": 1,
                "Gender": "Male",
                "Birthdate": "1985-10-13",
                "SourceSystemIdentifier": "1.primary",
                "PrimaryMemberSource": null,
                "Email": "testraj@mail.com",
                "AccountId":"001B000001QOqJHIA1",
                "IsOptOutAllPlans":true,
                "OptOutPlanTypes":"Medical;Dental"
            },
            {
                "Lastname": "Koffins",
                "FirstName": "Rita",
                "Gender": "Female",
                "Birthdate": "1987-07-13",               
                "RelationshipToPrimaryMember": "Spouse",
                "SourceSystemIdentifier": "1.spouse",
                "PrimaryMemberSource": null,
                "Email": "testrita@mail.com",
                "AccountId":"001B000001QOqJHIA1",
                "IsOptOutAllPlans":true,
                "OptOutPlanTypes":"Medical;Dental"
            },
            {
                "Lastname": "Koffins",
                "FirstName": "Kris",
                "Gender": "Male",
                "Birthdate": "2016-05-13",
                "RelationshipToPrimaryMember": "Child",
                "SourceSystemIdentifier": "1.child",
                "PrimaryMemberSource": "1.primary",
                "Email": "testkris@mail.com",
                "AccountId":"001B000001QOqJHIA1",
                "IsOptOutAllPlans":true,
                "OptOutPlanTypes":"Medical;Dental"
            },
            {
                "Lastname": "Warner",
                "FirstName": "Christopher",
                "FullTimeEquivalent": 0.5,
                "Gender": "Male",
                "Birthdate": "1985-10-13",
                "SourceSystemIdentifier": "2.primary",
                "PrimaryMemberSource": null,
                "Email": "testchristopher@mail.com",
                "AccountId":"001B000001QOqJHIA1",
                "IsOptOutAllPlans":false,
                "OptOutPlanTypes":"Medical"
            },
            {
                "Lastname": "Warner",
                "FirstName": "Steph",
                "Gender": "Male",
                "Birthdate": "1985-10-13",
                "RelationshipToPrimaryMember": "Spouse",
                "SourceSystemIdentifier": "2.spouse",
                "PrimaryMemberSource": "2.primary",
                "Email": "teststeph@mail.com",
                "AccountId":"001B000001QOqJHIA1",
                "IsOptOutAllPlans":false,
                "OptOutPlanTypes":"Medical"
            },
            {
                "Lastname": "Jose",
                "FirstName": "Steve",
                "Gender": "Male",
                "Birthdate": "1989-10-13",
                "FullTimeEquivalent":10,
                "SourceSystemIdentifier": "3.primary",
                "Email": "teststeve@mail.com",
                "AccountId":"001B000001QOqJHIA1",
                "IsOptOutAllPlans":false,
                "OptOutPlanTypes":"Medical"
            }
        ]
    }
}
  

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 de membres principaux pour lesquels la mise à jour de DependentCount renvoie des erreurs.

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

{
  "result": "success",
  "relatedFieldsUpdateErrors": [],
  "relatedFieldsUpdateErrorCount": 0,
  "relatedFieldsUpdateSuccessCount": 2,
  "errors": [
    {
      "error": "[FullTimeEquivalent]: NUMBER_OUTSIDE_VALID_RANGE - Full Time Equivalent: value outside of valid range on numeric field: 10",
      "Birthdate": "1989-10-13",
      "Gender": "Male",
      "IsOptOutAllPlans": false,
      "Lastname": "Jose",
      "SourceSystemIdentifier": "3.primary",
      "FullTimeEquivalent": 10,
      "FirstName": "Steve",
      "AccountId": "001B000001QOqJHIA1",
      "Email": "teststeve@mail.com",
      "OptOutPlanTypes": "Medical"
    },
    {
      "RelationshipToPrimaryMember": "Spouse",
      "SourceSystemIdentifier": "1.spouse",
      "OptOutPlanTypes": "Medical;Dental",
      "PrimaryMemberSource": null,
      "error": "Dependent has no primary member.",
      "Birthdate": "1987-07-13",
      "Gender": "Female",
      "IsOptOutAllPlans": true,
      "Lastname": "Koffins",
      "FirstName": "Rita",
      "AccountId": "001B000001QOqJHIA1",
      "Email": "testrita@mail.com"
    }
  ],
  "censusMemberIds": [
    "0r6B00000000ANcIAM",
    "0r6B00000000ANdIAM",
    "0r6B00000000ANeIAM",
    "0r6B00000000ANfIAM"
  ],
  "errorCode": "INVOKE-200",
  "error": "OK"
}
 
Chargement
Salesforce Help | Article