Вы находитесь здесь:
InsCensusServiceStd:addMembers
Используйте эту службу для добавления участников групповой переписи к групповой переписи посредством ввода JSON.
Класс: InsCensusServiceStd
Метод: addMembers
Принцип работы
Служба берет участников в JSON ввода переписи и добавляет их к заданным censusId. Данная функция возвращает список кодов добавленных участников ( censusMemberIds ).
Служба анализирует данные участников.
Анализ данных участников с полями, предоставленными в заголовках. Заголовки должны содержать все метаданные полей, используемые в списке участников.
Разделяет основных и зависимых участников на основе
RelationshipToPrimaryMember. Если список участников содержит основных участников и зависимых, ввод должен иметьSourceSystemIdentifierдля всех участников. Все члены должны иметь уникальныеSourceSystemIdentifier. Кроме того, все зависимые должны иметьPrimaryMemberSourceилиPrimaryGroupCensusMemberId(если основной участник уже присутствует в переписи).Создает
MemberKey.Обрабатывает новые
GroupClass. ЕслиGroupClass.Nameпредоставлен службе вместоGroupClassId, служба извлекаетGroupClassс именем и создает новоеGroupClassс таким же именем, если оно не найдено. ЗаголовокGroupClass.Name: {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}. Если указанныйGroupClass.Nameнедействителен, возвращается ошибка. Служба использует новыйquoteEffectiveDateпараметров для проверкиGroupClass.GroupClassсчитается действительным, если:Примечание При наличииGroupClass.Nameдобавьте такжеAccountIdв данные участников.GroupClassсвязан с организацией группы участника.quoteEffectiveDateлежит междуGroupClassStartDateиEndDate. ЕслиquoteEffectiveDateне указан в качестве параметра обслуживания, эта проверка пропускается.
Обрабатывает
PrimaryMemberSourceдля зависимых сPrimaryGroupCensusMemberId. Если в данных участников предоставлены какPrimaryMemberSource, так иPrimaryGroupCensusMemberId, служба используетPrimaryGroupCensusMemberIdв качестве источника и обновляетPrimaryMemberSourceзависимых для содержанияSourceSystemIdentifierосновных.
Сохраняет всех основных участников. Служба использует
MemberKeyдля определения повторов. При наличии повторяющегося участника служба обновляет поля этого ранее существовавшего участника.MemberKeyдолжна быть уникальным сочетанием строк.Анализ зависимостей для идентификации зависимых сирот (зависимых без
PrimaryMemberSource).Сохраняет все действительные зависимости. Служба использует
MemberKeyдля определения повторов. При наличии повторяющейся записи участника служба обновляет поля ранее существовавшего участника вместо создания новой записи.Обновляет
DependentCountвсех основных участников списка.
Алгоритм обслуживания
Понимание влияния разных вводных данных на результаты обслуживания.
| Ввод | Вывод обслуживания |
|---|---|
Нет censusId |
Служба возвращает ошибку: Specify a censusId. |
| Нет вводных данных переписи JSON | Служба возвращает ошибку: The census input is missing. |
Значение 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. |
Удаленные параметры
Параметр |
Описание |
|---|---|
|
Обязательно. Код переписи группы для добавления участников. |
|
Обязательно. JSON ввода участников для добавления. JSON переписи состоит из двух списков - заголовков и участников. headers - это список метаданных полей, состоящий из fieldId, type, label и name. Здесь имя - API-имя поля (с пространством имен для управляемого пакета и настраиваемых полей). members - это список участников для добавления в перепись. |
duplicateKey
|
Дополнительно. Список полей для создания |
JSON ввода
JSON ввода состоит из двух списков - заголовков и участников. headers - это список метаданных полей, состоящий из fieldId, type, label и name. Здесь имя - API-имя поля (с пространством имен для управляемого пакета и настраиваемых полей). members - это список участников для добавления в перепись.
{
"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
Служба возвращает сообщение об успешном завершении потока, в противном случае возвращает ошибку в случае любых исключений.
-
censusMemberIds: СписокGroupCensusMemberIdsсохраненных участников. -
ошибки: Список участников с ошибками. Каждый элемент списка состоит из данных участника ввода и ошибки.
-
relatedFieldsUpdateSuccessCount: Количество основных участников, для которыхDependentCountобновляется службой. -
relatedFieldsUpdateErrorCount: Количество основных участников, для которых обновлениеDependentCountвозвращает ошибки. -
relatedFieldsUpdateErrors: Список ошибок, возвращенных при обновленииDependentCountосновных участников.
{
"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"
}