위치:
InsContractServiceStd:createUpdateContract
이 서비스를 사용하여 주어진 견적서에 대한 계약을 만들거나 업데이트합니다.
Name, SourceQuote, SourceOpportunity 및 Pricebook 필드에 대해 필드 수준 보안을 활성화해야 합니다. 클래스: InsContractServiceStd
방법: createUpdateContract
작동 방법
-
이 서비스는
productConfigurationDetail맵,additionalFields,QuoteId및AccountId이 포함된 견적서의 제품 JSON에서inputKey값을 찾습니다. -
productConfigurationDetail에는 해당 견적서의 견적서 행 항목에 대한 데이터가 포함되어 있으며, 해당 서비스는 해당 견적서의 견적서 행 항목을 사용하여 계약 그룹 계획을 만듭니다. -
quoteId는 서비스가 계약을 생성하는 견적서의 ID이고,AccountId는 계약에 연결된 계정의 ID입니다. -
QuoteId,AccountId및 추가 필드를 기반으로 서비스가 계약을 만들고 해당 필드를 채웁니다. 본 계약에 해당하는 서비스는 보험 계약을 작성하고additionalFields데이터를 사용하여 해당 필드를 채웁니다. -
contractId가 지정된 경우 서비스가 계약을 업데이트합니다. -
contractId가 지정되지 않은 경우 서비스에서 새contractId를 만듭니다.
원격 옵션
옵션 |
설명 |
|---|---|
|
선택 사항 계약 ID입니다. |
|
선택 사항 가격 목록의 이름입니다. |
|
(필수) 생성할 계약 및 계약 그룹 계획의 입력 JSON입니다. 그것은 |
서비스 동작
다양한 입력이 서비스 출력에 미치는 영향을 이해합니다.
입력 |
출력 |
|---|---|
No contractId and no inputJson
|
서비스에서 계약을 만들 수 없습니다. |
No contractId and inputJson
|
서비스에서 새 계약, 보험 계약, 계약 그룹 계획을 만듭니다. |
contractId and no inputJson |
서비스가 계약을 업데이트하지 않습니다. |
contractId 및 inputJson
|
서비스가 기존 계약, 보험 계약, 계약 그룹 계획을 업데이트합니다. |
입력 JSON
이 샘플은 contractJson가 입력 키이고 productConfigurationDetail에 제품 JSON이 포함된 새 계약 입력 JSON을 보여줍니다.
{
"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(서비스가 계약을 만드는 경우)
새 계약을 만들 때 출력 JSON에 새 계약의 contractId이 반환됩니다. 기존 계약을 업데이트할 때 출력 JSON이 반환되지 않습니다.
{
"contractId: "0rfRN0000000014YAA",
"errorCode": "INVOKE-200",
"error": "OK"
}출력 JSON(서비스에서 오류를 반환하는 경우)
서비스에 예외가 발생하면 빈 문자열이 반환됩니다. 또한 오류가 있는 구성원의 목록을 반환합니다. 각 목록 항목은 입력 구성원 데이터 및 오류로 구성됩니다.
{
"contractId: "",
"errors" : "List of errors, if any",
"errorCode": "INVOKE-200",
"error": "OK"
}