Текущее время: Чт, июл 31 2025, 17:36

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


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

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


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

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