powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Как получить dataset транзакции SAP в Delphi?
36 сообщений из 36, показаны все 2 страниц
Как получить dataset транзакции SAP в Delphi?
    #36032416
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Пытаюсь получить dataset выполненной транзакции SAP R/3 в Delphi для дальнейшей обработоки. То есть я указываю имя транзакции, входные параметры и получаю набор данных. Подскажите, пожалуйста, как можно такое реализовать, учитавая, что у меня установлен SAP GUI. Спасибо!
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36032928
soulsurfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое Dataset выполненной транзакции SAP R/3???
Транзакция в SAP имеет другой смысл, чем в СУБД
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36032967
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,
поищите в сети информацию по wdtlog.ocx, wdtfunc.ocx... типа такой . Примеры для VBA, но думаю смысл понятен будет.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36033050
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm, спасибо, поисчу
soulsurfer, DataSet (набор данных) - структурированная информация, состояшая из набор полей определенных типов.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36033549
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы не сможете получить в таком виде результат работы SAP транзакции в таком виде.

может быть вам повезет и для вашей задачи будет RFC или BAPI-шка, что-то вроде BAPI_SALESORDER_CREATEFROMDAT2, которую вы сможете вызвать через SAP .net connector.
возможно даже что в возвращаемых таблицах найдется нужная вам информация.

но это если очень повезет
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36033573
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и что, что получили? говорю же, вы не можете получить.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36035544
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я нашел пример, как используя ActiveX библиотеку sapa можно к нему подключиться http://www.joachim-lentz.homepage.t-online.de/bapi_e.htm
Там приводится пример с вызовом BAPI функции RFC_READ_TABLE. Может быть есть похожая BAPI функция, которая бы возвращала данных транзакции (ведь транзкция как вьюшка собирает данные по нескольким таблицам)? Что-то типа RFC_READ_TRANSACTION?
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36035660
soulsurfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз (для внимательных) выдержка из курса SAP01:
"Транзакции - это прикладные программы, выполняющие бизнес-процессы в SAP-системе."

А теперь подумайте, что же все-таки вы хотите получить :)
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36035695
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
soulsurfer, ну естественно я имею в виду транзакции, которые возвращают набор данных по заданным параметрам, например FBL3N
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36035748
soulsurfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы интересовались: куда они их возвращают?
Так что вы не туда копаете. Идете в транзакцию BAPI и ищете себе подходящий функциональный модуль для вашей задачи.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36036220
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
soulsurfer, что-то у меня есть подозрение, что sap для вас это всего три английские буквы ))
Ибо BAPI это не транзакция, да и в моем случае что BAPI что RFC один хрен. Тем более, я нашел, что есть RFC_CALL_TRANSACTION, которая может мне помочь
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36036542
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

RFC_CALL_TRANSACTION - нет такого уже довольно давно, есть RFC_CALL_TRANSACTION_USING - для запуска пакетного ввода, передая через таблицы последовательность экранов/полей значения для ввода.

получить результат работы транзакции у вас таким образом не получится

ЗЫ не нужно переносить идиомы одной среды в другую. в САП транзакция -- как правило что-то делает (создает заказ, потребность, и т.п.). транзакция, которая только показывает (насколько я понял, вы именно такие хотите запускать, va0 3 , xd0 3 , mm0 3 , etc) -- просто readonly версия транзакции на изменение, причем можно переключаться на лету смотреть/менять
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36036967
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть, вы сможете посоветовать, как лучше получить данные в моем случае. Кстати, замечу, что в закладке "статус" транзакций va03, xd03, mm03 указано, что это "программа", а fbl1n - "отчет". Возможно, есть отдельный способ получения именно отчетов через ActiveX?
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037174
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

если вас интересуют проводкИ по главной книге/дебиторов/кредиторов, то посмотрите на FAGL_GET_что_нибудь (например, FAGL_GET_ALL_LEDGERS). более подробно не скажу, не имел дело. но надо учесть:

1. это не RFC, их нельзя вызвать извне. придется написать RFC обертку
2. нет прямого соответствия вывода fblxx и вывода этих функциональных модулей
3. вы должны сами знать, в какой таблице что лежит, как это взаимосвязано и как это интерпретировать
4. вывод очень низкоуровневый, на уровне прямых запросов в базу, никаких бизнес объектов вы не получите
5. на всякий случай уточните что у вас, FAGL или FMGL - это определяет, какие именно таблицы вам придется запрашивать
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037225
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>есть отдельный способ получения именно отчетов через ActiveX?
ответ на такой вопрос мне не известен. но думаю, что никак нельзя получить выход произвольного отчета в программном виде как набор связанных таблиц
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037315
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поковырялся и нашел, что есть RFC_READ_REPORT, а имя отчета можно посмотреть в статусе в сапе (например, для FBL1N - SAPLKKBL). Правда пока у меня не удается подключиться к сапу в delphi через activex, но я надеюсь победа близка
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037397
soulsurfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdaxebrnПоковырялся и нашел, что есть RFC_READ_REPORT, а имя отчета можно посмотреть в статусе в сапе (например, для FBL1N - SAPLKKBL). Правда пока у меня не удается подключиться к сапу в delphi через activex, но я надеюсь победа близка
И как? Пробовали запускать этот ФМ? Исходный текст его смотрели? :)
Вы хорошо поднимаете настроение с утра :) Ждем новых постов из жизни изобретателей велосипедов.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037452
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FUNCTION RFC_READ_REPORT.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(PROGRAM) LIKE SY-REPID
*" EXPORTING
*" VALUE(SYSTEM) LIKE SY-SYSID
*" VALUE(TRDIR) LIKE TRDIR STRUCTURE TRDIR
*" TABLES
*" QTAB STRUCTURE D022S
*"----------------------------------------------------------------------
* REFRESH QTAB.
* READ REPORT PROGRAM INTO QTAB.
* SELECT SINGLE * FROM TRDIR WHERE NAME = PROGRAM.
* SYSTEM = SY-SYSID.
ENDFUNCTION.

он ничего не делает, все тело модуля закомментировано.
а если бы и нет, то вы бы получили текст программы, а не результат работы
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037718
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
значит не то... ну есть же полюбому какая-то RFC или другой способ, чтобы получить из вне данные ABAP отчета. Вот типа компонента Xtract для SQL Server Integration Sercive http://theobald-software.com/wiki/Xtract_IS_Report_Postprocessing_in_SSIS. Там ведь каким-то образом реализован механизм запуска ABAP отчет по имени с указанием параметров.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037779
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

скорее всего эти ребятишки имеют доступ к низкоуровневым подробностям работы SAP GUI. я с такой документацией не встречался
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037811
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

даже если такого ФМ нет (что не очень верится), он легко пишется - код в пару строк submit <repname> с параметрами..
только надо не забыть сделать этот ФМ релевантным для RFC-вызовов
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037822
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну как-то не логично, не находи, что есть возможность читать таблицы, и нельзя читать отчеты. имхо ничо особенного и неизвестного простым смертным в этом компоненте нет. значит есть подходяший rfc/bapi, надо просто искать....
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037859
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

не ищите в САПе логики. там только деньги, выгодно/не выгодно.

а по вашей задаче могу сказать, что способ конечно есть, SAP GUI ведь как-то запускает отчеты и показывает их на экране. но описание API, позволяющего это делать, я в свободном доступе не видел. попробуйте пошукать на тему SAP GUI scripting
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037868
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

BAPI сразу не нашел,
поиском по se37 нашлось

самый простой - RZL_SUBMIT
посложнее - SUBMIT_REPORT

них можно взять за основу (не вижу в них возврата списка вывода)
а лучше задайте вопрос на sap forum-e, там могут более точно ответить
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037871
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про выгодно/невыгодно: компонент Xtract IS Report, на который вы сослались, входит только в состав Ultimate License, которая стоит всего навсего 7900 евро не включая НДС
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037880
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>не вижу в них возврата списка вывода
и не будет. отчет выводит результат работы, используя низкоуровневые API, а не в виде таблиц, как хочется топикстартеру
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037905
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
САП>не вижу в них возврата списка вывода
и не будет. отчет выводит результат работы, используя низкоуровневые API, а не в виде таблиц, как хочется топикстартеру

есть конструкция SUBMIT ... EXPORTING LIST TO MEMORY, с ней можно получить список вывода

http://help.sap.com/erp2005_ehp_04/helpdata/EN/9f/dba50d35c111d1829f0000e829fbfe/frameset.htm
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037935
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конструкция "SUBMIT... AND RETURN EXPORTING LIST TO MEMORY" - это, насколько я понимаю, конструкция для вызова внутри сап. А как ее вызвать из вне?
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36037945
САП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
придется написать RFC обертку, но это должно помочь.
и, насколько я понимаю, на выходе будет просто набор форматированных строк, которые придется парсить, как это делает тот самый IS report
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36038047
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
САПпридется написать RFC обертку, но это должно помочь.
и, насколько я понимаю, на выходе будет просто набор форматированных строк, которые придется парсить, как это делает тот самый IS report

или сделать через BAPI BackgroundJob (ObjType XBPJOB)
ФМ из набора BAPI_XBP_JOB_*

там есть масса методов, но простой вариант тоже можно реализовать
- создать задачу из одного шага (отчет), немедленно выполнить, получить список вывода.

как транзакции это SM36 (SM37)
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36040802
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако надо для начала уяснить сакраментальный смысл задачи - а зачем вся эта хотелка топикстартеру?
Даже если будет возможность получить вывод в спулл в виде внутренней таблицы, её по всякому нужно будет парсить на клиенте. Как её получить - уже здесь предложили. Вместе с тем, а что если отчёт выводит результат работы не в спулл, а например в ALV Grid? Тогда что? Сушите вёсла...

Если уж так зело хочется поиметь данные из SAP через приложение написанное на Delphi, то лучше и вправду озадачиться тем что, изучить прикладную область, таблицы, их взаимосвязи и логику обработки данных, а затем написать свои собственные ФМ (и сделать их доступными через RFC), и их вызывать. Вместе с тем не стоит забывать о том, что при этом под удар попадает защита, которая может быть просто проигнорирована если тупо будут считывать данные из таблиц.

В общем крамола всё это.

И топикстартеру:
в SAP нет понятия Dataset - не подходите с мерками Delphi и ADO (DAO и т.д.) к серверу приложений.
Да, вы можете получить на выходе как результат работы Вашего ФМ внутреннюю таблицу, которая будет Вам представлена как Dataset, но это сделает не SAP.

В общем, для чего-то это видимо Вам нужно, вот только для чего?

С Уважением,
А.К.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36044189
Idaxebrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex, спасибо за ответ.
Какую я цель приследую: скорее просто пытаюсь вникнуть в сущность сапа, какой-то определенной бизнес-задачи нет. А возможность получить отчет ABAP из вне интересен в плане интеграции с другими системами, причем именно имитация действий пользователя (вызов транзакции и указание параметров), дабы соблюсти правила безопасности. В целом, я конечно понимаю, что всю обработку правильнее писать в самом сапе.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36044245
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idaxebrn,

согласен с Alex, что получение списка вывода - это не самый лучший вариант

сначала бы надо посмотреть на суть задачи - какие данные надо выгружать и как это сделано в SAP, посмотреть на код abap - какие BAPI/функции там вызываются.

Если найдется BAPI - вызывать ее для конкретного языка, если нет, попробовать вызвать через RFC функциональный модуль, что получает данные в отчете SAP.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36047365
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdaxebrnAlex, спасибо за ответ.
Пожалуйста ...
IdaxebrnКакую я цель приследую: скорее просто пытаюсь вникнуть в сущность сапа, какой-то определенной бизнес-задачи нет. Ну, для вникания в сущность SAP (впрочем как и любой другой ERP системы) бизнес задача очень желательна, т.к. ERP системы очень многогранны и нужно для себя сформулировать конкретный вопрос.
IdaxebrnА возможность получить отчет ABAP из вне интересен в плане интеграции с другими системами, причем именно имитация действий пользователя (вызов транзакции и указание параметров), дабы соблюсти правила безопасности. Вызов отчёта написанного на ABAP извне SAP - пустая трата времени, BAPI Вам в руки...
А для полноценной интеграции с другими системами есть множество других интсрументов. IdaxebrnВ целом, я конечно понимаю, что всю обработку правильнее писать в самом сапе. - Вот это уже верный подход, да и не получится по другому.

С Уважением.
А.К.
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36277744
fara-on
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эххх, а победа была так близко... Тоже давно ищу инфу по этому поводу, только пытаюсь достать данные из SAP-а в VB, но это не суть... Причем стоит четко сформулированная задача, есть 2 отчета, которые выполняются в фоновом режиме каждый вечер, которые необходимо выгружать из спула и обрабатывать. Пока что что юзаю API, логинюсь в SAP и отправляю нажатия клавишь сапвскому окну, выгружаю спул. Все кончено работает, но систему мягко говоря отказоустойчивой не назовешь. Поэтому и хочется сделать что то более надежное. Пока что сумел только залогиниться в SAP через SAP.Functions, понял что далее могу запускать только BAPI, но какие... вобщем тёмный лес.... Поставил себе минисап, может быть хоть что то смогу понять... Если кто сможет подсказать как выгрузить спул буду примного благодарен!
...
Рейтинг: 0 / 0
Как получить dataset транзакции SAP в Delphi?
    #36278868
Фотография AnS1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fara-on,

на sap пусь вам напишут rfc fm (или - чтобы с .net connector не возится - web-сервис), который по названию job, дате выдавал бы вам спул в виде таблицы. Это работы на 2 часа - использовать TBTCP для поиска идентификатора спула и ФМ из группы функций SPOX для получения содержимого спула.
и все
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Как получить dataset транзакции SAP в Delphi?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]