Loading
Försäkring
InsCensusServiceStd:updateMembersWithPlans

InsCensusServiceStd:updateMembersWithPlans

Använd denna tjänst för att fylla i en gruppräkning med primära medlemmar, deras anhöriga och deras förinskrivna plan. Denna tjänst uppdaterar befintliga GroupCensusMember efter memberKey och skapar GroupCensusMemberPlan för befintliga GroupCensusMember. Den använder den ContractGroupPlans som anges i JSON för indata för att uppdatera planer för varje GroupCensusMember.

Klass: InsCensusService​​Std

Metod: updateMembersWithPlans

Så här fungerar det

  1. Tjänsten skickar JSON för censusId och censusinmatning för att uppdatera medlemmar med planer.

  2. census JSON består av två listor - headers och members.

    1. headers är listan över fältens metadata som består av fieldId, type, label och name. Här är namn fältets API-namn (med namnutrymmet för hanterade paket och egna fält). headers måste innehålla ContactGroupPlanId.

    2. members är listan över medlemmar som ska uppdateras i folkräkningen. members måste innehålla ContactGroupPlanId separerade med semikolon(;) för flera planer.

  3. Tjänsten anropar updateMembers efter MemberKey för att spara data om medlemmarna och analyserar medlemmarna i JSON-objektet.

  4. Tjänsten lägger till isNewMember som sant för alla nya medlemmar. Den fyller även i ID för varje GroupCensusMember.

  5. Tjänsten anropar sedan InsCensusServiceStd: addPlanSelections för att skapa GroupCensusMemberPlan för varje medlem. Den accepterar även valfria täckningar per medlem så att primära medlemmar och beroende registreras i olika täckningar under samma plan.

updateMembers by MemberKey

  1. Tjänsten tolkar medlemmarnas data med fälten i headers. headers måste innehålla alla fältens metadata som används i medlemslistan.

  2. Tjänsten separerar primära medlemmar och beroende medlemmar baserat på RelationshipToPrimaryMember.

    1. Om medlemslistan innehåller primära medlemmar och beroenden måste indata ha SourceSystemIdentifier för alla medlemmar. Alla medlemmar måste ha en unik SourceSystemIdentifier. Dessutom måste alla underordnade ha PrimaryMemberSource eller PrimaryGroupCensusMemberId (om den primära medlemmen redan finns i folkräkningen).

    2. Om listan är en kombination av primära och beroende medlemmar, se till att varje beroende medlem och primär medlem finns i medlemslistan.

  3. Tjänsten bearbetar nya GroupClass. Om tjänsten har GroupClass.Name istället för GroupClassId hämtar den GroupClass med namnet och skapar en ny GroupClass med samma namn om den inte hittas.

    1. Om tjänsten har GroupClass.Name, inkludera även AccountId i medlemmarnas data.
    2. header för GroupClass.Name: {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}.

    3. Om den angivna GroupClass är ogiltig returneras ett fel. GroupClass anses vara giltigt om:

      • GroupClass är länkat till medlemmens gruppkonto.

      • Kontraktets giltighetsperiod är mellan StartDate och EndDate av GroupClass.

      • Kontraktets StartDate och EndDate hämtas med hjälp av ContractId som tillhandahålls som indata till service

  4. Tjänsterna bearbetar PrimaryMemberSource för beroenden med PrimaryGroupCensusMemberId.

    1. Om tjänsten har både PrimaryMemberSource och PrimaryGroupCensusMemberId överväger tjänsten PrimaryGroupCensusMemberId som källa och uppdaterar PrimaryMemberSource för beroende till att innehålla SourceSystemIdentifier för primär.

  5. Tjänsten sparar alla huvudmedlemmar först.

  6. Den tolkar beroenden för att identifiera föräldralösa beroenden (beroenden utan PrimaryMemberSource).

  7. Det sparar alla giltiga beroenden.

  8. Tjänsten uppdaterar DependentCount över alla primära medlemmar i medlemslistan.

Fjärralternativ

Alternativ

Beskrivning

censusId 

Obligatoriskt

ID för folkräkningen med medlemmar att uppdatera.

Kontrollerar att contractId hör till kontot/folkräkningen.

census

Obligatoriskt.

Ange JSON med detaljer för medlemmar som ska uppdateras.

contractId 

Obligatoriskt

ID för kontots aktuella kontrakt.

Kontrollerar att varje medlems planer är en del av kontraktet.

onlySaveMembersWithValidProducts

Boolesk

Om sant tas nya medlemmar utan poster i GroupCensusMemberPlan bort.

duplicateKeys

Valfri

Lista över fält för att skapa MemberKey för att identifiera befintliga medlemmar.

Standardfält i listan: FirstName, Lastname, Email, GroupCensusId.

Indata Serviceresultat
Nej censusId Tjänsten returnerar ett fel: Specify a censusId.

Ingen JSON för folkräkningsinmatning

Tjänsten returnerar ett fel: The census input is missing.

PrimaryMemberSource som ges till huvudmedlemmen Tjänsten returnerar ett fel: The PrimaryMemberSource must be null for primary members.
headers saknas i indataräkningen Tjänsten returnerar ett fel: The header node is missing in the census input.
members saknas i indataräkningen Tjänsten returnerar ett fel: The members node is missing in the census input.
För föräldralösa anhöriga (De beroende utan PrimaryMemberSource eller PrimaryGroupCensusMemberId) Tjänsten returnerar ett fel: Dependent has no primary member.

Inget contractId eller ogiltigt contractId

Tjänsten uppdaterar ingen medlemsplan.

Ogiltig ContractGroupPlanId för det specificerade kontraktet

Tjänsten skapar ingen medlemsplan.

Om onlySaveMembersWithValidProducts är sant och medlemmen är ny gör tjänsten följande:

  • Tar bort medlemmen utan giltiga planer.
  • Skapar en medlem om den har minst en giltig plan.
Ogiltig ContractGroupPlanId för medlemmen (på grund av avböjande)

Medlemsplan skapas inte

Om onlySaveMembersWithValidProducts är sant och medlemmen är ny gör tjänsten följande:

  • Tar bort medlemmen utan giltiga planer.
  • Skapar en medlem om den har minst en giltig plan.
Den primära medlemmen avböjer en produkttyp

IsOptOutAllPlans har företräde följt av OptOutPlanTypes

  • Om IsOptOutAllPlans = sant skapar inte tjänsten en medlemsplan även om du specificerar en produkt för registrering.
  • Om IsOptOutAllPlans = falskt och en produkt har specificerats för medlemsregistrering men dess produkttyp är densamma som posten för att avböja skapas ingen medlemsplan.

Om den primära medlemmen avböjer en produkttyp avböjer de beroende också den produkttypen.

Beroende medlem avböjer en produkttyp

IsOptOutAllPlans har företräde följt av OptOutPlanTypes

  • Om IsOptOutAllPlans = sant skapar inte tjänsten en medlemsplan även om du specificerar en produkt för registrering.
  • Om IsOptOutAllPlans = falskt och en produkt är specificerad för medlemsregistrering, men om dess produkttyp är samma som posten för att avböja skapas ingen medlemsplan.

Om den primära medlemmen avböjer en produkttyp avböjer de beroende också den produkttypen.

Om IsOptOutAllPlans = sant för en primär medlem gäller samma utdata för de associerade beroendena.

Indata-JSON

Så här ser formatet ut för indata-JSON:

{
  "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 för utdata

Tjänsten returnerar ett resultatmeddelande om flödet slutförs, annars returneras felet vid eventuella undantag.

  • censusMemberIds: Listan över GroupCensusMemberIds över sparade medlemmar.

  • fel: Listan över medlemmar med fel. Varje listobjekt består av indata för medlemmar och fel.

  • ​ ​ ​ relatedFieldsUpdateSuccessCount: Antal primära medlemmar som DependentCount uppdateras för efter tjänst.

  • ​ ​ ​ relatedFieldsUpdateErrorCount: Antal primära medlemmar som DependentCount returnerar fel för.

  • relatedFieldsUpdateErrors: Listan över fel som returnerades vid uppdatering av DependentCount över primära medlemmar.

  • memberPlanIds: Listan över infogade GroupCensusMemberPlanIds.

{
  "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"
}
 
Laddar
Salesforce Help | Article