I have imported (tens of) thousands of historic contributions to a site that uses Accounting Batches regularly. They were starting to bog down the batch assignment page so I thought I would simply create an administrative batch, drop them in via SQL directly as follows, and then be done with them.

insert into `civicrm_entity_batch` (entity_table,entity_id,batch_id) 
select 'civicrm_financial_trxn',trxn.`id`,188 from `civicrm_financial_trxn` trxn 
where trxn.`trxn_id` LIKE 'archive_%';

In the SQL above, I am inserting the string 'civicrm_financial_trxn' into the entity_table field, the id, and then the number 188 (which is the ID of the new batch I created). Also, all the transaction IDs for these archival records have been prepended with 'archive_' (hence the where clause above to choose just these contributions).

This works for the most part (the transactions show up in the batch, and I can close it as I would expect), but there is a kicker. Now in any new batches, the bottom portion of the page where you typically assign transactions to the batch never stops "Processing":

Batch assign

The Drupal watchdog has a few notices:

Strict warning: Non-static method CRM_Batch_BAO_Batch::links() should not be 
called statically in CRM_Batch_BAO_Batch::links() (line 280 of 


Notice: Undefined index: batch_type in 
CRM_Batch_BAO_Batch::getBatchListSelector() (line 230 of 

Does anyone have an idea what this might mean? The archival imports were not intended to be fully integrated into the Financial/Accounting portion (they were batched and dealt with in a previous system) but were meant simply as informational background on contacts.

How can I troubleshoot/fix this?

1 Answer 1


Well this is not really an answer but it is a workaround. We've found that when creating the batch, if we specify the Payment Instrument (e.g. Credit Card) then it works. So we can get around this for now by doing separate batches for credit cards and checks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.