0

I was importing items into Microsoft Dynamics AX 2009 using the following job

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;
}

The records are created correctly in the table but when I open the default orders settings/Site specific order settings order form for the product, all fields are still greyed out as if no records exists.

http://www.hostingpics.net/viewer.php?id=756928801.png

http://www.hostingpics.net/viewer.php?id=553431712.png

Has anybody faced this problem ? how I can correct the x ++ code ?

Any help would be appreciated.

Thanks,

Mechri
  • 17
  • 1
  • 3

2 Answers2

0

You most likely need to change this line:

axInventTable = new axInventTable();

to this line:

axInventTable = axInventTable::newInventTable(inventTable);

Alex Kwitny
  • 11,211
  • 2
  • 49
  • 71
  • I changed this line `axInventTable = new axInventTable();` but when I run the job I get the following error http://www.hostingpics.net/viewer.php?id=982580error.png but the table InventTable is empty no items – Mechri Apr 07 '15 at 07:41
0

This worked for me:

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;
}
Maxim Lazarev
  • 1,254
  • 12
  • 21