Converting spool of line width more than 850 char to PDF format in ECC 6.0.
Hello Experts.
I am facing problem while trying to convert a spool (generated from background scheduling of an ALV ) to PDF format in ECC 6.0.
The ALV has 45 columns. Using SAP note no 1226758 I am able to increase the spool width but when I am converting the spool to PDF using FM 'CONVERT_ABAPSPOOLJOB_2_PDF' the end caharacters are getting truncated .
Please reply ASAP . Any suggestion/Hint will be appreciated.
Thanks and Regards
Arvind Kumar Yadav
Hi Aravind,
go to SPAD transaction --> and change the printer which supports more than 45 columnsand 256 cahracters..
according to the printer setting the output is created.
choose any below format TYPES...X_65_256/2
ABAP list: At least 65 lines 2*128=256 double columns (SAPLPD only)
see th following link for result..
<a class="jive_macro jive_macro_message" href="" __jive_macro_name="message" modifiedtitle="true" __default_attr="7318557"></a>
Regards,
Prabhudas
Similar Messages
-
How to send a mail more than 255 characters in PDF format
Hi Experts
I am facing a problem sending an ALV list spool as an email attachment in PDF format. Here my problem is spool has morethan 255 characters, so the contents are trukated after 255.
I am using the FM "SO_NEW_DOCUMENT_ATT_SEND_API1" to send the email. Please give any good suggestion.
Thanks in advance
PraveenHi,
<li>After converting spool to PDF using CONVERT_ABAPSPOOLJOB_2_PDF, need to use below function module
<li>Use SX_TABLE_LINE_WIDTH_CHANGE to convert line width to 255 chars.
CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
EXPORTING
line_width_src = 134
line_width_dst = 255
TABLES
content_in = i_pdf
content_out = l_attachment
EXCEPTIONS
err_line_width_src_too_long = 1
err_line_width_dst_too_long = 2
err_conv_failed = 3
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE s000(0k) WITH 'Conversion Failed'.
EXIT.
ENDIF.
Thanks
Venkat.O -
How to display more than 255 chars in background job with ALV Grid ????
Hi All,
I am using ALV grid with OO.
I have used call screen for ALV grid display. I have to display more than 255 characters in width. While running it, I can see the list perfectly.
But in background mode, the list is truncated after 255 chars.
Can anybody help how to send complete list(width more than 255 chars) to spool.
Thanks and Regards,
NehaHi SAP fan,
<b>YES you can run the ALV report in background mode.
To run the report in background do F9 instead of F8, then give immediate and save.
Now goto Sm35 goto job overview and view the job listed
Choose the job and press the spool button. It will show the list created on the next page. When u clcik the list u can see the ALV output.
To see this the job should be in the finished status.
How to define Periodic Jobs
1.Execute transaction SM36
2.Define Job name, Job class, Target server
3.Click on 'START CONDITION' button
4.Click on 'Date/Time' button
5.Enter Scheduled start DATE & TIME. Check mark 'Periodic Job' field. Click on 'Period values' button and select 'Hourly' or 'Dialy' or 'Weekly' or 'Monthly' or Other period and SAVE. Go back to main screen.
6.Click on 'STEPS' button and enter Program name and Variant under box 'ABAP Program'. Click on 'Print Specification' button and enter Printer name under 'Output device' and SAVE
7.Click on SAVE button until you get message on bottom of the screen that describes 'Job XYZ saved with status: Scheduled'.
8.Click on 'Job overview' button or execute SM37 transaction.
9.Select the appropriate 'Job name', 'User name', 'Job Status' & Schedule date under 'Job start condition' and click on 'Execute' button or press F8.
10.You will now see all your scheduled JOBS.
<b>Case: 2</b>
You can Run in Background but make sure it is alv list, not alv Grid FM. if you are uisng alv list not problem , but if you are using alv grid then you can code like this..
if sy-batch = ' '.
call 'REUSE_ALV_GRID_DISPLAY'.
else.
call 'REUSE_ALV_LIST_DISPLAY'.
endif.
if you are using OO alv then write this code..
CALL METHOD cl_gui_alv_grid=>offline
RECEIVING e_offline = off.
IF off IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
ENDIF.
<b>Case: 3</b>
if you are using OO ALV.
Just before creating the custom container check for the following condition.
Batch or Web Reporting
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
CREATE OBJECT o_custcontainer
EXPORTING
container_name = lc_custcontrol
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
ENDIF.
You can see the output in Spool in transaction SP01.</b>
Good Luck and thanks
AK -
Send an attachment in email with length more than 255 char per line
Hi All,
I have to send an attachment in email with length more than 255 char per line. I dont want to break the line after 255 char and add it in another line.
Please suggest me any function module which can perform this.
Thank you all.I looked at all threads in the forum, there was about 5 or 6 identical questions, but surprise, nobody knows! It seems that SO_NEW_DOCUMENT_ATT_SEND_API1 function module does not allow more than 255 characters by line.
It would surprise me a lot if there is no workaround !
As it is very easy to add any binary attachment which is like a very long line, PDF for example (several kilobytes), via the function module above (lots of examples in the forum), I would advise you to try to use the same way, i.e. use the contents_bin parameter instead of the contents_txt parameter (convert the text into binary) and add the line feeds yourself (okay I know, it's not very smart).
Last thing, this function module is deprecated, and we should use BCS classes, maybe they work better. -
Taking too much time for saving PO with line item more than 600
HI
We are trying to save PO with line items more than 600, but it is taking too much time to save. It is taking more than 1 hour to save the PO.
Kindly let me know is there any restriction for no. of line items in the PO. Pls guide
regards
SanjayHi,
I suggest you to do a trace (tcode ST05) to identify the bottleneck.
You can know some reasons in Note 205005 - Performance composite note: Purchase order.
I hope this helps you
Regards
Eduardo -
Clear the line items more than 999 through F-28
Hi,
I have one issue,
senario is like below:
Step1:
F110 - Create the payment order for customer. if customer have more than 999 line items also payment order is updating
Step2:
Clear the invoices with referece to Payment order in F-28
here while clearing the customer line items using payment order referece if line items is more than 999 for customer it is not allowing to clear. error message is line items more than 999.
I have checked with tecnical people can we split the clearing if more than 999 line items. as per them is if it is not referece to payment order it is possible to write some code based on document type or posting date they can split.
here it is not possible. I tried with summrizaiton senario as specified in sap notes if line items more than 999. it is not also working.
i have one more question also while running f110 can we restrect the payment order to geneare upto 999 line items if it exceeds it should create other payment order of remaing line items so on.. is it possible?
can any body give a light to resove this issue.
BR:
Venkat.GurramHi,
I have already checked that link .
I have implemented the note: 36353 for summrizaiton.
for payment order we can't do sumarization due to we can't the payment order while cleargin.
give me some other idea
BR:
Venkat.Gurram -
Converting more than one char back to a string.
I know this:
String s = Character.toString(letter);
will convert one char back to a string.
What about if you have more than one char, how do you convert them back to a string???When you have more than one char, you probably have them in an array. In that case you can use the String(char[]) constructor.char[] hello = new char[5];
hello[0] = 'h';
hello[1] = 'e';
hello[2] = 'l';
hello[3] = 'l';
hello[4] = 'o';
String salute = new String(hello); -
LINK TO URL FOR SENDING MAIL Doesnot work if more than 255 chars
Hi Experts ,
I am Using Link to URL to open the mail browser with details passed as below
lv_refr = mailto:<mail_addr>?Subject=<subjectof mail>&body=<text of the mail>.
Above one works fine as long as length is LE 255 chars
if length lv_refr GE 255 does not work any more . I have body (Mail text) more than 500 chars . How can go about this issue ?
Please reply
Patil>
Matt Ferguson wrote:
> Hi Thomas
>
> Got a guestion! pertaining to this URL cutting off in emails.
>
> The situation is that we have a workflow in which a task sends out email, in the email the URL does not display the whole link.
> Can you help me display the whole URL when the workflow send out the EMAIL.
>
> regards
> MAtt
The same solution that I suggested above applies here. Build your email message as a single string. Line lenght won't matter. Then convert the string to the binary table. The binar table won't be restricted to 255 character line lenghts - and in fact wont' care about line lenghts at all. Your long URL in your hyperlink will be fine. -
ORA-01704:String literal too long with update of more than 4000 chars
Hi,
I want to update a table column in Oracle Database(version 10) with more than 4000 chars.
The datatype of the table column is NCLOB.
I want to achieve this with one single line of update query as below,
update mytable set MY_DESCRIPTION = 'longdesc' where ID = '111' ;
But there's a problem, if the 'longdesc' is more than 4000 chars, it gives the error , "ORA-01704:String literal too long"
How can I achieve this in sql developer ?
I dont want to do this using stored procedures, I want to do this update using only sql statement.
Please help.
thanks,
sudhakarHello Sudhakar,
I am afraid, this will never work by SQL.
Just because an SQL-Statement must not contain a string literal over 4,000 characters (or did that change lately?).
Maybe you can bypass the limit with PL/SQL ... but you will certainly run into the 32K limit sooner or later
regards
Peter -
PL/SQL process returning message with more than 4000 chars
In our apex application we are using a pl/sql process returning a message.
This message should be shown to the user.
Our problem is now, that the application items in APEX seem to be limited to 4000 chars and the message can be longer.
We are also not able to use a collection, because we can't print the content of a collection in the "Process Success Message".
Here is the content of a page process which is running on page load after header:
Name - Type: PL/SQL anonymous block
Source - Process: :AI_TEST := p0001_pkg.get_text;
Messages - Process Success Message: &AI_TEST.
Image from process [https://twitter.com/OliverLemm/status/324058809138032640/photo/1/large]
If the page is called the result is this error message:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Technical Info (only visible for developers)
is_internal_error: false
ora_sqlcode: -6502
ora_sqlerrm: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
component.type: APEX_APPLICATION_PAGE_PROCESS
component.id: 16433072916569237418
component.name: get_text
error_backtrace:
ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 100
ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 141
Edited by: Oliver L on 16.04.2013 09:17no an item like P0_TEST on page 0 / global page also does not help.
But the error is not the application item / page item it's the problem that the "Process Success Message" can't handle more than 4000 chars.
I tried to paste a string into the process success message, but the error "Error processing row. ORA-01461: can bind a LONG value only for insert into a LONG column" occured even when i filled the textarea and saved the process.
So there's no problem with the application item or page item.
Edited by: Oliver L on 16.04.2013 10:00 -
Help in using listagg function for more than 8000 char.
Hi Friends,
Need you urgent help in using listagg function for more than 8000 char.
I did the below sample SQL and in "e_orig" and "d_orig" for upto 4000 char it is working fine but I have to use it for more than 8000 char. and it is giving error,
I checked the listagg function is having limitation of 4000 char.
I tried but I am unable to achive this. Can someone provide me a sample example to achive this
select d.dname,d.loc,e.hiredate
,listagg(e.ename,',' ) within group (order by e.deptno) over (partition by e.deptno) as e_orig
,listagg(e.ename, ',') within group (order by e.sal) over (partition by e.deptno) as d_orig
from emp e, dept d
where e.deptno=d.deptno;[ This is my first post, I gone through the guideline for posting a post , and try to go according to that ( I have not pasted here create table and insert as I have used basic table emp, dept for example), please let me know if still I should give this, I will take care from my next post ]
Thanks in advanceInteresting, I didn't know you could do that, but...
BluShadow wrote:
You could write some PL/SQL code that does it all for you, but that would involve loops and would be slow.Well, objects are written in PL/SQL aren't they? And presumably there'll be implicit looping too? So it's not at all obvious that this method will be faster than doing the joining in PL/SQL in memory. The only way to find out is to benchmark them - so I have done that.
I noticed that OP's ref cursor actually only ever retrieves a single record for a bound department number, so I decided the best thing would be to test using a procedure that passes an output string back. I selected all (109) employees and put spaces in to ensure above 4000 characters. I also noticed that as he is using PL/SQL he probably can use a VARCHAR2 type, but just not ListAgg in the query, so I wrote short procedures as follows:
SimpleAggChr - bulk collect and array processing, VARCHAR2 output
ClobAggPrc - the custom aggregation method, CLOB output
SimpleAggClob - bulk collect and array processing, CLOB output
I then wrote a driving script that calls them in the order above and times each call (I like benchmarking so I have my own timing object to make it easy). I then print the lengths for checking, and my object writes the timings to my output table. Running a few times I got varying results, but generally it looks like there isn't a lot to choose between them for performance.
Here's the procedure code:
CREATE OR REPLACE TYPE char100_list_type AS TABLE OF VARCHAR2(100)
CREATE OR REPLACE PROCEDURE SimpleAggChr (x_out OUT VARCHAR2) IS
l_enames char100_list_type;
BEGIN
SELECT first_name || ' ' || last_name
BULK COLLECT INTO l_enames
FROM employees
ORDER BY salary;
FOR i IN 1..l_enames.COUNT LOOP
x_out := x_out || l_enames(i) || ',';
END LOOP;
END SimpleAggChr;
CREATE OR REPLACE PROCEDURE SimpleAggClob (x_out OUT CLOB) IS
l_enames char100_list_type;
BEGIN
SELECT first_name || ' ' || last_name
BULK COLLECT INTO l_enames
FROM employees
ORDER BY salary;
FOR i IN 1..l_enames.COUNT LOOP
x_out := x_out || l_enames(i) || ',';
END LOOP;
END SimpleAggClob;
SHO ERR
PROMPT ClobAggPrc
CREATE OR REPLACE PROCEDURE ClobAggPrc (x_out OUT CLOB) IS
BEGIN
SELECT clobagg(first_name || ' ' || last_name || ',')
INTO x_out
FROM employees
ORDER BY salary;
END ClobAggPrc;
SHO ERRand the driving script:
SET SERVEROUTPUT ON
SET TIMING ON
DECLARE
l_enames_c1 CLOB;
l_enames_c2 CLOB;
l_enames_v VARCHAR2(32767);
l_timer timer_set_type := timer_set_type ('Aggregation');
BEGIN
Utils.g_id := 'Aggregation';
SimpleAggChr (l_enames_v);
l_timer.Increment_Time ('SimpleAggChr');
ClobAggPrc (l_enames_c1);
l_timer.Increment_Time ('ClobAggPrc');
SimpleAggClob (l_enames_c2);
l_timer.Increment_Time ('SimpleAggClob');
DBMS_Output.Put_Line ('SimpleAggChr returned string of length ' || Length (l_enames_v));
DBMS_Output.Put_Line ('ClobAggPrc returned string of length ' || Length (l_enames_c1));
DBMS_Output.Put_Line ('SimpleAggClob returned string of length ' || Length (l_enames_c2));
l_timer.Write_Times;
END;
SET TIMING OFF
SET LINES 150
SET PAGES 1000
COLUMN id FORMAT A30
COLUMN line_text FORMAT A120
SELECT line_text
FROM output_log
WHERE id = 'Aggregation'
ORDER BY line_ind
/and the results:
SimpleAggChr returned string of length 5779
ClobAggPrc returned string of length 5779
SimpleAggClob returned string of length 5779
PL/SQL procedure successfully completed.
Elapsed: 00:00:27.05
LINE_TEXT
Timer Set: Aggregation, constructed at 03 Nov 2011 16:27:07, written at 16:27:35
================================================================================
[Timer timed: Elapsed (per call): 0.02 (0.000016), CPU (per call): 0.01 (0.000010), calls: 1000, '***' denotes corrected
line below]
Timer Elapsed CPU Calls Ela/Call CPU/Call
SimpleAggChr 9.84 0.36 1 9.84400 0.36000
ClobAggPrc 9.37 0.32 1 9.37400 0.32000
SimpleAggClob 8.25 0.22 1 8.25000 0.22000
(Other) 0.00 0.00 1 0.00000 0.00000
Total 27.47 0.90 4 6.86700 0.22500
13 rows selected. -
Attach xls file with more than 255 chars
Hi all,
I'm trying to send an .xls file as attachement whose row contains more than 255 chars with FM 'SO_NEW_DOCUMENT_ATT_SEND_API1'.
When preparing the attached table, I tried to separate the tables like this:
loop at itab.
concatenate itab-col_1 itab-col_2 itab-col_3 into it_attach
separted by cl_abap_char_utilities=>horizontal_tab.
append it_attach.
concatenate itab-col_4 itab-col_5 itab-col_6 into it_attach
separted by cl_abap_char_utilities=>horizontal_tab.
append it_attach.
concatenate IT_ATTACH cl_abap_char_utilities=>newline into it_attach.
append it_attach.
endloop.
I am able to send this xls as attachment, but when open it in excel/notepad,
it is so strange that there are so many spaces before the contents itab-col_4 which is unexpected.
It is expected that the file is tab-delimited with continuous column 1-6.
Any things went wrong?
Many Thanks!Thanks.
I tried the first method to convert the byte to string, but a short dumps is resulted,
DATA: con_tab TYPE x,
sep TYPE string.
con_tab = '09'.
CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'
EXPORTING
in_xstring = con_tab
IMPORTING
out_string = sep.
so I use back my original method to concatenate the columns as suggested, i.e.
concatenate itab-col_1 tab itab-col_2 tab itab-col_3 tab into it_attach
append it_attach.
concatenate itab-col_4 tab itab-col_5 tab itab-col_6 into it_attach.
append it_attach.
concatenate it_attach cl_abap_char_utilities=>newline into it_attach.
append it_attach.
but the outcome is still the same, i.e. ...many leading space before itab-col_4
any more ideas? Many Thanks -
How to transfer data more than 255 char from excel sheet to internal table.
Hello Experts,
I have a requirement where i have a text field in the excel sheet of more than 255 char and need to be updated in the text element. To do that i need to transfer the excel sheet data to an internal table where one of the field is more than 255 char.
in the standard function module it works only upto 255 char. Can you help me if we have some other way to get more than 255 char in the internal table from excel sheet.
Thanks in Advance.
BR,
RaJ.Using .xls, it is not possible transfer data more than 255 characters from excel sheet. However if the excel sheet is saved as Comma Delimited format or Tab Delimited format, then using GUI_DOWNLOAD function module data more than 255 characters can be transferred.
File name should be : .csv (Comma Delimited format) or .txt (Tab Delimited format)
File Type would still remain 'ASC' while calling function module GUI_DOWNLOAD
Also In the internal table declare the field type as String or LCHAR.
Eg:
TYPES: begin of ty_file,
col_a TYPE string,
end of ty_file.
DATA: i_file type standard table
of ty_file
with header line
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\test.csv'
TABLES
DATA_TAB = i_file -
Hi.. I am using the FM "SO_NEW_DOCUMENT_ATT_SEND_API1" for sending a outlook mail with excel sheet as an attachment.
The records having length upto 255 chars are coming properly in diff rows(which means the carriage return is considered).
But when records have more than 255 chars, then the chars exceeding 255 length are coming in a single row of excel sheet which means the carraige returns are not considered.
Hope my issue is explained clearly....request every one to provide the solution as early as possible.
Regards
NandaHi Nanda,
build your XLS internal table X as usual (more then 255 char). Then format the table
X to a new one Y with line size 255. (You can do your own routine or use the FM SWA_STRING_FROM_TABL and SWA_STRING_TO_TABLE in sequence; sorry but I'm on 4.6C and didn't find a FM in order to format directly the internal table from line size XXXX to the desired line size).
sample code:
t_att_tab with line size 4000 containing the excell data with carriage return and so on
objbin with line size 255 used in FM SO_NEW_DOCUMENT_ATT_SEND_API1
data: d_string type string.
call function 'SWA_STRING_FROM_TABLE'
exporting
character_table = t_att_tab
NUMBER_OF_CHARACTERS =
line_size = 4000
KEEP_TRAILING_SPACES = ' '
CHECK_TABLE_TYPE = ' '
importing
character_string = d_string
exceptions
no_flat_charlike_structure = 1
others = 2
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function 'SWA_STRING_TO_TABLE'
exporting
character_string = d_string
APPEND = ' '
line_size = 255
CHECK_TABLE_TYPE = ' '
importing
character_table = objbin
TOTAL_LENGTH =
LINE_SIZE_USED =
LINES_FILLED =
LAST_LINE_LENGTH =
exceptions
no_flat_charlike_structure = 1
others = 2
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
It works!!!
Paolo -
Is there any way to create table of more than 30 char length name
hi all,
Please tell me is there any way to create table of more than 30 char length name in oracle 10g
RegardsHi,
If you want table name to be more than 30 Char.
I am sure,your naming convention is not upto the mark.
Its not possible in 10g as well as in 11g.
Thanks
Yogesh Nagle
India
Maybe you are looking for
-
HP Laserjet 1200 and Driver Updates
On the "Download Drivers and Software" support page for the HP Laserjet 1200 printer, there is an option, "Automatically check to see if your driver needs updating". A machine that I am supporting is having a MS Word collating issue (sometimes works,
-
Adding new field to the page when the field source not available
Hi, I have a requirement to add vendor_serial_number (manufacturer's serial number) to the page /oracle/apps/csi/instance/general/webui/InstanceDetailsPG. This column is available in mtl_serial_numbers_all_v table. I don't see any VO in that page has
-
Why is itunes deleting songs from my iphone 4s?
So, I've had this happen at least 5 times now Over the course of a month. I put about 20-30 gigs of music on my phone (WHICH TAKES A LOT OF TIME TO SELECT), its fine. Then, if I connect my phone to itunes anytime after that, I have nothing but "purch
-
I have created some forms for our congregation to fill in with answers on adobe forms central. When I go to turn it into a PDF for printing for a hard copy, (not all our members have internet) when i save it to a PDF, it doesn't save all the pages an
-
"Cannot continue, nothing to install"
So I am trying to download ventrilo. When I first downloaded it I found out the version I had downloaded would not work on my version of mac. So, I trashed it and proceeded to download the 3.0.0 version. When I got through to the installation part it