Добрый день. Уважаемые специалисты, проконсультируйте пожалуйста новичка по поводу получения данных через RFC.
Есть RFC, есть таблица с данными в SAP. Задача вытащить данные из этой таблицы с помощью RFC во временную таблицу SQL.
Вот мой код:
create table #Z_TAB
( Z05 char(20),
Z06 char(5),
Z07 char(10),
Z08 char(16),
Z09 char(1),
Z10 char(20),
Z11 char (1),
Z12 char (30),
Z13 char (35),
Z14 char (4) )
DECLARE @object int
DECLARE @hr int
DECLARE @func int
DECLARE @ret int
DECLARE @src varchar(255), @desc varchar(255)
DECLARE @property int
DECLARE @property1 int
DECLARE @hp int
-- -
EXEC @hr = sp_OACreate 'SAP.Functions', @object OUT
EXEC @hr = sp_OASetProperty @object, 'LOGFILENAME', 'C:\SAP_paid.txt'
EXEC @hr = sp_OASetProperty @object, 'LOGLEVEL', 10
--Получаем параметр соединения и присваиваем переменные
EXEC @hr = sp_OAGetProperty @object, 'Connection', @property OUT
EXEC @hr = sp_OASetProperty @property, 'System', 'RNP'
EXEC @hr = sp_OASetProperty @property, 'SystemNumber', '04'
EXEC @hr = sp_OASetProperty @property, 'SapRouter', '/*/*.*.*.*/*/****/*/'
EXEC @hr = sp_OASetProperty @property, 'MessageServer', 'PRODUKT'
EXEC @hr = sp_OASetProperty @property, 'GroupName', 'TEST'
EXEC @hr = sp_OASetProperty @property, 'CLIENT', '***'
EXEC @hr = sp_OASetProperty @property, 'Language', 'RU'
EXEC @hr = sp_OASetProperty @property, 'User', '********'
EXEC @hr = sp_OASetProperty @property, 'Password', '******'
--Соединяемся
EXEC @hr = sp_OAMethod @property, 'Logon', @ret OUT, 0, 'TRUE'
select @hr
--Присваиваем функцию RFC
EXEC @hr = sp_OAMethod @object, 'ADD', @func OUT,'z_tap_read_rfc'
select @hr
DECLARE
@param_col integer,
@param_col1 integer,
@param_col3 integer,
@EXPORT integer,
@EXPORT1 integer,
@TABLE integer,
@TABLE1 integer,
@Funct integer,
@Z01 integer,
@Z02 integer,
@Z03 integer,
@Z04 integer
--Присваеваем параметры запуска RFC
EXEC @hr = sp_OAGetProperty @Funct, 'Exports', @EXPORT OUT
EXEC @hr = sp_OAGetProperty @EXPORT, 'Z01', @Z01 OUT
EXEC @hr = sp_OAGetProperty @EXPORT, 'Z02', @Z02 OUT
EXEC @hr = sp_OAGetProperty @EXPORT, 'Z03', @Z03 OUT
EXEC @hr = sp_OAGetProperty @EXPORT, 'Z04', @Z04 OUT
EXEC @hr = sp_OASetProperty @Z01, 'VALUE', '1111'
EXEC @hr = sp_OASetProperty @Z02, 'VALUE', '0002'
EXEC @hr = sp_OASetProperty @Z03, 'VALUE', '2007'
EXEC @hr = sp_OASetProperty @Z04, 'VALUE', '123456'
А вот как получить данные из SAP таблицы (имеющей такие же поля как и временная таблица SQL), увы не знаю....
Помогите пожалуйста. Может есть ссылочка полезная, где можно посмотреть, как это делается... Если укажите на мои ошибки, буду очень благодарен!
|
|