1

When i am querying calendar's record from Exchange server, i am getting records 2016-12-26T08:52:29Z in this format, But when i am trying to querying by using 2016-12-26T08:52:29Z this date format it does not return anything?

When i give (less than) < 2016-12-26T08:52:29Z or (greater than) > 2016-12-26T08:52:29Z date format it's work fine & it's returning the records.

in java code i am using SearchFilter.IsEqualTo for date filtering it did't work

but SearchFilter.IsLessThan or SearchFilter.IsGreaterThan it's working fine.

Am i giving any wrong date format. ?

Here is the code:

private void filter(IBExchangeFilterData filterData,String comparisonOperation,String fieldName,SearchFilter.SearchFilterCollection filterCollection,String[] input) throws IBExchangeException 
{
if(filterData!=null && filterData.getFieldType()!=null && filterData.getFieldValue()!=null)
{
    if(comparisonOperation.equalsIgnoreCase("Between")) 
    {
        SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

        String fieldValue2 = input[2];
        IBExchangeFilterData filterData2 = new IBExchangeFilterData();
        if(!fieldName.equalsIgnoreCase("ExtendedProperties"))
        {
        if(_itemType.equalsIgnoreCase("Calendar"))
            filterData2 = getCalendarPropertyDefinition(fieldName,fieldValue2);
        else if(_itemType.equalsIgnoreCase("Tasks"))
            filterData2 = getTaskPropertyDefinition(fieldName, fieldValue2);
        //Defect: 139539 Between : Querying MS Exchange calendar items within date does not work.
        else if(_itemType.equalsIgnoreCase("Mail"))
            filterData2 = getMailPropertyDefinition(fieldName, fieldValue2);
        //Defect 140430: Querying Contacts using Between operator for DateTime is not working in Exchange.
        else if (_itemType.equalsIgnoreCase("Contacts"))
            filterData2 = getContactPropertyDefinition(fieldName, fieldValue2);


        if(filterData2.getFieldType().equals(AppointmentSchema.Start))
            endDate = (Date)filterData2.getFieldValue();
        else if(filterData2.getFieldType().equals(AppointmentSchema.End))
            endDate = (Date)filterData2.getFieldValue();
        }
        SearchFilter filter2 = new SearchFilter.IsLessThanOrEqualTo(filterData2.getFieldType(), filterData2.getFieldValue());
        filterCollection.add(filter2);

    }else if(comparisonOperation.equalsIgnoreCase("=")) {
        SearchFilter filter = new SearchFilter.IsEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if(comparisonOperation.equalsIgnoreCase("!=")) {
        SearchFilter filter = new SearchFilter.IsNotEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if(comparisonOperation.equalsIgnoreCase("<>")) {
        SearchFilter filter = new SearchFilter.IsNotEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase(">")) {
        SearchFilter filter = new SearchFilter.IsGreaterThan(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase(">=")) {
        SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase("<")) {
        SearchFilter filter = new SearchFilter.IsLessThan(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase("<=")) {
        SearchFilter filter = new SearchFilter.IsLessThanOrEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase("like")) {
        SearchFilter filter = new SearchFilter.ContainsSubstring(filterData.getFieldType(), filterData.getFieldValue().toString(),ContainmentMode.Substring,ComparisonMode.IgnoreCase);
        filterCollection.add(filter);
    }
}

}

Sandip Bhot
  • 53
  • 1
  • 7

0 Answers0