Error Message
System.UnexpectedException: Error processing messages
Stack Trace
Class.System.Test.stopTest: line 24, column 1 Class.payout.BIgObj_Test.MyMethod: line 31, column 1
Batch Class
global class ArchiveALCTtoBigObj_Batch implements Database.Batchable<sObject>,Database.Stateful{
global final String paid;
global set <string> AdID = New set <string> ();
global ArchiveALCTtoBigObj_Batch(String pid){
pa = pid;
}
global Database.QueryLocator start(Database.BatchableContext BC){
DescribeSObjectResult describeResult = Account.getSObjectType().getDescribe();
List<String> fieldNames = new List<String>( describeResult.fields.getMap().keySet() );
String query = ' SELECT ' +
String.join( fieldNames, ',' ) +
' FROM ' +
describeResult.getName()+
' WHERE ' +
' pa__c = :paid ';
System.debug('Al query = '+query);
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Account> scope){
List <AccountBigObj__b> BObj_ALlist = new List<AccountBigObj__b>();
for(Account AL : Scope ){
AccountBigObj__b BObj_AL = new AccountBigObj__b();
//Logic to assigning values from account to BigObject
AdID.add(AL.ID);
BObj_ALlist.add(BObj_AL);
}
If(BObj_ALlist.size()>0){
database.insertImmediate(BObj_ALlist);
}
}
global void finish(Database.BatchableContext BC){
ArchiveCTtoBigObj_Batch ACT = new ArchiveCTtoBigObj_Batch(AdID);
Database.executeBatch( ACT, 1 );
}
Batch Class 2
global class ArchiveCTtoBigObj_Batch implements database.Batchable<SObject>,Database.allowscallouts {
public set <string> ArchiveALCTtoBigObj_Batchid = New set <string> ();
global ArchiveCTtoBigObj_Batch(set <String> ALId){
this.ArchiveALCTtoBigObj_Batchid = ALId;
}
global database.QueryLocator Start(Database.BatchableContext bc) {
DescribeSObjectResult describeResult = Contact.getSObjectType().getDescribe();
List<String> fieldNames = new List<String>( describeResult.fields.getMap().keySet() );
String query = ' SELECT ' +
String.join( fieldNames, ',' ) +
' FROM ' +
describeResult.getName()+
' WHERE ' +
' AccountId = :ArchiveALCTtoBigObj_Batchid ';
return Database.getQueryLocator(query);
}
global void Execute(Database.BatchableContext bc, list<Contact>Scope){
System.debug('Scope = '+Scope);
List<ContactBigObject__b> BigObj_CTList = new List<ContactBigObject__b>();
For(Contact CN : Scope){
ContactBigObject__b BigObj_CT = new ContactBigObject__b();
//Logic to assigning values from object to bigObject
BigObj_CTList.add(BigObj_CT);
}
If(BigObj_CTList.size()>0){
System.debug('List is not Empty');
database.insertImmediate(BigObj_CTList);
}
}
global void finish(Database.BatchableContext BC){
}
Test Class
@isTest
public class BIgObj_Test {
public testmethod static void MyMethod(){
Id ART = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Ad').getRecordTypeId();
Account A1 = new Account();
A1.RecordTypeId = ART;
A1.Name = 'Test Account';
insert A1;
Contact c1 = new Contact();
c1.name = 'TestContact';
c1.AccountId = A1.id;
insert c1;
Test.startTest();
ArchiveALCTtoBigObj_Batch ALBOBatch1 = New ArchiveALCTtoBigObj_Batch (A1.id);
Database.executeBatch(ALBOBatch1,1);
Test.stopTest();
}