01.11.2012, 06:19 | #20 |
Участник
|
Все происходит ровно так, как в примере 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; } } |
|