SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Не заполняются шаблоны Microsoft Office https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96394 |
Страница 2 из 2 |
Автор: | neprosto [ Ср, май 16 2018, 17:27 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
2010, 3.03. Upd. Дичь какая-то... Поставил на том же компе на виртуалку с нуля винду, офис, SAP GUI. Глючит точно так же. |
Автор: | Parazit [ Чт, май 17 2018, 14:13 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
neprosto написал(а): 2010, 3.03. Upd. Дичь какая-то... Поставил на том же компе на виртуалку с нуля винду, офис, SAP GUI. Глючит точно так же. Можете поставить признак USE_JAR=X и прислать мне выгруженный файл jar? |
Автор: | neprosto [ Чт, май 17 2018, 17:17 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
Parazit написал: Можете поставить признак USE_JAR=X и прислать мне выгруженный файл jar? Отправил в почту. |
Автор: | neprosto [ Пт, май 18 2018, 11:51 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
Parazit написал: Макрос запускается два раза, в первый раз он выходит в данном месте. Два раза запускается FillVariables в ABAP-коде или два раза запускается ZWWW_FillVariables в VBA-коде? |
Автор: | Parazit [ Пт, май 18 2018, 13:59 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
neprosto написал(а): Parazit написал: Макрос запускается два раза, в первый раз он выходит в данном месте. Два раза запускается FillVariables в ABAP-коде или два раза запускается ZWWW_FillVariables в VBA-коде? Один раз при открытии файла (стандартное событие VBA), второй раз из ABAP прямой вызов макроса. |
Автор: | neprosto [ Пт, май 18 2018, 15:04 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
Parazit написал: Один раз при открытии файла (стандартное событие VBA), второй раз из ABAP прямой вызов макроса. Я так понимаю, это строки модуля RUN_EXCEL_MACROS 554-555 Code: CALL METHOD OF workbooks 'Open' = macrobook EXPORTING #1 = <file_macros>. и 561-565 Code: CALL METHOD OF app 'Run' EXPORTING #1 = macrosname #2 = file_data #3 = workbook. "UseUnicode. Я поставил STOP в текст ZWWW_FillVariables, вот сюда: Code: If isAutoOpen = "X" And WITHOUT_OLE = "" Then ' Close #1 CloseFileData Exit Sub End If Stop If (WITHOUT_OLE = "X" Or USE_JAR = "X") And FULL_NAME <> "" Then Программа не остановилась здесь ни в какой из проходов. При включении режима отладки, как я уже писал, процедура завершается на условии Code: If isAutoOpen = "X" And WITHOUT_OLE = "" Then
|
Автор: | Parazit [ Пт, май 18 2018, 15:39 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
neprosto написал(а): ... Я так понимаю, это строки модуля RUN_EXCEL_MACROS 554-555 Посмотрите в отладке содержимое macrobook, поле Handle должно быть не 0 и не -1. Code: CALL METHOD OF workbooks 'Open' = macrobook EXPORTING #1 = <file_macros>. Только проверять нужно после выполнения CALL FUNCTION 'FLUSH'. neprosto написал(а): и 561-565 Если предыдущая проверка прошла нормально, то попробуйте в содержимое переменной file_data добавить кавычки по краям, меня смущает пробел в наименовании. Code: CALL METHOD OF app 'Run' EXPORTING #1 = macrosname #2 = file_data #3 = workbook. "UseUnicode. (Странно, я вроде уже эту проблему решал) |
Автор: | neprosto [ Пт, май 18 2018, 15:50 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
Parazit написал: Посмотрите в отладке содержимое macrobook, поле Handle должно быть не 0 и не -1. Только проверять нужно после выполнения CALL FUNCTION 'FLUSH'. На строке 558 CALL METHOD OF workbook 'Activate'. (после ближайшего CALL FUNCTION 'FLUSH'. после CALL METHOD OF workbooks 'Open' = macrobook EXPORTING #1 = <file_macros>.) HANDLE = 2097184 Parazit написал: Если предыдущая проверка прошла нормально, то попробуйте в содержимое переменной file_data добавить кавычки по краям, меня смущает пробел в наименовании. (Странно, я вроде уже эту проблему решал) Добавил, ничего не изменилось. |
Автор: | neprosto [ Пт, май 18 2018, 20:30 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
Обнаружен поразительный факт. Если вызывать OPENFORM c DEBUG_MODE = X и на каждой остановке, и в ABAP, и в VBA, просто продолжать, то всё работает, как надо, шаблон заполняется. |
Автор: | Parazit [ Сб, май 19 2018, 20:47 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
neprosto написал(а): Обнаружен поразительный факт. Если вызывать OPENFORM c DEBUG_MODE = X и на каждой остановке, и в ABAP, и в VBA, просто продолжать, то всё работает, как надо, шаблон заполняется. Как-то странно это, я с подобным поведением SAP не сталкивался еще с 4.6C. Хорошо бы на проверенной версии SAP Logon потестировать, а то есть за ними грешок. У меня сейчас устойчивая 7.20 Final Release версия файла 7200.3.17.1077 build 1411960 патч уровень 17 |
Автор: | melnycky [ Вт, окт 06 2020, 11:19 ] |
Заголовок сообщения: | Re: Не заполняются шаблоны Microsoft Office |
Всем привет! Решили вы эту проблему? Если да, то интересует все таки каким образом. А вот как решил ее я. У меня на одном из пользовательских компов (Win 10, Office 2016, SapGui 7400, патч 14) - похожая ситуация. Я определил, что не создаются OLE-объекты (проблема в DOCS) вот в этом куске: Code: *&---------------------------------------------------------------------* *& Form OpenForm *&---------------------------------------------------------------------* FORM OpenForm ....... ....... ....... Call method of App 'Workbooks' = Docs. Call method of Docs 'Open' EXPORTING #1 = <FILE_TEMP>. "FILE_NAME. Call method of App 'ActiveWorkbook' = Item. ....... ....... ....... Не знаю почему, поскольку на других компах с такой же конфигурацией (Win 10, Office 2016, SapGui 7400, патч 14) - все работает, грешу на McAfee, а может и что-то другое. А вот с DEBUG_MODE = 'X' - тоже работает. Я подумал - почему? Посмотрел на различия создания объекта Excel.Application и увидел, что с DEBUG_MODE = 'X' устанавливается видимость Visible = 1. ОК. Почему бы не включить видимость (а потом ее отключить) в режиме DEBUG_MODE = ''? И вот что у меня вышло - и после этого все работает. Code: ....... ....... ....... Call method of App 'Workbooks' = Docs. Call method of Docs 'Open' EXPORTING #1 = <FILE_TEMP>. "FILE_NAME. CALL FUNCTION 'FLUSH'. IF Docs IS INITIAL AND DEBUG_MODE IS INITIAL. free_object docs. Set property of App 'Visible' = 1. CALL FUNCTION 'FLUSH'. Call method of App 'Workbooks' = Docs. Call method of Docs 'Open' EXPORTING #1 = <FILE_TEMP>. "FILE_NAME. CALL FUNCTION 'FLUSH'. Set property of App 'Visible' = 0. CALL FUNCTION 'FLUSH'. ENDIF. Call method of App 'ActiveWorkbook' = Item. ....... ....... ....... Если я где-то указал что-то лишнее - не судите строго. Но еще раз - после этого все работает. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |