Текущее время: Сб, апр 20 2024, 17:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Пн, янв 17 2011, 18:24 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
Правила я в рабочей книге макрос VBA. И где-то в нём сделала ошибку. В рабочей книге уже стояла галка "обновлять при открытии".
Обновляю, естественно выдаёт ошибку, подсвечивает жёлтым. Ничего думаю, сейчас поправлю... Правлю макрос, нажимаю на "сохранить рабочую книгу" на панели инструментов - кнопка вообще ничего не делает. Нажатие других кнопок также ни к чему не приводит.
Глюк, бывает.
Закрываю аналайзер. Открываю заново, окно выбора переменных, жму, естественно, "прервать" - макрос-то в этом случае выполняться не должен. А вот как бы не так - проверка на корректность макроса проходит и при этом, выдаётся ошибка, и опять - "сохранить рабочую книгу" на панели инструментов - не работает.
Это замкнутый круг, да? Книгу только заново переделывать? :)
SAP GUI 710 патч 16, BI патч 11.

_________________
Пушномолочная свинья-несушка (тест)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Вт, янв 18 2011, 13:20 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
не надо переделывать.
нужно отменить выполнение макроса и
сохранить книгу локально. после исправления ошибки сохранить книгу в SAP BW.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Вт, янв 18 2011, 14:35 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
bwbams
Как отменить выполнение макроса, если при попытке открыть книгу корректность макроса уже проверяется и вылетает в ошибку?
Ещё раз, вне зависимости от того, жму я на экране выбора переменных "ок" или "прервать" - я получаю ошибку и невозможность воспользоваться функционалом BEx - все его кнопки оказываются неактивными.
Может, патч какой надо накатить на BEx? Или нотку на SAP?
SAP_ABA 701 0007
SAP_BASIS 701 0007
PI_BASIS 701 0007
ST-PI 2008_1_700 0003
SAP_BS_FND 701 0008
SAP_BW 701 0007
FINBASIS 604 0008
BI_CONT 705 0002

_________________
Пушномолочная свинья-несушка (тест)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01  Тема решена
СообщениеДобавлено: Вт, янв 18 2011, 15:06 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2008, 07:22
Сообщения: 163
Откуда: Ektb
Пол: Мужской
Приветствую!

Предлагаю попробовать следующий алгоритм действий:
1. заходим а Analyzer
2. логинимся в систему (без открытия книг и запросов)\
3. нажимаем Alt+F11
4. в левой панели в проекте BExAnalyzer в модуле Common ищем процедуру MenuOpenWorkbook ставим на ней breakpoint
5. далее возвращаемся в Analyzer и открываем книгу, после чего открывается отладка
6. далее ждем F8 до тех пор, пока не появится окно с выбором книги
7. выбираем нужную книгу, жмем прервать и должны опять попасть в отладку
8. в отладке в левой панели должен появиться проект той книги, которую открываем
9. далее делаем нужные нам изменение

вышеописанное проверил в 2007 excel, SAP GUI 7.10 patch 14


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Вт, янв 18 2011, 16:34 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
Спасибо! Как только, так попробую. У меня 2003, правда.

_________________
Пушномолочная свинья-несушка (тест)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Вт, янв 18 2011, 16:41 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
2LadyWind: ну ошибка случилась, я же объяснил, сохрани книгу локально, неважно с ошибкой или нет. "Сохранить как" )))
потом спокойно без нервов открой локальную книгу и исправь ошибку VBA. после этого сохрани ЭТУ книгу обратно в SAP BW. и еще раз открой... и так далее, пока не исправишь все критические ошибки.

открою маленький секрет - чтобы отладить обработку bex-vba нужна книга с результатами и правильные руки. коннект к SAP BW для этого не нужен.

если ошибка связана с sapbex.xla - ищем ноты.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Ср, янв 19 2011, 10:41 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
bwbams написал:
открою маленький секрет - чтобы отладить обработку bex-vba нужна книга с результатами и правильные руки. коннект к SAP BW для этого не нужен.
А как насчёт случая, когда нужно прямо на текущем листе (где выводятся результаты) делить отчёт, в котором, в зависимости от параметров-переменных, может быть разное число столбцов и строк, и делить на разное число частей. То есть придётся удалять прежние результаты, проверять, правильно ли почистились. То есть мне нужны разные результаты на каждое обновление.
Чтобы не было дальнейших вопросов - это не моя идея. :roll:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Ср, янв 19 2011, 11:26 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 23 2010, 12:16
Сообщения: 40
Я согласен с bwbams. Чтобы писать код обработки достаточно результатов запроса.
Я часто так делаю: формирую рабочую область, а потом кручу-верчу ее с помощью макроса RunSAPBEXonRefresh(), который запускаю вручную
Вот примерный код его вызова

Code:
Public Sub RunSAPBEXonRefresh()
  Dim resultarea As Excel.Range
  Set resultarea = Range("Data!A14:M43")
  SAPBEXonRefresh "SAPBEXq0001", resultarea
End Sub


где Range - рабочая область результата запроса.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Ср, янв 19 2011, 11:55 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
sanura написал(а):
Я согласен с bwbams. Чтобы писать код обработки достаточно результатов запроса.

Ещё раз. Мне нужно проверять, как новые результаты запроса (совсем новые, больше/меньше строк, больше/меньше столбцов) поведут себя при разбивании результатов предыдущего запроса по кусочкам. При том, что разбиваем мы на листе результатов, а не на новом, почему - не ко мне вопрос. Так что локально сохранённые - не помогут.
sanura написал(а):
Code:
Public Sub RunSAPBEXonRefresh()
  Dim resultarea As Excel.Range
  Set resultarea = Range("Data!A14:M43")
  SAPBEXonRefresh "SAPBEXq0001", resultarea
End Sub
Не считая того, что в BW7 вместо resultarea в конечном итоге лучше использовать varname(). Соответственно, varname(1).Row, varname(1).Column и т.д.

_________________
Пушномолочная свинья-несушка (тест)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Ср, янв 19 2011, 14:23 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
"А как насчёт случая, когда нужно прямо на текущем листе (где выводятся результаты) делить отчёт, в котором, в зависимости от параметров-переменных, может быть разное число столбцов и строк, и делить на разное число частей. То есть придётся удалять прежние результаты, проверять, правильно ли почистились. То есть мне нужны разные результаты на каждое обновление.
Чтобы не было дальнейших вопросов - это не моя идея. :roll:"

я не совсем понял, что значит "делить отчет". если вы предлагаете чистить область отчета средствами vba, то у вас наверное не хватает адреналина или вы не любите спать по ночам.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Ср, янв 19 2011, 17:48 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
bwbams написал:
я не совсем понял, что значит "делить отчет". если вы предлагаете чистить область отчета средствами vba, то у вас наверное не хватает адреналина или вы не любите спать по ночам.
Вы правильно поняли, есть желание делить и чистить область результатов средствами VBA. Только см. выше, я писала, что это не моя идея, не всё, что мы делаем - мы сами себе предлагаем. Дальнейшие подробности "как так решили, кто и почему ты не переубедила, ты же опытный консультант" в теме излишни, всё же обсуждаем реализацию, а не причины. :?

_________________
Пушномолочная свинья-несушка (тест)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Чт, янв 20 2011, 00:01 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
в таких случаях принято скрывать лист с исходным отчетом и обрабатывать Range средствами vba.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Чт, янв 20 2011, 17:14 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
Я в курсе. См. ещё раз - нужно именно так, как писала я, а не иначе. :)

_________________
Пушномолочная свинья-несушка (тест)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Ср, янв 26 2011, 10:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Все не читал, но раньше при таких ошибках в глобальных параметрах настройки аналайзера ставили галку "не выполнять экзит макрос" - тогда при открытии рабочей книги ничего пользовательского не запускается...

Открываешь, комментаришь код и начинаешь отладку по кускам :oops:

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладка макросов в рабочих книгах BW 7.01
СообщениеДобавлено: Чт, янв 27 2011, 17:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Не пойму, а какая разница с подключением работать или без?
Нужно работать как удобнее на данный момент.

Безусловно, синтаксические ошибки лучше ловить как предлагает sanura.
Но есть еще ошибки времени выполнения, тут все сложнее.
Предлагаю постичь азы программирования на VBA, в частности научиться пользоваться блоком On Error GoTo EndCallBack:


Code:
' Функция отображения сообщений, сюда можно включить, к примеру, запись в лог.
' Везде в макросах MsgBox заменить на эту процедуру.
Sub Output(ByVal Text As String, ByVal Level As Integer)
       
    If Not (Err Is Nothing) Then
        If Err.Number <> 0 Then
            Text = Text & _
                vbCrLf & "Номер: " & Err.Number & _
                vbCrLf & "Описание: " & Err.Description & _
                vbCrLf & "Место возникновения: " & Err.Source
            Level = vbCritical
        End If
    End If
   
    Call MsgBox(Text, vbOKOnly + Level, MsgBoxTitle)
       
End Sub

' Сам экзит
Sub CallBack(ParamArray varname())

    Dim ...
   
    Application.Interactive = False
    Application.ScreenUpdating = False

    On Error GoTo ExitCallBack


...


ExitCallBack:
    Application.Interactive = True
    Application.ScreenUpdating = True
   
    If Err.Number > 0 Then Output "Ошибка в работе макроса.", vbCritical
    On Error GoTo 0

End Sub


При изменении процедуры Output -- тщательно ее тестировать перед запуском макросов.

2 LadyWind
Если случается ошибка в работе экзита, то это не глюки Excel, что не работает сохранение, это разработчики SAP запретили пользоваться командами Excel на время выполнения экзита командой Application.Interactive = False. Если этого не делать, то макрос работает значительно медленнее. Чтобы была возможность "оживить" Excel всегда в рабочем модуле держите процедуру:
Code:
Sub UnFreeze()

    Application.ScreenUpdating = True
    Application.Interactive = True
   
End Sub

_________________
Глаза боятся, а руки крюки


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB