Текущее время: Чт, июл 24 2025, 02:40

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 11:38 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Коллеги, есть проблема с выгрузкой в Эксель. Перетащили прогу с другой системы, с 4.6 на ERP 6.0.

В основном тексте программы есть строчка кода:
Code:
CREATE OBJECT h_app 'Excel.Application'.

Это видимо создание объекта.

Объявлено вот так:
Code:
DATA:
  h_app  TYPE ole2_object,


ole2_object отсюда
Code:
TYPE-POOL OLE2 .


TYPES:
  OLE2_OBJECT LIKE   OBJ_RECORD.
*    Object handle initialization
CONSTANTS:
  OLE2_OBJECT_HEADER TYPE OLE2_OBJECT-HEADER VALUE 'OBJH',
  OLE2_OBJECT_TYPE   TYPE OLE2_OBJECT-TYPE   VALUE 'OLE2',
  OLE2_OBJECT_HANDLE TYPE OLE2_OBJECT-HANDLE VALUE -1,
  BEGIN OF OLE2_OBJECT_INITIAL,
    HEADER   TYPE OLE2_OBJECT-HEADER    VALUE OLE2_OBJECT_HEADER,
    TYPE     TYPE OLE2_OBJECT-TYPE      VALUE OLE2_OBJECT_TYPE,
    HANDLE   TYPE OLE2_OBJECT-HANDLE    VALUE OLE2_OBJECT_HANDLE,
    CB_INDEX TYPE OLE2_OBJECT-CB_INDEX  VALUE SPACE,
    CLSID    TYPE OLE2_OBJECT-CLSID     VALUE SPACE,
  END OF OLE2_OBJECT_INITIAL.

CONSTANTS: OLE2_%_POINTER POINTER.


В последней строчке POINTER подсчевен красным, но ниче не ругается.

При компиляции проги, видно что при
CREATE OBJECT h_app 'Excel.Application'.
объект не получает HANDLE, вернее получает 1-.

Я не абапер, прошу простить за корявое изложение, но если нужна еще инфа - задайте вопросы, отвечу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 12:10 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 07:27
Сообщения: 321
Откуда: Где-то на севере
Пол: Мужской
Вроде как всё нормально, по крайней мере на этом шаге, create object, ничего существенного не выполняется, поэтому рискну предположить, что невозможность создать объект, о чем сообщает переменная sy-subrc не равная 0, вызвана отсутствием MS Excel на компе или неправильным написанием типа объекта, может там буквы не настоящие стоят, не англицкие.

Или попробуйте EXCEL.APPLICATION заглавными буквами написать.

Или посмотрите транзакцию SOLE, есть ли в списке приложений этот самый EXCEL.APPLICATION.

_________________
I have a dream


Последний раз редактировалось PK Пт, май 21 2010, 12:18, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 12:17 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
PK написал:
Вроде как всё нормально, по крайней мере на этом шаге, create object, ничего существенного не выполняется, поэтому рискну предположить, что невозможность создать объект, о чем сообщает переменная sy-subrc не равная 0, вызвана отсутствием MS Excel на компе или неправильным написанием типа объекта, может там буквы не настоящие стоят, не англицкие.


На компе Excel есть.
Прога запущенная из другой системы работает норм.

Делали следующее, при выполнении строчки
CREATE OBJECT h_app 'Excel.Application'.
подменяли значение HANDLE руками, прога работала на ура.

Потому я вопрос вам и задаю, меня смущает почему при создании объекта он не получает нормальный HANDLE. И вот строчка
CONSTANTS: OLE2_%_POINTER POINTER. с подсвеченным POINTER говорит как бы об ошибке наверно?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 12:24 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 07:27
Сообщения: 321
Откуда: Где-то на севере
Пол: Мужской
Maksimus написал:
подменяли значение HANDLE руками, прога работала на ура.

А на что меняли?
Maksimus написал:
Потому я вопрос вам и задаю, меня смущает почему при создании объекта он не получает нормальный HANDLE. И вот строчка
CONSTANTS: OLE2_%_POINTER POINTER. с подсвеченным POINTER говорит как бы об ошибке наверно?

Нет, это не ошибка. Просто подстветка синтаксиса так отрабатывает.
И буквы не причём, они так и так переводятся в верхний регистр внутри метода create.

_________________
I have a dream


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 12:30 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 07:27
Сообщения: 321
Откуда: Где-то на севере
Пол: Мужской
Т.е. если я правильно понял, то в двух различных sap системах запущенных с одного компьютера в одном отрабатывает, а в другом нет?

Может тогда действительно посмотрите на транзакцию SOLE и то, как описаны EXCEL.APPLICATION там и там. А то умных идей почему-то нет :)

_________________
I have a dream


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 12:33 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Code:
CREATE OBJECT h_app 'Excel.Application'.
SET PROPERTY OF h_app 'DisplayAlerts' = 0.
SET PROPERTY OF h_app 'Visible' = p_visible.
CALL METHOD OF h_app 'WorkBooks' = h_lwb.
CALL METHOD OF h_lwb 'Open' EXPORTING #1 = p_dpath.
GET PROPERTY OF h_lwb 'Item' = h_wbk exporting #1 = 1.
CALL METHOD OF h_wbk 'Sheets' = h_lwk.
GET PROPERTY OF h_wbk 'Windows' = h_wnd1 exporting #1 = 1.
CALL METHOD OF h_app 'WorkSheets' = h_wks EXPORTING #1 = 1.
CALL METHOD OF h_wks 'Activate'.


Вот такой код выполняется. И при этом запускается только приложение Excel без открытия книги, листа и т.д. Просто окно приложения пустое.
Подменяли значение HANDLE 1- на 11..20 и в h_app, и в h_lwb, и в h_wbk и т.д. После этого прога начинала жить =) Открывалось приложение, книга, запускался шаблон, ну и дальше все Ок.

Почему ругаюсь на HANDLE, потому что отладчиком прогнал в другой системе так там значения хэндла нормальные - без минусов.

В SOLE все одинаково.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 12:36 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
PK написал:
Т.е. если я правильно понял, то в двух различных sap системах запущенных с одного компьютера в одном отрабатывает, а в другом нет?

Поняли правильно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OLE Automation Controller
СообщениеДобавлено: Пт, май 21 2010, 13:53 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 07:27
Сообщения: 321
Откуда: Где-то на севере
Пол: Мужской
Тогда мне непонятно, но до момента когда происходит flush вроде как handle не присваивается. Может с этим какие-то заморочки? Предлагаю посмотреть в отладчике весь процесс выполнения create object.

_________________
I have a dream


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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