Can not generate Cancellation Service Contract line item for zero dollar Order

Salesforce Billing

Last updated 2019-04-02 ·Reference W-5707020 ·Reported By 27 users

Fixed in version Billing 218.7.1

Summary
Amending a service contract to cancel it after invoicing will generate the order. But you can't contract the order to generate the offsetting Service Contract Line Item.

Error thrown:

Error:Apex trigger SBQQ.OrderTrigger caused an unexpected exception, contact your administrator: SBQQ.OrderTrigger: execution of AfterUpdate caused by: System.DmlException: Update failed. First exception on row 0 with id 8021K00000AOuOAQA1; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Can't override the Next Billing Date or Bill Through Date for an order product that's already billed.: []: (SBQQ)

Repro
install Service Cloud for Salesforce CPQ
Create Opportunity > Quote (36 months, zero dollar quote line)
Create Order from Ordered checkbox on Quote (or Opportunity)
Activate Order
Create Service Contract via contracted checkbox on Order.
use Bill Now to create Invoice
Post Invoice
Go to Service Contract
Amend, Amend
set quantity to 0 and save
Ordered, save (from Quote or Opportunity)
Go to Order
Activate
Contracted, Save
No Service Contract created and either error thrown or email reporting error message depending on version

Workaround
Update "Bill Through Date Override" field to null on all Order Products on amendment order and then Contract using checkbox on order.

Any unreleased services, features, statuses, or dates referenced in this or other public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make their purchase decisions based upon features that are currently available.