我在账单信息中有信息,我想使用 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计费
说明:指定联系人的帐单信息。