0

我在计费信息中有信息,我想使用 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());
        }
    }
}

我被困在将约会项目绑定到属性集上。

4

2 回答 2

1

有任务获得相同的财产。下面是另一个 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();
        }
    }
}
于 2012-09-15T05:36:34.483 回答
0

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

Exchange Server 协议主属性列表

2.42 PidLidBilling

说明:指定联系人的计费信息。

于 2019-11-07T13:59:19.877 回答