Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

RFC function module getting time.

Former Member
0 Kudos

Hi All,

I am developing reconciliation report of SD and BW.

I am trying to fetch data from SD(ECC) to BW for order,delivery,billing.

As while fetching data from table based on creation and change date (non-primary keys) AEDAT/AUDAT.

So normally RFC connection can remain inactive for 1800 secs (which i cannot change, as per process).

So is there any alternative so that i will get data from ECC (SD) to BW even if its long time example 2 hours.

Please help me on the same.

6 REPLIES 6

Former Member
0 Kudos

Hi Jeetendra,

Without a RFC connection how can you get data from a ECC system to BW system.

You can actually schedule a job and call the RFC function module and give the time span (intervals) after which the job should be keep running.

Hope this helps.

Thanks,

Tooshar Bendale

0 Kudos

Hi Tooshar,

Yes i am using RFC FM only.

I am running in background only.

But my RFC connections gets terminated after 1860 seconds.For small data set is works fine.

I tried both synchronous and asynchronous methods but no help.

So the thing is how to overcome with limition of active connection limit.

as i know ki data processing logic at ECC side will take atleast 60-90 minutes...and return data to BW but how to carry with RFC and overcome time out constraint.

so i need help on this.......

0 Kudos

Hi,

Try to do your selection or packets of data if possible like if you are selecting 10000 records try to call the RFC FM 10 times with varying range of 1000 records each time and compile then later in the source system. This is usual as the RFC user often have Time restrictions on it and the connection drops.

Cheers,

Arindam

raymond_giuseppi
Active Contributor
0 Kudos

Your RFC FM could start a background job which will extract data to a z-table (type INDX or transparent), then another call will check completion of background job and extract data from the z-table. Or the background job could itself send the data (by RFC call) to the BW system.

But why don't you use the standard/customizable DataSources in the Customizing Cockpit for the Logistics Extraction like 2LIS_[11/12/13]* which support delta extraction, or are your reconcile this datasources ? (Check some documentation at DataSources.)

Regards,

Raymond

Former Member
0 Kudos

Dear All,

Thanks for reply.

@Arindam Mondal

I cannot use packets option , As i want data from destination on single call from source, hence forth I cant call RFC multiple times.

@Raymond Giuseppi

I am calling program ( having RFC FM) in background only. I can use ARFC (ECC to BW), but lets say i called ARFC it will call RFC function module present in ECC but how to wait till RFC will return my data as i again need to call RFC from ECC to BW (which returns data) without using some y/z table how can i get same data in program which i call first from BW system.

0 Kudos

You could imagine a RFC extractor which when called

- check timestamp of last extraction

- if too old and not already running (read later) start a background job which will create the temporary table to extract (can be INDX type or tool like shared memory) also store somewhere that an extract is running (lock an object in the job, update a record in TVATRC, etc.) then return an error "extract not up to date"

- if background job already running, raise same kind of error

- else, send the refreshed data back

So your calling background job will call this RFC til success, and wait some minutes between each try

Regards,

Raymond