The following sample searches invoices by given search criteria (a particular invoice vendor) and returns the specified properties of the resulting invoice records.
protected InvoiceRepository invoiceRepository;
private List<Invoice> test_readInvoicesByCriteria() throws Exception
{
// Criterion for invoice searching
StringFieldCriterion fieldCriterion = new StringFieldCriterion();
fieldCriterion.setComparator(UserComparator.CONTAINS);
LegacySearchFieldPathExpression fieldPathExpression = new LegacySearchFieldPathExpression();
fieldPathExpression.setSearchKeyPath("vendor");
fieldCriterion.setFieldPath(fieldPathExpression);
fieldCriterion.getValue().add("Rubidoux Accounting");
FieldSearchClause searchCriteria = new FieldSearchClause();
searchCriteria.setOperator(LogicOperator.AND);
searchCriteria.getCriteria().add(fieldCriterion);
invoices = invoiceRepository.readInvoicesByCriteria(searchCriteria, 100, getPropertiesToRead());
}
private List<String> getPropertiesToRead() {
List<String> properties = new List<String>();
properties.add("version");
properties.add("createdBy");
properties.add("createdOn");
properties.add("modifiedBy");
properties.add("modifiedOn");
properties.add("numberString");
properties.add("invoiceDate");
properties.add("receivedDate");
properties.add("periodStartDate");
properties.add("periodEndDate");
properties.add("submittedElectronically");
properties.add("postingStatus");
properties.add("vendor");
properties.add("submittedTotal");
properties.add("currency");
properties.add("comment");
properties.add("warnings");
properties.add("taxRate");
properties.add("adjustments");
properties.add("lineItems");
properties.add("originalExpenseTotal");
properties.add("originalFeeTotal");
properties.add("originalInvoiceTotal");
properties.add("expenseDiscountTotal");
properties.add("feeDiscountTotal");
properties.add("invoiceDiscountTotal");
properties.add("expenseAdjustmentTotal");
properties.add("feeAdjustmentTotal");
properties.add("invoiceAdjustmentTotal");
properties.add("expenseTaxTotal");
properties.add("feeTaxTotal");
properties.add("invoiceTaxTotal");
properties.add("netExpenseTotal");
properties.add("netFeeTotal");
properties.add("netInvoiceTotal");
properties.add("categories");
properties.add("note");
return properties;
}