Você está aqui:
InsCensusServiceStd:addMembers
Use esse serviço para adicionar membros do censo de grupo a um censo de grupo usando um JSON de entrada.
Classe: InsCensusServiceStd
Método: addMembers
Como funciona
O serviço pega os membros no JSON de entrada de censo e os adiciona ao dado censusId. Ele retorna uma lista dos IDs dos membros adicionados ( censusMemberIds ).
O serviço analisa os dados do membro.
Analisa os dados dos membros com os campos fornecidos nos cabeçalhos. Os cabeçalhos devem conter todos os metadados dos campos usados na lista de membros.
Separa membros primários e dependentes com base em
RelationshipToPrimaryMember. Se a lista de membros contiver membros principais e dependentes, a entrada deverá terSourceSystemIdentifierpara todos os membros. Todos os membros devem terSourceSystemIdentifierexclusivos. Além disso, todos os dependentes devem terPrimaryMemberSourceouPrimaryGroupCensusMemberId(se o membro primário já estiver presente no censo).Gera
MemberKey.Processa novas
GroupClass. Se aGroupClass.Namefor fornecida ao serviço em vez deGroupClassId, o serviço buscaráGroupClasscom o nome e criará uma novaGroupClasscom o mesmo nome se não for encontrada. O cabeçalho paraGroupClass.Name é {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}. Se aGroupClass.Namefornecida for inválida, será retornado um erro. O serviço usa um novo parâmetroquoteEffectiveDatepara validarGroupClass. AGroupClassé considerada válida se:Nota SeGroupClass.Namefor fornecido, inclua tambémAccountIdnos dados dos membros.O
GroupClassestá vinculado à conta do grupo do membro.quoteEffectiveDateestá entreGroupClassStartDateeEndDate. SequoteEffectiveDatenão for fornecido como um parâmetro para serviço, essa validação será ignorada.
Processa
PrimaryMemberSourcepara dependentes comPrimaryGroupCensusMemberId. Se tantoPrimaryMemberSourcequantoPrimaryGroupCensusMemberIdforem fornecidos nos dados do membro, o serviço consumiráPrimaryGroupCensusMemberIdcomo fonte e atualizaráPrimaryMemberSourcede dependente para conterSourceSystemIdentifierde principal.
Salva todos os membros principais. O serviço usa
MemberKeypara identificar duplicados. Se houver um membro duplicado, o serviço atualizará os campos desse membro preexistente. OMemberKeydeve ser uma combinação única de cordas.Analisa dependentes para identificar dependentes órfãos (Dependentes sem
PrimaryMemberSource).Salva todos os dependentes válidos. O serviço usa
MemberKeypara identificar duplicados. Quando há um registro de membro duplicado, o serviço atualiza os campos desse membro preexistente em vez de criar um novo registro.Atualiza os
DependentCountde todos os membros principais na lista de membros.
Comportamento do serviço
Entenda como diferentes entradas afetam as saídas de serviço.
| Entrada | Saída de serviço |
|---|---|
Não censusId |
O serviço retorna um erro: Specify a censusId. |
| Sem entrada de censo JSON | O serviço retorna um erro: The census input is missing. |
Valor de PrimaryMemberSource fornecido ao membro principal |
O serviço retorna um erro: The PrimaryMemberSource must be null for primary members. |
headers está ausente no censo de entrada |
O serviço retorna um erro: The header node is missing in the census input. |
members está ausente no censo de entrada |
O serviço retorna um erro: The members node is missing in the census input. |
Para órfãos dependentes (Os dependentes sem PrimaryMemberSource ou PrimaryGroupCensusMemberId) |
O serviço retorna um erro: Dependent has no primary member. |
Opções remotas
Opção |
Descrição |
|---|---|
|
Obrigatório. ID do censo do grupo ao qual adicionar membros. |
|
Obrigatório. JSON de entrada dos membros a serem adicionados. o JSON de censo consiste em duas listas: cabeçalhos e membros. headers é a lista de metadados dos campos que incluem fieldId, type, label e name. Aqui, o nome é o Nome da API do campo (com namespace para pacote gerenciado e campos personalizados). members é a lista de membros a serem adicionados ao censo. |
duplicateKey
|
Opcional. Lista de campos para gerar |
JSON de entrada
O JSON de entrada consiste em duas listas: cabeçalhos e membros. headers é a lista de metadados dos campos que incluem fieldId, type, label e name. Aqui, o nome é o Nome da API do campo (com namespace para pacote gerenciado e campos personalizados). members é a lista de membros a serem adicionados ao censo.
{
"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 saída
O serviço retornará uma mensagem de sucesso se o fluxo for concluído, caso contrário, retornará o erro em caso de exceções.
-
censusMemberIds: A lista deGroupCensusMemberIdsde membros salvos. -
erros: A lista de membros com erros. Cada item de lista consiste em dados de membro de entrada e erro.
-
relatedFieldsUpdateSuccessCount: Número de membros principais para os quais oDependentCounté atualizado por serviço. -
relatedFieldsUpdateErrorCount: Número de membros primários para os quais a atualização deDependentCountretorna erros. -
relatedFieldsUpdateErrors: A lista de erros retornados ao atualizar osDependentCountdos membros principais.
{
"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"
}
