Você está aqui:
InsCensusServiceStd:updateMembers
Use esse serviço para atualizar os valores de membros existentes em um censo.
Classe: InsCensusServiceStd
Método: updateMembers
Como funciona
-
Esse serviço pega os membros de um JSON de entrada e atualiza o censo (de acordo com a
censusIddada) com os novos dados. -
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). -
membersé a lista de membros a ser atualizada no censo.
-
-
O serviço procura pelo campo
updateById. É um campo booleano que decide o curso de ação para o serviço. Os membros podem ser atualizados destas duas maneiras:-
updateMembersporMemberKeyEssa opção é aplicável quando a
updateByIdé falsa. Os dados do membro devem ter uma chave de membro. -
updateMemberspor ID deGroupCensusMemberEssa opção é aplicável quando
updateByIdfor verdadeiro. Os dados dos membros devem ter um ID de membro do censo do grupo.
-
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
GroupClass.Namefornecida for inválida, será retornado um erro. O serviço usa um novo parâmetroquoteEffectiveDatepara validarGroupClass. AGroupClassé considerada válida se:-
O
GroupClassestá vinculado à conta do grupo do membro. -
quoteEffectiveDateestá entreGroupClassStartDateeEndDate. SequoteEffectiveDatenão for fornecido como um parâmetro para o serviço, essa validação será ignorada.
-
- 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.
updateMembers por ID
-
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. -
Os dados de
membersdevem ter ID. Se o ID não for encontrado nos dados do membro, o serviço gerará um erro. -
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 o serviço tiver
-
O serviço processa
PrimaryGroupCensusMemberIdpara dependentes comPrimaryMemberSource.- Se você fornecer
PrimaryMemberSource, o serviço também atualizará oPrimaryGroupCensusMemberId.
- Se você fornecer
-
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, incluindo dependentes.
-
O serviço não identifica dependentes órfãos.
-
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. |
|
Obrigatório. JSON de entrada com detalhes para membros a serem atualizados. |
updateById
|
Opcional Se definido como verdadeiro, o serviço seguirá o fluxo O valor padrão é falso. |
Comportamento do serviço
Entenda como diferentes entradas afetam as saídas de serviço.
| Entrada | updateById | Saída de serviço |
|---|---|---|
Não censusId |
true ou false | O serviço retorna um erro: |
| Sem entrada de censo JSON | true ou false | O serviço retorna um erro: The census input is missing. |
O valor dos PrimaryMemberSource fornecidos ao membro principal |
false | O serviço retorna um erro: The PrimaryMemberSource must be null for primary members. |
headers está ausente no censo de entrada |
true ou false | O serviço retorna um erro: The header node is missing in the census input. |
members está ausente no censo de entrada |
true ou false | O serviço retorna um erro: The members node is missing in the census input. |
| Para dependentes órfãos (Os dependentes sem PrimaryMemberSource ou PrimaryGroupCensusMemberId) | false | O serviço retorna um erro: Dependent has no primary member. |
| O ID está ausente nos dados dos membros | verdadeiro | O serviço retorna um erro: Specify Id of the census member. |
JSON de entrada
O JSON de entrada inclui headers, que lista os campos a serem atualizados; e members, que lista os membros com seus pares de valor de campo correspondentes, incluindo fieldId.
JSON de entrada de amostra (updateMembers por MemberKey)
{
"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": [
{
"MemberKey": "cd64a62573825ee11b87ce91110aa576",
"Lastname": "KoffinsUpdated",
"FirstName": "RajUpdated",
"FullTimeEquivalent": 1,
"Gender": "Male",
"Birthdate": "1965-10-13",
"SourceSystemIdentifier": "1.primary",
"PrimaryMemberSource": null,
"Email": "testrajUpdated@mail.com"
},
{
"MemberKey": "f2f8735bbb66b3f7d7b2bae794c00650",
"Lastname": "Koffins",
"FirstName": "KrisUpdated",
"Gender": "Male",
"Birthdate": "2010-05-13",
"RelationshipToPrimaryMember": "Child",
"SourceSystemIdentifier": "1.child",
"PrimaryMemberSource": "1.primary",
"Email": "testkrisUpdated@mail.com"
},
{
"Lastname": "WarnerUpdated",
"MemberKey": "5a5bc4e3c05cf461a65a2d7fdc0ab8e0",
"FirstName": "Christopher",
"FullTimeEquivalent": 0.75,
"Gender": "Male",
"Birthdate": "1985-10-13",
"SourceSystemIdentifier": "2.primary",
"PrimaryMemberSource": null,
"Email": "testchristopherUpdated@mail.com"
},
{
"Lastname": "WarnerUpdated",
"MemberKey": "157b2052fc732d8261984c2922a3261b",
"FirstName": "Steph",
"Gender": "Male",
"Birthdate": "1985-10-13",
"RelationshipToPrimaryMember": "Spouse",
"SourceSystemIdentifier": "2.spouse",
"PrimaryMemberSource": "2.primary",
"Email": "teststephUpdated.com"
}
]
}
}JSON de entrada de amostra (updateMembers by Id)
{
"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": [
{
"Id":"0r6RO00000005pZYAQ",
"Lastname": "KoffinsUpdatedById",
"FirstName": "RajUpdatedById",
"Birthdate": "1965-10-13",
"Email": "testrajUpdated@mail.com"
},
{
"Id":"0r6RO00000005pbYAA",
"Lastname": "Koffins",
"FirstName": "KrisUpdatedById",
"Gender": "Male",
"Birthdate": "2010-05-13",
"RelationshipToPrimaryMember": "Child",
"Email": "testkrisUpdatedById@mail.com"
},
{
"Id":"0r6RO00000005paYAA",
"Lastname": "WarnerUpdatedById",
"FirstName": "Christopher",
"FullTimeEquivalent": 0.75,
"Gender": "Male",
"Birthdate": "1985-10-13",
"Email": "testchristopherUpdatedById@mail.com"
},
{
"Lastname": "WarnerUpdatedById",
"FirstName": "Steph",
"Birthdate": "1985-10-13",
"Email": "teststephUpdated.com"
}
]
}
}
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.
JSON de saída de amostra (updateMembers by MemberKey)
{
"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"
}
],
"censusMemberIds": [
"0r6RO00000005pZYAQ",
"0r6RO00000005paYAA",
"0r6RO00000005pbYAA"
],
"deletedCensusMemberIds": [],
"errorCode": "INVOKE-200",
"error": "OK"
}JSON de saída de amostra - (updateMembers by Id)
{
"result": "success",
"relatedFieldsUpdateErrors": [],
"relatedFieldsUpdateErrorCount": 0,
"relatedFieldsUpdateSuccessCount": 2,
"errors": [
{
"error": "Specify Id of the census member.",
"Birthdate": "1985-10-13",
"Lastname": "WarnerUpdatedById",
"FirstName": "Steph",
"Email": "teststephUpdated.com"
}
],
"censusMemberIds": [
"0r6RO00000005pZYAQ",
"0r6RO00000005pbYAA",
"0r6RO00000005paYAA"
],
"errorCode": "INVOKE-200",
"error": "OK"
}
