Loading
Страхование
InsCensusServiceStd:updateMembersWithPlans

InsCensusServiceStd:updateMembersWithPlans

Используйте эту службу для заполнения групповой переписи основными участниками, их зависимыми и предварительно зарегистрированным планом. Данная служба обновляет существующие GroupCensusMember по memberKey и создает записи GroupCensusMemberPlan для существующих записей GroupCensusMember. Он использует ContractGroupPlans, указанный в JSON ввода для обновления планов для каждого GroupCensusMember.

Класс: InsCensusService​​Std

Метод: updateMembersWithPlans

Принцип работы

  1. Служба передает CensusId и вводные данные переписи JSON для обновления участников планами.

  2. JSON переписи состоит из двух списков - headers и members.

    1. headers - это список метаданных полей, включающий fieldId, type, label и name. Здесь имя является API-именем поля (с пространством имен для управляемого пакета и настраиваемых полей). headers должен содержать ContactGroupPlanId.

    2. members - это список участников, подлежащих обновлению в ходе переписи. members должен содержать ContactGroupPlanId, разделенные точкой с запятой(;) для нескольких планов.

  3. Служба вызывает updateMembers MemberKey для сохранения данных об участниках, анализируя участников в объекте JSON.

  4. Служба добавляет isNewMember в качестве истинного для всех новых участников. Он также заполняет код для каждого GroupCensusMember.

  5. Потом служба вызывает InsCensusServiceStd: addPlanSelections для создания GroupCensusMemberPlan для каждого участника. Он также принимает дополнительные покрытия на каждого участника, чтобы основные участники и зависимые были зарегистрированы в разных покрытиях в одном плане.

updateMembers по MemberKey

  1. Служба анализирует данные участников с полями, предоставленными в headers. headers должны содержать все метаданные полей, используемые в списке участников.

  2. Служба разделяет основных и зависимых участников на основе RelationshipToPrimaryMember.

    1. Если список участников содержит основных участников и зависимых, ввод должен иметь SourceSystemIdentifier для всех участников. Все участники должны иметь уникальный SourceSystemIdentifier. Кроме того, все иждивенцы должны иметь PrimaryMemberSource или PrimaryGroupCensusMemberId (если основной член уже присутствует в переписи).

    2. Если список является сочетанием основных и зависимых участников, убедитесь в наличии каждого зависимого участника и основного участника в списке участников.

  3. Служба обрабатывает новые GroupClass. Если служба использует GroupClass.Name вместо GroupClassId, она извлекает GroupClass с именем и создает новое GroupClass с таким же именем, если оно не найдено.

    1. Если у службы есть GroupClass.Name, добавьте также AccountId в данные участников.
    2. header дляGroupClass.Name: {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}.

    3. Если указанный GroupClass недействителен, возвращается ошибка. GroupClass считается действительным, если:

      • GroupClass связан с организацией группы участника.

      • Срок действия контракта находится между StartDate и EndDate GroupClass.

      • StartDate и EndDate контракта извлекаются посредством ContractId, предоставленных в качестве вводных данных для обслуживания

  4. Службы обрабатывают PrimaryMemberSource для зависимых с PrimaryGroupCensusMemberId.

    1. Если у службы есть и PrimaryMemberSource, и PrimaryGroupCensusMemberId, служба учитывает PrimaryGroupCensusMemberId в качестве источника и обновляет PrimaryMemberSource зависимых, чтобы содержать SourceSystemIdentifier основных.

  5. Сначала служба сохраняет всех основных участников.

  6. Он анализирует иждивенцев для идентификации иждивенцев-сирот (зависимых без PrimaryMemberSource).

  7. Сохраняются все действительные зависимости.

  8. Служба обновляет DependentCount всех основных участников списка.

Удаленные параметры

Параметр

Описание

censusId 

Обязательно

Код переписи с участниками для обновления.

Проверяет принадлежность contractId организации/переписи.

census

Обязательно.

Ввод JSON со сведениями для участников для обновления.

contractId 

Обязательно

Код текущего контракта организации.

Проверяет планы каждого участника на наличие в контракте.

onlySaveMembersWithValidProducts

Логическое

Если значение true, новые участники без записей в GroupCensusMemberPlan удаляются.

duplicateKeys

Дополнительно

Список полей для создания MemberKey с целью идентификации существующих участников.

Стандартные поля в списке: FirstName, Lastname, Email, GroupCensusId.

Ввод Вывод обслуживания
Нет 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.

Нет contractId или недействительный contractId

Служба не обновляет план участника.

Недопустимые ContractGroupPlanId для указанного контракта

Служба не создает плана участника.

Если onlySaveMembersWithValidProducts является истинным, а участник новым, служба выполняет следующие действия:

  • Удаляет участника без действительных планов.
  • Создание участника при наличии как минимум одного действительного плана.
Недопустимые ContractGroupPlanId для участника (из-за отказа)

План участника не создан

Если onlySaveMembersWithValidProducts является истинным, а участник новым, служба выполняет следующие действия:

  • Удаляет участника без действительных планов.
  • Создание участника при наличии как минимум одного действительного плана.
Основной участник отказывается от типа продукта

IsOptOutAllPlans имеет приоритет, за ним следует OptOutPlanTypes

  • Если IsOptOutAllPlans = true, служба не создает план участника, даже если вы указываете продукт для регистрации.
  • Если IsOptOutAllPlans = false и продукт указан для регистрации участника, но тип продукта совпадает с записью отказа, служба не создает план участника.

Если основной участник отказывается от типа продукта, зависимые также отказываются от этого типа продукта.

Зависимый участник отказывается от типа продукта

IsOptOutAllPlans имеет приоритет, за ним следует OptOutPlanTypes

  • Если IsOptOutAllPlans = true, служба не создает план участника, даже если вы указываете продукт для регистрации.
  • Если IsOptOutAllPlans = false и продукт указан для регистрации участника, но его тип продукта совпадает с записью отказа, служба не создает план участника.

Если основной участник отказывается от типа продукта, зависимые также отказываются от этого типа продукта.

Если IsOptOutAllPlans = true для основного участника, тот же вывод применяется к связанным зависимостям.

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"
}
 
Загрузка
Salesforce Help | Article