3 августа, понедельник 12:32
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Универсальные транзакции

Свернуть
Это важная тема.
X
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Чернушка
    Спасибо. Буду смотреть.
    А кто-нибудь решал проблему визуального выбора кодов классификатора.
    ОБЪЕКТ выбирает только классификаторы, а как вернуть их коды?

    Комментарий


    • beloll см. функцию Классиф()

      Комментарий


      • beloll А как ты используешь ОБЪЕКТ() , приведи пример.

        Комментарий


        • ОБЪЕКТ(ДА,"","","",",ESC_NO_ERROR,code");

          Комментарий


          • Доброе утро.
            Не подскажите, как бороться со следующей проблемой: имеется код в транзакции
            @client-name = @cust-stat(10) + @name-corp(10);
            Если в базе name-corp - название клиента хранится с кавычками, то при вышеуказанной операции кавычки теряются. Какими заклинаниями оставить кавычки?

            Комментарий


            • Какими заклинаниями оставить кавычки?
              Если кавычки парные, т.е. строка начинается с кавычки и ею заканчивается, то на текущий момент никак Такая обработка кавычек связана с возможностью парсера работать со строками как с кавычками так и без кавычек, например
              НАСТРОЙКА(xxx,yyy), работает также как и НАСТРОЙКА("xxx","yyy").
              Я постараюсь, придумать решение этой проблемы ASAP, если вопрос срочный свяжитесь с нашим ТС.

              Комментарий


              • bulklodd Если я в метасхеме добавлю класс op-impexp и укажу агрегирование для op - это впишется в политику партии? Надо для собственных транзакций импорта.

                Комментарий


                • bulklodd
                  А смогу я проверять первый символ и добавлять с помощью одинарных?

                  Комментарий


                  • Andry
                    Если я в метасхеме добавлю класс op-impexp и укажу агрегирование для op - это впишется в политику партии? Надо для собственных транзакций импорта.
                    Впишется, но лучше добавить подкласс от op-impexp. Это будет гарантировать, что в будущем не будет конфликтов. Если будут проблемы с добавлением подкласса, посмотри как это сделано для loan-acct или стукнись мне в аську.

                    beloll
                    А смогу я проверять первый символ и добавлять с помощью одинарных?
                    Я проверял этот вариант, он не работает Я попробую решить эту проблему, но чтобы все получилось быстрее, рекомендую обратиться в тех.саппорт и зарегистрировать проблему у них.

                    Комментарий


                    • Добрый вечер.
                      Возникла следующая проблема с новыми транзакциями:
                      Сделал транзакцию по обработке кредитных договоров в конце месяца - начисление процентов, открытие и привязка договоров просрочки основного долга и процентов и проведение соответствующих документов. Цикл по всем договорам и для каждого договора выполняются подтранзакции. С настоящего месяца на 96% выполнения операции получаю ошибку - "не хватает токенов, уменьшите значение параметра -tok"
                      , с последующим вываливанием из БИСквит. Параметр -tok в файле bisquit.pf отнесен в раздел "не изменять", но опыты с тестовой базой не привели к существенному изменению в выполнении после уменьшения параметра.
                      Вопрос - нельзя ли в циклической транзакции "коммитеть", т.е. записывать в базу результат каждой подтранзакции.

                      Комментарий


                      • beloll какое текущее значение -tok ?
                        У вас сейчас при запуске транзакции открывается единственная логическая транзакция на все действия, или на каждый договор - своя? Имеется в виду ДР "Transaction"

                        Комментарий


                        • Andry
                          -tok - 1280
                          ДР "Transaction" установлен на каждую из элементарных транзакций. При этом ошибка в одной из них влечет откат всех.

                          Комментарий


                          • Возникла следующая проблема с новыми транзакциями:
                            Сделал транзакцию по обработке кредитных договоров в конце месяца - начисление процентов, открытие и привязка договоров просрочки основного долга и процентов и проведение соответствующих документов. Цикл по всем договорам и для каждого договора выполняются подтранзакции. С настоящего месяца на 96% выполнения операции получаю ошибку - "не хватает токенов, уменьшите значение параметра -tok" , с последующим вываливанием из БИСквит. Параметр -tok в файле bisquit.pf отнесен в раздел "не изменять", но опыты с тестовой базой не привели к существенному изменению в выполнении после уменьшения параметра.
                            Уменьшить -tok?! Обычно бывает наооборот.
                            Неплохо было бы указывать код ошибки, если это возможно. Насколько я понимаю, в вашем случае ошибка возникает при обработке длинного динамического запроса методом QUERY-PREPARE. Увеличение параметра tok до 4000-8000 некритично, т.ч. можно попробовать это сделать без последствий для системы. Если с увеличенным значением ошибка будет возникать, то причиной может быть некорректно формируемый запрос, например в шаблоне фильтра, и нужно подробно с ним разбираться. Удалось ли выловить шаблон приводящий к ошибке, место в котором она возникает? Для этого можно использовать отладку транзакции (ф-ция DEBUG) и протокол.

                            Вопрос - нельзя ли в циклической транзакции "коммитеть", т.е. записывать в базу результат каждой подтранзакции.
                            Можно. Для этого на главной транзакции, которая запускает цикл, надо снять флажок "ТРАНЗАКЦИЯ". Но здесь есть несколько 'но', если транзакция запускающая цикл, сама является подтранзакцией, то снятие флажка ни к чему не приведет, флажок должен быть снят также со всех транзакций, запускающих эту транзакцию. Снятие флажка может быть бесполезно, если каким-то образом открывается неявная транзакция, например в парсерной функции. Но в любом случае, управление транзакциями не решает проблему с параметром -tok, единственное, что оно даст, это, что результаты работы транзакции до ошибки не будут потеряны.

                            Комментарий


                            • bulklodd
                              Попробую увеличить, хотя в ошибке указано - уменьшите.
                              На том же наборе договоров, разделенном на 3 части (по годам открытия) транзакция отработала успешно. Боюсь, дело именно в объеме.
                              Спасибо за разъяснение, касательно записи промежеточных результатов в базу.

                              Комментарий


                              • bulklodd
                                Проверил с увеличением параметра.
                                Ситуация немного изменилась:
                                Получил ошибку "Не хватает памяти для создания массива токиненов. Уменьшите значение параметра -tok." И, далее, из процедуры вывалиться не могу, ошибки формирования Query.

                                Комментарий


                                • Проверил с увеличением параметра.
                                  Ситуация немного изменилась:
                                  Получил ошибку "Не хватает памяти для создания массива токиненов. Уменьшите значение параметра -tok." И, далее, из процедуры вывалиться не могу, ошибки формирования Query.
                                  13-й патч?! Настройки по заявке № 51030 включены (bisquit.pf)? Если да, то рекомендую пока их вернуть назад, скорее всего проблема в них. От нас скорее всего будет фикс, а пока проблема в стадии выяснения.

                                  Комментарий


                                  • beloll Можешь приаттачить сюда эти транзакции?

                                    Комментарий


                                    • bulklodd
                                      Патч пока 12. 13 еще рано ставить. 31 октября только спецпатч выложили.
                                      Andry
                                      Попробую, правда она состоит из одного цикла и штук пяти вспомогательных.

                                      Комментарий


                                      • Andry
                                        Хотел выложить транзакцию - оказалось не могу вкладывать вложение

                                        Комментарий


                                        • beloll

                                          Попробуй запустить транзакцию, запустив Бисквит следующим образом:

                                          bq41d -debugalert -clientlog debug.log

                                          где bq41d - имя скрипта запуска. После ошибки у тебя сформируется файл debug.log, отправь его мне, чтобы я смог посмотреть в чем дело.

                                          Комментарий


                                          • Сообщение от bulklodd
                                            Рекомендую установить доп.реквизит транзакции СС_УровеньОтладки = 1 и включить вывод сообщений на экран.
                                            А не подскажите, как влияют на выполнение транзакций разные значения этого доп.реквизита? Ниже в форуме Вы в аналогичной ситуации рекомендуете установить его в 0

                                            Комментарий


                                            • А не подскажите, как влияют на выполнение транзакций разные значения этого доп.реквизита? Ниже в форуме Вы в аналогичной ситуации рекомендуете установить его в 0
                                              На выполнение транзакции значение реквизита в общем случае не влияет, оно влияет на количество сообщений выдаваемых транзакцией, среди которых могут быть сообщения не очень интересные пользователю.
                                              Существует следующие типы сообщений:
                                              -1 - Ошибки, приводящие к откату транзакции
                                              0 - Предупреждения, менее серьезные ошибки
                                              1 - информационные сообщения, как правило, ориентированные на пользователя
                                              2 - все остальные информационные сообщения, ориентированные на разработчика.

                                              Таким образом установив данный реквизит в 0, пользователь не увидит сообщения 1 и 2, что в общем не верно, поэтому оптимальным значением будет пожалуй 1, что обозначает что пользователь увидит все сообщения, кроме типа 2.

                                              HTH

                                              Комментарий


                                              • Подскажите, пожалуйста, может я один этого не знаю .
                                                Есть ли какая-нибудь волшебная кнопка, чтобы редактировать текст кода "Выполнить до..." и "Выполнить после..." не в 3-х строчном редакторе, а в чем-нибудь более человеческом?

                                                Комментарий


                                                • Подскажите, пожалуйста, может я один этого не знаю .
                                                  Есть ли какая-нибудь волшебная кнопка, чтобы редактировать текст кода "Выполнить до..." и "Выполнить после..." не в 3-х строчном редакторе, а в чем-нибудь более человеческом?
                                                  Есть - F5

                                                  Комментарий


                                                  • 2bulklodd: Спасибо!

                                                    Комментарий


                                                    • А вот еще вопрос. Создал транзакцию списания комиссии с юр.лиц. На обычных транзакциях не получилось бы, там слишком сложные завязки получаются. Счета отбираются по фильтру. Документы формируются со статусом "Ф".
                                                      Если на счете нет денег или есть картотека, Бисквит предлагает, на выбор, поставить документ на картотеку, продолжить формирование, отменить операцию. Выбираем "Продолжить" - пусть формируются все документы как есть, а потом исполнители разбираются со своими счетами.
                                                      Но! Если по счету клиента есть блокировка, Бисквит предлагает только постановку на картотеку или отмену.
                                                      Можно ли заставить его все-таки формировать документ, хотя бы со статусом "Ф"?

                                                      Комментарий


                                                      • Ant-y
                                                        В классификаторе "действие" добавляешь строку, например, "Создание с ош.", в значениикоторой указываешь "update,!validate". Документ, созданный на шаблоне с таким действием не будет проверяться. Лучше использовать такой шаблон вместе с обычным, реализовав обработчик ошибок.

                                                        Комментарий


                                                        • beloll Сам использую такой метод в некоторых транзакцях. Жаль, что внутри транзакции невозможно проверить, какой код был у возникшей ошибки. Механизм наподобии обработки "исключений" был бы очень удобен.

                                                          Комментарий


                                                          • Andry
                                                            Действительно жаль, пытались сделать обработчик сами- перед транзакцияей проверять счета, остатки и т.д. сами, но слишком муторно - ограничились формированием документа в статусе В.

                                                            Комментарий


                                                            • belollЕсть один хак для проверки документов: в шаблоне "создание с ош" документа в поле "выполнить после" запускается собственная процедура-обертка для imp-upd.p , возвращающаяя op-error. Вторая процедура после проверяет эту строчку на классфикатор "mess-error", и, если среди кодов есть хотя-бы один со статосом "ошибка", возвращает флаг.
                                                              Следующий шаблон "модиф с ош" заполняет поле op-error документа, и, если флаг взведен - аннулирует, иначе - проводит.
                                                              Вот такое извращенство...

                                                              Комментарий

                                                              Обработка...
                                                              X