|
|
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пытаюсь получить dataset выполненной транзакции SAP R/3 в Delphi для дальнейшей обработоки. То есть я указываю имя транзакции, входные параметры и получаю набор данных. Подскажите, пожалуйста, как можно такое реализовать, учитавая, что у меня установлен SAP GUI. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 10:08 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Что такое Dataset выполненной транзакции SAP R/3??? Транзакция в SAP имеет другой смысл, чем в СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 12:50 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, поищите в сети информацию по wdtlog.ocx, wdtfunc.ocx... типа такой . Примеры для VBA, но думаю смысл понятен будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 13:04 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
iscrafm, спасибо, поисчу soulsurfer, DataSet (набор данных) - структурированная информация, состояшая из набор полей определенных типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 13:34 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
вы не сможете получить в таком виде результат работы SAP транзакции в таком виде. может быть вам повезет и для вашей задачи будет RFC или BAPI-шка, что-то вроде BAPI_SALESORDER_CREATEFROMDAT2, которую вы сможете вызвать через SAP .net connector. возможно даже что в возвращаемых таблицах найдется нужная вам информация. но это если очень повезет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 15:45 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
ну и что, что получили? говорю же, вы не можете получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 15:50 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Я нашел пример, как используя ActiveX библиотеку sapa можно к нему подключиться http://www.joachim-lentz.homepage.t-online.de/bapi_e.htm Там приводится пример с вызовом BAPI функции RFC_READ_TABLE. Может быть есть похожая BAPI функция, которая бы возвращала данных транзакции (ведь транзкция как вьюшка собирает данные по нескольким таблицам)? Что-то типа RFC_READ_TRANSACTION? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 14:10 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Еще раз (для внимательных) выдержка из курса SAP01: "Транзакции - это прикладные программы, выполняющие бизнес-процессы в SAP-системе." А теперь подумайте, что же все-таки вы хотите получить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 14:46 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
soulsurfer, ну естественно я имею в виду транзакции, которые возвращают набор данных по заданным параметрам, например FBL3N ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 14:59 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
А вы интересовались: куда они их возвращают? Так что вы не туда копаете. Идете в транзакцию BAPI и ищете себе подходящий функциональный модуль для вашей задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 15:18 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
soulsurfer, что-то у меня есть подозрение, что sap для вас это всего три английские буквы )) Ибо BAPI это не транзакция, да и в моем случае что BAPI что RFC один хрен. Тем более, я нашел, что есть RFC_CALL_TRANSACTION, которая может мне помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 17:59 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, RFC_CALL_TRANSACTION - нет такого уже довольно давно, есть RFC_CALL_TRANSACTION_USING - для запуска пакетного ввода, передая через таблицы последовательность экранов/полей значения для ввода. получить результат работы транзакции у вас таким образом не получится ЗЫ не нужно переносить идиомы одной среды в другую. в САП транзакция -- как правило что-то делает (создает заказ, потребность, и т.п.). транзакция, которая только показывает (насколько я понял, вы именно такие хотите запускать, va0 3 , xd0 3 , mm0 3 , etc) -- просто readonly версия транзакции на изменение, причем можно переключаться на лету смотреть/менять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 22:01 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Может быть, вы сможете посоветовать, как лучше получить данные в моем случае. Кстати, замечу, что в закладке "статус" транзакций va03, xd03, mm03 указано, что это "программа", а fbl1n - "отчет". Возможно, есть отдельный способ получения именно отчетов через ActiveX? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 10:25 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, если вас интересуют проводкИ по главной книге/дебиторов/кредиторов, то посмотрите на FAGL_GET_что_нибудь (например, FAGL_GET_ALL_LEDGERS). более подробно не скажу, не имел дело. но надо учесть: 1. это не RFC, их нельзя вызвать извне. придется написать RFC обертку 2. нет прямого соответствия вывода fblxx и вывода этих функциональных модулей 3. вы должны сами знать, в какой таблице что лежит, как это взаимосвязано и как это интерпретировать 4. вывод очень низкоуровневый, на уровне прямых запросов в базу, никаких бизнес объектов вы не получите 5. на всякий случай уточните что у вас, FAGL или FMGL - это определяет, какие именно таблицы вам придется запрашивать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 11:27 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
>есть отдельный способ получения именно отчетов через ActiveX? ответ на такой вопрос мне не известен. но думаю, что никак нельзя получить выход произвольного отчета в программном виде как набор связанных таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 11:44 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Поковырялся и нашел, что есть RFC_READ_REPORT, а имя отчета можно посмотреть в статусе в сапе (например, для FBL1N - SAPLKKBL). Правда пока у меня не удается подключиться к сапу в delphi через activex, но я надеюсь победа близка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 12:10 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
IdaxebrnПоковырялся и нашел, что есть RFC_READ_REPORT, а имя отчета можно посмотреть в статусе в сапе (например, для FBL1N - SAPLKKBL). Правда пока у меня не удается подключиться к сапу в delphi через activex, но я надеюсь победа близка И как? Пробовали запускать этот ФМ? Исходный текст его смотрели? :) Вы хорошо поднимаете настроение с утра :) Ждем новых постов из жизни изобретателей велосипедов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 12:35 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
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. он ничего не делает, все тело модуля закомментировано. а если бы и нет, то вы бы получили текст программы, а не результат работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 12:52 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
значит не то... ну есть же полюбому какая-то RFC или другой способ, чтобы получить из вне данные ABAP отчета. Вот типа компонента Xtract для SQL Server Integration Sercive http://theobald-software.com/wiki/Xtract_IS_Report_Postprocessing_in_SSIS. Там ведь каким-то образом реализован механизм запуска ABAP отчет по имени с указанием параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 14:19 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, скорее всего эти ребятишки имеют доступ к низкоуровневым подробностям работы SAP GUI. я с такой документацией не встречался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 14:36 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, даже если такого ФМ нет (что не очень верится), он легко пишется - код в пару строк submit <repname> с параметрами.. только надо не забыть сделать этот ФМ релевантным для RFC-вызовов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 14:49 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
ну как-то не логично, не находи, что есть возможность читать таблицы, и нельзя читать отчеты. имхо ничо особенного и неизвестного простым смертным в этом компоненте нет. значит есть подходяший rfc/bapi, надо просто искать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 14:50 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, не ищите в САПе логики. там только деньги, выгодно/не выгодно. а по вашей задаче могу сказать, что способ конечно есть, SAP GUI ведь как-то запускает отчеты и показывает их на экране. но описание API, позволяющего это делать, я в свободном доступе не видел. попробуйте пошукать на тему SAP GUI scripting ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:03 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, BAPI сразу не нашел, поиском по se37 нашлось самый простой - RZL_SUBMIT посложнее - SUBMIT_REPORT них можно взять за основу (не вижу в них возврата списка вывода) а лучше задайте вопрос на sap forum-e, там могут более точно ответить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:08 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
про выгодно/невыгодно: компонент Xtract IS Report, на который вы сослались, входит только в состав Ultimate License, которая стоит всего навсего 7900 евро не включая НДС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:08 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
>не вижу в них возврата списка вывода и не будет. отчет выводит результат работы, используя низкоуровневые API, а не в виде таблиц, как хочется топикстартеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:11 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
САП>не вижу в них возврата списка вывода и не будет. отчет выводит результат работы, используя низкоуровневые API, а не в виде таблиц, как хочется топикстартеру есть конструкция SUBMIT ... EXPORTING LIST TO MEMORY, с ней можно получить список вывода http://help.sap.com/erp2005_ehp_04/helpdata/EN/9f/dba50d35c111d1829f0000e829fbfe/frameset.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:24 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Конструкция "SUBMIT... AND RETURN EXPORTING LIST TO MEMORY" - это, насколько я понимаю, конструкция для вызова внутри сап. А как ее вызвать из вне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:35 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
придется написать RFC обертку, но это должно помочь. и, насколько я понимаю, на выходе будет просто набор форматированных строк, которые придется парсить, как это делает тот самый IS report ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:39 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
САПпридется написать RFC обертку, но это должно помочь. и, насколько я понимаю, на выходе будет просто набор форматированных строк, которые придется парсить, как это делает тот самый IS report или сделать через BAPI BackgroundJob (ObjType XBPJOB) ФМ из набора BAPI_XBP_JOB_* там есть масса методов, но простой вариант тоже можно реализовать - создать задачу из одного шага (отчет), немедленно выполнить, получить список вывода. как транзакции это SM36 (SM37) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 16:24 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Однако надо для начала уяснить сакраментальный смысл задачи - а зачем вся эта хотелка топикстартеру? Даже если будет возможность получить вывод в спулл в виде внутренней таблицы, её по всякому нужно будет парсить на клиенте. Как её получить - уже здесь предложили. Вместе с тем, а что если отчёт выводит результат работы не в спулл, а например в ALV Grid? Тогда что? Сушите вёсла... Если уж так зело хочется поиметь данные из SAP через приложение написанное на Delphi, то лучше и вправду озадачиться тем что, изучить прикладную область, таблицы, их взаимосвязи и логику обработки данных, а затем написать свои собственные ФМ (и сделать их доступными через RFC), и их вызывать. Вместе с тем не стоит забывать о том, что при этом под удар попадает защита, которая может быть просто проигнорирована если тупо будут считывать данные из таблиц. В общем крамола всё это. И топикстартеру: в SAP нет понятия Dataset - не подходите с мерками Delphi и ADO (DAO и т.д.) к серверу приложений. Да, вы можете получить на выходе как результат работы Вашего ФМ внутреннюю таблицу, которая будет Вам представлена как Dataset, но это сделает не SAP. В общем, для чего-то это видимо Вам нужно, вот только для чего? С Уважением, А.К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2009, 10:08 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Alex, спасибо за ответ. Какую я цель приследую: скорее просто пытаюсь вникнуть в сущность сапа, какой-то определенной бизнес-задачи нет. А возможность получить отчет ABAP из вне интересен в плане интеграции с другими системами, причем именно имитация действий пользователя (вызов транзакции и указание параметров), дабы соблюсти правила безопасности. В целом, я конечно понимаю, что всю обработку правильнее писать в самом сапе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2009, 17:02 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Idaxebrn, согласен с Alex, что получение списка вывода - это не самый лучший вариант сначала бы надо посмотреть на суть задачи - какие данные надо выгружать и как это сделано в SAP, посмотреть на код abap - какие BAPI/функции там вызываются. Если найдется BAPI - вызывать ее для конкретного языка, если нет, попробовать вызвать через RFC функциональный модуль, что получает данные в отчете SAP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2009, 17:14 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
IdaxebrnAlex, спасибо за ответ. Пожалуйста ... IdaxebrnКакую я цель приследую: скорее просто пытаюсь вникнуть в сущность сапа, какой-то определенной бизнес-задачи нет. Ну, для вникания в сущность SAP (впрочем как и любой другой ERP системы) бизнес задача очень желательна, т.к. ERP системы очень многогранны и нужно для себя сформулировать конкретный вопрос. IdaxebrnА возможность получить отчет ABAP из вне интересен в плане интеграции с другими системами, причем именно имитация действий пользователя (вызов транзакции и указание параметров), дабы соблюсти правила безопасности. Вызов отчёта написанного на ABAP извне SAP - пустая трата времени, BAPI Вам в руки... А для полноценной интеграции с другими системами есть множество других интсрументов. IdaxebrnВ целом, я конечно понимаю, что всю обработку правильнее писать в самом сапе. - Вот это уже верный подход, да и не получится по другому. С Уважением. А.К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2009, 06:39 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
Эххх, а победа была так близко... Тоже давно ищу инфу по этому поводу, только пытаюсь достать данные из SAP-а в VB, но это не суть... Причем стоит четко сформулированная задача, есть 2 отчета, которые выполняются в фоновом режиме каждый вечер, которые необходимо выгружать из спула и обрабатывать. Пока что что юзаю API, логинюсь в SAP и отправляю нажатия клавишь сапвскому окну, выгружаю спул. Все кончено работает, но систему мягко говоря отказоустойчивой не назовешь. Поэтому и хочется сделать что то более надежное. Пока что сумел только залогиниться в SAP через SAP.Functions, понял что далее могу запускать только BAPI, но какие... вобщем тёмный лес.... Поставил себе минисап, может быть хоть что то смогу понять... Если кто сможет подсказать как выгрузить спул буду примного благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2009, 16:02 |
|
||
|
Как получить dataset транзакции SAP в Delphi?
|
|||
|---|---|---|---|
|
#18+
fara-on, на sap пусь вам напишут rfc fm (или - чтобы с .net connector не возится - web-сервис), который по названию job, дате выдавал бы вам спул в виде таблицы. Это работы на 2 часа - использовать TBTCP для поиска идентификатора спула и ФМ из группы функций SPOX для получения содержимого спула. и все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 10:40 |
|
||
|
|

start [/forum/topic.php?all=1&fid=29&tid=1526595]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
3ms |
| others: | 240ms |
| total: | 421ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...