Loading
Seguro
InsCensusServiceStd:updateMembersWithPlans

InsCensusServiceStd:updateMembersWithPlans

Utilice este servicio para rellenar un censo de grupo con miembros principales, sus dependientes y su plan preinscrito. Este servicio actualiza GroupCensusMember existentes por memberKey y crea registros de GroupCensusMemberPlan para registros de GroupCensusMember existentes. Utiliza el ContractGroupPlans especificado en el JSON de entrada para actualizar planes para cada GroupCensusMember.

Clase: InsCensusService​​Std

Método: updateMembersWithPlans

Funcionamiento

  1. El servicio pasa censusId y el JSON de entrada de censo para actualizar miembros con planes.

  2. JSON de censo consta de dos listas: headers y members.

    1. headers es la lista de metadatos de campos compuesta de fieldId, type, label y name. Aquí el nombre es el Nombre de API del campo (con el espacio de nombres para paquetes gestionados y campos personalizados). El headers debe contener ContactGroupPlanId.

    2. members es la lista de miembros que se deben actualizar en el censo. El members debe contener ContactGroupPlanId separados por punto y coma(;) para varios planes.

  3. El servicio llama a updateMembers por MemberKey para guardar datos acerca de los miembros, analizando los miembros en el objeto JSON.

  4. El servicio agrega isNewMember como verdadero para todos los nuevos miembros. También rellena Id. para cada GroupCensusMember.

  5. A continuación, el servicio llama a InsCensusServiceStd: addPlanSelections para crear GroupCensusMemberPlan para cada miembro. También acepta coberturas opcionales por miembro de modo que los miembros principales y los dependientes están inscritos en diferentes coberturas bajo el mismo plan.

updateMembers por MemberKey

  1. El servicio analiza los datos de los miembros con los campos proporcionados en headers. Los headers deben contener todos los metadatos de los campos utilizados en la lista de miembros.

  2. El servicio separa miembros principales y miembros dependientes basándose en RelationshipToPrimaryMember.

    1. Si la lista de miembros contiene miembros principales y dependientes, la entrada debe tener SourceSystemIdentifier para todos los miembros. Todos los miembros deben tener un SourceSystemIdentifier exclusivo. Además, todos los dependientes deben tener PrimaryMemberSource o PrimaryGroupCensusMemberId (si el miembro principal ya está presente en el censo).

    2. Si la lista es una combinación de miembros principales y dependientes, asegúrese de que cada miembro dependiente y miembro principal existe en la lista de miembros.

  3. El servicio procesa nuevos GroupClass. Si el servicio tiene GroupClass.Name en vez de GroupClassId, obtiene GroupClass con el nombre y crea un nuevo GroupClass con el mismo nombre si no se encuentra.

    1. Si el servicio tiene GroupClass.Name, incluya también AccountId en los datos de los miembros.
    2. header para GroupClass.Name: {"type":"STRING","label":"Group Class Name","fieldId":"","name":"GroupClass.Name"}.

    3. Si el GroupClass proporcionado no es válido, se devuelve un error. El GroupClass se considera válido si:

      • GroupClass está vinculado a la cuenta de grupo del miembro.

      • El periodo de vigencia del contrato es entre StartDate y EndDate de GroupClass.

      • La StartDate y EndDate del contrato se obtiene utilizando ContractId proporcionados como una entrada al servicio

  4. Los servicios procesan PrimaryMemberSource para dependientes con PrimaryGroupCensusMemberId.

    1. Si el servicio tiene PrimaryMemberSource y PrimaryGroupCensusMemberId, el servicio considera PrimaryGroupCensusMemberId como origen y actualiza PrimaryMemberSource de dependiente para incluir SourceSystemIdentifier de principal.

  5. El servicio guarda todos los miembros principales primero.

  6. Analiza dependientes para identificar dependientes huérfanos (Dependientes sin PrimaryMemberSource).

  7. Guarda todos los dependientes válidos.

  8. El servicio actualiza los DependentCount de todos los miembros principales de la lista de miembros.

Opciones remotas

Opción

Descripción

censusId 

Obligatorio

Id. del censo con miembros para actualizar.

Valida que el contractId pertenece a la cuenta/censo.

census

Obligatorio.

Ingrese JSON con detalles para que los miembros se actualicen.

contractId 

Obligatorio

Id. del contrato actual de la cuenta.

Valida que los planes de cada miembro formen parte del contrato.

onlySaveMembersWithValidProducts

Booleano

Si es verdadero, los nuevos miembros sin entradas en GroupCensusMemberPlan se eliminan.

duplicateKeys

Opcional

Lista de campos para la generación de MemberKey para identificar miembros existentes.

Campos predeterminados en la lista: FirstName, Lastname, Email, GroupCensusId.

Entrada Salida de servicio
No censusId El servicio devuelve un error: Specify a censusId.

JSON sin entrada de censo

El servicio devuelve un error: The census input is missing.

Valor de PrimaryMemberSource proporcionado al miembro principal El servicio devuelve un error: The PrimaryMemberSource must be null for primary members.
Falta headers en el censo de entradas El servicio devuelve un error: The header node is missing in the census input.
Falta members en el censo de entradas El servicio devuelve un error: The members node is missing in the census input.
Para dependientes huérfanos (Los dependientes sin PrimaryMemberSource ni PrimaryGroupCensusMemberId) El servicio devuelve un error: Dependent has no primary member.

Sin contractId o contractId no válido

El servicio no actualiza ningún plan de miembro.

ContractGroupPlanId no válido para el contrato especificado

El servicio no crea ningún plan de miembro.

Si onlySaveMembersWithValidProducts es verdadero y el miembro es nuevo, el servicio realiza lo siguiente:

  • Elimina el miembro sin planes válidos.
  • Crea un miembro si tiene al menos un plan válido.
ContractGroupPlanId no válido para el miembro (debido a la anulación de suscripción)

El plan de miembro no está creado

Si onlySaveMembersWithValidProducts es verdadero y el miembro es nuevo, el servicio realiza lo siguiente:

  • Elimina el miembro sin planes válidos.
  • Crea un miembro si tiene al menos un plan válido.
El miembro principal anula la suscripción a un tipo de producto

La IsOptOutAllPlans tiene prioridad, seguida de la OptOutPlanTypes

  • Si IsOptOutAllPlans = true, el servicio no crea un plan de miembro incluso si especifica un producto para la inscripción.
  • Si IsOptOutAllPlans = false y se especifica un producto para la inscripción de miembros, pero su tipo de producto es el mismo que la entrada de anulación de suscripción, el servicio no crea un plan de miembro.

Si el miembro principal anula la suscripción a un tipo de producto, los dependientes también anulan la suscripción a ese tipo de producto.

Miembro dependiente anula la suscripción a un tipo de producto

La IsOptOutAllPlans tiene prioridad, seguida de la OptOutPlanTypes

  • Si IsOptOutAllPlans = true, el servicio no crea un plan de miembro incluso si especifica un producto para la inscripción.
  • Si IsOptOutAllPlans = false y se especifica un producto para la inscripción de miembros, pero si su tipo de producto es el mismo que la entrada de anulación de suscripción, el servicio no crea un plan de miembro.

Si el miembro principal anula la suscripción a un tipo de producto, los dependientes también anulan la suscripción a ese tipo de producto.

Si IsOptOutAllPlans = true para un miembro principal, el mismo resultado es aplicable para los dependientes asociados.

JSON de entrada

Este es el aspecto del formato para el 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 salida

El servicio devuelve un mensaje de operación correcta si se completa el flujo, de lo contrario devuelve el error en caso de cualquier excepción.

  • censusMemberIds: La lista de GroupCensusMemberIds de miembros guardados.

  • errores: La lista de miembros con errores. Cada elemento de lista consta de datos de miembros de entrada y error.

  • ​ ​ ​ relatedFieldsUpdateSuccessCount: Número de miembros principales para los que se actualiza el DependentCount por servicio.

  • ​ ​ ​ relatedFieldsUpdateErrorCount: Número de miembros principales para los que la actualización de DependentCount devuelve errores.

  • relatedFieldsUpdateErrors: La lista de errores devueltos al actualizar DependentCount de miembros principales.

  • memberPlanIds: La lista de GroupCensusMemberPlanIds insertadas correctamente.

{
  "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"
}
 
Cargando
Salesforce Help | Article