I210 Contract Based Web Servicesガイドhereの117ページに記載されているように、SOAP API経由でAcumatica支払いをリリースする予定です。Acumatica SOAP APIの支払いステータスのエラー
TX Error #3: Document Status is invalid for processing. at PX.Objects.AR.ARPaymentEntry.Release
私は、新しく作成された支払いの状況を見て、それは私がすべきと考えているバランスの状態を持っている:私はこのエラーを取得しています支払いを離したときに、私は、しかし、マニュアル仕様にコードを実装しています解放することができる。リリースのために支払いが必要な別のステータスがありますか?
マイコード:
//creates the order to attach the payment to
SalesOrder newOrder = (SalesOrder)await client.PutAsync(orderToBeCreated);
var wooPaymentRef = "Test";
//Create a payment for the order
Payment paymentToBeCreated = new Payment()
{
Type = new StringValue { Value = "Prepayment" },
Status = new StringValue { Value = "Open" },
PaymentMethod = new StringValue { Value = store.AcumaticaPaymentMethod },
PaymentAmount = new DecimalValue { Value = Convert.ToDecimal(wooOrder.order.total) },
CustomerID = newOrder.CustomerID,
OrdersToApply = new PaymentOrder[] {
new PaymentOrder()
{
OrderType = new StringValue { Value = "SO"},
OrderNbr = newOrder.OrderNbr,
AppliedToOrder = newOrder.OrderTotal
}
},
CashAccount = new StringValue { Value = store.AcumaticaPaymentMethod },
PaymentRef = new StringValue { Value = wooPaymentRef },
Hold = new BooleanValue { Value = false}
};
Payment newPayment = (Payment)await client.PutAsync(paymentToBeCreated);
//Extra step to get the newly created payment just to make sure it's the most recent
Payment paymentToBeFound = new Payment
{
Type = new StringSearch { Value = newPayment.Type.Value },
ReferenceNbr = new StringSearch { Value = newPayment.ReferenceNbr.Value }
};
Payment currentPayment = (Payment)await client.GetAsync(paymentToBeFound);
//Release the payment
InvokeResult invokeResult = await client.InvokeAsync(currentPayment, new ReleasePayment());
//Monitor the process
ProcessResult processResult = await LongProcessRunner.GetProcessResult(client, invokeResult);
エラーがInvokeResultラインで発生します。
'Status'を' Balanced'に設定するのではなく 'Open'に設定しています –
このコードを使っているAcumaticaのバージョンは何ですか? – samol518
@SamvelPetrosov、私は前払いを作成するときにステータスを設定しているかどうかにかかわらず、 "paymentToBeFound"としてペイメントオブジェクトを取得すると "Balanced"となります。それを解放するためにはどのような状態にすべきですか? –