Axapta 使用X++代码将项目导入Ax
我正在使用以下作业将项目导入Microsoft Dynamics AX 2009Axapta 使用X++代码将项目导入Ax,axapta,dynamics-ax-2009,Axapta,Dynamics Ax 2009,我正在使用以下作业将项目导入Microsoft Dynamics AX 2009 static void ItemsImport(Args _args) { InventTable InventTable; container c; TextIo io; str
static void ItemsImport(Args _args)
{
InventTable InventTable;
container c;
TextIo io;
str 130 fileName;
TextBuffer b;
integer inc;
ItemId ItemId;
AxInventTable axInventTable;
;
fileName = @"C:\Users\mom\Desktop\Items.csv";
b = new Textbuffer();
io = SysLicenseCodeReadFile::openFile(fileName,'r');
if (!io)
throw error(strfmt("@SYS18678",fileName));
io.inFieldDelimiter(";");
c = io.read();
b = new Textbuffer();
ttsbegin;
while (io.status() == IO_Status::Ok)
{
c = io.read();
inc++;
if (io.status() != IO_Status::Ok)
break;
ItemId = conpeek(c,1);
select InventTable
where InventTable.ItemId == ItemId;
axInventTable = new axInventTable();
axInventTable.parmItemId(conPeek(c, 1));
axInventTable.parmItemName(conPeek(c, 2));
axInventTable.parmNameAlias(conPeek(c, 3));
axInventTable.parmItemGroupId("PRD_CHF");
axInventTable.parmModelGroupId("PMP");
axInventTable.parmDimGroupId("Teinture");
axInventTable.axInventTableModule_Sales().parmUnitId("Kg");
axInventTable.axInventTableModule_Purch().parmUnitId("Kg");
axInventTable.axInventTableModule_Invent().parmUnitId("Kg");
axInventTable.parmBOMUnitId("g");
axInventTable.axInventItemInventSetup().axInventDim().parmInventSiteId("FIMA");
axInventTable.axInventItemPurchSetup().axInventDim().parmInventSiteId("FIMA");
axInventTable.axInventItemInventSetup().axInventDim().parmInventSiteId("FIMA");
axInventTable.axInventItemInventSetup().axInventDim().parmInventLocationId("MG_PRD_CHI");
axInventTable.axInventItemPurchSetup().axInventDim().parmInventLocationId("MG_PRD_CHI");
axInventTable.axInventItemInventSetup().axInventDim().parmInventLocationId("MG_PRD_CHI");
axInventTable.save();
}
ttscommit;
pause;
}
在表中正确创建了记录,但当我打开产品的默认订单设置/特定于站点的订单设置订单表单时,
所有字段仍灰显,好像不存在任何记录
有人面对过这个问题吗?如何更正x++代码
任何帮助都将不胜感激
谢谢,您很可能需要更改此行: AxiInventTable=新的AxiInventTable 关于这一行: AxiInventTable=AxiInventTable::newInventTableinventTable 这对我很有用:
static void updateInventOrderSettings(Args _args)
{
InventTable inventTable;
InventItemInventSetup inventItemInventSetup;
InventItemPurchSetup inventItemPurchSetup;
InventItemSalesSetup inventItemSalesSetup;
InventDim inventDim;
;
ttsBegin;
inventTable = InventTable::find("00001", true);
inventTable.ItemGroupId = "Planning";
//.. other inventTable fields
inventTable.update();
inventDim.initValue();
inventDim.InventSiteId = "Site2";
inventDim.inventLocationId = "ARC";
inventDim = InventDim::findOrCreate(inventDim);
//Site specific setup
inventItemInventSetup.initValue();
inventItemInventSetup.InventDimId = inventDim.inventDimId;
inventItemInventSetup.ItemId = inventTable.ItemId;
inventItemInventSetup.insert();
inventItemPurchSetup.initValue();
inventItemPurchSetup.InventDimId = inventDim.inventDimId;
inventItemPurchSetup.ItemId = inventTable.ItemId;
inventItemPurchSetup.insert();
inventItemSalesSetup.initValue();
inventItemSalesSetup.InventDimId = inventDim.inventDimId;
inventItemSalesSetup.ItemId = inventTable.ItemId;
inventItemSalesSetup.insert();
//Default order settings
inventItemInventSetup= inventItemInventSetup::findDefault(inventTable.itemId, true);
inventItemInventSetup.InventDimIdDefault = inventDim.inventDimId;
inventItemInventSetup.update();
inventItemPurchSetup = inventItemInventSetup::findDefault(inventTable.itemId, true);
inventItemPurchSetup.InventDimIdDefault = inventDim.inventDimId;
inventItemPurchSetup.update();
inventItemSalesSetup= inventItemInventSetup::findDefault(inventTable.itemId, true);
inventItemSalesSetup.InventDimIdDefault = inventDim.inventDimId;
inventItemSalesSetup.update();
ttsCommit;
}
我更改了此行axInventTable=新的axInventTable;但是当我运行作业时,我得到以下错误,但是InventTable表是空的,没有项