2016-01-08 3 views
0

Я пытаюсь импортировать строки заказа трансфера с этим кодом из Transfer Orders Import:Импорт TransferOrder линии (InventTransferLine)

InventDim inventDim; 
InventTransferLine inventTransferLine; 
#define.ShipDate("1/1/2016") 
#define.ReceiveDate("1/1/2016") 

//Order line 
inventDim.clear(); 
inventDim.InventSiteId = "GENERAL"; 
inventDim.InventLocationId = "103"; 

inventTransferLine.clear(); 
inventTransferLine.initValue(); 

inventTransferLine.ItemId = "A01103472"; 
inventTransferLine.InventDimId = InventDim::findOrCreate(inventDim).inventDimId; 
inventTransferLine.QtyTransfer = 2; 

inventTransferLine.initFromInventTableModule(InventTableModule::find(inventTransferLine.ItemId,ModuleInventPurchSales::Invent)); 

inventTransferLine.QtyRemainReceive = inventTransferLine.QtyTransfer; 
inventTransferLine.QtyRemainShip = inventTransferLine.QtyTransfer; 

inventTransferLine.ShipDate = str2Date(#ShipDate, 213); 
inventTransferLine.ReceiveDate = str2Date(#ReceiveDate, 213); 

inventTransferLine.initFromInventTransferTable(inventTransferTable, false); 
inventTransferLine.LineNum = InventTransferLine::lastLineNum(inventTransferLine.TransferId) + 1.0; 

if (inventTransferLine.validateWrite()) 
{ 
    inventTransferLine.insert(); 
} 
else 
    throw error("Order line"); 

Является ли это правильным или предпочтительный способ сделать это?

Какая польза от изобретения здесь? Я переношу этот продукт со склада A на склад B, и они указаны в выбранном заголовке, что означает запись InventTransferTable.

И я не уверен, что эти две строки:

1. inventTransferLine.QtyRemainReceive = inventTransferLine.QtyTransfer; 
2. inventTransferLine.QtyRemainShip = inventTransferLine.QtyTransfer; 

RemainReceive откуда? я не могу понять, о чем они говорят.

ответ

1

Вы более или менее доброжелательны. У вас, кажется, copied what others have done, что хорошо.

Есть и другие способы, используя и ...Line классы, другой - с помощью сервиса TransferOrderCreateService. Никто не даст вам много конкурентного преимущества, если вы работаете в AX.

InventDim (см. white paper) содержит данные инвентаризации, хранения и отслеживания объекта. Вам потребуется установить больше полей, если элемент требует его, как указано в элементе и товаре.

  • Размеры продукта. Размеры, цвет, размер и конфигурация.
  • Размеры хранилища. Это сайт, склад, местоположение и поддон.
  • Отслеживание размеров. Это номер партии и серийный номер.

Отправка товара двухэтапная. Сначала вы отправляете товар с исходного сайта/склада. Позже вы получаете товар на целевом сайте/складе. Поля QtyRemainShip и QtyRemainReceive представляют собой количество, оставшееся для каждого шага.

+0

Спасибо за ваш ответ Янв. Что касается InventDim, должен ли он быть установлен на значение «From warehouse», взятое из выбранного заголовка? Я думаю, что это нужно, но это стоит спросить, чтобы быть уверенным. –

+0

Я тоже так думаю, но вы можете ответить сами, создав линию, используя пользовательский интерфейс. –

+0

В initFromInventTransferTable я нашел эту строку: this.InventDimId = this.inventDimMergeWarehouse (_inventTransferTable.InventLocationIdFrom, _inventTransferTable) .InventDimId; Поэтому я считаю, что установка этих размеров является избыточной. И действительно, он устанавливает местоположение в значение «От склада». –