Garoon SOAP APIのScheduleGetEventsByTargetについて

クラウド版のガルーンを150名程度で契約しております。

C#からSOAP APIを使って、スケジュールの取得をしたいと考えています。

wsdlを読み込んでできたReference.csを修正して、ヘッダーが生成されるようにしました。

ScheduleGetEventsById,ScheduleGetEventsなどは成功しましたが、

ScheduleGetEventsByTargetは、520エラーが返ってきて、うまくいきません。

似たような投稿がありましたが、他に解決策を見つけることができませんでしたので、投稿させていただきました。

https://developer.cybozu.io/hc/ja/community/posts/115010272166-サイボウズ-R-Office-R-on-cybozu-com-クラウド版-のAPIについて

人(ScheduleGetEventsByTargetRequestTypeUser)も施設(ScheduleGetEventsByTargetRequestTypeFacility)もうまくいきませんでした。

なにとぞ、ご教示お願い致します。

 

    public EventType[] ScheduleGetEventsByTarget(System.DateTime start, System.DateTime end, object o,System.DateTime? start_for_daily = null, System.DateTime? end_for_daily = null)
    //指定したユーザー、組織、または施設の予定を取得する
    {
        actionElement.actionValue = "ScheduleGetEventsByTarget";
        ScheduleGetEventsByTargetRequestType param = new ScheduleGetEventsByTargetRequestType();
        param.start = start;
        param.end = end;
        param.Item = o;
//外部から以下の通りセットしてます。
//ScheduleGetEventsByTargetRequestTypeUser o = new ScheduleGetEventsByTargetRequestTypeUser();
//o.id ="3001";
      if (start_for_daily != null) { param.start_for_daily = (DateTime)start_for_daily; }
        if (end_for_daily != null) { param.end_for_daily = (DateTime)end_for_daily; }

        ScheduleBinding api = new ScheduleBinding
        {
            action = actionElement,
            security = securityElement,
            timeStamp = timeStampElement,
            locale = localeElement
        };
        api.AllowAutoRedirect = true;
        api.PreAuthenticate = true;
        api.ClientCertificates.Add(cert);

        EventType[] resp;
        try
        {
            resp = api.ScheduleGetEventsByTarget(param);
            return resp;
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            return null;
        }
    }

自己解決いたしました。

SOAPUIで確認したところ、ユーザーIDとログイン名を混同しておりました。同様に施設コードとIDを混同していたので、エラーになっていたようです。

お騒がせいたしました。