Você está aqui:
InsCensusServiceStd:updateMembersWithPlans
Use esse serviço para preencher um censo de grupo com membros principais, seus dependentes e seu plano pré-inscrito. Esse serviço atualiza as GroupCensusMember existentes por memberKey e cria registros de GroupCensusMemberPlan para registros de GroupCensusMember existentes. Ele usa os ContractGroupPlans especificados no JSON de entrada para atualizar planos para cada GroupCensusMember.
Classe: InsCensusServiceStd
Método: updateMembersWithPlans
Como funciona
-
O serviço passa censusId e o JSON de entrada de censo para atualizar membros com planos.
-
censo JSON consiste em duas listas -
headersemembers.-
headersé a lista de metadados de campos que consiste emfieldId,type,labelename. Aqui, o nome é o Nome da API do campo (com o namespace para pacote gerenciado e campos personalizados). Oheadersdeve conterContactGroupPlanId. -
membersé a lista de membros a ser atualizada no censo. Omembersdeve conterContactGroupPlanIdseparados por ponto-e-vírgula(;) para vários planos.
-
-
O serviço chama
updateMemberspor MemberKey para salvar dados sobre os membros, analisando os membros no objeto JSON. -
O serviço adiciona
isNewMembercomo true para todos os novos membros. Ele também preenche o ID de cada GroupCensusMember. -
O serviço então chama o
InsCensusServiceStd: addPlanSelectionspara criarGroupCensusMemberPlanpara cada membro. Ele também aceita coberturas opcionais por membro para que os membros principais e dependentes sejam inscritos em coberturas diferentes sob o mesmo plano.
updateMembers por MemberKey
-
O serviço analisa os dados dos membros com os campos fornecidos em
headers. Osheadersdevem conter todos os metadados dos campos usados na lista de membros. -
O serviço separa membros principais e dependentes com base na
RelationshipToPrimaryMember.-
Se a lista de membros contiver membros principais e dependentes, a entrada deverá ter
SourceSystemIdentifierpara todos os membros. Todos os membros devem ter umaSourceSystemIdentifierúnica. Além disso, todos os dependentes devem terPrimaryMemberSourceouPrimaryGroupCensusMemberId(se o membro principal já estiver presente no censo). -
Se a lista for uma combinação de membros principais e dependentes, garanta que todos os membros dependentes e membros principais existam na lista de membros.
-
-
O serviço processa novas
GroupClass. Se o serviço tiverGroupClass.Nameem vez deGroupClassId, ele buscaráGroupClasscom o nome e criará um novoGroupClasscom o mesmo nome se não for encontrado.- Se o serviço tiver
GroupClass.Name, inclua tambémAccountIdnos dados dos membros. -
headerparaGroupClass.Name:{"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}. -
Se a
GroupClassfornecida for inválida, será retornado um erro. AGroupClassé considerada válida se:-
O
GroupClassestá vinculado à conta do grupo do membro. -
O período de vigência do contrato é entre
StartDateeEndDatedeGroupClass. -
Os
StartDateeEndDatedo contrato são buscados usando osContractIdfornecidos como entrada para o serviço
-
- Se o serviço tiver
-
Os serviços processam
PrimaryMemberSourcepara dependentes comPrimaryGroupCensusMemberId.-
Se o serviço tiver tanto
PrimaryMemberSourcequantoPrimaryGroupCensusMemberId, o serviço consideraráPrimaryGroupCensusMemberIdcomo fonte e atualizaráPrimaryMemberSourcede dependente para conterSourceSystemIdentifierde principal.
-
-
O serviço salva todos os membros principais primeiro.
-
Ele analisa dependentes para identificar dependentes órfãos (Dependentes sem
PrimaryMemberSource). -
Ele salva todos os dependentes válidos.
-
O serviço atualiza as
DependentCountde todos os membros principais na lista de membros.
Opções remotas
Opção |
Descrição |
|---|---|
|
Obrigatório ID do censo com membros para atualizar. Verifica se o |
|
Obrigatório. JSON de entrada com detalhes para os membros serem atualizados. |
|
Obrigatório ID do contrato atual da conta. Verifica se os planos de cada membro fazem parte do contrato. |
|
Booleano Se verdadeiro, novos membros sem entradas em |
|
Opcional Lista de campos para geração de Campos padrão na lista: |
| 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: |
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. |
Sem contractId ou contratId inválido |
O serviço não atualiza nenhum plano de membro. |
ContractGroupPlanId inválida para o contrato especificado |
O serviço não cria um plano de membro. Se
|
ContractGroupPlanId inválida para o membro (devido à recusa) |
O plano do membro não é criado Se
|
| O membro principal recusa um tipo de produto |
Se o membro principal recusar um tipo de produto, os dependentes também recusarão esse tipo de produto. |
| O membro dependente recusa um tipo de produto |
Se o membro principal recusar um tipo de produto, os dependentes também recusarão esse tipo de produto. Se |
JSON de entrada
Esta é a aparência do formato para o JSON de entrada:
{
"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 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. -
memberPlanIds: A lista deGroupCensusMemberPlanIdsinseridos com êxito.
{
"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"
}
