P6 Web サービスで Cookie ベースの認証を使用したいので、以下の 2 つのリンクをたどりました
- http://docs.oracle.com/cd/E16281_01/Technical_Documentation/Web_Services/ProgrammersGuide/Logging_into_Primavera_Web_Services.htm#dotnetexample
- http://docs.oracle.com/cd/E16281_01/Technical_Documentation/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];
問題は 2 番目のステップで発生します。ActivityPortBinding クラスを作成できません。
エラー : 型または名前空間の名前 'ActivityPortBinding' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
- 上記のコードでどこが間違っていたのかを教えてください。
- ステップ 1 で正しい Login() を呼び出していますか?
- Step2 で ActivityPortBinding クラスにどの参照を使用する必要がありますか?
前もって感謝します!