2015-01-08 2 views
0

Может ли кто-нибудь помочь мне создать Отгрузку, добавив заказ на продажу в Acumatica (версия 4 или выше). Я попытался следующий код без успеха:Как добавить отправку (SO302000) в Acumatica с использованием API

SO302000Content SO302000 = context.SO302000GetSchema(); 
 
context.SO302000Clear(); 
 

 
Command[] commands = new Command[] { 
 
    new Value { Value = "ABCSTUDIOS", LinkedCommand = SO302000.ShipmentSummary.Customer }, 
 
    new Value { Value = "09/01/2015", LinkedCommand = SO302000.ShipmentSummary.ShipmentDate }, 
 
    new Value { Value = "MAIN", LinkedCommand = SO302000.ShipmentSummary.Location }, 
 
    new Value { Value = "RESALE", LinkedCommand = SO302000.ShipmentSummary.WarehouseID }, 
 

 
    new Value { Value = "SO", LinkedCommand = SO302000.AddSalesOrderOperation.OrderType }, 
 
    new Value { Value = "000211", LinkedCommand = SO302000.AddSalesOrderOperation.OrderNbr }, 
 
    
 
    SO302000.AddSalesOrder.InventoryID, 
 
    SO302000.AddSalesOrder.Location, 
 
    SO302000.AddSalesOrder.OpenQty, 
 
    SO302000.AddSalesOrder.OrderQty     
 
}; 
 

 
var results = context.SO302000Submit(commands); 
 
if (results != null && results.Length > 0) 
 
{ 
 
    int line = 0; 
 
    List<Command> cmds = new List<Command>(); 
 
    foreach (var row in results) 
 
    { 
 
    cmds.Add(new Value { 
 
       Value = line.ToString(), 
 
       LinkedCommand = SO302000.AddSalesOrder.ServiceCommands.RowNumber } 
 
      ); 
 
    cmds.Add(new Value { 
 
       Value = "True", 
 
       LinkedCommand = SO302000.AddSalesOrder.Selected, 
 
       Commit = true } 
 
      ); 
 
    line++; 
 
    } 
 

 
    cmds.Add(SO302000.Actions.AddSO); 
 
    context.SO302000Submit(cmds.ToArray());     
 

 
    cmds.Clear();     
 
    cmds.Add(SO302000.Actions.Save); 
 
    cmds.Add(SO302000.Actions.ActionConfirmShipment);     
 
    results = context.SO302000Submit(cmds.ToArray());     
 
}

В результате ошибка из Acumatica говорит что-то вроде «Просмотр AddSOFilter не существует», как описано ниже:

System.Web.Services.Protocols.SoapException: сервер не смог обработать запрос. ---> PX.Data.PXException: Ошибка № 97: Просмотр addsofilter не существует. at PX.Data.PXViewCollection.get_Item (String key) в c: \ Builders \ 4_10-2013_12_2-4_0_9-Auto \ Scripts \ BuildTemp \ NetTools \ PX.Data \ Graph \ Collection.cs: строка 806 на PX.Api .SyImportProcessor.SyStep.SelectRows (String viewName, фильтры PXFilterRow [], Int32 topCount, Boolean bypassInserted) в c: \ Builders \ 4_10-2013_12_2-4_0_9-Auto \ Scripts \ BuildTemp \ NetTools \ PX.Data \ Api \ Export \ SyImport \ ImportProcessor.cs: строка 2521 на PX.Api.SyImportProcessor.ExportTableHelper.a (SyStep A_0, GrowingTable A_1, SyCommand A_2, PXFilterRow [] A_3, Int32 A_4) в c: \ Builders \ 4_10-2013_12_2-4_0_9-Авто \ Скрипты \ BuildTemp \ NetTools \ PX.Data \ Api \ Export \ SyImport \ ImportProcessor.cs: строка 1212 в PX.Api.SyImportProcessor.ExportTableHelper.ExportTable() в c: \ Builders \ 4_10-2013_12_2-4_0_9-Auto \ Scripts \ BuildTemp \ NetTools \ PX.Data \ Api \ Export \ SyImport \ ImportProcessor.cs: строка 675 на ScreenApi.ScreenGate.Submit (команды [], схема schemaMode SchemaMode, график PXGraph) в c: \ Builders \ 4_10-2013_12_2-4_0_9-Auto \ Scripts \ BuildTemp \ NetTools \ PX.Data \ Api \ Export \ ScreenGate.cs: строка 1323 на ScreenApi.ScreenGate.Submit (команды []) в c: \ Builders \ 4_10-2013_12_2-4_0_9-Авто \ Scripts \ BuildTemp \ NetTools \ PX.Data \ Api \ Export \ ScreenGate.cs: строка 1027 - - Конец внутренней трассировки стека исключений ---

Спасибо, G

+0

Можете ли вы опубликовать точную ошибку, которую вы getti нг? –

+0

Теперь я включил сообщение об ошибке в вопрос (поскольку он слишком длинный для комментария): P – GaGa

ответ

0

попробовать следующий пример

  SO302000Content SO302000 = context.SO302000GetSchema(); 
     context.SO302000Clear(); 

     SO302000.Actions.AddSO.Commit = true; 
     //SO302000.AddSalesOrder.Selected.LinkedCommand = null; 
     //SO302000.DocumentDetails.InventoryID.LinkedCommand = null; 

     var result2 = context.SO302000Submit(new Command[] 
      { 
       new Value { Value = "000332", LinkedCommand = SO302000.ShipmentSummary.ShipmentNbr }, //navigate 

       new Value { Value = "SO", LinkedCommand = SO302000.AddSalesOrderOperation.OrderType },      
       new Value { Value = "000531", LinkedCommand = SO302000.AddSalesOrderOperation.OrderNbr, Commit = true },      

       new Value { Value = "OK", LinkedCommand = SO302000.AddSalesOrderOperation.ServiceCommands.DialogAnswer, Commit = true }, 
       new Value { Value = "OK", LinkedCommand = SO302000.AddSalesOrder.ServiceCommands.DialogAnswer, Commit = true }, 
       new Key { Value = "='CPU00004'", FieldName = SO302000.AddSalesOrder.InventoryID.FieldName, ObjectName = SO302000.AddSalesOrder.InventoryID.ObjectName },      
       new Value { Value = "True", LinkedCommand = SO302000.AddSalesOrder.Selected, Commit = true },      
       SO302000.Actions.AddSO,      
       SO302000.Actions.Save 
      }); 
+0

Спасибо за ваш быстрый ответ :) теперь он работает нормально, но он не добавляет элементы (из заказа) в но я могу видеть заказ на вкладке «Заказ». Любая идея, что может продолжаться? – GaGa

+0

nvm that, я заменил «=« CPU00004 »на« CPU00004 », и он работал как шарм :) спасибо @acumember – GaGa

Смежные вопросы