Alternatives to List Processing
According to this post (http://wiki.sdn.sap.com/wiki/display/ABAP/List+processing), list processing is obsolete and is replaced by Dynamic Documents. However, DDs do not work with batch processing.
SALV is great and can be used in batch but what about non-column/row type reports?
The only solution i have come up with is to create a table of strings (that normally would have just been written out using the write statement) and pass those to a SmartForm for output. Anyone have a better solution?
Hi Clay,
I forgot to tell you that I added references to sap library and abap documentation in that wiki yesterday after reading your message. One thing weird is that SAP has added [new functionalities to lists in 7.1|http://sandraros.free.fr/abap_docu.htm?url=ABENNEWS-71-LISTS.htm]. But as you say, it's difficult to not use lists for batch jobs. Except maybe by using Adobe forms.
Similar Messages
-
ABAP list processing statements in ABAP Objects
Hi,
Based on the Online help "The ABAP statements used for list processing are not yet fully available in ABAP Objects".
Is there any chnage planned about this for the next WAS release?
Thanks,
PeterHi Peter
I believe, most of the measures taken are for some compatibility and performance issues. So, there is no need to expect great changes about this.
*--Serdar -
Print List Processing Report to PDF
hi all,
i've read many forums about convert info into PDF. but i'm very new to understand those forums.
In case I want to print list processing report as PDF (not hard copy thru printer). First, user types the data on the screen then click on 'Execute' button, then the system shows the result on screen. After that user asks system for print the screen on menu bar by List=>Print.
So please advise me how to get the spool id, then export as pdf. As my opinion, i may use CONVERT_ABAPSPOOLJOB_2_PDF and GUI_DOWNLOAD. But where is the place I should put the methods on?
Thanks in advance.
PeerasitHi,
Go through The simple Anallise this program.
report zabap_2_pdf.
*-- Enhancements: only allow to be run with variant. Then called
*-- program will be transparent to users
*-- TABLES
tables:
tsp01.
*-- STRUCTURES
data:
mstr_print_parms like pri_params,
mc_valid(1) type c,
mi_bytecount type i,
mi_length type i,
mi_rqident like tsp01-rqident.
*-- INTERNAL TABLES
data:
mtab_pdf like tline occurs 0 with header line,
mc_filename like rlgrap-filename.
*-- SELECTION SCREEN
parameters:
p_repid like sy-repid, " Report to execute
p_linsz like sy-linsz default 132, " Line size
p_paart like sy-paart default 'X_65_132'. " Paper Format
start-of-selection.
concatenate 'c:\'
p_repid
'.pdf'
into mc_filename.
*-- Setup the Print Parmaters
call function 'GET_PRINT_PARAMETERS'
exporting
authority= space
copies = '1'
cover_page = space
data_set = space
department = space
destination = space
expiration = '1'
immediately = space
in_archive_parameters = space
in_parameters = space
layout = space
mode = space
new_list_id = 'X'
no_dialog= 'X'
user = sy-uname
importing
out_parameters = mstr_print_parms
valid = mc_valid
exceptions
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
others = 4.
*-- Make sure that a printer destination has been set up
*-- If this is not done the PDF function module ABENDS
if mstr_print_parms-pdest = space.
mstr_print_parms-pdest = 'LOCL'.
endif.
*-- Explicitly set line width, and output format so that
*-- the PDF conversion comes out OK
mstr_print_parms-linsz = p_linsz.
mstr_print_parms-paart = p_paart.
submit (p_repid) to sap-spool without spool dynpro
spool parameters mstr_print_parms
via selection-screen
and return.
*-- Find out what the spool number is that was just created
perform get_spool_number using sy-repid
sy-uname
changing mi_rqident.
*-- Convert Spool to PDF
call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
exporting
src_spoolid= mi_rqident
no_dialog = space
dst_device = mstr_print_parms-pdest
importing
pdf_bytecount = mi_bytecount
tables
pdf = mtab_pdf
exceptions
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
others = 12.
call function 'DOWNLOAD'
exporting
bin_filesize = mi_bytecount
filename = mc_filename
filetype = 'BIN'
importing
act_filename = mc_filename
tables
data_tab = mtab_pdf.
FORM get_spool_number *
Get the most recent spool created by user/report *
--> F_REPID *
--> F_UNAME *
--> F_RQIDENT *
form get_spool_number using f_repid
f_uname
changing f_rqident.
data:
lc_rq2name like tsp01-rq2name.
concatenate f_repid+0(8)
f_uname+0(3)
into lc_rq2name separated by '_'.
select * from tsp01 where rq2name = lc_rq2name
order by rqcretime descending.
f_rqident = tsp01-rqident.
exit.
endselect.
if sy-subrc ne 0.
clear f_rqident.
endif.
endform." get_spool_number
Regards
swamy -
ABAP Mapping - Message shown in Standard Change List Process Log
Hi
I am working with ABAP Mapping program. I had created ABAP class using ABAP workbench. Before this, in exchangeProfile..data was provided for com.sap.aii.repository.mapping.additionaltypes ==>> as " R3_ABAP|Abap-class;R3_XSLT|XSL (ABAP Engine) " and 'Saved'.
In Interface Mapping, after providing the Class Name under 'Mapping Program' and activated. After activation (Standard Change List), it is showing the following messages under 'Processing Log'.
--> Standard Change List - Process Log message
Activation of the change list canceled Check result for Interface Mapping IM_ABAP_MAPPING | http://ABAP_Mapping_SREE: Type R3_ABAP of
program ZSREETEST is invalid because it is not registered in the exchange profile . Check the values for the exchange profile parameter
IntegrationBuilder.Repository.com.sap.aii.repository.mapping.additionaltypes
--> End of Log message
Can some one please guide me in resolving the ABAP mapping issue.
Thanks in advance.
..SreeSree,
The log says that there is ABAP mapping included in your exchange profile. Do the things what michal have told and also check your mapping program whether working fine or not in SXI_MAPPING transaction.
You can see this weblog for reference:
/people/sameer.shadab/blog/2005/09/29/testing-abap-mapping
---Satish -
List processing and PF status.
Hi Team ABAP,
i got a problem in List processing.
I´m in a dypro with a table control on it. Users can mark one or more ALV lines and then e.G. press "process".
Something gets done then (some forms get printed), and after that i want to display a protocol.
First i tried to process a simple write list by using WRITE statement.
Coding got processed, but it had no effect, no write list was generated, or at least not shown on my screen.
So i tried to code a "LEAVE TO LIST PROCESSING" right before my first WRITE statement.
Well, now it works my write list is on Screen. But here start the Problem. Like i got told in the ducomentation of the LEAVE TO LIST PROCESSING statement the WRITE list gets processed with the actual active PF status from the dynpro where i came from.
1. This is quite uncool, since i do not need those Buttons in my List.
2. Even if it was ok, those buttons are not working. Typing /h in OK_CODE field and pressing ENTER doesnt help it. When after that i click a button, nothing happens, such as if i didnt click them.
I searched the forum, but i got drowned in thousands of "interactive list" threads and wasnt able to find my required info in an acceptable time of 30 minutes.
Did i do a essential error? Someone got an Idea where i´m stuck or a proposal on how to improve?
Any Help or tip will be welcome and rewared accordingly.
regardsHi Florian,
Try if you can display the list in ALV where you can maintain the pf-status.
You can check the demo program DEMO_LEAVE_TO_LIST_PROCESSING. In this, it is setting set pf-status to space.
Hope it helps.
Sujay -
Leave to List processing is not working
Hi all,
I am displaying data in separate window using Window stratin at '' ''
ending at '' ''.
in screen PBO.
SUPPRESS DIALOG.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
PERFORM output.
everything is working fine.but its not showing the whole output .
even if i scroll .
what am i did wrong...?Hi,
Its my bad, i am using
CALL SCREEN 1000 STARTING AT 01 01
ENDING AT 150 50.
MODULE status_1000 OUTPUT.
PERFORM include_exclude_function USING sy-dynnr.
SET PF-STATUS 'AAA' EXCLUDING fcodes.
SET TITLEBAR '1000'.
SUPPRESS DIALOG.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
PERFORM output.
ENDMODULE. " STATUS_8000 OUTPUT -
Leave to list-processing doesn't work
Hi 2 all!
I have a problem with LEAVE TO LIST-PROCESSING. I have developed a module pool (type M) and screen with the screen painter of type Normal. Now I want to go to the report from my screen with LEAVE TO LIST-PROCESSING, but it doesn't work. I am trying to do this when the button is pressed ( at my application status). The operation is performed but then the Init_screen_xxxx module is called again. Highly appreciate your help.Hi Nata
Yes U can do it.
We go from module pool program to report program and vice-versa.
1. From report to screen (transaction)
Call transaction
Leave to list-processing and return to screen
2. From screen to list (report)
we can write a report program for fuction key available in the screen.
for example.
case sy-ucomm.
when 'fctcode'.
select .......... from tabl into ..
write:/.........,
endcase.
reward if useful. -
Short Dump During List processing
Hi ,
Problem Desc:
A program when it runs in production has huge number of data to be displayed in the list .While doing the write statement the internal table(system assigned internal table for list processing '%_LIST') exceeds the memory limit and goes for dump.
Please suggest for the following for finding a better solution, I am in 4.7 only
1.Once the program reaches a maximum memory limit I have to clear the list from memory
- so how to send the processed list to other persistent area like spool etc
- How to clear the internal list memory allocation ( Any c functions , Class is available for it )
- How to catch the memory used for the list process programmatically (for Internal table %_LIST)
Thanks in advance
Best regards,
RajHi Raj,
Why don't you go for prevention rather than cure?
When the user selects the data ranges for the report, you could do a calculation to determine the size of the report and then ask them to restrict the criteria. They could then run several reports rather than trying to do it all in one.
I would guess that if you are running out of memory that the report must be HUGE. Who is going to look at something that large?
You could also increase the memory allocation to each work process (although this is a bit of a sledgehammer to crack a nut).
As for your quesions:
1. I'm not sure you can persist the spool yourself, and certainly not from within your program. You could, however, spin off jobs from the main program which each had a portion of the overall data to process and thus each would generate a smaller spool (although collectively they would be the same size).
2. As I don't think you can achieve 1, I don't think there is any point to 2.
3. There was a thread discussing internal table memory consumption just today, with approaches for 6.20+ and 4.6-. Heres the link: How to catch the Internal Table memory
Cheers,
Brad -
Hi all,
i've designed a selection screen in module pool and based on some selction criteria i've to display success and error records.These records should be displayed in the form of list output.
As i'm using module pool i've used LEAVE TO LIST-PROCESSING for displaying these records.As i've designed selection screen the application tool bars are appearing here on the list and no tool bar icon is functioning even though i've declared them in PF STATUS.
Now when i double click on list it has to take me to some t-code say SM35.Where should i write this AT LINE-SELECTION event?
...RegardsHai,,
You keep the AT-LINE SELECTION in the last only...
For Leave To List Processing ,you will try the following ..
IF SY-UCOMM = 'Your Fn_Code'.
LEAVE SCREEN.
LEAVE TO LIST-PROCESSING.
SELECT * FROM ZTable INTO TABLE ITAB.
LOOP AT ITAB.
WRITE:/ ITAB-ITEMNO.
ENDLOOP.
ENDIF.
Try this ..it will be useful to you..I hope..
reward points if it's useful..
Regards,
Manoj. -
How to display list process, when i run sql*loader in c#
Hello,
How to display list process, when i run sql*loader in c#. I mean when i run sql*loader from cmd windows, i get list process how many row has been inserted. But when i run SQL*Loader from C#, i can't get process SQL*Loader.
This is my code:
string strCmd, strSQLLoader;
string strLoaderFile = "XLLOAD.CTL";
string strLogFile = "XLLOAD_LOG.LOG";
string strCSVPath = @"E:\APT\WorkingFolder\WorkingFolder\sqlloader\sqlloader\bin\Debug\8testskrip_HTTP.csv";
string options = "OPTIONS (SKIP=1, DIRECT=TRUE, ROWS=1000000,BINDSIZE=512000)";
string append = "APPEND INTO TABLE XL_XDR FIELDS TERMINATED BY ','";
string table = "OPTIONALLY ENCLOSED BY '\"' TRAILING NULLCOLS (xdr_id,xdr_type,session_start_time,session_end_time,session_last_update_time,session_flag,version,connection_row_count,error_code,method,host_len,host,url_len,url,connection_start_time,connection_last_update_time,connection_flag,connection_id,total_event_count,tunnel_pair_id,responsiveness_type,client_port,payload_type,virtual_type,vid_client,vid_server,client_addr,server_addr,client_tunnel_addr,server_tunnel_addr,error_code_2,ipid,c2s_pkts,c2s_octets,s2c_pkts,s2c_octets,num_succ_trans,connect_time,total_resp,timeouts,retries,rai,tcp_syns,tcp_syn_acks,tcp_syn_resets,tcp_syn_fins,event_type,flags,time_stamp,event_id,event_code)";
strCmd = "sqlldr xl/secreat@o11g control=" + strLoaderFile + " LOG=" + strLogFile;
System.IO.DirectoryInfo di;
try
System.Diagnostics.ProcessStartInfo cmdProcessInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe");
di = new DirectoryInfo(strCSVPath);
strSQLLoader = "";
strSQLLoader += "LOAD DATA INFILE '" + strCSVPath.ToString().Trim() + "' " + append + " " + table;
StreamWriter writer = new StreamWriter(strLoaderFile);
writer.WriteLine(strSQLLoader);
writer.Flush();
writer.Close();
// Redirect both streams so we can write/read them.
cmdProcessInfo.RedirectStandardInput = true;
cmdProcessInfo.RedirectStandardOutput = true;
cmdProcessInfo.UseShellExecute = false;
cmdProcessInfo.LoadUserProfile = true;
//System.Diagnostics.Process.Start("CMD.exe", strCmdLine);
// Start the procses.
System.Diagnostics.Process pro = System.Diagnostics.Process.Start(cmdProcessInfo);
// Issue the dir command.
pro.StandardInput.WriteLine(strCmd);
// Exit the application.
pro.StandardInput.WriteLine("exit");
//Process[] processlist = Process.GetProcesses();
//foreach(Process pro in processlist){
Console.WriteLine("Process: {0} ID: {1}", pro.ProcessName, pro.Id);
Console.WriteLine(pro.StandardOutput.ReadLine());
// Read all the output generated from it.
string strOutput;
strOutput = pro.StandardOutput.ReadToEnd();
pro.Dispose();
catch (Exception ex)
return;
finally
Thanks.friend
sqlldr is an application residing in the OS. procedure runs in the dbms engine.
you cannot run an os command directly from a procedure or a function or a package .
If you want to do so you need to use either a daemon process created by a PRO*C program
or a JAVA stored procedure to do so.
just refer to previous question forums, you can find the solution. Somebody has already given a solution using
java to run an OS command . check it out
prakash
[email protected] -
Return to List Processing From Business Object Method CTREQUEST.Display
I have a simple program which displays selected TRKORR (Transport/Correction) numbers in a list on the screen. I want to be able to double click on the number and inspect the contents of these items.
The program is not pretty - its for my use only.
Anyway, the code below is tucked at the end of my program, and it works fine - double clicking will display the request. .
FORM SHOWCTS USING P_REQ.
DATA : ThisReq TYPE SWC_OBJECT.
DATA : ReqObjectKey Like SWOTOBJID-OBJKEY .
SWC_CONTAINER REQCONTAINER.
SWC_CREATE_CONTAINER REQCONTAINER.
move p_req to ReqObjectKey .
SWC_CREATE_OBJECT ThisReq 'CTREQUEST' ReqObjectKey .
SWC_CALL_METHOD ThisReq 'Display' ReqContainer .
ENDFORM.
AT LINE-SELECTION .
data l_req type TRKORR .
move sy-lisel+29(20) to l_req . CONDENSE l_req NO-GAPS .
perform showcts using l_req .
The problem is, when I exit from the CT Request, the program EXITs . The desired behavior would be to return to my list processing.
How can I return to my list upon exiting the Request display?
Thanks...
...MikeHi,
Try command LEAVE TO SCREEN 0 instead of EXIT.
Thanks.
Ravi -
Problem facing in ALV to List processing and back to ALV
HI all,
In ALV USER_COMMAND i have inserted statement 'LEAVE TO LIST-PROCESSING'. I want to display records on List processor (Classical report) which are selected from ALV.
Due to LEAVE TO LIST-PROCESSING i can see Classical report but from here i am not able to come back on ALV screen...even not on any screen because BACK button on GUI-Status is not working.
From List Status i can see same GUI status which i gave to ALV.
also i have tried giving LEAVE LIST PROCESSING but due to this though i get ALV back but i cant get List display.
Please direct how to move.
thanks,hello~ try this
FORM alv_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'ELOG'.
call screen 100.
ENDCASE.
rs_selfield-refresh = 'X'.
ENDFORM.
screen 100 just need PBO Module
module LOG_DISPLAY output.
SET PF-STATUS space.
WRITE: / 'HELLO'.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
LEAVE SCREEN.
endmodule. -
Problem with leave to list-processing and return to screen
Hi all,
I am designing a screen in which I have provided a pushbutton which will allow the user to upload (via BDC) the price list to VK11 transaction. And consequently, after upload the BDC message will be captured and displayed as an ALV list. for this, I am using leave to list-processing and return to screen 100 statement.
My problem is, when I return from the alv list screen by pressing back/any button the called screen 100 is displayed as a dialog window. but actually the screen 100 is a normal screen.
How can I rectify this problem?
Thanks,
Rajanrajan,
i think the below link will clear your problem.
[http://help.sap.com/saphelp_nw04/helpdata/en/9f/db9d2f35c111d1829f0000e829fbfe/frameset.htm]
Regards,
Venkat -
Leave to list processing and retun to scren 100
Once output is generated in the list i want back to main screen .
How i will prceed
regards
jithenThis will end up current calling sequence (will proceed after CALL SCREEN XXX statement). So if no other CALLs were found the program will be finished, or will go back in selection screen.
LEAVE to LIST-PROCESSING and RETURN TO SCREEN 0.
This will go back to screen XXX, if main screen is 200.
LEAVE to LIST-PROCESSING and RETURN TO SCREEN 200. "when you choose BACK, screen 200 will be called (main screen)
Regards
Marcin -
ALV grid to list processing and GUI status
Hi,
In a customized program the report output is in ALV grid which is interactive. On selecting a record and pressing SAVE button a BAPI runs in background. In order to display BAPI error message the leave to list-processing has been used. But GUI status is not working in list display and can not exit or go back from here to main selection screen.
when try to see program name & screen no it displays
Program - SAPLKKBL
Menu - STANDARD_FULLSCREEN
pls advise how to go back from list to main screen or ALV output.
thanks
anyaHi Anya,
As per my understanding, this is your prog flow:
*Main ALV Display.
*Select record.
*Click on Button SAVE.
*Handle Event.
*Call BAPI for processing based on selection.
Now at this point why dont you colect the error messages from the BAPI, and display it in a POP-UP ALV display?
You need not e very much worried about the PF status and all. Also this POP-UP will be placed on the MAIN ALV. So when you close the POP-UP it will come back to the main ALV.
By this when you press the BACK button of the main ALV, it will take you back to the selection scree.
Please let me know if i am missing something.
ags
Maybe you are looking for
-
Mail crashes when trying to open mail with large attachment
It used to work fine (years), but for past 6 months, if I try to open an email (with the blue ball to the left) that has a large attachment (any sort), it crashes, no error message. On restarting, mail that had been deleted is back, and the most rece
-
Not able to run forms 10 g on windows vista
Hi Folks, I'm trying to run forms10g (10.1.2.0.2), connecting to Oracle DB 10g (10.2.1.0) under windows vista. When i'm trying to run a form, suddenly browser is stopped working. Can anybody help ? Thanks in advance regards Sri
-
Why do Oz users get ripped off all the time.
Hi Can anyone explain why it costs $AUD16.99 an album or $AUD1.69 per song to buy music through the Itunes store in Australia when it costs $US9.99 to buy the same album ( or $US0.99) per song if you buy in the US. The current exchange rate is at aro
-
Ipod classic (120GB) Freezes while syncing music please help
My ipod keep freezing while im syncing music it stops around 300 - 400 songs and just stops or cancels itself out What ive done Uninstalled itunes Reinstalled it Restored it around 10 times tried it in disk mode If you have any ideas please share and
-
Upgrade from BW 3.1 to BW 7.0 (BI 7.0)
Need to come up with methodlogy / approx duration / tasklist / dependencies / assumptions that need to be taken care for a Upgrade from BW 3.1 to yet to be released BW 7.0. Any advise on this?? Thanks, Raju