Невозможно вставить записи в пользовательский прайс-лист через вершину

//( Ошибка вставки. Первое исключение в строке 0; первая ошибка: STANDARD_PRICE_NOT_DEFINED, для этого товара не определена стандартная цена: [])

глобальный класс SyncQuoteToOppLineItem{ WebService static void callQuote(String oppID, String strQuoteID,String opLIId) { System.debug('** ' + oppID + ' ' + opLIId + ' ' + strQuoteID );

         if(strQuoteID!=null){

            List<OpportunityLineItem> oliList = new List<OpportunityLineItem>();
             List<Product_Detail__c> lstPDet = new List<Product_Detail__c>();

                            List<Pricebook2> lstPRiceBook = [SELECT Id,IsActive,IsStandard,Name FROM Pricebook2 WHERE isActive = true AND IsStandard = false Limit 1];

            if(lstPRiceBook.size()>0){

                lstPDet = [SELECT AttachProduct__c,Name,Target_Rate__c,TotalCost__c,FlightStartDate__c,Adjusted_Rate__c,FlightEndDate__c,Game__c,Channel__c,OpportunityProducts__c,Target_Impression__c
                            FROM Product_Detail__c WHERE AttachProduct__c =:strQuoteID];

                for(Product_Detail__c obPD:lstPDet){
                    //Get the Product ID
                    System.debug('**** obPD.Name ' + obPD.Name);

                    List<PriceBookEntry> priceBookList = [SELECT Id, Product2Id, Product2.Id, Product2.Name FROM PriceBookEntry WHERE Product2.Name=:obPD.Name AND PriceBook2.id=:lstPRiceBook[0].id LIMIT 1];
                    if(priceBookList.size()>0){
                        OpportunityLineItem oli = new OpportunityLineItem(OpportunityId=oppID, PricebookEntryId=priceBookList[0].Id,Cost_Per_Impression__c=obPD.Adjusted_Rate__c,
                                             Game__c = obPD.Game__c, Platform__c=obPD.Channel__c);
                        oliList.add(oli);
                    }else{
                        //Inser the Prodcut and then add
                        Product2 p = new product2(name=obPD.Name,isActive=true);
                        insert p;

                        Id productId = p.id;

                         PricebookEntry pbe = new PricebookEntry(Pricebook2Id = lstPRiceBook[0].id, Product2Id = p.Id, UnitPrice = 10000, IsActive = true, UseStandardPrice = false);
                            insert pbe;

// Вставка не удалась. Первое исключение в строке 0; первая ошибка: STANDARD_PRICE_NOT_DEFINED, для этого продукта не определена стандартная цена: []

                            OpportunityLineItem oli = new OpportunityLineItem(OpportunityId=oppID, PricebookEntryId=pbe.Id,Cost_Per_Impression__c=obPD.Adjusted_Rate__c,
                                                 Game__c = obPD.Game__c, Platform__c=obPD.Channel__c);
                            oliList.add(oli);

                    }

                }
            }  

person user3353164    schedule 25.02.2014    source источник


Ответы (1)


Я предполагаю, что вы уже узнали, как это исправить, но если нет, сегодня у меня была точно такая же ошибка, и я нашел ответ здесь: https://developer.salesforce.com/forums?id=906F00000008yveIAA

В будущем вы должны знать, что формулировка вашего вопроса была не очень удачной; вы должны были спросить что-то вроде «Невозможно вставить PriceBookEntry через APEX, стандартная цена не определена» или «Невозможно указать стандартную цену PriceBookEntry через APEX».

Используйте формулировку исключений, чтобы облегчить поиск ответов.

person Ben K.    schedule 06.10.2014