Я хочу использовать аутентификацию на основе файлов cookie в веб-службе P6, и я перешел по двум ссылкам ниже.
- http://docs.oracle.com/cd/E16281_01/Техническая_документация/Web_Services/ProgrammersGuide/Logging_into_Primavera_Web_Services.htm#dotnetexample
- http://docs.oracle.com/cd/E16281_01/Техническая_документация/Web_Services/ProgrammersGuide/whnjs.htm
Теперь я могу войти в систему с аутентификацией на основе файлов cookie, но когда я пытаюсь перейти к следующему шагу, я поражен.
Например. Я хочу создать новую активность в P6 DB, я выполнил следующие шаги.
Войдите в систему (создайте контейнер cookie): я добавил ссылку на службу для AuthenticationService.wsdl.
System.Net.CookieContainer cookieContainer; public void Login(String userName, String password) { AuthenticationServiceWebRef.AuthenticationService authService = new AuthenticationServiceWebRef.AuthenticationService(); authService.CookieContainer = new System.Net.CookieContainer(); authService.Url = ConfigurationManager.AppSettings["WSAuthenticationService"]; AuthenticationServiceWebRef.Login loginObj = new AuthenticationServiceWebRef.Login(); loginObj.UserName = userName; loginObj.Password = password; loginObj.DatabaseInstanceId = 1; loginObj.DatabaseInstanceIdSpecified = true; AuthenticationServiceWebRef.LoginResponse loginReturn = authService.Login(loginObj); cookieContainer = authService.CookieContainer; }
Создайте действие: я добавляю ссылку на службу для ActivityService?wsdl
Login(WSUsername, WSPassword); ActivityPortBinding apb = new ActivityPortBinding(); apb.CookieContainer = cookieContainer; apb.Url = ConfigurationManager.AppSettings["WSGetDataByID"]; Activity[] acts; acts = new Activity[1]; Activity activity = null; for (int i = 0; i < 1; i++) { activity = new Activity(); activity.ProjectObjectId = iProjectObjectID; activity.ProjectObjectIdSpecified = true; activity.Id = "P6 Test" + (i + 1); activity.Name = "P6 Test" + (i + 1); acts[i] = activity; } int [] arrayObjectIDs= apb.CreateActivities(acts); iRetActivityObjectID = arrayObjectIDs[0];
Проблема возникает на втором этапе, я не могу создать класс ActivityPortBinding.
Ошибка: не удалось найти имя типа или пространства имен «ActivityPortBinding» (вам не хватает директивы использования или ссылки на сборку?)
- Не могли бы вы помочь мне найти, где я ошибся в приведенном выше коде?
- Правильно ли я вызываю Login() на шаге 1?
- Какую ссылку я должен использовать для класса ActivityPortBinding на шаге 2?
Заранее спасибо!