Показать сообщение отдельно
Старый 01.11.2012, 06:19   #20  
Fizik is offline
Fizik
Участник
 
26 / 10 (1) +
Регистрация: 07.07.2005
Адрес: Владивосток
Все происходит ровно так, как в примере http://microsoft-dynamics-ax-erp.blo...ders-with.html , только имя класса и таблицы другое.
Да, перебирать собираюсь именно эти 2 строки.
Вот методы:
SalesAutoCreate.construct такой:
static SalesAutoCreate construct(Common buffer = null,
Object object = null)
{
switch (buffer.tableId)
{
case tablenum(tmpsalesline) : return new SalesAutoCreate_TmpsalesLine(buffer,object);
case tablenum(PurchLine) : return new SalesAutoCreate_ProjPurchLine(buffer,object);
case tablenum(TmpSalesItemReq) : return new SalesAutoCreate_TmpSalesItemReq(buffer,object);
case tablenum(SalesBasketLine) : return new SalesAutoCreate_Basket(buffer,object);
case tablenum(TmpFrmVirtual) : return SalesAutoCreate_Purch::construct(buffer,object);
//BUOV 30.10.12 ZNO002 --->
case tablenum(FromCacheSalesLine) : return new SalesAutoCreate_ISTU(buffer,object);
//BUOV 30.10.12 ZNO002 --->
default : throw error(strFmt("@SYS23419",tableId2Name(buffer.tableId)));
}
}

SalesAutoCreate_ISTU.new :
void new(Common _initFromBuffer, Object _callBackClass)
{
;
select forupdate fromCacheSalesLine
where fromCacheSalesLine.RecId == _initFromBuffer.recId;

super(_initFromBuffer,_callBackClass);
FromCacheSalesLine = _initFromBuffer;
}

SalesAutoCreate.create() стандартный:
void create()
{
;
try
{
setPrefix("@SYS55110");

ttsbegin;

while (this.recordExist())
{

this.setCust();

setPrefix(#PreFixField(CustTable,AccountNum));

this.setSalesTable();

this.setSalesLine();

setPrefix(#PreFixField(SalesLine,ItemId));

this.nextRecord();
}

this.endUpdate();

ttscommit;
}

catch (Exception:eadlock)
{
retry;
}
}