Текущее время: Вс, авг 24 2025, 10:37

Часовой пояс: 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 часа


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

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


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

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