2014-12-02 17 views
5

HI icat tablosunda bir kaydı güncellerken bir hatayla karşılaşıyorum. Aşağıdaki örnek kodu kullanıyorum.Axe 2012 tts hatası

enter image description here

bu sorunu çözme bana yardımcı olun:

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

Bu

alıyorum hatadır.

cevap

4

Hata, bu işten kaynaklanmadı (ancak belki daha eski bir sürüm). ,

static ttsAbort(Args args) 
{ 
    ttsabort; 
} 

TTS düzey hatalar genellikle programlama hatalarından kaynaklanır ttsCommit önce return arayarak ki:

Sadece TTS seviyesini sıfırlamak için bu küçük bir iş çalıştırın.