|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Pustik
![]() В аксапте это делать намного проще, удобнее и быстрее, чем на SQL, это во вторых, а во-первых, управление данными, таким образом, вы перекладываете на две , скажем так системы, что в итоге может привести к конфликту. Аксапта сама способна сделать то, что может сделать SQL триггер, при этом потребует от вас наименьших затрат, гарантируя при этом минимальное количество рисков.
|
|
![]() |
#2 |
Участник
|
В Аксапте у каждой таблицы существуют методы. В том числе и Insert(),Update(),Delete(), которые и будут являться аналогами триггеров на SQL. Перекрывая их, Вы можете написать в них свой алгоритм, который отработает при каждом : добавлении записи - Insert(), обновлении - Update() и удалении - Delete().
Простейший пример можно увидеть посмотрев эти методы на таблице Справочника номенклатуры inventTable. В методах Insert() и Update() автоматически проставляется краткое наименование номенклатуры : X++: this.setNameAlias(); X++: void insert() { #OCCRetryCount ; try { ttsbegin; this.insertInventItemOrderSetup(); this.insertBOMTable(); this.setNameAlias(); super(); ............ } X++: void update() { InventTable this_Orig = this.orig(); ItemGroupId itemGroup_Orig = this_Orig.ItemGroupId; ForecastSales forecastSales; ForecastPurch forecastPurch; ; ttsbegin; this.setNameAlias(); this.inventModelGroup().inventModelType().preUpdateInventTable(this); super(); ............. } X++: public void delete() { BOMTable bomTable; BOMVersion bomVersion; BOMVersion bomVersion2; ; ttsbegin; if( !isConfigurationkeyEnabled(configurationkeynum(BOMVersion)) && this.inventItemType().canHaveBOM()) { while select bomVersion group by bomId where bomVersion.ItemId == this.ItemId notexists join bomVersion2 where bomVersion2.bomId == bomVersion.bomId && bomVersion2.ItemId != this.ItemId { delete_from bomTable where bomTable.bomId == bomVersion.bomId; } } super(); ttscommit; }
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 12.01.2012 в 13:27. |
|
|
За это сообщение автора поблагодарили: Ilyaae (1). |