webserviceとの統合が完了していて、途中で動作していました。 RCタイプの注文。正確に何が間違っているのか分かりません。私たちは何かを更新しなかったので、これはデータ関連の問題だと思う。画面ベースのWebサービスでエラーが発生しました。[PXRowPersistingException:エラー#4: 'RevisionID'は空ではありません]
UIで同じプロセスを試しましたが、このエラーは発生していません。手伝ってください。あなたの助けを深く感謝します。
PX.Data.PXRowPersistingException:エラー#4: 'RevisionID'を にすることはできません。
System.Web.Services.Protocols.SoapException:サーバーが プロセス要求にできませんでした。 ---> PX.Data.PXRowPersistingException:エラー#4: 'RevisionID'を空にすることはできません。 でPX.Data.PXCache
1.PersistInserted(Object row) at PX.Objects.CS.SharedRecordAttribute.RowPersisting(PXCache sender, PXRowPersistingEventArgs e) at PX.Data.PXCache.OnRowPersisting(Object item, PXDBOperation operation) at PX.Data.PXCache
1.PersistInserted(オブジェクト列)で PX.Data.PXCache.OnRowPersisting(対象項目、PXDBOperation動作) でPX.Data.PXDefaultAttribute.RowPersisting(PXCache送信者、 PXRowPersistingEventArgs e)に PX.Api.SyImportProcessor.SyStep.a(オブジェクトA_0、PXFilterRow [] A_1、 PXFilterRowでPX.Data.PXCache1.Persist(PXDBOperation operation) at PX.Data.PXGraph.Persist(Type cacheType, PXDBOperation operation) at PX.Data.PXGraph.Persist() at PX.Objects.SO.SOShipmentEntry.Persist() at PX.Data.PXSave
1.d__2.MoveNext() PX.Data.PXAction1.<Press>d__31.MoveNext() at PX.Data.PXAction
1.d__31.MoveNext(AT) [] A_2)at PX.Api.SyImportProcessor.ExportTableHelper.ExportTable()at PX.Api.ScreenUtils.Submit(String screenId、Command []コマンド、 )スキーマモードschemaMode、PXGraph & grap時間、ストリング& redirectContainerView、 ストリング& redirectScreen、ブールモバイル、辞書2 viewFilters)
1つの コマンド、SchemaMode schemaMode、ブールモバイル、PXGraph & forceGraph、 ストリング& redirectContainerView、 PXに文字列& redirectScreen、辞書
at PX.Api.Services.ScreenService.Submit(String id, IEnumerable2 viewFilters) at PX.Api.Services.ScreenService.Submit(String id, IEnumerable
1コマンド、SchemaMode schemaMode) .Api.Soap.Screen.ScreenGate.Submit(コマンド[]コマンド)---内部例外スタックトレースの終わり---
EDIT
この注文タイプで自動番号付けが有効になっており、コードは次のとおりです。 Acumaticaバージョン6.00.1384
前述のとおり、このコードは正しく機能していました。突然行動が変わってしまい、理由は分かりません。
apitest.Screen context = BuisnessLogicACU.context;
SO301000Content SOSchema;
try
{
SOSchema = context.SO301000GetSchema();
}
catch
{
BuisnessLogicACU.contextLogin();
SOSchema = context.SO301000GetSchema();
}
SOSchema.Actions.LSSOLineBinLotSerial.Commit = true;
SOSchema.Actions.CreateReceiptAction.Commit = true;
//HEADER INFO
AcumaticaInterface.apitest.Command[] commands = new AcumaticaInterface.apitest.Command[]
{
new Value
{
Value = returnInterfaceStatus.SalesOrderType,
LinkedCommand = SOSchema.OrderSummary.OrderType
},
SOSchema.Actions.Insert,
new Value
{
Value = "false",
LinkedCommand = SOSchema.OrderSummary.Hold
},
new Value
{
Value = OrderStatus == POSOrderstatus.Normal ? (ConfigValues.POSNormalCustomerID ?? CustomerID) : CustomerID,
LinkedCommand = SOSchema.OrderSummary.Customer
},
new Value
{
Value = BizDate.HasValue ? ((DateTime)BizDate).ToLongDateString() : "",
LinkedCommand = SOSchema.OrderSummary.Date
},
new Value
{
Value = BizDate.HasValue ? ((DateTime)BizDate.Value).ToLongDateString() : "",
LinkedCommand = SOSchema.OrderSummary.RequestedOn
},
new Value
{
Value = POSID,
LinkedCommand = SOSchema.OrderSummary.ExternalReference
},
new Value
{
Value = SIPosOrdrCreatedBy,
LinkedCommand = SOSchema.OrderSummary.POSOrdrBy
},
new Value
{
Value = CustomerTaxZone,
LinkedCommand = SOSchema.FinancialSettingsFinancialInformation.CustomerTaxZone
}
};
AcumaticaInterface.apitest.Command[] commandline = new AcumaticaInterface.apitest.Command[]
{
SOSchema.DocumentDetails.ServiceCommands.NewRow,
new Value
{
Value = line.InventoryID,
LinkedCommand = SOSchema.DocumentDetails.InventoryID
},
new Value
{
Value = SIOutletCode,
LinkedCommand = SOSchema.DocumentDetails.Warehouse
},
new Value
{
Value = line.Quantity.ToString(),
LinkedCommand = SOSchema.DocumentDetails.Quantity,
Commit = true
},
new Value
{
Value = line.UnitPrice.ToString(),
LinkedCommand = SOSchema.DocumentDetails.UnitPrice
},
new Value
{
Value = line.Uom,
LinkedCommand = SOSchema.DocumentDetails.UOM
},
new Value
{
Value = (line.DiscTotal ?? 0).ToString(),
LinkedCommand = SOSchema.DocumentDetails.DiscountAmount
},
new Value
{
Value = (line.LineTotal ?? 0).ToString(),
LinkedCommand = SOSchema.DocumentDetails.ExtPrice
},
new Value
{
Value = line.DiscType ?? "",
LinkedCommand = SOSchema.DocumentDetails.POSDiscType
},
new Value
{
Value = line.LineType ?? "",
LinkedCommand = SOSchema.DocumentDetails.POSLineType
},
new Value
{
Value = line.VoucherSerial ?? "",
LinkedCommand = SOSchema.DocumentDetails.POSVoucherSerial
},
new Value
{
Value = line.PromoID ?? "",
LinkedCommand = SOSchema.DocumentDetails.POSPromoID
},
new Value
{
Value = line.PromoType ?? "",
LinkedCommand = SOSchema.DocumentDetails.POSPromoType
},
new Value
{
Value = (line.PromoPct ?? 0).ToString(),
LinkedCommand = SOSchema.DocumentDetails.POSPromoPct
},
new Value
{
Value = line.PromoBaseItem ?? "",
LinkedCommand = SOSchema.DocumentDetails.POSPromoBaseItem
},
//new Value
//{
// Value = SalesPerson,
// LinkedCommand = SOSchema.DocumentDetails.SalespersonID
//},
new Value
{
Value = line.Remarks ?? "",
LinkedCommand = SOSchema.DocumentDetails.NoteText,
Commit = true
},
new Value
{
Value = POSID,
LinkedCommand = SOSchema.DocumentDetails.PackUoM,
Commit = true
}
};
commands = commands.Concat(commandline).ToArray();
AcumaticaInterface.apitest.Command[] save = new AcumaticaInterface.apitest.Command[] {
SOSchema.Actions.Save
};
commands = commands.Concat(save).ToArray();
AcumaticaInterface.apitest.Command[] returnResult= new AcumaticaInterface.apitest.Command[] {
SOSchema.OrderSummary.OrderType,
SOSchema.OrderSummary.OrderNbr,
SOSchema.OrderSummary.Status
};
commands = commands.Concat(returnResult).ToArray();
var SOrder = context.SO301000Submit(commands)[0];
Screen APIコールで使用しているAcumaticaのバージョンとコマンドを教えてください。 – samol518
あなたのコードも提供していただけますか?あなたの問題を再現できる最小限のコードを作成することができれば良いです –
更新された質問をご覧ください。 – Hybridzz