Текущее время: Вт, сен 09 2025, 22:35

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вызов Excel из SAP
СообщениеДобавлено: Ср, янв 17 2007, 15:36 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
Добрый день!
Есть такая задачка:
Необходимо из рабочей книги Excel вызывать с помощью VBA RFC программа, которая в свою очередь в зависимости от заданных параметров должна открыть новую рабочую книгу.
Создана RFC программа, при запуске из SAP все отрабатывает отлично, нужная рабочая книга запускается.
Пробую вызвать RFC программу из рабочей книги, и получаю следующую ошибку:
в заголовке: Microsoft Visual C++ Runtime Library
текст ошибки:
Runtime Error!
Program: C:\Program Files\Microsoft\Microsoft Office\Office\Excel.exe
abnormal program termination

После этого Excel зыкрывается.
Поиск в интеренете дает только следующее решиние проблемы: Переставить Винды, переставить программу.

Заранее спасибо за ответы.
P.S.
Стоят Windows 2000
Office 2000


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 17 2007, 16:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, дек 27 2004, 13:48
Сообщения: 772
Откуда: от верблюда
Может быть, параметры передаются криво из Excel в вашу RFC -ку?
И еще, на другом компе пробовали запускать?

_________________
Бросай курить, вставай на лыжи -
И вместо рака будет грыжа!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 17 2007, 16:28 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
EVK написал(а):
Может быть, параметры передаются криво из Excel в вашу RFC -ку?
И еще, на другом компе пробовали запускать?



Да на другом компе <я не знать русский языка>, таже ситуация! <я не знать русский языка> просто вызвать транзакцию rrmx из VBA. Таже ошибка, так что думаю RFC не причем тут.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 17 2007, 16:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, дек 27 2004, 13:48
Сообщения: 772
Откуда: от верблюда
Гм... Попробуйте сделать финт ушами, описанный в ноте 709141, может и поможет...

_________________
Бросай курить, вставай на лыжи -
И вместо рака будет грыжа!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 17 2007, 17:45 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
EVK написал(а):
Гм... Попробуйте сделать финт ушами, описанный в ноте 709141, может и поможет...


Да, данный финт ушами пока не помог, т.е:
For this coding correction to take effect, an entry has to be made in
RSADMIN table. To do this, execute transaction se38 -> Program -->
SAP_RSADMIN_MAINTAIN -> press F8

OBJECT -> REUSE_XL_INSTANCE

VALUE -> DISABLE

это уже стояло в таблице.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 08:53 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Гм...мы запускали простой ФМ. Все кошерно :lol:
...может что-то с кодом на VBA?

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 09:49 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
Blizzard написал:
Гм...мы запускали простой ФМ. Все кошерно :lol:
...может что-то с кодом на VBA?


НА VBA написан следующий код:

Dim sapConn As Object
Set sapConn = CreateObject("SAP.Functions")

If sapConn.Connection.Logon(0, False) <> True Then
MsgBox "Cannot Log on to SAP"
End If
If Not sapConn.RRMX Then
MsgBox "Call cannot be done"
End If

Тут просто я решил <я не знать русский языка> вызвать транзакцию RRMX соответственно результат тотже.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 11:36 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Klis написал(а):
Set sapConn = CreateObject("SAP.Functions")
Тут просто я решил <я не знать русский языка> вызвать транзакцию RRMX соответственно результат тотже.

Косяк наверное из-за того что обращаешься к объекту "SAP.Functions"
Ещё раз повторюсь, а что мешает вызвать функцию?
А в ней уже (в функции) вызывать rrmx, предварительно грузанув в мемори книжечку.

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 11:37 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Klis написал(а):
Тут просто я решил <я не знать русский языка> вызвать транзакцию RRMX соответственно результат тотже.

Логон проходит?

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 11:41 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
Blizzard написал:
Klis написал(а):
Тут просто я решил <я не знать русский языка> вызвать транзакцию RRMX соответственно результат тотже.

Логон проходит?


Да Логон проходит, но потом вываливается ошибка которая описана выше! Причем когда я вызываю ФМ тоже самое. ФМ как раз и вызывает рабочую книгу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 11:42 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
Blizzard написал:
Klis написал(а):
Set sapConn = CreateObject("SAP.Functions")
Тут просто я решил <я не знать русский языка> вызвать транзакцию RRMX соответственно результат тотже.

Косяк наверное из-за того что обращаешься к объекту "SAP.Functions"
Ещё раз повторюсь, а что мешает вызвать функцию?
А в ней уже (в функции) вызывать rrmx, предварительно грузанув в мемори книжечку.


Если можно, примерчик как вызвать ФМ из VBA.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 11:47 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Function Get_FIO(User) As String
Dim BI_connect
Get_FIO = ""
Set BI_connect = Run("sapbex.xla!sapBEXgetConnection")

If BI_connect.IsConnected <> 1 Then
Get_FIO = ""
Else
Dim funcControl, RFC_READ_USER, importData
Set funcControl = CreateObject("SAP.Functions")
funcControl.Connection = BI_connect
Set RFC_READ_USER = funcControl.Add("Z_RFC_GET_USER_FIO")
RFC_READ_USER.Exports("USER_ID").Value = User

If RFC_READ_USER.Call = True Then
Get_FIO = RFC_READ_USER.Imports("NAME").Value
End If
End If

End Function
копирихт, все дела...бла-бла-бла :)

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 12:06 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
Спасибо.
Доработал свой код согласно вашему примеру^
Dim sapConn As Object
Set sapConn = CreateObject("SAP.Functions")
Dim objRfcFunc As Object
Set objRfcFunc = sapConn.Add("ZRUN_REPORT")
и в строке:
Set objRfcFunc = sapConn.Add("ZRUN_REPORT") , где ZRUN_REPORT - название ФМ вылазит ошибк:
Run-time error 1001

SAP Remote Function Call

причем ФМ не содержит пока входных параметров.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 13:45 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Klis написал(а):
вылазит ошибк:
Run-time error 1001
SAP Remote Function Call

а галка стоит в ФМ что он RFC?

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 18 2007, 13:58 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 17 2007, 15:26
Сообщения: 19
В общем так: сделал след код:
Sub RunRFC()

Dim sapConn As Object
Dim objData As Object
Set sapConn = CreateObject("SAP.Functions")
If sapConn.Connection.Logon(0, False) <> True Then
MsgBox "Cannot Log on to SAP"
End If
Dim objRfcFunc As Object
Set objRfcFunc = sapConn.Add("Z_RUN_MYFUNC")
If objRfcFunc.Call = True Then
MsgBox "Done"
End If
End Sub

Z_RUN_MYFUNC - ФМ, который запускает другой ФМ, который запускает рабочую книгу

соответственно при запуске ТЕПЕРЬ ничего не происходит, т.е objRfcFunc.Call <> True, ручками когда запускаю Z_RUN_MYFUNC все нормально - рабочая книга открывается.
Z_RUN_MYFUNC в свойствах стоит - Дистанционный модуль, запускать немедленно.
В чем тут теперь проблема не понятно....


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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