A simplistic example of a logic for Rebate Template. This logic creates one agreement with one line.
How to use:
def rebateTypeName = "RebateOnSale" //Name of existing Rebate Type def customerId = "CD-00001" //ID of existing customer def inputFieldOnRebateType = "Rebate discount %" //name of input field on the Rebate Type def lineItemId = "1234567890" //this should be generated by random generator such as api.uuid(), but ok for first understanding def agreementLabel = api.stringUserEntry("Agreement Name") //create a builder for new Agreement, and setup the important header input fields builder = ratBuilder.fromParams([ "label" : agreementLabel, "startDate" : api.parseDate("yyyy-MM-dd", "2017-01-01"), "endDate" : api.parseDate("yyyy-MM-dd", "2017-12-31"), "payoutDate": api.parseDate("yyyy-MM-dd", "2018-02-01"), "targetDate": api.parseDate("yyyy-MM-dd", "2016-12-01"), //calculationDate ]) //set the value of "Customer(s)" input on header level builder.addOrUpdateInput("ROOT", [ "label" : "Customer(s)", "name" : "CustomerGroup", "type" : InputType.CUSTOMERGROUP, "value" : [ "customerFieldLabel": "Customer Id", "customerFieldName" : "customerId", "customerFieldValue": customerId ], "valueHint": customerId ]) //create new line with given existing contract type and setting a value of its input field builder.addLineItemWithId(lineItemId, rebateTypeName) .addOrUpdateInput(lineItemId, [ "name" : inputFieldOnRebateType, "label": inputFieldOnRebateType, "type" : InputType.USERENTRY, "value": 10 ]) builder.build() |