I noticed that reading a QuoteModel via SBQQ.ServiceRouter.read() doesn't return quote line custom fields in the quote's child QuoteLine Models (this is after the QuoteModel has been saved via SBQQServiceRouter.save()).

updatedQuoteLines = new Map<Id, SBQQ__QuoteLine__c>(
                       [SELECT Id, A5_TT_Total__c
                          FROM SBQQ__QuoteLine__c 
                         WHERE SBQQ__Quote__c=: CreateQuoteId]

// get saved QuoteModel    
Quote = readQuote(someQuoteId);

for (QuoteLineModel Quoteline : Quote.lineItems){

    Decimal fieldFromModel = Quoteline.record.A5_TT_Total__c;
    System.debug('check fieldFromModel: '+fieldFromModel); // returns null because the field isn't returned as part of QuoteLine model
    Decimal fieldFromQuery = updatedQuoteLines.get(Quoteline.record.Id).A5_TT_Total__c);
    System.debug('check fieldFromQuery: '+fieldFromQuery); // returns 150 because the QuoteLine was updated via SBQQ.ServiceRouter.save()

I'm assuming when the documentation says Quote.lineItem.record is "the record that this [quote line] model represents", it specifically means SBQQ fields, and no other custom fields. Can anyone confirm that custom fields (that aren't part of the managed package) are NOT accessible via CPQ API at this point?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.