Вы находитесь здесь:
InsCensusServiceStd:updateMembersWithPlans
Используйте эту службу для заполнения групповой переписи основными участниками, их зависимыми и предварительно зарегистрированным планом. Данная служба обновляет существующие GroupCensusMember по memberKey и создает записи GroupCensusMemberPlan для существующих записей GroupCensusMember. Он использует ContractGroupPlans, указанный в JSON ввода для обновления планов для каждого GroupCensusMember.
Класс: InsCensusServiceStd
Метод: updateMembersWithPlans
Принцип работы
-
Служба передает CensusId и вводные данные переписи JSON для обновления участников планами.
-
JSON переписи состоит из двух списков -
headersиmembers.-
headers- это список метаданных полей, включающийfieldId,type,labelиname. Здесь имя является API-именем поля (с пространством имен для управляемого пакета и настраиваемых полей).headersдолжен содержатьContactGroupPlanId. -
members- это список участников, подлежащих обновлению в ходе переписи.membersдолжен содержатьContactGroupPlanId, разделенные точкой с запятой(;) для нескольких планов.
-
-
Служба вызывает
updateMembersMemberKey для сохранения данных об участниках, анализируя участников в объекте JSON. -
Служба добавляет
isNewMemberв качестве истинного для всех новых участников. Он также заполняет код для каждого GroupCensusMember. -
Потом служба вызывает
InsCensusServiceStd: addPlanSelectionsдля созданияGroupCensusMemberPlanдля каждого участника. Он также принимает дополнительные покрытия на каждого участника, чтобы основные участники и зависимые были зарегистрированы в разных покрытиях в одном плане.
updateMembers по MemberKey
-
Служба анализирует данные участников с полями, предоставленными в
headers.headersдолжны содержать все метаданные полей, используемые в списке участников. -
Служба разделяет основных и зависимых участников на основе
RelationshipToPrimaryMember.-
Если список участников содержит основных участников и зависимых, ввод должен иметь
SourceSystemIdentifierдля всех участников. Все участники должны иметь уникальныйSourceSystemIdentifier. Кроме того, все иждивенцы должны иметьPrimaryMemberSourceилиPrimaryGroupCensusMemberId(если основной член уже присутствует в переписи). -
Если список является сочетанием основных и зависимых участников, убедитесь в наличии каждого зависимого участника и основного участника в списке участников.
-
-
Служба обрабатывает новые
GroupClass. Если служба используетGroupClass.NameвместоGroupClassId, она извлекаетGroupClassс именем и создает новоеGroupClassс таким же именем, если оно не найдено.- Если у службы есть
GroupClass.Name, добавьте такжеAccountIdв данные участников. -
headerдляGroupClass.Name:{"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}. -
Если указанный
GroupClassнедействителен, возвращается ошибка.GroupClassсчитается действительным, если:-
GroupClassсвязан с организацией группы участника. -
Срок действия контракта находится между
StartDateиEndDateGroupClass. -
StartDateиEndDateконтракта извлекаются посредствомContractId, предоставленных в качестве вводных данных для обслуживания
-
- Если у службы есть
-
Службы обрабатывают
PrimaryMemberSourceдля зависимых сPrimaryGroupCensusMemberId.-
Если у службы есть и
PrimaryMemberSource, иPrimaryGroupCensusMemberId, служба учитываетPrimaryGroupCensusMemberIdв качестве источника и обновляетPrimaryMemberSourceзависимых, чтобы содержатьSourceSystemIdentifierосновных.
-
-
Сначала служба сохраняет всех основных участников.
-
Он анализирует иждивенцев для идентификации иждивенцев-сирот (зависимых без
PrimaryMemberSource). -
Сохраняются все действительные зависимости.
-
Служба обновляет
DependentCountвсех основных участников списка.
Удаленные параметры
Параметр |
Описание |
|---|---|
|
Обязательно Код переписи с участниками для обновления. Проверяет принадлежность |
|
Обязательно. Ввод JSON со сведениями для участников для обновления. |
|
Обязательно Код текущего контракта организации. Проверяет планы каждого участника на наличие в контракте. |
|
Логическое Если значение true, новые участники без записей в |
|
Дополнительно Список полей для создания Стандартные поля в списке: |
| Ввод | Вывод обслуживания |
|---|---|
Нет censusId |
Служба возвращает ошибку: Specify a censusId. |
Нет вводных данных переписи JSON |
Служба возвращает ошибку: |
Значение PrimaryMemberSource, предоставленное основному участнику |
Служба возвращает ошибку: The PrimaryMemberSource must be null for primary members. |
headers отсутствует в переписи ввода |
Служба возвращает ошибку: The header node is missing in the census input. |
members отсутствует в переписи ввода |
Служба возвращает ошибку: The members node is missing in the census input. |
Для иждивенцев-сирот (Иждивенцы без PrimaryMemberSource и PrimaryGroupCensusMemberId) |
Служба возвращает ошибку: Dependent has no primary member. |
Нет contractId или недействительный contractId |
Служба не обновляет план участника. |
Недопустимые ContractGroupPlanId для указанного контракта |
Служба не создает плана участника. Если
|
Недопустимые ContractGroupPlanId для участника (из-за отказа) |
План участника не создан Если
|
| Основной участник отказывается от типа продукта |
Если основной участник отказывается от типа продукта, зависимые также отказываются от этого типа продукта. |
| Зависимый участник отказывается от типа продукта |
Если основной участник отказывается от типа продукта, зависимые также отказываются от этого типа продукта. Если |
JSON ввода
Ниже указан формат ввода 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
Служба возвращает сообщение об успешном завершении потока, в противном случае возвращает ошибку в случае любых исключений.
-
censusMemberIds: СписокGroupCensusMemberIdsсохраненных участников. -
ошибки: Список участников с ошибками. Каждый элемент списка состоит из данных участника ввода и ошибки.
-
relatedFieldsUpdateSuccessCount: Количество основных участников, для которыхDependentCountобновляется службой. -
relatedFieldsUpdateErrorCount: Количество основных участников, для которых обновлениеDependentCountвозвращает ошибки. -
relatedFieldsUpdateErrors: Список ошибок, возвращенных при обновленииDependentCountосновных участников. -
memberPlanIds: Список успешно вставленных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"
}