Ax 2012 tts错误

时间:2014-12-02 07:08:23

标签: runtime-error axapta

我在更新发明表中的记录时遇到错误。我使用以下示例代码。

static void Job4(Args _args)
{
    CsInvBOMSplitQtyCalcHelper  bomCalc;
    Qty                         qty;
    InventTable                 inventTable;
    InventTable                 updateInventTable;
    BOM                         bom;
    boolean                     result;
    BOMId                       bomId;             
    BOMVersion                  bomVersion;
    ItemId                      item        = "1000M-3C-Pcs";

    select firstOnly * from bomversion
            where bomversion.Active == true
            && bomversion.ItemId    == item
            && csIsLengthItem(item) == false;

    if (0 != bomVersion.RecId)
    {
        select * from bom
            where bom.BOMId                 == bomversion.BOMId
        exists join inventTable
            where bom.ItemId                == inventTable.ItemId
            && inventTable.CsIsLengthItem   == true;
    }

    if (0 != bom.RecId)
    {
        result  = true;
        bomCalc = CsInvBOMSplitQtyCalcHelper::construct(item);
        qty     = bomCalc.getAdvicedBOMSpoolQty();
    }

    ttsBegin;

    while select forUpdate updateInventTable
        where updateInventTable.ItemId == item
    {
        updateInventTable.CsInvBOMSplitQty = qty;
        updateInventTable.update();
    }

    ttsCommit;

    info(strFmt('%1, %2, %3', result, qty, inventTable.CsInvBOMSplitQty));
}

这是我得到的错误:

enter image description here

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:4)

错误显然不是由此作业引起的(但可能是早期版本)。

只需运行这个小工作来重置TTS级别:

static ttsAbort(Args args)
{
    ttsabort;
}

TTS级错误通常是由编程错误引起的,比如在return之前调用ttsCommit