RFC_TOOLS
A wrapper class for calling asynchronous RFC function modules in parallel from ABAP, one instance per parallel task.
Calling several systems in parallel with asynchronous RFC otherwise means handling RFC server groups, connection checks and error messages by hand for every call site. This wrapper takes over that standard handling: a caller subclasses a base class for one function module, adds attributes and accessors for its parameters, and implements the call and receive methods, with each parallel task managed by its own instance of the class. The report z_async_example_usage shows the pattern end to end. The maintainer lists an exception class for proper error handling, and support for other RFC types, as next steps.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@xamafemaintainer
Before choosing this
Signals
ActivityQuietNo published releases; repository quiet for 74 months
It publishes no releases, and its repository has been quiet for at least 24 full months. This may be normal for stable software; check whether its current state still fits your use.
What it declares
Every artifact
- Type
- Package
- Origin
- Independently maintained
As a package
- Where it runs
- does not say
- Distributed through
- does not say
Connections
Splitting one run's work across several work processes
Download
README
quoted from xamafe/RFC_TOOLS under GPL-3.0, readRFC_TOOLS
Hi there, nice to meet you.
As you know it is unpleasant to work with aRFC, not mentioning aRFC with a regular RFC call to fetch data from multiple systems in parallel.
After I struggled some time with the approach from the SAP I decided to write a wrapper for developers, which is capable of handling the "standard - stuff", like rfcgroups, check the RFC - connection and errormessages.
The idea is simple: each parallel task is managed by its own instance of the wrapper class.
To use this approach, follow these easy steps:
- create a child class from zcl_async__base
- choose a function module which should be handled by the class
- create Attributes and setter/getter methods for all parameters of the function module
- implement call_function with the following conditions:
*STARTING NEW TASK taskname
*CALLING me->receive_data ON END OF TASK
*EXCEPTIONS
system_failure = 1 MESSAGE e_message
communication_failure = 2 MESSAGE e_message
resource_failure = 3
*Make sure if sy-subrc = 3 that e_insufficient_ressources is set to abap_true
- implement receive_function
An example can be found within the report z_async_example_usage.
If you call a R3 - RFC connection within the async function module you can call multiple system in parallel.
NEXT STEPS:
- add async exception class for errors & proper errorhandling
- add other RFC - Types
Others providing
Compare all 6 on the Parallel processing page →- abapify/promiseabapify/promiseA Promise and async/await implementation for ABAP, modelled on JavaScript's Promise API, that runs a resolver as a background task and offers all, race, resolve, reject and all_settled.independent, abapPromise and async/await implementation for ABAPfrom ABAP
- ABAPParallelizationServiceABAPParallelizationServiceA generic framework, called from code, for running a function unit, report or method across many parameter combinations in parallel dialog or batch tasks.independent, abapFramework for running ABAP work units in parallel tasksfrom ABAP
- COROUTINES4ABAPCOROUTINES4ABAPA coroutine framework for ABAP that launches a piece of work, such as a database query or a background task, as a task the caller awaits later while carrying on with other work.independent, abapCoroutine framework for ABAP with awaitable resultsfrom ABAP
- zconcurrency_apizconcurrency_apiA Java-inspired ABAP library that runs tasks in parallel over SAP's SPTA framework without an RFC-enabled function module, capping concurrent tasks at 40% of the dialog work processes.independent, abapParallel task library for ABAP over the SPTA frameworkfrom ABAP
- zthreadzthreadA threading library for ABAP modelled on Java's Thread and Runnable interface: a runnable class is forked as a thread, joined singly or all at once, and returns a result or a callback.independent, abapThreading library for ABAP modelled on Java's Thread and Runnablefrom ABAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
abaplint
History in the atlas
- First seen.
For your agent
- Ref
artifact:xamafe-rfc-tools- JSON
- /artifacts/xamafe-rfc-tools.json
- MCP
- Connecting an agent