Carriage returns on external tbl
version 11g
Just looking for some help. Built an external table from a csv file. One of the columns in the csv has fields that have data like so :
From Submitter:
Testing the tools was working well. Please see below comments.
Tom Stevens (JRP Design)
From Jim:
Thanks and I will follow-up. Please send me contact info and I will give him a call as well.
So I create the table but when i try and select * from the tbl i get this error
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-30653: reject limit reached
29913. 00000 - "error in executing %s callout"
*Cause: The execution of the specified callout caused an error.
*Action: Examine the error messages take appropriate action.
I check the error log and get this :
KUP-04021: field formatting error for field USER_INPUT
KUP-04036: second enclosing delimiter not found
What can I put in the access parameters of the create table that can fix this ?
Right now I am using
ORGANIZATION EXTERNAL
TYPE ORACLE_LOADER DEFAULT DIRECTORY "UTIL_FILES" ACCESS PARAMETERS
records delimited BY newline
skip 1 fields terminated BY ','
OPTIONALLY ENCLOSED BY '"' ltrim
MISSING FIELD VALUES ARE NULL
LOCATION ( 'test.csv' ))
What can I put in the access parameters of the create table that can fix this ?
Nothing - as others already mentioned your data has embedded record delimiters in it. So the parser treats any 'newline' as the end of a record.
Many tools cannot properly parse files with embedded record delimiters. Excel can but only if the entire field is enclosed in double quote characters.
If that data field is NOT enclosed in double quotes you could try modifying the data to enclose it in double quotes.
But the likely solution will probably involve either removing the embedded newlines or replacing them with some other character (e.g. space).
You could also use a different delimiter such as the pipe '|' character.
Similar Messages
-
Carriage Return in External table column
Im using Oracle 9.2.0.6 . On Aix.
Ive created and external table pointing to a csv file.
When I do a select on the last column of the external_table, it contains a carriage return / linefeed. If I try to make the colums specification smaller then it throws and error
ORA-01401: inserted value too large for column
How can I eliminate this unwanted character.
line from csv file
2,,,,,,,,,,,,,,BB
table spec
create table x_needsprop
external_prop_ref varchar2(20),
floor_level varchar2(20),
dcc varchar2(4),
lc varchar2(4),
ptd varchar2(4),
wc varchar2(4),
ec varchar2(4),
rspr varchar2(4),
err varchar2(4),
ctb varchar2(4),
bd varchar2(4),
nda varchar2(4),
ndd varchar2(4),
vsam varchar2(4),
res_type varchar2(5)
ORGANIZATION EXTERNAL
( type oracle_loader
default directory external_dir
access parameters
( fields terminated by ',' )
location ('needsprop.csv')
/According to the documentation, adding the trim specifer 'RTRIM' directs that "spaces should be trimmed from the end of a text field. Spaces include blanks and other nonprinting characters such as tabs, line feeds, and carriage returns."
create table x_needsprop
external_prop_ref varchar2(20),
floor_level varchar2(20),
dcc varchar2(4),
lc varchar2(4),
ptd varchar2(4),
wc varchar2(4),
ec varchar2(4),
rspr varchar2(4),
err varchar2(4),
ctb varchar2(4),
bd varchar2(4),
nda varchar2(4),
ndd varchar2(4),
vsam varchar2(4),
res_type varchar2(5)
ORGANIZATION EXTERNAL
( type oracle_loader
default directory external_dir
access parameters
( fields terminated by ',' RTRIM)
location ('needsprop.csv')
) -
Cl_gui_frontend_services= gui_download without carriage return
Hi,
Is there a way to get download a file to PC that way, that in the end of every lines there is a carriege return character except the last one? (Special format required by az external bank application)
I tried to add carriage return to every lines, except the last one and use cl_gui_frontend_services=>gui_download.
Although the "write_lf" parameter is set to space, the # is still inserted in the end of the last lines.
Any suggestion, idea?
Thanks in advance,
PeterHi
When second time you call method just add the following
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = v_value
append = 'X' <------- Just add this line -
Receiver File channel for XML files: with carriage return
Hi all,
we are using a receiver FILE channel to generate an XML file that is sent to an external partner.
The XML file looks good in a parser (IExplorer). But in fact there are not carriage return / line feeds between the XML tags
of the XML payload in the file.
Our partner now requires the XML file in a more vertical structure which means: for every tag a separate line (like it is displayed in a parser)
Does anybody know a more general way to convert to a vertical XML structure (so with carriage return line feed).
There is one entry in the SDN dealing with this topic but suggesting using an UDF. I think this is a very specific way.
I don't think it is a good way to change/enhance the message mapping just because of a general formating change.
Is it better to use an XSLT mapping as a second step in the interface mapping or a JAVA adapter module to convert ?
any experiences? suggestions? examples?
Thank you very much
best regards
Hans
examples:
original by XI receiver FILE adapter
<?xml version="1.0" encoding="UTF-8"?>
<MT_batchStatus><type>BS</type><header><message><messageSender>SENDER</messageSender><messageDate>20090723143720</messageDate> ... and so on
required:
<?xml version="1.0" encoding="UTF-8"?>
<MT_batchStatus>
<type>BS</type>
<header>
<message>
<messageSender>SENDER</messageSender>
<messageDate>20090723143720</messageDate>
... and so on>
Hans Georg Walter wrote:
> Is it better to use an XSLT mapping as a second step in the interface mapping or a JAVA adapter module to convert ?
> any experiences? suggestions? examples?
In such a case, the best is to write an generic XSLT or Java mapping that will attempt to do the pretty printing/formatting of the xml.
The advantage of a generic one is that you can reuse the same class/jar for many other scenarios.
so the flow will be as below in your interface mapping;
1. your specific source to target mapping
2. the generic formatting class -
Sql Loader and carriage returns
I am currently trying to use sql loader to load data from flat files that was extracted from sybase using bcp and delimited with pipes. There are text and varchar columns that contain carriage return line feeds. I want to preserve these, but I can not load them into Oracle 8.05 using sql loader as it interprets them as end of record indicators. Does anyone have a way to solve this problem? Any assistance would be appreciated.
Thanks in advance,
JigneshExternal tables are accessible from SQL, which generally simplifies life if the data files are physically located on the database server since you don't have to coordinate a call to an external SQL*Loader script with other PL/SQL processing. Under the covers, external tables are normally just invoking SQL*Loader.
SQL*Loader is more appropriate if the data files are on a different server or if it is easier to call an executable rather than calling PL/SQL (i.e. if you have a batch file that runs on a server other than the database server that wants to FTP a data file from a FTP server and then load the data into Oracle).
Justin -
Carriage return symbol is removed from XML
Hello,
It looks like SQL Server removes \r characters when parsing XML. So when my stored procedure receives values in xml for saving, all line breaks are represented as \n instead of \r\n.
Is there any way I can force SQL Server not to remove \r characters? In the sample below Node1 value doesn't contain \r symbols.
DECLARE @hDoc int
DECLARE @Xml nvarchar(MAX)
SET @Xml = N'<Root><Node1><![CDATA[' + nchar(13) + nchar(10) + N'Some ' + nchar(13) + nchar(10) + N' Value]]></Node1></Root>'
EXEC sp_xml_preparedocument @hDoc OUTPUT, @Xml
SELECT
Node1
,convert(varbinary(max),Node1) -- Contains 0A00 in the start instead of 0D0A,
,charindex(nchar(13),Node1)
FROM
OPENXML(@hDoc, N'/Root', 2) WITH (Node1 NVARCHAR(MAX))
EXEC sp_xml_removedocument @hDoc
Thank youHi dalong,
The scenario you pointed is the behavior of the XML processor by default. If any characters with CARRIAGE RETURN (#xD), whenever CARRIAGE RETURN (#xD) is followed by LINE FEED (#xA) or not, will be translate to a single #xA character, to normalize all line
breaks in external parsed entities on input before parsing.
In this case, you may have a try to make use of REPLACE function in the SELECT statement to replace “nchar(10)” to “nchar(13)+nchar(10)”.
Best Regards,
Stephanie Lv
If you have feedback for TechNet Subscriber Support, contact
[email protected]
Please remember to mark the replies as answers if they help and unmark them if they provide no help. -
Search for multiple values separated by carriage return and not commas
I have developed a report in BI Publisher that allows a user to enter multiple values that are separated by commas.
Is there any way of entering multiple values that are separated by carriage return and not commas?
Any help would be appreciated.
ThanksHere below, without function :
SQL> with tbl as
2 (select 0 c1, 'j' c2 from dual union all
3 select 1 c1, 'k' c2 from dual union all
4 select 2 c1, 'l' c2 from dual union all
5 select 3 c1, 'm' c2 from dual union all
6 select 4 c1, 'n' c2 from dual )
7 select *
8 from tbl
9 where c1 in (select substr(mystring,instr(mystring,',',1,rownum)+1,instr(mystring,',',1,rownum+1)-instr(mystring,',',1,rownum)-1)
10 from (select ','||'&str'||',' mystring from dual)
11 connect by level <= length(mystring)-length(replace(mystring,','))-1);
Enter value for str: 1,2,3
old 10: from (select ','||'&str'||',' mystring from dual)
new 10: from (select ','||'1,2,3'||',' mystring from dual)
C1 C
1 k
2 l
3 m
SQL> /
Enter value for str: 0
old 10: from (select ','||'&str'||',' mystring from dual)
new 10: from (select ','||'0'||',' mystring from dual)
C1 C
0 j
SQL> Nicolas. -
Losing carriage returns in textarea / using plpdf to generate report
Hello,
I'm using Apex 3.1.1 and Oracle 10g database. I would appreciate any suggestions on how I can preserve carriage returns in a textarea when sending the text to a package that generates a report. Please see example of current problem (below code). I'm using an onkeypress function to check for keycode = 13 when the Enter key is pressed -- that is working. I also created an alert to show the url value -- I can see the text on multiple lines, so that appears to be working as well. The textarea value parameter in the package is defined as varchar2. Per the support folks at plpdf.com, chr(13) indicates an explicit line break, and they told me to check my text. I don't know what I'm missing. Thank you for any suggestions you may have.
Lisa
function callPLPDFRep()
var url;
url = '#OWNER#.' + $x('P&APP_PAGE_ID._REPORT_PROCEDURE').value + '?' + build_params();
w = open(url, "winPDFRep", "Scrollbars=1, resizable=1, width=800, height=600");
if (w.opener == null)
w.opener = self;
w.focus();
function build_params()
var lparms;
lparms = '';
lparms = lparms + '&p_incorrect=' + $x('P212_INCORRECT').value;
lparms = lparms + '&p_correct=' + $x('P212_CORRECT').value;
return lparms;
}Text in textarea:
035 5768 06/15/2010
035 5768 06/16/2010
035 5768 06/17/2010
Printout on report:
035 5768 06/15/2010035 5768 06/16/2010035 5768 06/17/2010Hello Michael,
Thank you for your response. After doing some researching and experimenting, here's what I have found so far.
First, using an onkeypress function to alert the keycode, a chr(13) is being returned when I press the Enter key in the textarea.
function check_Enter(e)
var keynum;
var textval = $x('P212_INCORRECT').value;
if(document.all)
keynum = e.keyCode
else
keynum = e.which
alert(keynum);
}Next, when I access the value of the textarea via javascript with $x('P212_INCORRECT').value, the chr(13) is automatically converted to the newline character (\n). In an attempt to replace the \n with a \r so plpdf will recognize the carriage return, I added a javascript replace function before sending the text to the package, and it does not work.
function build_params()
var lparms;
lparms = '';
lparms = lparms + '&p_incorrect=' + $x('P212_INCORRECT').value;
lparms = lparms + '&p_correct=' + $x('P212_CORRECT').value;
alert(lparms.split(/\n/g).length - 1); // confirm that a newline character is found
lparms = lparms.replace( new RegExp( "\n", "g" ), "\r"); // replace newline character with carriage return
return lparms;
}When I tried to replace the newline character (\n) with chr(13), the chr(13) is printed out like it is text instead of a special character. In order to test that I have the correct syntax for the replace function in javascript, I tried replacing \n with '...', and then in the package that generates the PDF, I replaced the '...' with chr(13). That works!
In response to your comment about the PLPDF procedure for multi line section, I am using: plpdf.PrintMultiLineCell(180, 6, l_incorrect, '0', 0). As a newbie to javascript, I am not sure why replacing \n with \r is not working. Can you advise how to use a chr(13) in the javascript replace function and have it recognized as a special character and not text? I don't know how to view special characters in the textarea other than checking for them with javascript.
Thanks, Lisa -
What is escape character for for Carriage Return, Line Feed, Form Feed
Hi
I need to a text file which should have following characters
Carriage Return, Line Feed, Form Feed
How do i insert them in a string
i know "\f" is carriage return,
but what are characters for line feed and form feed
Ashishuncle_alice wrote:
jverd wrote:
remus.dragos wrote:
I forgot that it does not exist in Java. A good thing
from my point of view.Running the following makes my computer beep.
public class Bell {
public static void main(String... args) {
System.out.println("\u0007");
Sure, sending a BEL character to the console rings the bell, but that has nothing to do with Java. Anyway, I think he meant Java doesn't support the \a escape sequence in string and char literals.
>
>
>I forgot that it does not exist in Java. A good thing
from my point of view.
Running the following makes my computer beep.
public class Bell {
public static void main(String... args) {
System.out.println("\u0007");
} Sure, sending a BEL character to the console rings the bell, but that has nothing to do with Java. Anyway, I think he meant Java doesn't support the \a escape sequence in string and char literals.
Ah, I thought he was saying Java doesn't support ringing the bell. -
Please explain me how I can use Form feed(\f) and Carriage return(\r)
what is Form feed(\f) and Carriage return(\r)?
Please explain to me.
Thank you.These control characters aren't used much these days except that if you example a Windows or MSDOS text file in a binary editor you'll find each line ends with "\r\n". However when reading or writing text through classes these carriage returns will be added and removed automatically so your program doesn't see them.
The controlls date back to teletype machines which operated rather like typewriters. Cariage return, as it's name implied, caused the print head to move back to the start of the line, line feed advanced a line (without, necessarilly, returning the carriage) and formfeed skipped to the next page.
Newline on these machines was always "return, linefeed" because executing the carriage return on these machine could take too long. The early machines had only a single character buffer so that they had to executed the characters as quickly as they arrived. So doing the linefeed after the carriage return gave the carriage more time to return. On some teletypes if you did "linefeed, return" then the first character of the new line would often be printed somewhere in the middle of the line.
This is the origin of the MSDOS/Windows end of line sequence.
Many printers will still respect formfeed if printing is direct. Some will take carriage return without linefeed to allow you to start again overprinting the same line.
However printing, these days, is seldom direct but done in bitmap form. -
Prior to this version of Firefox 36.0.1, the <textarea> in my HTML forms was working; displaying carriage returns. In version 36.0.1 they no longer function properly. Instead when I enter a carriage return, it displays a space instead of a newline. I went to the most basic textarea testing
<textarea> name="comments" cols=20 rows=10 </textarea>
to make sure I wasn't introducing anything with other languages.
I am using Windows 8.1 Pro. I rolled back to Firefox 35.0 and everything works fine. I install 36.0.1 and it stops working.
I have access to another Laptop also running the same version of windows and Firefox and it appears to be doing strange things as well. I am suspicious in that I started noticing this immediately after a windows upgrade last night. The laptop also experienced the issues it is having immediately after a windows update yesterday evening.
I have yet another PC running a different version of windows and Firefox and it too works fine. It looks like the issue is where there is windows 8.1 Pro and Firefox 36.0.1.
Do you guys have any idea what is going on here?
Thanks
JMRAUPE57The current release supports the white-space property for a text area and it is possible that the website uses white-space: pre instead of white-space: pre-wrap.
The former will prevent Firefox from wrapping the text.
You can check that in the Inspector via the right-click context menu.
*https://developer.mozilla.org/Tools/Page_Inspector
See:
*https://developer.mozilla.org/en-US/Firefox/Releases/36#CSS
<blockquote>The white-space property is now working on <textarea> HTML elements (bug 82711).</blockquote>
See also:
*[[/questions/1050456]] Word wrap problems in 36.0 -
Problem with "carriage Return" or "Line Feed" in a table
Hello,
I need help with the function Zeichen(), so called it in german, I'm not sure if it is char() in english.
In Pages Version 4.0.1 (746) I've created a table in Pages with this function to make an "carriage Return" in a cell.
Here an example: { ="Hello" & Zeichen(10) & "World" }, in the cell is now:
| Hello |
| World |
But in Pages Version 4.0.3 (766) this function ZEICHEN() not allow the number 10 and other till 32 (I allready read the manual and understand this problem).
Anybody an idea to make a "Carriage Return" or "Line feed" in a formular, in a cell, in a table, in Pages?
Thanks
Detlev Kormannkdetlev wrote:
Your workaround will not be possible in my table, because there is no empty cell in the table, but I think it is also a good help too.
*In fact I forgot that you are using a table in Pages.*
Remaining on my first idea, In Numbers we may achieve the same goal using an auxiliary table with a single cell containing the needed line break.
If this table is named "LineBreak",
the formula will be:
="Hello"&LineBreak :: $A$1&"World"
*In Pages, here is my workaround:*
Enter the cell
type a§b
don't type the character § but ctrl + return.
The cell will contain
a
b
with the arrow, move before the a
type =B2&"
delete the original a
move to the right
delete the original b
type "&C7
Yvan KOENIG (VALLAURIS, France) mercredi 7 octobre 2009 17:20:04 -
I have a labview sub-VI reading the string being outputted by a pH meter. The meter outputs a 5 line string and labview is only reading up to each lines carriage return, there-by giving me 5 separate strings is there anyway to rectify this and have the 5 line read as one string?
NAS1
St Petersburg FL
Labview 2010Yes, LabVIEW will automatically update. What happens is that the old serial functions still exist in 7.1 and above but the code (the block diagram) has been modified to use VISA functions. Older versions of LabVIEW are fully supported in this manner. The only way you can avoid the automatic update is to have the old serial functions in an llb and your top level VI refer to these. Having any VI that was part of vi.lib in an llb is a very bad idea and the way to fix things is to remove any VIs in the llb that are part of the LabVIEW distribution.
I don't remember how the old serial config worked and what the new version does with the VISA Configure Serial Port. Your program should only have a single serial config and you might just be able to directly replace that with the VISA configure Serial Port. -
Help needed with Carriage Return in Unicode system
Hi Experts,
we have an issue with one of our programs regarding the carriage return that is used when creating a csv file. This issue has only came about because of the recent upgrade to ECC6.
The main change to the program was the redefinition of the line feed variable.
Existing statement was --> DATA: v_lf TYPE x VALUE '0D'.
This was then replaced with
New statement --> DATA: v_lf type c VALUE cl_abap_char_utilities=>cr_lf.
Since this change has been implemented, the csv file that is created and sent on as an attachment via the function SO_NEW_DOCUMENT_ATT_SEND_API1 is now not displayed correctly.
When looking at the attachment in trn SOST, a message is also displayed saying the file is not in a recognizable format when selecting the file to view.
The hex value for cl_abap_char_utilities=>cr_lf is 000D000A and this seems to be causing the issue.
I've also tried using Function FI_DME_CHARATERS as I only really want to use the CR. However, the hex value for this is 000D and not 0D.
Is there any way of converting this to have a hex value of 0D?
Thanks in advance,
ChrisHI,
Sorry it is not the CONTENTS_TXT it is CONTENTS_BIN. Instead of CONTENTS_BIN you need to pass to CONTENTS_HEX
Check my Code..i have used the CONTENTS_HEX instead of CONTENTS_BIN
DATA: l_tab_lines TYPE i,
l_string TYPE char300,
l_line TYPE string.
CONSTANTS : l_c_255(255) TYPE c VALUE '255',
l_c_txt(3) TYPE c VALUE 'TXT'.
DATA: lt_reclist TYPE STANDARD TABLE OF somlreci1, "Recipients
lt_objpack TYPE STANDARD TABLE OF sopcklsti1,
lt_objhead TYPE STANDARD TABLE OF solisti1,
lt_objtxt TYPE STANDARD TABLE OF solisti1, "Body of EMail
lt_objbin TYPE STANDARD TABLE OF solisti1."Attachment of EMail
DATA: l_doc_chng TYPE sodocchgi1, "attributes of document to send
l_reclist LIKE LINE OF lt_reclist,
l_objpack LIKE LINE OF lt_objpack,
l_obj LIKE LINE OF lt_objhead.
DATA :
l_hex LIKE solix,
lt_contents_hex LIKE STANDARD TABLE OF solix ,
conv TYPE REF TO cl_abap_conv_out_ce,
l_buffer TYPE xstring,
l_hexa(510) TYPE x.
* Completing the recipient list
l_reclist-receiver = p_emailid.
l_reclist-express = 'X'.
l_reclist-rec_type = 'U'.
APPEND l_reclist TO lt_reclist.
CLEAR l_reclist.
* Body of Email Message
APPEND l_obj TO lt_objtxt. CLEAR l_obj. " Blank line
l_obj-line = '<html>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<body>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<p><code>Hello,</p></code>'(t04).
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = cl_abap_char_utilities=>newline.
APPEND l_obj TO lt_objtxt. CLEAR l_obj. " Blank line
CONCATENATE
'<p><code>'(f01)
'Please click the link to access the Confirmation Form.'(t01)
'Kindly complete the same and return it to the HR contact 15 days' &
' prior to the date of confirmation of the employee.'(t02)
'</p></code>'(f02) INTO l_obj-line SEPARATED BY space.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = cl_abap_char_utilities=>newline.
APPEND l_obj TO lt_objtxt. CLEAR l_obj. " Blank line
CONCATENATE '<a href="' text-l01 text-l02 '">'
INTO l_obj-line.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
CONCATENATE '<p><code>'(f01)
'Link to Confirmation Forms'(034)
'</p></code>'(f02)
'</a>'
INTO l_obj-line.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = cl_abap_char_utilities=>newline.
APPEND l_obj TO lt_objtxt. CLEAR l_obj. " Blank line
l_obj-line = '<p><code>The details of the employees ' &
'are as follows:</p></code>'(017).
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = cl_abap_char_utilities=>newline.
APPEND l_obj TO lt_objtxt. CLEAR l_obj. " Blank line
* Table headings in the Mail Body
l_obj-line = '<table border="1">'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<tr>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<th><p><code>Name</p></code></th>'(030).
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<th><p><code>Department</p></code></th>'(031).
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<th><p><code>DOJ</p></code></th>'(032).
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '<th><p><code>Confirmation Date</p></code></th>'(033).
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '</tr>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
** Body of Email Message
* Email Attachment
* Append headings
CONCATENATE 'Employee No.'(002)
'Employee Group'(016)
'Employee Name'(001)
'Designation'(003)
'Joining Date'(004)
'Department'(005)
'Branch/Location'(006)
'Unit'(007)
'Confirmation Due'(008)
'Form sent on'(009)
'Form Return by'(010)
'Employee Group'(016)
'Qualification'(012)
'Trainee Category'(013)
INTO l_string
SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
APPEND l_string TO lt_objbin.
CLEAR l_string.
APPEND INITIAL LINE TO lt_objbin.
LOOP AT p_emp_details INTO i_emp_details_line.
CONCATENATE i_emp_details_line-pnalt
i_emp_details_line-egroup
i_emp_details_line-ename
i_emp_details_line-stext
i_emp_details_line-srvdt
i_emp_details_line-ltext
i_emp_details_line-pbtxt
i_emp_details_line-btrtx
i_emp_details_line-mndat
i_emp_details_line-fsdate
i_emp_details_line-frdate
i_emp_details_line-egroup
i_emp_details_line-ptext
i_emp_details_line-ftext
INTO l_string
SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
APPEND l_string TO lt_objbin.
CLEAR l_string.
l_obj-line = '<tr>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
CONCATENATE '<td>' '<p><code>'(f01)
i_emp_details_line-ename '</p></code>'(f02) '</td>'
INTO l_string.
APPEND l_string TO lt_objtxt. CLEAR l_string.
CONCATENATE '<td>' '<p><code>'(f01)
i_emp_details_line-ltext '</p></code>'(f02) '</td>'
INTO l_string.
APPEND l_string TO lt_objtxt. CLEAR l_string.
CONCATENATE '<td>' '<p><code>'(f01)
i_emp_details_line-srvdt '</p></code>'(f02) '</td>'
INTO l_string.
APPEND l_string TO lt_objtxt. CLEAR l_string.
CONCATENATE '<td>' '<p><code>'(f01)
i_emp_details_line-mndat '</p></code>'(f02) '</td>'
INTO l_string.
APPEND l_string TO lt_objtxt. CLEAR l_string.
l_obj-line = '</tr>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
ENDLOOP.
l_obj-line = ' </table>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '</body>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
l_obj-line = '</html>'.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
IF r_cprob EQ 'X'.
l_string = 'Completion of probation List'(018).
ELSE.
l_string = 'Completion of extension of probation List'(035).
ENDIF.
APPEND l_string TO lt_objhead.
* APPEND object_header.
CALL FUNCTION 'SO_RAW_TO_RTF'
TABLES
objcont_old = lt_objbin
objcont_new = lt_objbin.
LOOP AT lt_objbin INTO l_line.
conv = cl_abap_conv_out_ce=>create( encoding = 'UTF-8' endian = 'B').
CALL METHOD conv->write( data = l_line ).
l_buffer = conv->get_buffer( ).
MOVE l_buffer TO l_hexa.
MOVE l_hexa TO l_hex-line.
APPEND l_hex TO lt_contents_hex.
ENDLOOP.
* File name for attachment
CONCATENATE 'Completion of probation List'(018)
sy-datum '.XLS' INTO l_obj SEPARATED BY space.
APPEND l_obj TO lt_objhead.
* Email Body Details
CLEAR l_tab_lines.
DESCRIBE TABLE lt_objtxt LINES l_tab_lines.
l_doc_chng-doc_size = ( l_tab_lines - 1 ) * 255 +
STRLEN( l_string ). "size of doc in bytes
l_doc_chng-obj_name = sy-repid.
l_doc_chng-obj_langu = sy-langu.
l_doc_chng-obj_descr = l_string.
l_doc_chng-sensitivty = 'P'. " Send mail as a confidential
l_objpack-head_start = 1.
l_objpack-head_num = 1.
l_objpack-body_start = 1.
l_objpack-body_num = l_tab_lines.
l_objpack-doc_type = 'HTML'. "l_c_txt.
APPEND l_objpack TO lt_objpack.
CLEAR l_objpack.
* Email Attachment Details
CLEAR l_tab_lines.
DESCRIBE TABLE lt_objbin LINES l_tab_lines.
* Creation of the entry for the compressed attachment
l_objpack-transf_bin = 'X'.
l_objpack-head_start = 1.
l_objpack-head_num = 1.
l_objpack-body_start = 1.
l_objpack-doc_type = 'XLS'.
l_objpack-obj_name = l_obj.
l_objpack-obj_descr = l_obj.
l_objpack-body_num = l_tab_lines.
l_objpack-doc_size = l_tab_lines * l_c_255.
APPEND l_objpack TO lt_objpack.
CLEAR l_objpack.
* Send the document
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = l_doc_chng
put_in_outbox = ' '
commit_work = 'X'
TABLES
packing_list = lt_objpack
object_header = lt_objhead
* contents_bin = lt_objbin
contents_txt = lt_objtxt
contents_hex = lt_contents_hex
receivers = lt_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8. -
Hello,
I have written some code which extracts data from a MySQL
database and stores it in a CSV file using CFFILE.
However, the database includes data inserted from an HTML
textarea form element which is stored in a MySQL text field. The
textarea data includes carriage returns which, when written to a
CSV file, force a new line which makes the data messy.
Is there a way of removing the carriage returns?
Many thanks,
SimonI recently had to deal with a similar situation. The
differences are:
1. My file is pipe delimited.
2. My source data comes from a vendor application, not an
html form.
The following code worked for me.
<cffile action="write" nameconflict="overwrite"
addnewline="no" output=""
file="d:\dw\dwweb\work\#CaseFileName#">
<cfoutput query="casedata">
<cffile action="append"
file="d:\dw\dwweb\work\#CaseFileName#"
output="#caseid#|strip a bunch of
fields|#theatre_mcase#|#Replace(pre_op_diag, chr(10), ' ',
'all')##chr(13)#">
</cfoutput>
Maybe you are looking for
-
Snow Leopard Software Update VERY slow
I'm running snow leopard 10.6.8 server and am having some very strange problems with my software updates. I have all the settings set right (I believe) and I have made the adjustments to allow Lion clients to upgrade from it as well. The problem I'm
-
hai, plz tell me Exact sequence of transport, regards rajasekhar
-
How to Configure IPMP on Control Domain?
Dear All i am configuring IPMP in Control Domain: and what i need to know exactly is how to setup the routing in the control domain to allaow the vsw to see the IPMP configration on physical network. this is my config now: primary-vsw2 00:11:22:33:44
-
Declaring namespace and Parameter in PDF template
Hi, I am using PDF template for generating reports. is there any limitation on declaring these objects in PDF template? when I try doing that the report gives form proccesor error. Thank in advance
-
Good morning all. We are upgrading from 4.6C to ECC 6.0. When testing the inbound idocs for Purchase Orders, I am getting en error on the DOCREL field. It says that the value 46C is invalid. My question is: what is the valid value for the ECC