Показать сообщение отдельно
Старый 15.11.2007, 13:47   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
X++:
public void run()
{
    WMSOrderTrans   WMSOrderTransCopy;

    setPrefix(WMSOrderTransSplit::description());

    try
    {
        ttsbegin;

        if (!this.validate())
            throw error("@SYS18447");

        select firstonly forupdate WMSOrderTransCopy
            index hint OrderIdx
            where WMSOrderTransCopy.orderId     == WMSOrderTrans.orderId    &&
                  WMSOrderTransCopy.itemId      == WMSOrderTrans.itemId     &&
                  WMSOrderTransCopy.recId       == WMSOrderTrans.recId;

        if (!WMSOrderTransCopy || !bufCmp(WMSOrderTransCopy, WMSOrderTrans))
            throw error("@SYS18447");

        WMSOrderTrans.split(splitQty);

        ttscommit;
    }
    catch (Exception::Deadlock)
    {
        retry;
    }

}