Acumatica の Web サービスを使用して基本的な統合を実行しようとしています。残念ながら、ログインに問題があります。ドキュメントによると、このプロセスは次のようになります。
apitest.Screen context = new apitest.Screen();
context.CookieContainer = new System.Net.CookieContainer();
context.AllowAutoRedirect = true;
context.EnableDecompression = true;
context.Timeout = 1000000;
context.Url = "http://localhost/WebAPIVirtual/Soap/APITEST.asmx";
LoginResult result = context.Login("admin", "E618");
十分に単純です。しかし、WSDL ファイルを作成して Acumatica から Visual Studio にインポートした後、Screen オブジェクトがないことがわかりました。ただし、同様の Login() メソッドを持つ ScreenSoapClient オブジェクトがあります。
ScreenSoapClient context = new Acumatica.ScreenSoapClient("ScreenSoap");
LoginResult result = context.Login("username", "password");
その部分は機能します。実際、LoginResult はセッション ID を提供します。ただし、次のようなサービスを呼び出そうとすると、次のようになります。
CR401000Content cr401000 = context.CR401000GetSchema();
次のエラーが表示されます: System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。---> PX.Data.PXNotLoggedInException: エラー #185: 現在ログインしていません。
私たちが使用している Acumatica のバージョンは若干新しいように見えますが、Screen() オブジェクトが利用できない理由はわかりません。したがって、間違ったユーザー名/パスワードを試してみると、Login() は失敗します (当然のことです)。私が知る限り、ScreenSoapClient クラスは web.config のサービス モデルの詳細を使用しているため、エンドポイント アドレスやその他の詳細を取得しています。
私が行方不明または間違っていることはありますか?