使用 EWS Java API 检索约会的计费信息



我在账单信息中有信息,我想使用 EWS Java API 进行检索。这是我到目前为止所拥有的

public List<String> findAppointments() throws Exception
{
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date startDate1 = formatter.parse("2012-08-26 12:00:00");
    Date endDate1 = formatter.parse("2012-10-06 13:00:00");   
    ExchangeService service = createService();
    CalendarFolder cf = CalendarFolder.bind(service, WellKnownFolderName.Calendar);
    FindItemsResults<Appointment> findResults = cf.findAppointments(new CalendarView(startDate1, endDate1));
    List<String> calList = new ArrayList<String>();
    ExtendedPropertyDefinition BillingInfo = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, "34101" , MapiPropertyType.String );
    PropertySet propertySet = new PropertySet(BasePropertySet.FirstClassProperties, BillingInfo);
    for (Appointment appt : findResults.getItems()) {
        appt = (Appointment)Item.bind(service, new ItemId(appt.getId()), propertySet);
        for(ExtendedProperty extendedProperty : appt.getExtendedProperties()) {
            System.out.println("extendedProperty :" + extendedProperty.getValue());
        }
    }
}

我卡在将约会项目绑定到属性集时遇到了困难。

具有获取相同属性的任务。下面是另一个 API 的示例,但逻辑应该相同:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.independentsoft.exchange.And;
import com.independentsoft.exchange.Appointment;
import com.independentsoft.exchange.AppointmentPropertyPath;
import com.independentsoft.exchange.FindItemResponse;
import com.independentsoft.exchange.IsGreaterThanOrEqualTo;
import com.independentsoft.exchange.IsLessThanOrEqualTo;
import com.independentsoft.exchange.ItemShape;
import com.independentsoft.exchange.MapiPropertyType;
import com.independentsoft.exchange.PropertyId;
import com.independentsoft.exchange.Service;
import com.independentsoft.exchange.ServiceException;
import com.independentsoft.exchange.StandardFolder;
import com.independentsoft.exchange.StandardPropertySet;
public class Test {
    public static void main(String[] args)
    {
        try
        {
            Service service = new Service("https://myserver/ews/Exchange.asmx", "username", "password");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date startTime = dateFormat.parse("2012-09-15 00:00:00");
            Date endTime = dateFormat.parse("2012-09-16 00:00:00");
            IsGreaterThanOrEqualTo restriction1 = new IsGreaterThanOrEqualTo(AppointmentPropertyPath.START_TIME, startTime);
            IsLessThanOrEqualTo restriction2 = new IsLessThanOrEqualTo(AppointmentPropertyPath.END_TIME, endTime);
            And restriction3 = new And(restriction1, restriction2);
            PropertyId billingInformationPropertyId = new PropertyId(0x8535, StandardPropertySet.COMMON, MapiPropertyType.STRING);
            ItemShape shape = new ItemShape(AppointmentPropertyPath.getAllPropertyPaths());
            shape.getPropertyPaths().add(billingInformationPropertyId);
            FindItemResponse response = service.findItem(StandardFolder.CALENDAR, shape, restriction3);
            for (int i = 0; i < response.getItems().size(); i++)
            {
                if (response.getItems().get(i) instanceof Appointment)
                {
                    Appointment appointment = (Appointment) response.getItems().get(i);
                    System.out.println("Subject = " + appointment.getSubject());
                    System.out.println("StartTime = " + appointment.getStartTime());
                    System.out.println("EndTime = " + appointment.getEndTime());                    
                    if (appointment.getExtendedProperty(billingInformationPropertyId) != null)
                    {
                        System.out.println("Billing Information = " + appointment.getExtendedProperty(billingInformationPropertyId).getValue());
                    }
                }
            }
        }
        catch (ServiceException e)
        {
            System.out.println(e.getMessage());
            System.out.println(e.getXmlMessage());
            e.printStackTrace();
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
    }
}

问题是此扩展属性仅在联系人架构中可用。您将无法在约会架构中访问它。

Exchange 服务器协议主属性列表

2.42 PidLid计费

说明:指定联系人的帐单信息。

最新更新