Loading
Assicurazioni
InsCensusServiceStd:addMembers

InsCensusServiceStd:addMembers

Utilizzare questo servizio per aggiungere membri del censimento del gruppo a un censimento del gruppo utilizzando un JSON di input.

Classe: InsCensusServiceStd​​

Metodo: addMembers

Funzionamento

Il servizio prende i membri nel JSON di input del censimento e li aggiunge al censusId​​ specificato. Restituisce un elenco degli ID dei membri aggiunti ( censusMemberIds ).

  1. Il servizio analizza i dati dei membri.

    1. Analizza i dati dei membri con i campi forniti nelle intestazioni. Le intestazioni devono contenere tutti i metadati dei campi utilizzati negli elenchi dei membri.

    2. Separa i membri principali e i membri dipendenti in base alla RelationshipToPrimaryMember. Se l'elenco dei membri contiene membri principali e dipendenti, l'input deve avere SourceSystemIdentifier per tutti i membri. Tutti i membri devono avere SourceSystemIdentifier univoci. Inoltre, tutte le persone a carico devono avere PrimaryMemberSource o PrimaryGroupCensusMemberId (se il membro principale è già presente nel censimento).

    3. Genera MemberKey.

    4. Elabora nuovi GroupClass. Se al servizio viene assegnato GroupClass.Name anziché GroupClassId, il servizio recupera i GroupClass con il nome e crea un nuovo GroupClass con lo stesso nome se non viene trovato. L'intestazione della GroupClass.Nam è {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}. Se il GroupClass.Name specificato non è valido, viene restituito un errore. Il servizio utilizza un nuovo quoteEffectiveDate di parametri per convalidare i GroupClass. Il GroupClass è considerato valido se:

      Nota
      Nota Se vengono fornite GroupClass.Name, includere anche AccountId nei dati dei membri.
      • GroupClass è collegato all'account del gruppo del membro.

      • quoteEffectiveDate si trova tra GroupClass StartDate e EndDate. Se quoteEffectiveDate non viene dato come parametro al servizio, questa convalida viene ignorata.

    5. Elabora PrimaryMemberSource per le persone a carico con PrimaryGroupCensusMemberId. Se nei dati dei membri vengono forniti sia PrimaryMemberSource che PrimaryGroupCensusMemberId, il servizio consuma PrimaryGroupCensusMemberId come origine e aggiorna i PrimaryMemberSource dei dipendenti in modo che contengano SourceSystemIdentifier dei principali.

  2. Salva tutti i membri principali. Il servizio utilizza MemberKey per identificare i duplicati. Se è presente un membro duplicato, il servizio aggiorna i campi di quel membro preesistente. Il MemberKey deve essere una combinazione univoca di stringhe.

  3. Analizza i dipendenti per identificare i dipendenti orfani (dipendenti senza PrimaryMemberSource).

  4. Salva tutti i dipendenti validi. Il servizio utilizza MemberKey per identificare i duplicati. Se è presente un record membro duplicato, il servizio aggiorna i campi di quel membro preesistente anziché creare un nuovo record.

  5. Aggiorna i DependentCount di tutti i membri principali nell'elenco dei membri.

Comportamento del servizio

Di seguito viene descritto in che modo i diversi input influiscono sugli output del servizio.

Input Output del servizio
No censusId Il servizio restituisce un errore: Specify a censusId.
Nessun input JSON del censimento Il servizio restituisce un errore: The census input is missing.
Valore di PrimaryMemberSource fornito al membro principale Il servizio restituisce un errore: The PrimaryMemberSource must be null for primary members.
headers manca nel censimento degli input Il servizio restituisce un errore: The header node is missing in the census input.
members manca nel censimento degli input Il servizio restituisce un errore: The members node is missing in the census input.
Per le persone orfane dipendenti (Le persone a carico senza PrimaryMemberSource o PrimaryGroupCensusMemberId) Il servizio restituisce un errore: Dependent has no primary member.

Opzioni remote

Opzione

Descrizione

censusId

Obbligatorio.

ID del censimento del gruppo a cui aggiungere i membri.

census

Obbligatorio.

JSON di input dei membri da aggiungere.

Il JSON del censimento è costituito da due elenchi - intestazioni e membri. headers è l'elenco dei metadati dei campi composto da fieldId, tipo, etichetta e nome. Qui name è il Nome API del campo (con spazio dei nomi per i campi gestiti e personalizzati). members è l'elenco dei membri da aggiungere al censimento.

duplicateKey

Facoltativo.

Elenco di campi per generare MemberKey e identificare i duplicati. Se non viene fornito alcun valore, i campi predefiniti inclusi nell'elenco sono: FirstName, Lastname, Email, GroupCensusId.

Input JSON

Il JSON di input è costituito da due elenchi: intestazioni e membri. headers è l'elenco dei metadati dei campi composto da fieldId, tipo, etichetta e nome. Qui name è il Nome API del campo (con spazio dei nomi per i campi gestiti e personalizzati). members è l'elenco dei membri da aggiungere al censimento.

{
    "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 di output

Il servizio restituisce un messaggio di esito positivo se il flusso è completato, altrimenti restituisce l'errore in caso di eccezioni.

  • censusMemberIds: L'elenco dei GroupCensusMemberIds dei membri salvati.

  • errori: L'elenco dei membri con errori. Ogni voce di elenco è costituita dai dati dei membri di input e dall'errore.

  • ​ ​ ​ relatedFieldsUpdateSuccessCount: Numero di membri principali per cui il DependentCount viene aggiornato in base al servizio.

  • ​ ​ ​ relatedFieldsUpdateErrorCount: Numero di membri principali per cui l'aggiornamento DependentCount restituisce errori.

  • relatedFieldsUpdateErrors: Elenco degli errori restituiti durante l'aggiornamento dei DependentCount dei membri principali.

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