SAPфорум.RU https://sapboard.ru/forum/ |
|
XLSX Workbench https://sapboard.ru/forum/viewtopic.php?f=13&t=86294 |
Страница 6 из 15 |
Автор: | Бородин Игорь [ Чт, фев 16 2017, 14:12 ] |
Заголовок сообщения: | Re: XLSX Workbench |
alexeik написал(а): Перезаходил, конечно Возможно, вы выходили на первый экран, а этого недостаточно. Надо совсем выйти из транзакции. Это довольно часто возникающий вопрос, и наверное, я в будущих версиях сделаю специальную кнопку обновления.
|
Автор: | Бородин Игорь [ Пт, фев 17 2017, 13:33 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Maksimus написал: При открытии xlsx-файла получаю ошибку Скажите, а если просто открыть форму во вьюере (а не сохранять на апликейшне OPEN DATASET... TRANSFER... ), то эта ошибка будет появляться? Если да, то какая версия XLSX Workbench ?
|
Автор: | Maksimus [ Пт, фев 17 2017, 13:56 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Бородин Игорь написал(а): Скажите, а если просто открыть форму во вьюере (а не сохранять на апликейшне OPEN DATASET... TRANSFER... ), то эта ошибка будет появляться? Если да, то какая версия XLSX Workbench ? Нет, во вьювере все хорошо. Версия 4.00. Я даже не уверен, что проблема в XLSX Workbench. Просто в описании к разработке есть пункт про фоновое выполнение, вот тестирую |
Автор: | Бородин Игорь [ Пт, фев 17 2017, 14:08 ] |
Заголовок сообщения: | Re: XLSX Workbench |
В gv_document_rawdata документ корректный, это точно. Я не могу в данный момент протестировать, но, скорее всего, Вы зря вызываете CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'. Попробуйте проще: Code: DELETE DATASET lv_file .
OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE . TRANSFER gv_document_rawdata TO lv_file . CLOSE DATASET lv_file . |
Автор: | Maksimus [ Пт, фев 17 2017, 14:14 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Бородин Игорь написал(а): В gv_document_rawdata документ корректный, это точно. Я не могу в данный момент протестировать, но, скорее всего, Вы зря вызываете CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'. Попробуйте проще: Code: DELETE DATASET lv_file . OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE . TRANSFER gv_document_rawdata TO lv_file . CLOSE DATASET lv_file . Ну конечно! Вы правы, спасибо, все получилось. P.S. отдельное спасибо за разработку, оч. крутая вещь, хоть бери и все существующие отчеты под нее переделывай |
Автор: | Crystal_Ra [ Вт, фев 28 2017, 10:48 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Встретил такую штуку. Code: LOOP AT mt_data ASSIGNING <ls_data>. CLEAR lt_output. APPEND <ls_data> TO lt_output. CALL FUNCTION 'ZXLWB_CALLFORM' EXPORTING iv_formname = mc_filename iv_viewer_inplace = '' iv_context_ref = lt_output EXCEPTIONS process_terminated = 1 OTHERS = 2. ENDLOOOP. Работает все ок, но порой пишет ошибку "Не удалось найти ..." файл. В отладке выяснил, что передавая пустое имя файла в папку "SAP GUI/ ~tmp~", пишется файл с генерированным именем модулем Code: CALL FUNCTION 'GUID_CREATE' IMPORTING ev_guid_32 = lv_guid_1. и этот модуль в цикле выдает одинаковые guid. Это пол беды... При каждом запуске вашего модуля для формы в цикле, происходит удаление по этому гуид файла во временной папке - естественно в цикле удаление не отработает корректно , так как файл еще открыт Excel. Пробовал делать вызов после вашего модуля Code: "" Решение проблемы генерации GUID - иногда генерится одно и тоже ... "" И зависает открытие 2 файла - исправляем. "" берем 2 гуида и сравниваем их если генерит 2 подрят разных то гуд "" иначе повторяем еще 4 раза - через итерации цикла , чтобы была временная разница между вызовами. cl_gui_cfw=>flush( EXCEPTIONS OTHERS = 0 ) . cl_gui_cfw=>dispatch( ) . DO 12 TIMES. lv_mod = sy-index MOD 3. CASE lv_mod. WHEN 1. CALL FUNCTION 'GUID_CREATE' IMPORTING ev_guid_32 = lv_guid_1. CONTINUE. WHEN 2. CALL FUNCTION 'GUID_CREATE' IMPORTING ev_guid_32 = lv_guid_2. CONTINUE. WHEN 0. IF lv_guid_1 <> lv_guid_2. EXIT. ELSE. CONTINUE. ENDIF. ENDCASE. ENDDO. Но это не решает проблему ... возможно лучшим решением будет генерация имени временного файла по времени ? (а не по guid) ЗЫ: генерация гуида - как я понимаю это нативная функция системы, и недра её нам не доступны... ЗЫ:ЗЫ: версия XLSX-Workbench(XLWB) components [Version 3.09] |
Автор: | Бородин Игорь [ Вт, фев 28 2017, 11:36 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Crystal_Ra написал(а): и этот модуль в цикле выдает одинаковые guid. Вот это новость для меня... я, по своей наивности, считал, что GUID уникален и рассчитывал на это. Спасибо, что выявили эту проблему!Crystal_Ra написал(а): Пробовал делать вызов после вашего модуля... Но это не решает проблему Скажите, а в этом случае GUID тоже остается одинаков? Или ошибка возникает даже при разных GUID ?
|
Автор: | Crystal_Ra [ Вт, фев 28 2017, 12:07 ] |
Заголовок сообщения: | Re: XLSX Workbench |
При разных GUID - все хорошо. Работает четко. Я как разработчик эту проблему бы и не встретил ))), но пользователи !!! Они что-то жмут как всегда "по-своему", и в боевом режиме выяснилось, что GUID нас подводит. Моя обработка по сути не помогла, через неделю снова вернулись ошибки . ЗЫ: Тоже всегда думал что GUID уникален ))), но нет - уникален SAP ))) PS/PS: предположу что сам алгоритм реализован на уровне системы на чем стоит базис... у нас Linux |
Автор: | Бородин Игорь [ Вт, фев 28 2017, 13:16 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Я поправил логику формирования GUID и опубликовал новую версию на сайте. Обновитесь, пожалуйста. |
Автор: | Crystal_Ra [ Вт, фев 28 2017, 13:19 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Спасибо! |
Автор: | Ayda}{ar [ Ср, апр 19 2017, 20:08 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый вечер. Подскажите, пожалуйста, есть ли возможность создавать переменные в Диспетчере Имен. Может, невнимательно читал, но не смог найти эту функцию. |
Автор: | Бородин Игорь [ Чт, апр 20 2017, 10:43 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день. Если Вы имеете в виду именованные ячейки/диапазоны ячеек, то нет. Из шаблона в результирующий файл эти имена просто не переносятся. |
Автор: | Ayda}{ar [ Чт, апр 20 2017, 11:02 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Бородин Игорь написал(а): Добрый день. Если Вы имеете в виду именованные ячейки/диапазоны ячеек, то нет. Из шаблона в результирующий файл эти имена просто не переносятся. Добрый день. Не планируете добавить этот функционал? Вообще, мне это нужно для использования в сводной таблице в качестве источника данных. Т.к. для этого надо и использовать либо жесткий диапазон, либо переменную, вычисляемую по формуле со смещением. Может есть какой-то другой способ создания Сводных таблиц в вашем инструменте? |
Автор: | Бородин Игорь [ Чт, апр 20 2017, 11:28 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Ayda}{ar написал(а): Не планируете добавить этот функционал? Пока не планирую и даже не знаю, как это увязать с концепцией. Вот, например, Вы присвоили диапазону A1:A5 имя NAME, и поместили этот паттерн в цикл. В результирующей форме будет, предположим, 10 таких областей (строк) - и как все они должны называться? ведь имя-то должно быть уникальным. Можно, конечно, "растянуть" диапазон NAME, чтобы он охватывал все получившиеся строки... а если они идут не подряд, а чередуются с другими паттернами, тогда как ? Короче, это вопрос не технический, а концептуальный. Ayda}{ar написал(а): Может есть какой-то другой способ создания Сводных таблиц в вашем инструменте? Я задумывался над реализацией сводных таблиц, но пока (из-за сложности) откладывал. Возможно в будущем и добавлю эту возможность.Если Вам не принципиально выполнение в фоне, то можете реализовать всё, что угодно посредством VBA (VBScript) пост-обработки . |
Страница 6 из 15 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |