契約ベースAPIを使用してAcumaticaのCustomer Orderフィールドに基づいて1つの受注を取得しようとしています。下記の私のコードを参照してください。Contract Based Documentation(82ページ)のコードに基づいています。私はこのコードを実行するとAcumatica Customer Orderフィールドで受注を取得
public SalesOrder GetSalesOrder(string orderNumber)
{
var binding = new System.ServiceModel.BasicHttpBinding()
{
AllowCookies = true,
MaxReceivedMessageSize = 655360,
MaxBufferSize = 655360,
SendTimeout = new TimeSpan(0, 2, 0)
};
var soToBeFound = new SalesOrder()
{
OrderType = new StringValue { Value = "SO" },
CustomerOrder = new StringValue { Value = orderNumber }
};
var address = new System.ServiceModel.EndpointAddress(ConfigurationManager.AppSettings["AcumaticaUrl"]);
using (DefaultSoapClient client = new DefaultSoapClient(binding, address))
{
client.Login(_acumaticaUid, _acumaticaPwd, _acumaticaCompany, null, null);
var existingOrder = (SalesOrder)client.Get(soToBeFound);
client.Logout();
return existingOrder;
}
}
私はこの例外を取得:01:59.9880722 00の後に返事を待っている間に
要求チャネルがタイムアウトしました。 への呼び出しに渡されたタイムアウト値を増やします。バインディングでSendTimeout値を要求または増加します。この操作に割り当てられた時間 は長い タイムアウトの一部であったかもしれない。」あなたが見ることができるように、私はすでに永遠のように思えるれ、2分にタイムアウトを増加しました
。Acumatica APIです実際には、この低速または私はコード内で何か間違ったことをやっている
EDIT:?。
私が代わりに「CustomerOrderが」フィールドの「OrderNbr」フィールドで取得しようとすると、それは完璧に動作を取得していますこのように「CustomerOrder」によって許可されていない場合、「CustomerOrder」はどのように使用できますか?取得リクエストで?
これは間違いありません!ドキュメントでは、アイテムが存在しない場合はnullが返されますが、 'PX.Api.ContractBased.NoEntitySatisfiesTheConditionException'が返されることを示しています。例外をスローする代わりにNullを返すように設定できますか? –
残念ながら、例外をスローする代わりにNullを返すようにAPIを設定するオプションはありません。アイテムがアプリケーションに存在しない場合は、 'NoEntitySatisfiesTheConditionException'をスローし続けます。 – RuslanDev