|
|
|
|
#1 |
|
Участник
|
наше обсуждение превращается в теологическое.
в том смысле, что делаем выводы на основании своих представлений, а не на основании практических экспериментов. |
|
|
|
|
#2 |
|
Moderator
|
Цитата:
INSERT INTO LEDGERBALANCESDIMTRANS (ACCOUNTNUM,PERIODCODE,TRANSDATE,DIMENSION,DIMENSION2_,DIMENSION3_,DIMENSION4_,SYSTEMGENERATEDULTIMO,DEBITMST,CREDITMST,DEBITOPRMST,CREDITOPRMST,DEBITTAXMST,CREDITTAXMST,DEBITMSTSECOND,CREDITMSTSECOND,DEBITOPRMSTSECOND,CREDITOPRMSTSECOND,DEBITTAXMSTSECOND,CREDITTAXMSTSECOND,QTY,DATAAREAID,RECVERSION,RECID)SELECT F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,DATAAREAID,RECVERSION,RECID+5676742945 FROM [#ax_tmp_kdis547_330_0] Есть аналогичное количество запросов вида: SELECT A.LEDGERACCOUNTNUM AS f1,A.PERIODCODE AS f2,A.TRANSDATE AS f3,A.DIMENSION AS f4,A.DIMENSION2_ AS f5,A.DIMENSION3_ AS f6,A.DIMENSION4_ AS f7,A.SYSTEMGENERATEDULTIMO AS f8,A.DEBITMSTSUMMED AS f9,A.CREDITMSTSUMMED AS f10,A.DEBITOPRMSTSUMMED AS f11,A.CREDITOPRMSTSUMMED AS f12,A.DEBITTAXMSTSUMMED AS f13,A.CREDITTAXMSTSUMMED AS f14,A.DEBITMSTSECONDSUMMED AS f15,A.CREDITMSTSECONDSUMMED AS f16,A.DEBITOPRMSTSECONDSUMMED AS f17,A.CREDITOPRMSTSECONDSUMMED AS f18,A.DEBITTAXMSTSECONDSUMMED AS f19,A.CREDITTAXMSTSECONDSUMMED AS f20,A.QUANTITYSUMMED AS f21,N'era' AS DATAAREAID,1 AS RECVERSION,IDENTITY(bigint,1,1) AS RECID INTO [#ax_tmp_kdis547_330_0] FROM LEDGERBALANCESDIMTRANSDELTASUM A WHERE ((DATAAREAID=N'era') AND (USERTTSID=5708989947)) То есть - система в полном соответствии с теорией обработала оператор insert_recordset из ledgerBalancesTransDelta.transferTempDeltaRecsToLedger*. Сначала выбрала просуммированные данные из view построенного поверх ledgerBalancesTranDelta во временную таблицу. Потом данные из временной таблицы ВСТАВИЛА в таблицу балансов... |
|
|
|
|
#3 |
|
Участник
|
Цитата:
|
|
|
|
|
#4 |
|
Microsoft Dynamics
|
Цитата:
Создал в ax2009 таблицу с двумя полями: текстовое Id, числовое Amount с FieldUpdate = Relative. Уникальный индекс по полю Id. Джобом пытаюсь добавлять, обновлять запись разными способами - никак не получается воспроизвести ситуацию, что бы поле Amount обновлялось с учетом предыдущего значения. Каждый раз значение поля переписывается. Может, я что-то не так делаю? |
|
|
|
|
#5 |
|
Участник
|
опаньки. понял. тем более, надо попробовать. вдруг, это я неправ.
|
|
|
|
|
#6 |
|
Moderator
|
Цитата:
Сообщение от AlexSD
Попробывал - не получилось.
Создал в ax2009 таблицу с двумя полями: текстовое Id, числовое Amount с FieldUpdate = Relative. Уникальный индекс по полю Id. Джобом пытаюсь добавлять, обновлять запись разными способами - никак не получается воспроизвести ситуацию, что бы поле Amount обновлялось с учетом предыдущего значения. Каждый раз значение поля переписывается. Может, я что-то не так делаю? Можно конечно предположить что mazzy прав и система магически умеет заменять вставки на обновления, но как-то это никак не вяжется с содержанием хэлпов всех версий... |
|
|
|
|
#7 |
|
Участник
|
Цитата:
![]() в ax2009 действительно сильно заморочено. И надо разбираться. в ax3.0 был метод класса LedgerVoucherBalancesList.write() X++: private void write() { LedgerBalancesMap ledgerBalancesLocal = ledgerBalances.data(); ; ttsbegin; this.forUpdate(ledgerBalancesLocal); if (!ledgerBalancesLocal) { ledgerBalancesLocal.LedgerAccount = ledgerBalances.LedgerAccount; ledgerBalancesLocal.TransDate = ledgerBalances.TransDate; ledgerBalancesLocal.PeriodCode = ledgerBalances.PeriodCode; ledgerBalancesLocal.LedgerSystemGeneratedUltimo = ledgerBalances.LedgerSystemGeneratedUltimo; ledgerBalancesLocal.LedgerBalancesVariant = variant; } ledgerBalancesLocal.DebitMST += ledgerBalances.DebitMST; ledgerBalancesLocal.CreditMST += ledgerBalances.CreditMST; ledgerBalancesLocal.DebitOPRMST += ledgerBalances.DebitOPRMST; ledgerBalancesLocal.CreditOPRMST += ledgerBalances.CreditOPRMST; ledgerBalancesLocal.DebitTaxMST += ledgerBalances.DebitTaxMST; ledgerBalancesLocal.CreditTaxMST += ledgerBalances.CreditTaxMST; ledgerBalancesLocal.DebitMSTSecond += ledgerBalances.DebitMSTSecond; ledgerBalancesLocal.CreditMSTSecond += ledgerBalances.CreditMSTSecond; ledgerBalancesLocal.DebitOPRMSTSecond += ledgerBalances.DebitOPRMSTSecond; ledgerBalancesLocal.CreditOPRMSTSecond += ledgerBalances.CreditOPRMSTSecond; ledgerBalancesLocal.DebitTaxMSTSecond += ledgerBalances.DebitTaxMSTSecond; ledgerBalancesLocal.CreditTaxMSTSecond += ledgerBalances.CreditTaxMSTSecond; LedgerBalancesLocal.LedgerQty += ledgerBalances.LedgerQty; ledgerBalancesLocal.write(); ttscommit; } Интересно. Ночером. |
|
|
|
|
#8 |
|
Участник
|
отмотал назад по версиям... пока до 2.5...
нашел конкорд, но не помню пароля. посмотрел что было раньше. Цитата:
Сообщение от mazzy
Не, Денис, ты ошибаешься.
Здесь тебе стоит пересмотреть свои взгляды. Просто у денежных полей в таблицах LedgerBalancesTrans и LedgerBalancesDimTrans установлено свойство FieldUpdate = Relative. http://msdn.microsoft.com/en-us/library/aa577032.aspx Это значит, что программисту не надо писать Update, не нужно маятся с вилкой (find?update:insert). Программисту достаточно давать команду Insert. Система сама сложит, если найдет уже существующую запись. Это свойство пришло еще из Конкорда. Цитата:
Сообщение от AlexSD
Попробывал - не получилось.
Создал в ax2009 таблицу с двумя полями: текстовое Id, числовое Amount с FieldUpdate = Relative. Уникальный индекс по полю Id. Джобом пытаюсь добавлять, обновлять запись разными способами - никак не получается воспроизвести ситуацию, что бы поле Amount обновлялось с учетом предыдущего значения. Каждый раз значение поля переписывается. Может, я что-то не так делаю? в 2.5, 3.0, 4.0, 2009 пока считаю, что это я что-то серьезно напутал. мало того, в ax2.5 суммовые поля в таблицах LedgerBalances не являются Relative! оказывается механизм переписывался. и существенно. надо будет покопаться потщательнее. пусть пока перекрестные ссылки построятся. |
|
|
|
| За это сообщение автора поблагодарили: Logger (1). | |
| Теги |
| ledgerbalance, ledgerbalancesdimtrans, ledgerbalancestrans, главная книга, итоги, сальдо, crm2011 |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|