![]() |
#6 |
Участник
|
Получается такая ситуация, как ее преодолет незнаю.
Ниже приведена джоба, которая создает и освобождаем номер. Номерная серия должна быть Continious. X++: static void Job9(Args _args) { NumberSeq numberSeq; Num number; ; // Method DataSource.create() - craete the number numberSeq = NumberSeq::newGetNumFromCode('Acco_11', true); if (numberSeq) { number = numberSeq.num(); info(number); } // Method DataSource.delete() - delete the number; ttsbegin; numberSeq.abort(); //super() - delete line ttscommit; } Можно зайти в Basic->Setup->Number sequence->NumberSequence и посмотреть List. На отркывшейся форме видно что номер имеет статус Free Переделаем джобу, для вытягивания номерной серии из другой компании. X++: static void Job9(Args _args) { NumberSeq numberSeq; Num number; ; // Method DataSource.create() - craete the number changecompany('VVV') { numberSeq = NumberSeq::newGetNumFromCode('Acco_11', true); if (numberSeq) { number = numberSeq.num(); info(number); } } // Method DataSource.delete() - delete the number; ttsbegin; changecompany('VVV') { numberSeq.abort(); } //super() - delete line ttscommit; } Таблица NumberSequenceList будет проапдейтчена, если переменная abortIdx больше нуля. При вызове numberSeq.abort(); происходить увеличение abortIdx на единицу, т.е. все ок вродебы. Но последний ttscommit для апдейта таблици NumberSequenceList, должен переключится в компанию VVV, но при переключении в эту компанию вызывается ttsbegin, который сбрасывает переменную abortIdx. Application->ttsNotifyCommit()->this.numberSeqGlobal().ttsNotifyCommit();->this.runAutoClean();->Line 23 В результате маемо те що маемо =), т.е. Undecided. Убрать просто ttsbegin-ttscommit я не могу потомучто если у нас не выполнится удаление линии на форме, то и номерная серия должна вернутся в исходное положение, откатится =) |
|