on 08-05-2011 9:47 PM
Hi,
I have a generic extractor that uses a Function Module to obtain information about inventory from the corresponding tables in SAP.
I created a datasource and replicate it in BW.
Then I created an infopackage in BW, and when I execute the infopackage the monitor shows me the number of registers loaded, and after some minutes the number of registers doesn't increase anymore, but the status of the request stays in yellow, and I need to manually change it to green, in order to continue with the data loading.
I need to program this data load in a process chain, but the infopackage request never ends, so, the information never reaches the infocube.
Can you give me some ideas.
Look forward to your suggestions
Best Regards
Your data source is based on FM and I guess problem is that you have missed the statement "RAISE NO_MORE_DATA' or have not used it at right place.
Have a look at following FMs as example;
RSAX_BIW_GET_DATA or
RSAX_BIW_GET_DATA_SIMPLE
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Gaurav / AL1112,
You are right, i didn't have the statement RAISE NO_MORE_DATA.
But I'm looking at the FM RSAX_BIW_GET_DATA_SIMPLE, and how the statement is used, and in my FM doesn't work exactly the same.
The FM RSAX_BIW_GET_DATA_SIMPLE used the statement like this:
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0.
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
In my FM I'm not using cursors. What I do is to call another FM that returns the information I need, so I try to use the statement in this way:
CALL FUNCTION 'ZMM_DIAS_INV'
TABLES
gt_dias_inv = e_t_data.
IF SY-SUBRC EQ 0.
RAISE NO_MORE_DATA.
ENDIF.
But now when I execute the infopackage I don't get any data.
I suppose I'm using the statement incorrectly.
What do you think ?
Regards,
Carlos
Edited by: Carlos Sibaja on Aug 10, 2011 7:56 PM
I am not very sure but you can try following options;
1. use NE
IF SY-SUBRC NE 0.
RAISE NO_MORE_DATA.
ENDIF
2. Get data into some internal table from FM and then pass it to e_t_data
CALL FUNCTION 'ZMM_DIAS_INV'
TABLES
gt_dias_inv = i_data.
IF SY-SUBRC NE 0.
RAISE NO_MORE_DATA.
ELSE.
APPEND i_data to e_t_data
ENDIF.
3. if you need to split data in data packages then you will have to use some more logic to split the data on the basis of data package size
DESCRIBE TABLE i_data LINES l_lines.
lv_index = 1.
"Initialization mode or data extraction ?
IF lv_index GT l_lines.
RAISE no_more_data.
ENDIF.
LOOP AT i_data INTO i_data1 FROM lv_index.
IF index LT lv_maximum_size.
lv_index = lv_index + 1.
index = index + 1.
APPEND i_data1 TO e_t_data.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
s_counter_datapakid = s_counter_datapakid + 1.
ENDIF.
These are just some sample codes, you will need to adopt these as per your need. I am hoping one of these option should solve your problem.
Regards,
Gaurav
HI Carlos,
PLease go through the PDF i am pasting below it might be helpful to you.
PLease take help of an APAPer if available they can debug and let you konw the issue.
Regards,
AL
Hi Carlos,
Can you clarify below points...
was the source system job got finished when you tried to change the status to green?
On what basis you changed the status to green?
Are there any failed or hung TRFcs from source to Bw system?
Are there any hung Idcos from source to Bw system?
Did you check the PID of that particular laod finished or got hung and waiting for gate way or some thing else( imean did u check the activity of PID before changing the status to green).
inorder to check the source sytem job goto monitor screen of the load -->menu --> environment --> job overview -->select source system
to check the TRFCs
environment --> transactional RFC --> source system
If the above things are fine fine tune the FM code that u are using ...
Regards
KP
Edited by: prashanthk on Aug 8, 2011 5:15 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HI,
We also faced the similar issue.It seems to me that there is an issue with your function module.As far as i understand there is some tuning needs to be done for your funciton module.
Please have a word with your ABAPer and ask him/her to debug that datasource which is based on function module.
Also check if this statement is added in your fucntion module or not RAISE NO_MORE_DATA.It only gies the mesage to source system that data is arrived in BW so plase stop the job.
Hope it helps.
Regards,
AL:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
you can check idoc whether it is executed or not by using tcode we19
i hope it will help you
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Since you are looking at Process Chain perspective, its always better to check the RFC Connections, tRFC status regularly by BASIS team. Any of your previous Idocs should not get strucked earlier.
Regards,
Suman
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
We also came across this issue few days back and found that Transactional RFC's were getting stuck in source system side. Check if in the IP monitor details tab, you are getting a message "No IDOCS arrived from source system".
Basically TRFC's are released automatically but some time if any of the previos TRFC get stuck in source system then all the other TRFC's in quest gets stucked. So check in transaction SM58, if there are any TRFC's pending, and consult to your Baisis team and request them to release it otherwise you will have to release each TRFC manually.
Regards,
Durgesh.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Check the backgroung job in Source sysyem SM37 whether its completd or not,if completed then check in SM58 whether any TRFC stucks or not if yes you can manually push them one by one.
Thanks,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
Did you check your idocs? try to push the idocs manually and see if it changes.
Hope this helps..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Carlos,
When you run Info package, have you checked the job log in SM37.
Check whether the job gets finished or not..?
Regards,
Venkatesh.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.