Текущее время: Пт, авг 01 2025, 14:05

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 06:57 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, авг 02 2006, 09:18
Сообщения: 5
Откуда: Сургут
Пол: Мужской
Всем доброго времени суток! :D
Народ, необходимо загрузить DBF-файл в R/3-шную табличку с идентичными полями посредством RFC-функции. Просвятите, меня тёмного, в общих словах как это сделать. Прогу пишу на Delphi, если есть пример, буду очень благодарен. Коннектор написал, могу передавать параметры, вызывать RFC-функцию и принимать параметры после вызова. Но как табличку передать? :roll:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 08:33 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Самое простое - написать на стороне Сапы очень простой ФМ, который будет переданную ему внутреннюю табличку в параметрах складывать в таблицу БД. А вы в своей программе на дельфи будете грузить данные из DBF и дергать по RFC этот ФМ, передавая в параметрах внутреннюю табличку с данными из DBF

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 09:21 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, авг 02 2006, 09:18
Сообщения: 5
Откуда: Сургут
Пол: Мужской
ArmAnn написал:
Самое простое - написать на стороне Сапы очень простой ФМ, который будет переданную ему внутреннюю табличку в параметрах складывать в таблицу БД. А вы в своей программе на дельфи будете грузить данные из DBF и дергать по RFC этот ФМ, передавая в параметрах внутреннюю табличку с данными из DBF

Благодарю за отклик! :D Это всё понятно, мне непонятно конкретно как передать табличку с данными из Delphi? Обычные параметры я знаю как передавать:
Func := V.Add('Z_RFC_TEST');
Func.Exports('USER').Value := 'USER';
Func.Exports('COUNT').Value := '10';
Func.Exports('P_CHECK').Value := 'X';
Func.Exports('DESCRIPTION').Value := 'This record created by RFC-function';
Func.Call;
SySubrc := Func.Imports('SYSUBRC').Value;

Параметры в ФМ:
FUNCTION z_rfc_test.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(USER) TYPE CHAR16
*" VALUE(COUNT) LIKE ZSTRUC_RFC-ZCOUNT
*" VALUE(P_CHECK) TYPE ZP_CHECK
*" VALUE(DESCRIPTION) TYPE CHAR255
*" VALUE(TABISP) TYPE ZDOGOV_ISP " - это табличка
*" EXPORTING
*" VALUE(SYSUBRC) TYPE CHAR1
*"----------------------------------------------------------------------
а как заполнить параметр TABISP в Delphi? И еще может, я неправильно таблицу объявляю в ФМ? Может она должна быть в Таблицах, а не в Импорте?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 09:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
С саповском ФМе она обязательно должна быть в таблицах, а на счет делфи точно не скажу, может массивом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 09:31 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
вот кусок кода на VBS, может быть, поможет?
Code:

FUNCTION rfc_call(i_func_name)

  DIM function_control
  DIM it_messages

  SET function_control = CreateObject("SAP.FUNCTIONS")

... логон в систему....


  'Reference to FUNCTION module
  SET die_func = function_control.Add( i_func_name )
 
  SET it_messages = die_func.Tables("IT_MESTYP")
  it_messages.FreeTable

... добавляем первую строку:

  it_messages.Rows.Add
  it_messages.Value(1, "A") = "Значение поля A"

  it_messages.Rows.Add
  it_messages.Value(1, "B") = "Значение поля B"

... итд

  'Call FUNCTION module
  IF die_func.Call = True then
    MsgBox "RFC ok!", 0, "RFC info"
  ELSE
    MsgBox "Ошибка вызова RFC-модуля", 16, "RFC info"
  END IF
END FUNCTION



i_func_name - имя ФМ, IT_MESTYP - имя интерфейсного параметра-таблицы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 09:49 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
_Nick_ написал:
а как заполнить параметр TABISP в Delphi? И еще может, я неправильно таблицу объявляю в ФМ? Может она должна быть в Таблицах, а не в Импорте?

Когда то я делал программу на си билдере, таблицу в ФМ передавал именно в разделе TABLES. Подробностей к сожалению не помню - давно уж это было, но проблем особых не припомню - главное чтоб структура таблицы на стороне Дельфи на стороне Сапа совпадала

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка таблицы через RFC
СообщениеДобавлено: Чт, авг 06 2009, 10:40 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, авг 02 2006, 09:18
Сообщения: 5
Откуда: Сургут
Пол: Мужской
Народ, спасибо большое! Щас буду пробовать массивом передать. Как сделаю, код запостю... :D


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

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


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

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


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

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