Você está aqui:
InsContractServiceStd:createUpdateContract
Use esse serviço para criar ou atualizar um contrato para a cotação fornecida.
Name, SourceQuote, SourceOpportunity e Pricebook da entidade Contrato. Classe: InsContractServiceStd
Método: createUpdateContract
Como funciona
-
Esse serviço procura o valor de
inputKeyno JSON do produto de uma cotação, que contém o mapa deproductConfigurationDetail,additionalFields,QuoteIdeAccountId. -
O
productConfigurationDetailcontém os dados de itens de linha de cotação de determinada Cotação, que o serviço usa para criar planos de grupo de contratos. -
quoteIdé o ID da cotação para a qual o serviço cria o contrato.AccountIdé o ID da conta vinculado ao contrato. -
Com base em
QuoteId,AccountIde additionalFields, o serviço cria o Contrato e preenche seus campos. Correspondendo a este Contrato, o serviço cria um Contrato de Seguro e preenche seus campos usando dados deadditionalFields. -
Se uma
contractIdfor especificada, o serviço atualizará o contrato. -
Se uma
contractIdnão for especificada, o serviço criará uma novacontractId.
Opções remotas
Opções |
Descrição |
|---|---|
|
Opcional ID do contrato. |
|
Opcional Nome do catálogo de preços. |
|
Obrigatório. JSON de entrada dos planos de contrato e grupo de contratos a serem criados. Tem |
Comportamento do serviço
Entenda como diferentes entradas afetam as saídas de serviço.
Entrada |
Saída |
|---|---|
Sem contractId e sem inputJson
|
O serviço não cria nenhum contrato. |
Não contractId e inputJson
|
O serviço cria um novo Contrato, Contrato de seguro e Planos do grupo de contratos. |
contractId e não inputJson |
O serviço não atualiza nenhum contrato. |
contractId e inputJson
|
O serviço atualiza os Planos de contrato, contrato de seguro e grupo de contratos existentes. |
JSON de entrada
Esta amostra mostra um novo JSON de entrada de contrato, em que contractJson é a chave de entrada e productConfigurationDetail contém o JSON do produto:
{
"productConfigurationDetail": {
"records": [
{
"displaySequence": 0,
"currencySymbol": "$",
"currencyCode": "USD",
"Id": "0QLRO0000009kbn4AA",
"productId": "01tRO000000QnqrYAC",
"Product2Id": "01tRO000000QnqrYAC",
"LineNumber": "00000019",
"CreatedDate": "2022-04-14T08:32:35.000+0000",
"QuoteId": "0Q0RO0000000vtw0AA",
"Price": 1,
"UnitPrice": 1,
"vlocityins6__RecordTypeName__c": "Product",
"vlocityins6__Type__c": "Dental",
"TotalPrice": 1,
"LastModifiedDate": "2022-04-14T08:32:35.000+0000",
"vlocityins6__PricingSource__c": "TotalPremium",
"vlocityins6__ProductName__c": "Dental Standard",
"vlocityins6__TotalAmount__c": 1,
"vlocityins6__ProductChildItemSequence__c": 0,
"needReprice": false,
"vlocityins6__NeedReprice__c": false,
"vlocityins6__RelationshipType__c": "Child",
"quoteLineItemId": "0QLRO0000009kbn4AA",
"productName": "Dental Standard",
"ProductCode": "dentalStandard",
"recordType": "Product",
"lineRecordType": "Product",
"Name": "Dental Standard",
"hasAttributes": true,
"coverageCount": 0,
"hasCoverages": false
},
{
"displaySequence": 0,
"currencySymbol": "$",
"currencyCode": "USD",
"Id": "0QLRO0000009kbs4AA",
"productId": "01tRO000000QnWnYAK",
"Product2Id": "01tRO000000QnWnYAK",
"LineNumber": "00000018",
"CreatedDate": "2022-04-14T08:30:59.000+0000",
"QuoteId": "0Q0RO0000000vtw0AA",
"Price": 7425,
"UnitPrice": 7425,
"vlocityins6__RecordTypeName__c": "Product",
"vlocityins6__Type__c": "Dental",
"TotalPrice": 7425,
"LastModifiedDate": "2022-05-31T02:35:56.000+0000",
"vlocityins6__PricingSource__c": "TotalPremium",
"vlocityins6__ProductName__c": "Dental Premium",
"vlocityins6__TotalAmount__c": 7425,
"vlocityins6__ProductChildItemSequence__c": 0,
"needReprice": false,
"vlocityins6__NeedReprice__c": false,
"vlocityins6__RelationshipType__c": "Child",
"quoteLineItemId": "0QLRO0000009kbs4AA",
"productName": "Dental Premium",
"ProductCode": "dentalPremium",
"recordType": "Product",
"lineRecordType": "Product",
"Name": "Dental Premium",
"hasAttributes": true,
"coverageCount": 0,
"hasCoverages": false
}],
"totalSize": 1
},
"additionalFields" : {
"EnrollmentWaitingPeriod": "30",
"Name": "contractAcc-Group Contract",
"ContractTerm": 12,
"EnrollmentCensusId": "0rfRO00000000WRYAY"
},
"AccountId" : "001RO000003fLhQYAU",
"QuoteId" : "0Q0RO0000001DlH0AU"
}JSON de saída (quando o serviço cria um contrato)
Ao criar um novo contrato, a contractId do novo contrato é retornada no JSON de saída. Ao atualizar um contrato existente, nenhum JSON de saída é retornado.
{
"contractId: "0rfRN0000000014YAA",
"errorCode": "INVOKE-200",
"error": "OK"
}JSON de saída (quando o serviço retorna um erro)
O serviço retornará uma string vazia se encontrar alguma exceção. Além disso, retorna uma lista de membros com erros. Cada item de lista consiste em dados e erros de membro de entrada.
{
"contractId: "",
"errors" : "List of errors, if any",
"errorCode": "INVOKE-200",
"error": "OK"
}
