C# 创建NetSuite ItemFulfillment,其中包含具有批次/序列信息的项目
我正在使用SuiteTalk web服务(v.2013_2)。我正在尝试创建一个ItemFulfillment,其中的项目与具有批号或序列号的项目相关 当我尝试将此项目实现保存到NetSuite时,我得到一个错误:C# 创建NetSuite ItemFulfillment,其中包含具有批次/序列信息的项目,c#,netsuite,C#,Netsuite,我正在使用SuiteTalk web服务(v.2013_2)。我正在尝试创建一个ItemFulfillment,其中的项目与具有批号或序列号的项目相关 当我尝试将此项目实现保存到NetSuite时,我得到一个错误: 请在此行提交inventorydetail。 创建itemfillmentItem时,我试图设置itemfillmentation.serialNumbers和itemfillments.binNumbers 例如,我设置 nsIfItem.serialNumbers = "SNum
请在此行提交inventorydetail。
创建itemfillmentItem
时,我试图设置itemfillmentation.serialNumbers
和itemfillments.binNumbers
例如,我设置
nsIfItem.serialNumbers = "SNum(5)"
nsIfItem.binNumbers = "BNum(5)"
基于这些属性-序列号或批号的逗号分隔列表。如果输入序列号,则每个项目必须有一个编号。
批号必须以批号#(数量)的格式输入。
例如,要输入数量为100的项目作为批号ABC1234,请输入ABC1234(100)
我是否还需要在
项目实现
上设置其他内容,或者如何消除该错误。我不确定这个问题是否仍然有效,但我遇到了同样的问题,我找不到太多帮助。我通过创建库存分配对象并添加到事务中解决了这个问题
首先,为项目实现创建initialize ref,并将返回的记录分配给一个变量:
InitializeRecord ir = new InitializeRecord();
ir.type = InitializeType.itemFulfillment;
InitializeRef iref = new InitializeRef();
iref.typeSpecified = true;
iref.type = InitializeRefType.salesOrder;
iref.internalId = 'Sales Order internalID';
ir.reference = iref;
ReadResponse getInitResp = _service.initialize(ir);
ItemFulfillment ifrec = (ItemFulfillment)getInitResp.record;
获取初始化事务的项目列表:
ItemFulfillmentItemList ifitemlist = ifrec.itemList;
创建一个列表,将要满足的每个唯一项添加到其中:
List<ItemFulfillmentItem> ifitems = new List<ItemFulfillmentItem>();
最后,将“iItems”列表添加到项目履行中,并将其添加到NetSuite:
ItemFulfillmentItemList ifitemlistToFulfill = new ItemFulfillmentItemList();
ifitemlistToFulfill.replaceAll = false;
ifitemlistToFulfill.item = ifitems.ToArray();
ItemFulfillment newItemFulfill = new ItemFulfillment();
newItemFulfill.itemList = ifitemlistToFulfill;
_service.add(newItemFulfill);
您是否启用了高级仓位管理/编号库存管理功能?还有,你用的是什么终点?我不确定。我该怎么检查呢?至于端点版本,我们使用的是2013_2。对不起,我应该提到这个。安装->公司->启用功能->物品和库存。应该在右边,大约在中间。老实说,我不确定这是否完全重要,但是帮助系统会参考它。我想你可以通过添加'item.itemReceive=true;item.itemReceiveSpecified=true;`或'item.itemiscompleted=true;item.itemIsFulfilledSpecified=true;`,但我还没有测试过,我会尝试一下。非常感谢您提出了一些可供选择的途径。当我有时间尝试的时候,我会发布它的运行情况。
ItemFulfillmentItem ffItem = new ItemFulfillmentItem();
ffItem.item = ifitemlist.item[b].item;
ffItem.itemReceive = true;
ffItem.itemReceiveSpecified = true;
ffItem.itemIsFulfilled = true;
itemIsFulfilled = true;
ffItem.itemIsFulfilledSpecified = true;
ffItem.orderLineSpecified = true;
ffItem.orderLine = ifitemlist.item[b].orderLine;
//Check if serialized
if (Your fulfillment item contains serialized data)
{
ffItem.serialNumbers = 'Serial numbers';
InventoryAssignment assignment = new InventoryAssignment
{
issueInventoryNumber = new RecordRef {
internalId = 'Inventory internal ID',
type = RecordType,
typeSpecified = true
}
};
ffItem.inventoryDetail = new InventoryDetail
{
inventoryAssignmentList = new InventoryAssignmentList
{
inventoryAssignment = new InventoryAssignment[]
{
assignment
},
replaceAll = false
},
nullFieldList = new string[] { },
customForm = new RecordRef { }
};
}
ffItem.quantity = 'QUANTITY SHIPPED';
ffItem.quantitySpecified = true;
ifitems.Add(ffItem);
ItemFulfillmentItemList ifitemlistToFulfill = new ItemFulfillmentItemList();
ifitemlistToFulfill.replaceAll = false;
ifitemlistToFulfill.item = ifitems.ToArray();
ItemFulfillment newItemFulfill = new ItemFulfillment();
newItemFulfill.itemList = ifitemlistToFulfill;
_service.add(newItemFulfill);