Я пытаюсь создать тестовый класс для пользовательского объекта под названием «Участие партнера» в рамках возможности, который идентифицирует соответствующего торгового посредника или партнера для этой возможности. он отлично работал с предыдущей песочницей, но возвращал нижеприведенные ошибки при загрузке в новую среду песочницы.. может кто-нибудь посоветовать мне, что не так с кодированием?

System.DmlException: Ошибка вставки. Первое исключение в строке 0; первая ошибка: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, PartnerInvolvementTriggerAll: выполнение AfterInsert, вызванное: System.DmlException: Ошибка обновления. Первое исключение в строке 0 с идентификатором 0063K0000025KUXQA2; первая ошибка: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, OpportunityTrigger: выполнение AfterUpdate, вызванное: System.DmlException: Ошибка вставки. Первое исключение в строке 0; первая ошибка: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, OpportunityTrigger: выполнение AfterUpdate, вызванное: System.QueryException: неожиданный токен: «FROM» Class.OpportunityRenewalCreation.createRenewalOpportunityWithProducts: строка 71, столбец 1 строка 145, столбец 1

Класс Apex:

> @isTest public class PartnerInvolvementTriggerAllTest  {  @isTest
     public static void testOpportunityUpdate()
     {
         Account acc = new Account (Name = 'newAcc1',
                                    BillingCountry ='United Kingdom',
                                    Industry = 'Others',
                                    RecordTypeId = '01236000000OGv1'
                                   );        
         insert acc;
         
         Account acc1 = new Account (Name = 'newAcc2',
                                    BillingCountry ='Uganda',
                                    Industry = 'Others',
                                    RecordTypeId = '01236000001UOmp'
                                   );        
         insert acc1;
         
         Opportunity o = new Opportunity(Accountid = acc.id,
                                         StageName = 'Proposal',
                                         CloseDate = system.today(),
                                         Name = 'Test Op',
                                         Type = 'Upsell',
                                         Deal_Type__c = 'Resale',
                                         CurrencyIsoCode = 'EUR',
                                         Led_by__c = 'Direct Led',
                                         LeadSource = 'Partner'                                                                            
                                        );        
         insert o;
         
         Partner_Involvement__c pic = new Partner_Involvement__c(Partner_Delivery_Role__c = 'Primary
 Implementation',
                                                                 Partner_Sales_Role__c = 'Sold to Partner (Buying Directly from
 UiPath)',
                                                                 Partner_Account_Name__c = acc1.Id,                                    
 
                                                                 CurrencyIsoCode = 'USD',
                                                                 PartnerOpp_Name__c = o.Id,
                                                                 Partner_Engagement__c = 'Fulfillment'
                                                                );
         
         test.startTest();
         
         insert pic; 
         
         //pic.Partner_Account_Name__c = acc1.Id;
         //pic.Partner_Role__c = 'VAR/Reseller';
         
         //update pic;
         
         test.stopTest();
         
         Opportunity oppTest = [select Id, Sold_to_Partner__c, Implementation_Partner__c from Opportunity where Id =
 :pic.PartnerOpp_Name__c];
         
         System.assertEquals(oppTest.Sold_to_Partner__c, acc1.Id);
         System.assertEquals(oppTest.Implementation_Partner__c, acc1.Id);
         
         delete pic;
     }
     
     @isTest
     public static void testCreateByJPCommunity() {
         //user
         String nowStr1 = String.valueOf(Datetime.now()).remove(':').remove(' ').remove('-') +
 '1';
         Account u_acc = new Account(
             Name = 'u_hogeAccount' + nowStr1,
             Country__c = 'Japan',
             Industry = 'Chemicals'
         );
         insert u_acc;
 
         Contact u_con = new Contact(
             LastName = 'u_hogeContact' + nowStr1,
             AccountId = u_acc.id
         );
         insert u_con;
 
         Profile u_prf = [SELECT Id, Name FROM Profile WHERE Name = 'UiPath Japan Partner Community' LIMIT 1];
 
         User u = new User(
             Email = 'testCreByJP' + nowStr1 + '@example.com',
             profileid = u_prf.id,
             UserName = 'testCreByJP' + nowStr1 + '@example.com',
             Alias = 'testJP',
             TimeZoneSidKey='Asia/Tokyo',
             EmailEncodingKey='UTF-8',
             LocaleSidKey='ja_JP',
             LanguageLocaleKey='ja',
             ContactId = u_con.Id,
             PortalRole = 'Manager',
             FirstName = 'FirstName',
             LastName = 'LastName'
         );
         insert u;
 
         //account
         String nowStr2 = String.valueOf(Datetime.now()).remove(':').remove(' ').remove('-') +
 '2';
         RecordType rt = [SELECT Id, SobjectType, DeveloperName FROM RecordType WHERE SobjectType = 'Account' AND DeveloperName = 'Partner'
 LIMIT 1];
         Account acc1 = new Account(
             Name = 'testCreByJPAcc1' + nowStr2,
             Country__c = 'Uganda',
             Industry = 'Chemicals',
             OwnerId = u.Id,
             RecordTypeId = rt.Id
         );
         insert acc1;
 
         Account acc2 = new Account(
             Name = 'testCreByJPAcc2' + nowStr2,
             Country__c = 'Japan',
             Industry = 'Chemicals',
             OwnerId = u.Id,
             RecordTypeId = rt.Id
         );
         insert acc2;
 
         //opportunity
         Opportunity opp = new Opportunity(
             Accountid = acc1.id,
             StageName = 'Proposal',
             CloseDate = system.today(),
             Name = 'testCreByJPOpp',
             Type = 'Upsell',
             Deal_Type__c = 'Resale',
             CurrencyIsoCode = 'EUR',
             Led_by__c = 'Direct Led',
             LeadSource = 'Partner',
             OwnerId = u.Id
         );
         insert opp;
 
         //partnerinvolvement
         Partner_Involvement__c pi = new Partner_Involvement__c(
             Partner_Delivery_Role__c = '',
             Partner_Sales_Role__c = 'Sold to Partner (Buying Directly from UiPath)',
             Partner_Account_Name__c = acc2.Id,
             CurrencyIsoCode = 'USD',
             PartnerOpp_Name__c = opp.Id,
             Partner_Engagement__c = '',
             OwnerId = u.Id
         );
 
         test.startTest();
 
         System.runAs(u) {
             insert pi;
         }
         
         test.stopTest();
     } }

Спасибо и ваша помощь очень ценится!!

1
Ankur Gupta 2 Июн 2021 в 14:23

1 ответ

Вам следует обратить внимание на этот класс: OpportunityRenewalCreation. найдите некорректный запрос SOQL в строке 71

неожиданный токен: 'FROM' Class.OpportunityRenewalCreation.createRenewalOpportunityWithProducts: строка 71, столбец 1 Class.OpportunityTriggerHandler.processAfterUpdateWithList

1
Ideasforce 24 Дек 2019 в 04:11