No mail attachment but garble text
I kept getting this problem on mac mail when some of my recieved mail become garble/encrypted text. This happen almost 3 times a months on different mailbox folder i have set up. The fix i have been applying is do a rebuild (mailbox> rebuild), it was ok at first doing the steps provided but after a while been doing it for almost 3 times a months which is frustrating. I have been looking for update/patch from apple but i have found none or maybe was not looking more into it.
If any of you have encounter this issue and got a fix please do share
Hey Bee,
thanks for the info but again this does not happen everytime i received an email. Somtimes it does appear and somtimes it wont, i just depend i dont know what. lol! Again here is another encounter since the last time i posted a screenshot that was 3 days ago in a different directory mailbox.
yes i haved check font apps and no duplicate there. is there any other item i should look up? I have no free font app as well. what i think ill do next is try to validate the fonts to have it back to default. dont you think that would help.
any1 tried having this same issue. please share your thoughts.
Similar Messages
-
Outlook mail appearing as garbled text
Recently we have shifted from gmail to outlook and what earlier worked with gmail now is appearing as garbled text in outlook.
A mail notification is triggered from TACTIC ( a web framework ). It worked well earlier. Seems to be related with text encoding but not sure where or how to do that. How should I go about it( have normal text appearing).
Using Exchange server as backend. Microsoft outlook web app in front.Is the mail appearing fine in other clients like ActiveSync/Outlook Web Access?
What is the version of Exchange server you are running?
Can you paste a screenshot of what you notice on gmail and what you notice on Outlook by removing all the personally identifiable information please? -
please help
Please explain better just what you are doing?
What do you mean by reactivate?
What ext are you talking about? Where? -
Problems with specifying File Extension of E-Mail attachment
Hi everybody
I have a problem that seems to be so simple that it almost drives me crazy that I cannot find a solution for it.
I need to send the content of an internal table (some lines) as a mail attachment to a specified mail address.
The format should be normal ASCII, so when I open it with any text editor (e.g. Notepad), I want to have all my lines there (including CR/LF).
The problem now is - The extension of this mail attachment must be ".key", so the attached file should have the name "L_12345.key" (for example).
For E-Mailing I use FM "SO_NEW_DOCUMENT_ATT_SEND_API1".
This part works fine, also the attachment part works in general. (I receive the mail and I receive the attachment).
BUT I get either an attachment with the name "L_12345.txt" or "L_12345.key.txt" and in correct format, or I get an attachment "L_12345.key", where the name is correct but format is wrong (no CR/LF - everything in one line).
Example:
=======
Attachment-Content should be:
Line 1
Line 2
Line 3
Name of Attachment should be: L_12345.key
What I tried:
TEST 1 **
Declare Attachment in Packing list. ..
ls_packing_list-transf_bin = ' '.
ls_packing_list-head_start = 1.
ls_packing_list-head_num = 0.
ls_packing_list-body_start = 7. "Startline of Attachment
ls_packing_list-body_num = 3. "No of Attachment lines
ls_packing_list-doc_type = 'RAW'.
ls_packing_list-doc_size = 3 * 255.
ls_packing_list-obj_name = 'ATT01'.
ls_packing_list-obj_descr = 'L_12345' "Attachment name
APPEND ls_packing_list TO lt_packing_list.
==> Result: Attachment Filename = L_12345.txt
==> File as I need it (ASCII with CR/LF), but extension wrong
Line 1
Line 2
Line 3
TEST 2 **
Same as TEST 1, but with:
ls_packing_list-obj_descr = 'L_12345.KEY' "Attachment name
==> Result: Attachment Filename = L_12345.KEY.txt
==> File as I need it (ASCII with CR/LF), but extension wrong
Line 1
Line 2
Line 3
TEST 3 **
Declare Attachment in Packing list. ..
ls_packing_list-transf_bin = ' '.
ls_packing_list-head_start = 1.
ls_packing_list-head_num = 0.
ls_packing_list-body_start = 7. "Startline of Attachment
ls_packing_list-body_num = 3. "No of Attachment lines
ls_packing_list-doc_type = 'KEY'.
ls_packing_list-doc_size = 3 * 255.
ls_packing_list-obj_name = 'ATT01'.
ls_packing_list-obj_descr = 'L_12345'. "Attachment name
APPEND ls_packing_list TO lt_packing_list.
==> Result: Attachment Filename = L_12345.KEY
==> File Format is wrong:
Line 1 Line 2 Line3
I have tried several other Extensions (DOC_TYPE), it seems, that the File format is only correct with "RAW", but it seems with "RAW" SAP adds ".txt" as extension to the filename.
Does anyone know how I can achieve having an e-mail attachment with multiple text lines and name "<anyname>.key"
Any help (if possible with example code ?) would be highly appreciated.
Many thanks
Haraldhi,
check the following code.
*& Form send_email
FORM send_email.
CLASS cl_abap_char_utilities DEFINITION LOAD.
CONSTANTS: con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.
*Body of mail
CLEAR objtxt.
CLEAR objtxt[].
objtxt = 'Dear abc'.
APPEND objtxt.
CLEAR objtxt.
APPEND objtxt.
objtxt = 'Attached herewith is the detail list of materials.'.
APPEND objtxt.
CLEAR objtxt.
APPEND objtxt.
objtxt = 'Regards,'.
APPEND objtxt.
objtxt = 'Admin'.
APPEND objtxt.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
*Mail description
CLEAR docdata.
docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
docdata-obj_name = 'List'.
docdata-obj_descr = 'List of materials'.
docdata-obj_langu = sy-langu.
*Packing list for main document
CLEAR objpack.
CLEAR objpack[].
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.
*Attachment data
CLEAR objbin.
CLEAR objbin[].
CONCATENATE
'field1' 'field2' 'field3' 'field4'
INTO objbin SEPARATED BY ','.
CONCATENATE con_cret objbin INTO objbin.
APPEND objbin.
LOOP AT it_material_list INTO wa_material_list.
MOVE-CORRESPONDING wa_material_list TO wa_char_material_list.
CONCATENATE
wa_char_material_list-field1
wa_char_material_list-field2
wa_char_material_list-field3
wa_char_material_list-field4
INTO objbin SEPARATED BY con_tab.
CONCATENATE con_cret objbin INTO objbin.
APPEND objbin.
CLEAR objbin.
CLEAR wa_char_employee_list.
ENDLOOP.
DESCRIBE TABLE objbin LINES tab_lines.
READ TABLE objbin INDEX tab_lines.
*Packing list for attachment document
CLEAR objpack.
objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
objpack-transf_bin = 'X'. "check these values
objpack-head_start = 1. "check these values
objpack-head_num = 1. "check these values
objpack-body_start = 1. "check these values
objpack-body_num = tab_lines.
objpack-doc_type = 'KEY'.
objpack-obj_name = 'Attachment'.
objpack-obj_descr = 'Report.KEY'.
APPEND objpack.
*Email receiver's list
CLEAR reclist.
CLEAR reclist[].
reclist-receiver = mail_id.
reclist-rec_type = 'U'.
APPEND reclist.
*Function module to send email with an attachment
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = docdata
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = objpack
contents_bin = objbin
contents_txt = objtxt
receivers = 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.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "send_email
Edited by: vikram shah on Sep 25, 2008 5:28 PM -
I am creating a form on LiveCycle Designer and I am trying to create a form that has a e-mail submit button. When the button is utilized it attaches the form to the e-mail in an plain text .xml format rather than the pdf format. Is there a quick fix?
Hi,
You have the choice between xml or pdf, in later versions of designer you can choose with a dropdown on the email button Object palette, the "Submit As";
In earlier version you had to edit the XML Source and change the format from xml to pdf (or vice-versa);
Regards
Bruce -
I just bought RAR Extractor, but it doesn't work in my ipad. E-mail attached photographs came in .rar format. I checked Apples Store and found RAR Extractor. I bought, installed, erased, reinstalled again but I still can not see the photos. They seem to be existing in "open-in" folder. When I tap, it goes back to "Home" screen.
Have you contacted the developer? They would be the best people to help with their product.
-
Mail messages appear garbled in some parts of the text.
I carried out the upgrade this morning as it was suggested I do this.
Now at least some messages are appearing with garbled text BUT not the whole page.
when I say garbled I mean some text is overlapping other parts.
Looking at one particular message it appears as if the 'footer' is overlapping midway up the message.
I have a screen shot but how do I add it as a pictures saves a thousand words?
What is going on and how can I fix it please.
Have a scintillating Saturday
Shirley
Message was edited by: Shirley Drabble1
Message was edited by: Shirley Drabble1A few remarks:
- place the cfparam code lines out of the cfdocument tag;
- remove the link tag from within cfdocument. The link tag
may only appear in the head section of the page;
- remove the cfoutput tag. It is apparently unnecessary;
- remove the long comment lines <!------------ ...
-------------->. If you need to break the document up into
sections, use the cfdocumentsection tag. A previous thread contains
an
example of using cfdocumentsection and cfdocumentitem tags for
section and page flow.
added: You should consider installing the
Coldfusion
MX 7 hotfixes if you haven't done so yet. One of the fixes is
for cfdocument's text cut-off problems. -
I am trying to make a signature in MS Word (2007) which includes a jpg image, but when I save it as a HTML file and attach it the text appers OK but the image doesn't. I have tried various formats but still no luck. Can anyone help? edit
C'mon! Anyone???? I'm desperate!
-
I keep getting "undelivered mail returned to sender" that comes with an attachment. i do not open the attachment but i get email returned from people that i have not emailed in years. I also have current people that tell me they receive email from me and there is nothing on the email and it is a repetative thing for them and for me. I have scanned my computer and it keeps telling me there are no viruses but i keep getting these emails. can anyone help me please!
Someone is probably sending spam with your address forged on the To: line. Could be one of your old contacts with a Windows machine has a virus that's doing it. It's also possible your e-mail account has been hacked, though I'd think such a hacker would be a bit more purposeful.
For more information, see:
http://www.reedcorner.net/guides/macvirus/is_it_malware.php#spam
* Disclaimer: links to my pages may give me compensation, and should not be taken as endorsement of my services by Apple. -
I'm trying to print onto mailing labels, but it won't line up correctly. It looks right on the template and the 1st row even prints correctly. The text keeps moving down a line on each row of labels, so the rest of it will not print correctly.
There are several ways you can go about this.
1. Most labels come with Word templates or downloadable Word templates. Simply open those in Pages.
2. Make a table with extra cells for the thin spaces between the labels and skinny those down to match the spaces. ie You have big fat cells for the actually labels and thin narrow empty ones for the gaps.
3. Make a floating Text box the size of one label, format with dummy text just the way you like it.
+Menu > Format > Advanced > Define as Placeholder text+
You can now drag and drop snippets of text, the addresses etc onto those and it will replace them matching the style of the existing text.
You duplicate that text box into position of the other labels by clicking on it with the command kety held down, then drag copy it up or across with the option and shift keys held down. Fine tune the positions with:
+Inspector > Metrics > Position+
Peter -
Hi,
im working on sending report output as mail attachment in pdf format..
but im not getting the required output,,,i.e., even after entering email addresses in the selection screen....im not getting any mail to the respective mail-ids..
im pasting the code..pls fix the problem..
pls let me know wat we have to do in SCOT transaction after executing the program....pls respond ..pls ..
TABLES : t001, "COMPANY CODE
knb1, "CUSTOMER MASTER(COMPANY CODE)
cdhdr, "CHANGE DOCUMENT HEADER
knkk, "CUSTOMER MASTER CREDIT MANAGEMENT: CONTROL AREA DATA
kna1, "GENERAL DATA IN CUSTOMER MASTER
adrc, "ADDRESSES (BUSINESS ADDRESS SERVICES)
t001s, "ACCOUNTING CLERKS
adrt, "COMMUNICATION DATA TEXT (BUSINESS ADDRESS SERVICES)
adr6. "E-MAIL ADDRESSES (BUSINESS ADDRESS SERVICES)
TABLES: itcpo, "SAPscript output interface
itcpp. "SAPscript output parameters
TYPES: BEGIN OF y_t001,
bukrs TYPE bukrs,
kkber TYPE kkber,
adrnr TYPE adrnr,
END OF y_t001.
TYPES: BEGIN OF y_cust,
p_objectid TYPE cdobjectv,
END OF y_cust.
TYPES: BEGIN OF y_knkk,
kunnr TYPE kunnr,
kkber TYPE kkber,
dtrev TYPE dtrev_cm,
nxtrv TYPE nxtrv_cm,
klimk TYPE klimk,
dbwae TYPE dbwae_cm,
END OF y_knkk.
TYPES: BEGIN OF y_customer,
kunnr TYPE kunnr,
adrnr TYPE adrnr,
END OF y_customer.
TYPES: BEGIN OF y_custo ,
kunnr TYPE kunnr,
name TYPE name1_gp,
kkber TYPE kkber,
END OF y_custo.
TYPES: BEGIN OF y_knkk1,
kunnr LIKE knkk-kunnr,
dtrev LIKE knkk-dtrev,
nxtrv LIKE knkk-nxtrv,
klimk LIKE knkk-klimk,
END OF y_knkk1.
TYPES: BEGIN OF y_report_display,
kunnr TYPE kunnr,
name TYPE name1_gp,
dtrev TYPE dtrev_cm,
nxtrv TYPE nxtrv_cm,
klimk TYPE klimk,
dbwae TYPE dbwae_cm,
END OF y_report_display.
TYPES: BEGIN OF y_adrt,
addrnumber TYPE adrnr,
comm_type TYPE ad_comm,
remark TYPE ad_remark2,
persnumber TYPE ad_persnum,
date_from TYPE ad_date_fr,
consnumber TYPE ad_consnum,
smtp_addr TYPE ad_smtpadr,
END OF y_adrt.
*TYPES : BEGIN OF y_adr6,
addrnumber TYPE ad_addrnum,
persnumber TYPE ad_persnum,
date_from TYPE ad_date_fr,
consnumber TYPE ad_consnum,
smtp_addr TYPE ad_smtpadr,
END OF y_adr6.
*TYPES: BEGIN OF y_addr,
addrnumber TYPE adrnr,
name1 TYPE ad_name1,
postcode TYPE ad_pstcd1,
city1 TYPE ad_city1,
street TYPE ad_street,
housenum TYPE ad_hsnm1,
telnum TYPE ad_tlnmbr1,
faxnum TYPE ad_fxnmbr1,
END OF y_addr.
TYPES: BEGIN OF y_custnam,
adrnr TYPE adrnr,
name2 TYPE ad_name1,
END OF y_custnam.
TYPES: BEGIN OF y_kna1,
kunnr TYPE kunnr,
adrnr TYPE adrnr,
name1 TYPE name1,
END OF y_kna1.
TYPES: BEGIN OF y_knb1,
kunnr TYPE kunnr,
bukrs TYPE bukrs,
busab TYPE busab,
END OF y_knb1.
TYPES: BEGIN OF y_clv,
dtrev TYPE dtrev_cm,
nxtrv TYPE nxtrv_cm,
klimk TYPE klimk,
END OF y_clv.
TYPES: BEGIN OF y_ccname,
sname TYPE t001s-sname,
END OF y_ccname.
*TYPES DECLARATION FOR DESIGING SCRIPT
TYPES : BEGIN OF y_adrc,
addrnumber LIKE adrc-addrnumber,
name1 LIKE adrc-name1,
post_code1 LIKE adrc-post_code1,
city1 LIKE adrc-city1,
street LIKE adrc-street,
house_num1 LIKE adrc-house_num1,
tel_number LIKE adrc-tel_number,
nation LIKE adrc-nation ,
fax_number LIKE adrc-fax_number,
country LIKE adrc-country,
END OF y_adrc.
*TO GET C1 (CUSTOMER NAME IN RUSSIAN
TYPES : BEGIN OF y_adrc1,
addrnumber LIKE adrc-addrnumber,
name1 LIKE adrc-name1,
nation LIKE adrc-nation,
END OF y_adrc1.
*TO GET C7
TYPES :BEGIN OF y_t001s,
bukrs LIKE t001s-bukrs, "Company Code
busab LIKE t001s-busab,
sname LIKE t001s-sname,
END OF y_t001s.
CONSTANTS:
c_printer LIKE itcpp-tddevice VALUE 'PRINTER',
c_true(1) TYPE c VALUE 'X',
c_1(1) TYPE n VALUE '1',
c_pdf_format(3) TYPE c VALUE 'PDF',
c_u LIKE soos1-recesc VALUE 'U',
c_recipient_name LIKE soos1-recnam VALUE 'U-',
c_english LIKE sy-langu VALUE 'E',
c_f LIKE sood1-objsns VALUE 'F',
c_int(3) TYPE c VALUE 'INT',
c_main(4) TYPE c VALUE 'ITEM',
c_main_window(4) TYPE c VALUE 'MAIN',
c_header(6) TYPE c VALUE 'HEADER',
c_minus_sign(1) TYPE c VALUE '-',
c_document_type LIKE sood-objtp VALUE 'EXT',
c_space(1) TYPE c VALUE ' '.
DATA t_result LIKE itcpp.
DATA :w_t001 TYPE t001,
w_custo TYPE y_custo,
w_knkk TYPE y_knkk,
w_cust TYPE y_cust,
w_customer TYPE y_customer,
w_report_display TYPE y_report_display,
w_addr TYPE y_addr,
w_custnam TYPE y_custnam,
w_adrt TYPE y_adrt,
w_adr6 TYPE y_adr6,
w_kna1 TYPE y_kna1,
w_knb1 TYPE y_knb1,
w_clv TYPE y_clv,
w_ccname TYPE y_ccname.
DATA: w_error_found(1) TYPE c,
w_key_date_text(30) TYPE c,
w_total(10) TYPE p DECIMALS 2,
w_htddevice LIKE itcpp-tddevice.
DATA: E_PROFILE LIKE SOPRD.
DATA: t_t001 TYPE STANDARD TABLE OF y_t001,
t_custo TYPE STANDARD TABLE OF y_custo,
t_knkk TYPE STANDARD TABLE OF y_knkk,
t_cust TYPE STANDARD TABLE OF y_cust,
t_customer TYPE STANDARD TABLE OF y_customer,
t_report_display TYPE STANDARD TABLE OF y_report_display,
t_addr TYPE STANDARD TABLE OF y_addr,
t_custnam TYPE STANDARD TABLE OF y_custnam,
t_adrt TYPE STANDARD TABLE OF y_adrt,
t_adr6 TYPE STANDARD TABLE OF y_adr6,
t_kna1 TYPE STANDARD TABLE OF y_kna1,
t_knb1 TYPE STANDARD TABLE OF y_knb1,
t_clv TYPE STANDARD TABLE OF y_clv,
t_ccname TYPE STANDARD TABLE OF y_ccname.
DATA : number LIKE spell,
amount(1000) TYPE c.
For storing error log
DATA: BEGIN OF t_error OCCURS 0,
kunnr LIKE kna1-kunnr,
comm(30) TYPE c,
END OF t_error.
For storing customer's email address
DATA: BEGIN OF t_email OCCURS 0,
smtp_addr LIKE adr6-smtp_addr,
END OF t_email.
To be used in the function to send a layout via email
DATA: t_otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,
t_htline LIKE tline OCCURS 0 WITH HEADER LINE.
DATA DECLARATIONS FOR DESIGING SCRIPT
DATA : it_t001 TYPE STANDARD TABLE OF y_t001,
wa_t001 TYPE y_t001.
DATA : it_adrc TYPE STANDARD TABLE OF y_adrc,
wa_adrc type y_adrc.
DATA : it_adrc1 TYPE STANDARD TABLE OF y_adrc1,
wa_adrc1 TYPE y_adrc1.
DATA : it_knb1 TYPE STANDARD TABLE OF y_knb1,
wa_knb1 TYPE y_knb1.
DATA : it_kna1 TYPE STANDARD TABLE OF y_kna1,
wa_kna1 TYPE y_kna1.
DATA : it_knkk TYPE STANDARD TABLE OF y_knkk,
wa_knkk TYPE y_knkk.
DATA : it_knkk1 TYPE STANDARD TABLE OF y_knkk1,
wa_knkk1 TYPE y_knkk1.
DATA : it_t001s TYPE STANDARD TABLE OF y_t001s,
wa_t001s TYPE y_t001s.
*DATA STATEMENTS FOR EMAIL ADDRESSES
DATA : it_adrt TYPE TABLE OF y_adrt,
wa_adrt TYPE y_adrt,
wa_email LIKE t_email.
*DATA : it_adr6 TYPE TABLE OF y_adr6,
wa_adr6 TYPE y_adr6,
DATA : counter TYPE i,
counter1 TYPE i,
c5 LIKE spell.
SELECTION-SCREEN BEGIN OF BLOCK clcn WITH FRAME TITLE text-200.
SELECTION-SCREEN SKIP.
PARAMETERS: p_bukrs LIKE t001-bukrs OBLIGATORY, "COMPANY CODE
p_kkber LIKE t001-kkber OBLIGATORY. "CREDIT CONTROL AREA
SELECT-OPTIONS: s_kunnr FOR knb1-kunnr OBLIGATORY, "CUSTOMER NUMBER
s_datum FOR sy-datum OBLIGATORY DEFAULT sy-datum. "DATE OF CREDIT LIMIT UPDATE
SELECTION-SCREEN SKIP.
PARAMETERS : p_simul AS CHECKBOX DEFAULT 'X'. "RUN IN SIMULATION MODE
SELECTION-SCREEN SKIP.
PARAMETERS : p_lemail LIKE adr6-smtp_addr. " EMAIL
SELECTION-SCREEN END OF BLOCK clcn.
AT SELECTION-SCREEN.
PERFORM f0100_validate_bukrs. "* For Company Code.
PERFORM f0200_validate_kkber. "* For Credit Control Area.
PERFORM f0300_validate_kunnr. "* For Customer Number
PERFORM f0400_validate_datum. "* For Date of Credit Limit Update
PERFORM f0500_validate_simul. "* For simulation mode and e-mail address
*======================================================================
START-OF-SELECTION.
PERFORM f1000_get_customer. "** COLLECT INFO FOR REPORT DISPLAY
IF p_simul is initial AND NOT P_lemail IS INITIAL.
PERFORM F1000_CHECK_GATEWAY_CONNECTION.
ENDIF.
IF p_simul IS INITIAL AND NOT p_lemail IS INITIAL.
PERFORM f3000_process_data_script USING t_report_display.
ENDIF.
END-OF-SELECTION.
IF NOT p_simul IS INITIAL.
PERFORM f2000_display_customer USING t_report_display.
ENDIF.
FORM f0100_validate_bukrs.
DATA : w_bukrs TYPE bukrs.
VALIDATION OF P_BUKRS
SELECT SINGLE bukrs
FROM t001
INTO w_bukrs
WHERE bukrs EQ p_bukrs.
IF sy-subrc NE 0.
MESSAGE e999(zf) WITH 'Invalid Company Code' p_bukrs. "(E01).
*AUTHORIZATION CHECK
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'BUKRS' FIELD p_bukrs
ID 'ACTVT' FIELD '03'.
IF sy-subrc NE 0.
MESSAGE e999(zf) WITH 'No Authorization for company code' p_bukrs."(e06).
ENDIF.
ENDIF.
ENDFORM. " F0100_VALIDATE_BUKRS
*Eject
*& Form F0200_VALIDATE_KKBER
*-> CREDIT CONTROL AREA AUTHORITY CHECK
FOR CREDIT CONTROL AREA.
FORM f0200_validate_kkber.
DATA : w_kkber LIKE t001-kkber.
SELECT SINGLE kkber
FROM t001
INTO w_kkber
WHERE bukrs EQ p_bukrs
AND kkber EQ p_kkber.
IF sy-subrc NE 0.
MESSAGE e999(zf) WITH
'Credit Control Area' p_kkber 'not defined for Company Code' p_bukrs."(e02).
MESSAGE e999 WITH text-e02 p_kkber .
ENDIF.
ENDFORM. "F0200_VALIDATE_KKBER
*& Form F0300_VALIDATE_KUNNR
*-> CUSTOMER NUMBER AUTHORITY CHECK
FORM f0300_validate_kunnr.
VALIDATION OF S_KUNNR
DATA : w_kunnr TYPE kunnr,
w_bukrs TYPE bukrs.
IF s_kunnr IS INITIAL .
MESSAGE e999 WITH 'Enter Customer Number'(e04).
SUBMIT (sy-cprog) VIA SELECTION-SCREEN.
ENDIF.
LOOP AT s_kunnr.
CLEAR : w_kunnr,
w_bukrs.
IF NOT s_kunnr-low IS INITIAL.
SELECT SINGLE kunnr bukrs
FROM knb1 INTO (w_kunnr ,w_bukrs)
WHERE kunnr EQ s_kunnr-low
AND bukrs EQ p_bukrs.
IF sy-subrc NE 0.
MESSAGE e999(zf) WITH 'Customer S_KUNNR-LOW not defined in company code' p_bukrs."(e03).
ENDIF.
ENDIF. "if not s_kunnr-low is initial.
IF NOT s_kunnr-high IS INITIAL.
CLEAR : w_kunnr,
w_bukrs.
SELECT SINGLE kunnr bukrs
FROM knb1 INTO (w_kunnr , w_bukrs)
WHERE kunnr EQ s_kunnr-high
AND bukrs EQ p_bukrs.
IF sy-subrc NE 0.
MESSAGE e999(zf) WITH 'Customer S_KUNNR-HIGH not defined in company code' p_bukrs."(e03).
ENDIF.
ENDIF. "if not s_kunnr-high is initial.
ENDLOOP. " loop at s_kunnr
ENDFORM. " F0200_VALIDATE_KUNNR
*& Form F0400_VALIDATE_DATUM
*-> DATE OF CREDIT LIMIT UPDATE
FORM f0400_validate_datum.
IF s_kunnr IS INITIAL AND s_datum IS INITIAL.
MESSAGE e999 WITH 'Enter either Date of CL update or Customer number.'(e04).
ENDIF.
ENDFORM. "F0400_VALIDATE_DATUM
*& Form F1000_GET_CUSTOMER
text
--> p1 text
<-- p2 text
FORM f1000_get_customer .
DATA : w_kunnr LIKE knkk-kunnr,
w_kkber LIKE knkk-kkber.
IF s_datum IS NOT INITIAL.
SELECT objectid
FROM cdhdr
INTO TABLE t_cust
WHERE objectclas IN ('KLIM','DTREV','NXTRV')
AND change_ind IN ('U','I')
AND udate IN s_datum.
WHERE ( objectclas EQ 'KLIM' OR objectclas EQ 'DTREV' OR objectclas EQ 'NXTRV')
AND ( change_ind EQ 'U' OR change_ind EQ 'I')
AND udate IN s_datum .
ENDIF.
IF sy-subrc NE 0.
MESSAGE s999 WITH 'There is no data for selected period'(e07).
ELSE.
MOVE t_cust TO t_customer.
ENDIF.
SORT t_customer BY kunnr.
IF NOT t_customer[] IS INITIAL.
SELECT kunnr
kkber
dtrev
nxtrv
klimk
dbwae
FROM knkk
INTO TABLE t_knkk
FOR ALL ENTRIES IN t_customer
WHERE kunnr = t_customer-kunnr
AND kkber = p_kkber.
ELSE.
MESSAGE e999 WITH text-e07.
ENDIF.
IF sy-subrc NE 0.
ENDIF.
SORT t_knkk BY kunnr kkber.
IF NOT t_knkk[] IS INITIAL.
SELECT kunnr
name1
FROM kna1
INTO TABLE t_custo
FOR ALL ENTRIES IN t_knkk
WHERE kunnr = t_knkk-kunnr.
ENDIF.
IF sy-subrc = 0.
ENDIF.
SORT t_custo BY kunnr kkber.
LOOP AT t_custo INTO w_custo.
CLEAR w_knkk.
READ TABLE t_knkk INTO w_knkk WITH KEY kunnr = w_custo-kunnr
BINARY SEARCH.
IF sy-subrc = 0.
w_report_display-kunnr = w_custo-kunnr.
w_report_display-name = w_custo-name.
w_report_display-dtrev = w_knkk-dtrev.
w_report_display-nxtrv = w_knkk-nxtrv.
w_report_display-klimk = w_knkk-klimk.
w_report_display-dbwae = w_knkk-dbwae.
APPEND w_report_display TO t_report_display .
ENDIF.
ENDLOOP.
ENDFORM. " F1000_GET_CUSTOMER
*& Form F2000_DISPLAY_CUSTOMER
text
-->P_T_REPORT_DISPLAY text
FORM f2000_display_customer USING p_t_report_display.
DATA: no TYPE n VALUE 1.
DATA: t_data TYPE STANDARD TABLE OF y_report_display.
t_data = p_t_report_display.
DATA : w_data LIKE LINE OF t_data .
ULINE (118).
WRITE:/ sy-vline,
8 'CREDIT LIMIT CHANGE NOTIFICATION REPORT ON',
sy-datum , 118 sy-vline.
ULINE (118).
WRITE:/ sy-vline,'NO'(008) ,
10 sy-vline, 11 'CUSTOMER NUMBER',
28 sy-vline, 29 'CUSTOMER NAME', 43 sy-vline,
44 'CREDIT LIMIT VALID', 63 sy-vline ,
64 'CREDIT LIMIT AMOUNT', 85 sy-vline, 86 'CURRENCY',
95 sy-vline , 96 'Notification Status',118 sy-vline.
ULINE (118).
WRITE:/ sy-vline,43 sy-vline, 44 'FROM', 53 sy-vline,
56 'TILL', 63 sy-vline, 118 sy-vline .
ULINE (118).
LOOP AT t_data INTO w_data.
WRITE:/ sy-vline, no,
10 sy-vline, 11 w_data-kunnr ,
28 sy-vline, 29 w_data-name, 43 sy-vline, 44 w_data-dtrev,
53 sy-vline, 56 w_data-nxtrv ,63 sy-vline ,64 w_data-klimk,
85 sy-vline, 86 w_data-dbwae,
95 sy-vline , 118 sy-vline.
no = no + 1.
ULINE (118).
ENDLOOP.
ENDFORM. " F2000_DISPLAY_CUSTOMER
*& Form F3000_PROCESS_DATA_SCRIPT
text
-->P_T_REPORT_DISPLAY text
FORM f3000_process_data_script USING p_t_report_display.
DATA: t_data TYPE STANDARD TABLE OF y_report_display.
t_data = p_t_report_display.
DATA : w_data LIKE LINE OF t_data .
DATA: temp_is_negative(1) TYPE c,
temp_text(20) TYPE c,
temp_sname LIKE t001s-sname,
temp_email LIKE adr6-smtp_addr.
DATA : number LIKE spell,
amount(255) TYPE c.
PERFORM f3100_initialize_settings.
LOOP AT t_data INTO w_data.
AT NEW kunnr.
CLEAR w_error_found.
IF p_simul IS INITIAL AND NOT p_lemail IS INITIAL.
PERFORM f3300_open_form.
data: wa_t001 like line of t001
DATA : begin of wa_t001,
adrnr like t001-adrnr,
end of wa_t001.
SELECT SINGLE
adrnr FROM t001 INTO wa_t001
WHERE bukrs = p_bukrs.
DATA: BEGIN OF wa_adrc,
addrnumber LIKE adrc-addrnumber,
name1 LIKE adrc-name1,
post_code1 LIKE adrc-post_code1,
city1 LIKE adrc-city1,
street LIKE adrc-street,
house_num1 LIKE adrc-house_num1,
tel_number LIKE adrc-tel_number,
nation LIKE adrc-nation ,
fax_number LIKE adrc-fax_number,
country LIKE adrc-country,
END OF wa_adrc.
SELECT SINGLE
addrnumber
name1
post_code1
city1
street
house_num1
tel_number
nation
fax_number
country
FROM adrc
INTO corresponding fields of wa_adrc
WHERE addrnumber EQ wa_t001-adrnr AND
nation EQ ' '.
PERFORM f3700_write_form.
DATA: wa_kna1 LIKE LINE OF t_kna1,
wa_adrcc LIKE LINE OF it_adrc.
SELECT SINGLE
kunnr
adrnr FROM kna1
INTO wa_kna1
WHERE kunnr = w_data-kunnr.
IF sy-subrc EQ 0.
SELECT SINGLE
addrnumber
name1
FROM adrc
INTO wa_adrcc
WHERE addrnumber = wa_kna1-adrnr
AND nation = ' '.
ENDIF.
PERFORM f3701_write_form.
DATA : wa_knkk LIKE LINE OF t_knkk.
DATA : counter TYPE i,
counter1 TYPE i.
IF sy-subrc EQ 0.
SELECT SINGLE KUNNR
DTREV
NXTRV
KLIMK FROM KNKK INTO WA_KNKK WHERE
KUNNR EQ W_DATA-KUNNR.
ENDIF.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = w_knkk-klimk
CURRENCY = ' '
FILLER = ' '
language = sy-langu
IMPORTING
in_words = number.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
amount = number-word.
PERFORM f3702_write_form.
DATA: wa_knb1 LIKE LINE OF t_knb1.
IF sy-subrc EQ 0.
SELECT SINGLE
busab
FROM knb1
INTO wa_knb1
WHERE kunnr = w_data-kunnr
AND bukrs = p_bukrs.
ENDIF.
DATA : wa_t001s LIKE LINE OF it_t001s.
IF sy-subrc EQ 0.
SELECT SINGLE bukrs
busab
sname
FROM t001s
INTO wa_t001s
WHERE bukrs = wa_knb1-bukrs
AND busab = wa_knb1-busab.
ENDIF.
PERFORM f3703_write_form.
PERFORM f3704_write_form.
IF counter1 < counter.
PERFORM f3705_write_form.
ENDIF.
PERFORM f3706_close_form.
ENDIF.
ENDAT.
IF w_error_found EQ c_true.
ENDIF.
AT END OF kunnr.
PERFORM F3400_WRITE_FORM USING C_TOTAL C_MAIN_WINDOW.
PERFORM F3500_CLOSE_FORM.
IF p_simul IS INITIAL AND NOT p_lemail IS INITIAL. "Email setting
PERFORM f3200_get_email_addr USING w_data-kunnr.
PERFORM f3600_send_data_via_email USING w_data-kunnr.
ENDIF.
ENDAT.
ENDLOOP.
WRITE:/ ' E-Mail is sent to the customer'.
ENDFORM. " F3000_PROCESS_DATA_SCRIPT
*& Form F3100_INITIALIZE_SETTINGS
text
--> p1 text
<-- p2 text
FORM f3100_initialize_settings .
SELECT SINGLE spld
INTO itcpo-tddest
FROM usr01
WHERE bname EQ sy-uname.
IF sy-subrc NE 0.
itcpo-tddest = 'LOCAL'.
ENDIF.
w_htddevice = c_printer.
itcpo-tddest = ''.
itcpo-tdrdidev = ''.
itcpo-tdsenddate = sy-datum.
itcpo-tdsendtime = sy-uzeit.
itcpo-tdschedule = 'IMM'.
itcpo-tdimmed = ' '.
itcpo-tdnewid = c_true. "PRINT: New spool request
itcpo-tdlifetime = c_1. "PRINT: Spool retention period
itcpo-tdgetotf = c_true.
IF p_simul IS INITIAL AND NOT p_lemail IS INITIAL. "Email setting
itcpo-tdgetotf = c_true.
ENDIF.
ENDFORM. " F3100_INITIALIZE_SETTINGS
*& Form f0500_validate_simul
text
--> p1 text
<-- p2 text
FORM f0500_validate_simul .
IF p_simul IS INITIAL AND p_lemail IS INITIAL. "Email setting
MESSAGE e999(zf) WITH 'Enter Email address'. "(e05).
ENDIF.
ENDFORM. " f0500_validate_simul
*& Form F3600_SEND_DATA_VIA_EMAIL
text
-->P_W_DATA_KUNNR text
FORM f3600_send_data_via_email USING p_w_data_kunnr.
DATA: fle1(2) TYPE p,
fle2(2) TYPE p,
off1 TYPE p,
hltlines TYPE i,
temp_filesize TYPE i,
hfeld(500) TYPE c,
header(50) TYPE c,
htabix LIKE sy-tabix,
x_sent_to_all LIKE sonv-flag.
DATA: BEGIN OF x_objcont OCCURS 0.
INCLUDE STRUCTURE soli.
INCLUDE STRUCTURE SOLISTI1.
DATA: END OF x_objcont.
DATA: BEGIN OF x_object_hd_change.
INCLUDE STRUCTURE sood1.
DATA: END OF x_object_hd_change.
DATA: BEGIN OF x_receivers OCCURS 0.
INCLUDE STRUCTURE soos1.
INCLUDE STRUCTURE SOMLRECI1.
DATA: END OF x_receivers.
DATA: BEGIN OF x_objhead OCCURS 1.
INCLUDE STRUCTURE soli.
DATA: END OF x_objhead.
**Data: begin of objpack occurs 0.
include structure SOPCKLSTI1.
**Data: end of objpack.
**Data: begin of email_data occurs 0.
include structure SODOCCHGI1.
**Data: end of email_data.
Converts the layout set to PDF format
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = c_pdf_format
IMPORTING
bin_filesize = temp_filesize
TABLES
otf = t_otfdata
lines = t_htline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc NE 0.
w_error_found = c_true.
t_error-kunnr = p_w_data_kunnr.
t_error-comm = 'Error in conversion to PDF format.'(e08).
APPEND t_error.
CLEAR t_error.
EXIT.
ENDIF.
Convert the PDF file into an internal table which to be used in the
function that will send a PDF file to a email address
DESCRIBE TABLE t_htline LINES hltlines.
DESCRIBE FIELD T_HTLINE LENGTH FLE1 IN BYTE MODE.
DESCRIBE FIELD t_htline LENGTH fle1
IN CHARACTER MODE.
DESCRIBE FIELD X_OBJCONT LENGTH FLE2 IN BYTE MODE.
DESCRIBE FIELD x_objcont LENGTH fle2
IN CHARACTER MODE.
CLEAR x_objcont.
REFRESH x_objcont.
LOOP AT t_htline.
htabix = sy-tabix.
MOVE t_htline TO hfeld+off1.
IF htabix = hltlines.
fle1 = STRLEN( t_htline ).
ENDIF.
off1 = off1 + fle1.
IF off1 GE fle2.
CLEAR x_objcont.
x_objcont = hfeld(fle2).
APPEND x_objcont.
SHIFT hfeld BY fle2 PLACES.
off1 = off1 - fle2.
ENDIF.
IF htabix = hltlines.
IF off1 GT 0.
CLEAR x_objcont.
x_objcont = hfeld(off1).
APPEND x_objcont.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT t_email.
x_receivers-receiver = t_email-smtp_addr.
x_receivers-rec_type = c_u.
APPEND x_receivers.
ENDLOOP.
x_receivers-receiver = p_lemail.
x_receivers-rec_type = c_u.
APPEND x_receivers.
DESCRIBE TABLE x_objcont LINES sy-tfill.
READ TABLE x_objcont INDEX sy-tfill.
email_data-doc_size = ( sy-tfill - 1 ) * 255 + STRLEN( x_objcont ).
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = sy-tfill.
objpack-doc_type = 'RAW'.
APPEND objpack.
email_data-obj_descr = 'Notification'.
APPEND email_data.
IF x_receivers[] IS NOT INITIAL.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = email_data
put_in_outbox = 'X'
commit_work = 'X' "used from rel. 6.10
TABLES
packing_list = objpack
object_header = email_fname
contents_bin = email_text
contents_txt = x_objcont
receivers = x_receivers.
endif.
CLEAR x_objhead.
REFRESH x_objhead.
CLEAR x_object_hd_change.
x_object_hd_change-objnam = 'EMAIL'(t04).
header = 'Procter & Gamble'(t05).
x_object_hd_change-objdes = header. "Title
x_object_hd_change-objla = c_english. "Language
x_object_hd_change-objsns = c_f.
x_object_hd_change-objlen = temp_filesize.
x_object_hd_change-file_ext = c_pdf_format.
Transfer the email address to an internal table which will be used
in the function that will send a PDF file to a email address
CLEAR x_receivers.
REFRESH x_receivers.
LOOP AT t_email.
x_receivers-sndex = c_true.
x_receivers-sndpri = c_1.
x_receivers-recesc = c_u.
x_receivers-recnam = c_recipient_name.
Populate the email address of the customer
x_receivers-recextnam = t_email-smtp_addr.
x_receivers-recesc = c_english.
x_receivers-sndart = c_int.
APPEND x_receivers.
ENDLOOP.
x_receivers-sndex = c_true.
x_receivers-sndpri = c_1.
x_receivers-recesc = c_u.
x_receivers-recnam = c_recipient_name.
Populate the Local mail address
x_receivers-recextnam = p_lemail.
x_receivers-recesc = c_english.
x_receivers-sndart = c_int.
APPEND x_receivers.
Calling a SAP function to send out email with attachment of PDF file
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = x_object_hd_change
object_type = c_document_type
outbox_flag = c_true
IMPORTING
sent_to_all = x_sent_to_all
TABLES
objcont = x_objcont
objhead = x_objhead
receivers = x_receivers
EXCEPTIONS
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
folder_not_exist = 4
folder_no_authorization = 5
forwarder_not_exist = 6
note_not_exist = 7
object_not_exist = 8
object_not_sent = 9
object_no_authorization = 10
object_type_not_exist = 11
operation_no_authorization = 12
owner_not_exist = 13
parameter_error = 14
substitute_not_active = 15
substitute_not_defined = 16
system_failure = 17
too_much_receivers = 18
user_not_exist = 19
x_error = 20
OTHERS = 21.
IF sy-subrc NE 0.
w_error_found = c_true.
t_error-kunnr = p_w_data_kunnr.
t_error-comm = 'Error in sending email.'(e09).
APPEND t_error.
CLEAR t_error.
ELSEIF sy-subrc EQ 0.
COMMIT WORK.
*Transmit Mail
SUBMIT rsconn01 WITH mode = c_int
WITH output = c_space
AND RETURN.
ENDIF.
ENDFORM. " F3600_SEND_DATA_VIA_EMAIL
*& Form F3200_GET_EMAIL_ADDR
text
-->P_T_REPORT_DISPLAY text
FORM f3200_get_email_addr USING p_w_data_kunnr.
REFRESH t_customer.
REFRESH t_adrt.
REFRESH t_email.
DATA: t_data TYPE STANDARD TABLE OF y_report_display.
t_data = p_t_report_display.
DATA : w_data LIKE LINE OF t_data .Sending mail with attachment
This program will allowed you to send email with attachment.
First, specify the attachment file from your local hardisk and execute.
Next, specify the sender email address and click the send button.
report y_cr17_mail.
data method1 like sy-ucomm.
data g_user like soudnamei1.
data g_user_data like soudatai1.
data g_owner like soud-usrnam.
data g_receipients like soos1 occurs 0 with header line.
data g_document like sood4 .
data g_header like sood2.
data g_folmam like sofm2.
data g_objcnt like soli occurs 0 with header line.
data g_objhead like soli occurs 0 with header line.
data g_objpara like selc occurs 0 with header line.
data g_objparb like soop1 occurs 0 with header line.
data g_attachments like sood5 occurs 0 with header line.
data g_references like soxrl occurs 0 with header line.
data g_authority like sofa-usracc.
data g_ref_document like sood4.
data g_new_parent like soodk.
data: begin of g_files occurs 10 ,
text(4096) type c,
end of g_files.
data : fold_number(12) type c,
fold_yr(2) type c,
fold_type(3) type c.
parameters ws_file(4096) type c default 'c:\debugger.txt'.
Can me any file fromyour pc ....either xls or word or ppt etc ...
g_user-sapname = sy-uname.
call function 'SO_USER_READ_API1'
exporting
user = g_user
PREPARE_FOR_FOLDER_ACCESS = ' '
importing
user_data = g_user_data
EXCEPTIONS
USER_NOT_EXIST = 1
PARAMETER_ERROR = 2
X_ERROR = 3
OTHERS = 4
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
fold_type = g_user_data-outboxfol+0(3).
fold_yr = g_user_data-outboxfol+3(2).
fold_number = g_user_data-outboxfol+5(12).
clear g_files.
refresh : g_objcnt,
g_objhead,
g_objpara,
g_objparb,
g_receipients,
g_attachments,
g_references,
g_files.
method1 = 'SAVE'.
g_document-foltp = fold_type.
g_document-folyr = fold_yr.
g_document-folno = fold_number.
g_document-objtp = g_user_data-object_typ.
*g_document-OBJYR = '27'.
*g_document-OBJNO = '000000002365'.
*g_document-OBJNAM = 'MESSAGE'.
g_document-objdes = 'sap-img.com testing by program'.
g_document-folrg = 'O'.
*g_document-okcode = 'CHNG'.
g_document-objlen = '0'.
g_document-file_ext = 'TXT'.
g_header-objdes = 'sap-img.com testing by program'.
g_header-file_ext = 'TXT'.
call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
exporting
method = method1
office_user = sy-uname
ref_document = g_ref_document
new_parent = g_new_parent
importing
authority = g_authority
tables
objcont = g_objcnt
objhead = g_objhead
objpara = g_objpara
objparb = g_objparb
recipients = g_receipients
attachments = g_attachments
references = g_references
files = g_files
changing
document = g_document
header_data = g_header
FOLMEM_DATA =
RECEIVE_DATA =
File from the pc to send...
method1 = 'ATTCREATEFROMPC'.
g_files-text = ws_file.
append g_files.
call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
exporting
method = method1
office_user = g_owner
ref_document = g_ref_document
new_parent = g_new_parent
importing
authority = g_authority
tables
objcont = g_objcnt
objhead = g_objhead
objpara = g_objpara
objparb = g_objparb
recipients = g_receipients
attachments = g_attachments
references = g_references
files = g_files
changing
document = g_document
header_data = g_header
method1 = 'SEND'.
g_receipients-recnam = 'MK085'.
g_receipients-recesc = 'B'.
g_receipients-sndex = 'X'.
append g_receipients.
call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
exporting
method = method1
office_user = g_owner
ref_document = g_ref_document
new_parent = g_new_parent
importing
authority = g_authority
tables
objcont = g_objcnt
objhead = g_objhead
objpara = g_objpara
objparb = g_objparb
recipients = g_receipients
attachments = g_attachments
references = g_references
files = g_files
changing
document = g_document
header_data = g_header.
*-- End of Program
also try this one for background scheduling the same
Sending mail with attachment report in Background
Pay attention because its working with output list from spool converted to pdf.
=================================================================================
z_send_email_fax_global
FUNCTION-POOL z_gfaian_mail_fax. MESSAGE-ID ..
WORK TABLE AREAS
TABLES: tsp01.
INTERNAL TABLES
DATA: lt_rec_tab LIKE STANDARD TABLE OF soos1 WITH HEADER LINE,
lt_note_text LIKE STANDARD TABLE OF soli WITH HEADER LINE,
lt_attachments LIKE STANDARD TABLE OF sood5 WITH HEADER LINE.
DATA: lt_objcont LIKE STANDARD TABLE OF soli WITH HEADER LINE,
lt_objhead LIKE STANDARD TABLE OF soli WITH HEADER LINE.
DATA: pdf_format LIKE STANDARD TABLE OF tline WITH HEADER LINE.
TYPES: BEGIN OF y_files,
file(60) TYPE c,
END OF y_files.
DATA: lt_files TYPE STANDARD TABLE OF y_files WITH HEADER LINE.
DATA: l_objcont LIKE soli OCCURS 0 WITH HEADER LINE.
DATA: l_objhead LIKE soli OCCURS 0 WITH HEADER LINE.
STRUCTURES
DATA: folder_id LIKE soodk,
object_id LIKE soodk,
link_folder_id LIKE soodk,
g_document LIKE sood4,
g_header_data LIKE sood2,
g_folmem_data LIKE sofm2,
g_header_data LIKE sood2,
g_receive_data LIKE soos6,
g_ref_document LIKE sood4,
g_new_parent LIKE soodk,
l_folder_id LIKE sofdk,
v_email(50).
DATA: hd_dat like sood1.
VARIABLES
DATA: client LIKE tst01-dclient,
name LIKE tst01-dname,
objtype LIKE rststype-type,
type LIKE rststype-type.
DATA: numbytes TYPE i,
arc_idx LIKE toa_dara,
pdfspoolid LIKE tsp01-rqident,
jobname LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount,
is_otf.
DATA: outbox_flag LIKE sonv-flag VALUE X,
store_flag LIKE sonv-flag,
delete_flag LIKE sonv-flag,
owner LIKE soud-usrnam,
on LIKE sonv-flag VALUE X,
sent_to_all LIKE sonv-flag,
g_authority LIKE sofa-usracc,
w_objdes LIKE sood4-objdes.
DATA: c_file LIKE rlgrap-filename,
n_spool(6) TYPE n.
DATA: cancel.
DATA: desired_type LIKE sood-objtp,
real_type LIKE sood-objtp,
attach_type LIKE sood-objtp,
otf LIKE sood-objtp VALUE OTF, SAPscript Ausgabeformat
ali LIKE sood-objtp VALUE ALI. ABAP lists
CONSTANTS
CONSTANTS: ou_fol LIKE sofh-folrg VALUE O,
c_objtp LIKE g_document-objtp VALUE RAW,
c_file_ext LIKE g_document-file_ext VALUE TXT.
=================================================================================
z_send_email_fax2
FUNCTION z_faian_mail_fax2.
Interface local:
* IMPORTING
* REFERENCE(SRC_SPOOLID) LIKE TSP01-RQIDENT
* REFERENCE(FAX_MAIL_NUMBER) TYPE SO_NAME
* REFERENCE(HEADER_MAIL) TYPE SO_OBJ_DES
* REFERENCE(OBJECT_TYPE) TYPE SO_ESCAPE
* TABLES
* LT_BODY_EMAIL STRUCTURE SOLI
* EXCEPTIONS
* ERR_NO_ABAP_SPOOLJOB
Fist part: Verify if the spool really exists
SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.
IF sy-subrc NE 0.
RAISE err_no_abap_spooljob. doesnt exist
ELSE.
client = tsp01-rqclient.
name = tsp01-rqo1name.
CALL FUNCTION RSTS_GET_ATTRIBUTES
EXPORTING
authority = SP01′
client = client
name = name
part = 1
IMPORTING
type = type
objtype = objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF objtype(3) = OTF.
desired_type = otf.
ELSE.
desired_type = ali.
ENDIF.
CALL FUNCTION RSPO_RETURN_SPOOLJOB
EXPORTING
rqident = src_spoolid
desired_type = desired_type
IMPORTING
real_type = real_type
TABLES
buffer = l_objcont
EXCEPTIONS
no_such_job = 14
type_no_match = 94
job_contains_no_data = 54
no_permission = 21
can_not_access = 21
read_error = 54.
IF sy-subrc EQ 0.
attach_type = real_type.
ENDIF.
CALL FUNCTION SO_FOLDER_ROOT_ID_GET
EXPORTING
owner = sy-uname
region = ou_fol
IMPORTING
folder_id = l_folder_id
EXCEPTIONS
OTHERS = 5.
fill out informations about the header of the email
CLEAR: g_document.
g_document-foltp = l_folder_id-foltp.
g_document-folyr = l_folder_id-folyr.
g_document-folno = l_folder_id-folno.
g_document-objtp = c_objtp.
g_document-objdes = header_mail.
g_document-file_ext = c_file_ext.
g_header_data-objdes = header_mail.
CALL FUNCTION SO_DOCUMENT_REPOSITORY_MANAGER
EXPORTING
method = SAVE
office_user = sy-uname
IMPORTING
authority = g_authority
TABLES
objcont = lt_body_email
attachments = lt_attachments
CHANGING
document = g_document
header_data = g_header_data
EXCEPTIONS
OTHERS = 1.
folder_id-objtp = l_folder_id-foltp.
folder_id-objyr = l_folder_id-folyr.
folder_id-objno = l_folder_id-folno.
object_id-objtp = c_objtp.
object_id-objyr = g_document-objyr.
object_id-objno = g_document-objno.
link_folder_id-objtp = l_folder_id-foltp.
link_folder_id-objyr = l_folder_id-folyr.
link_folder_id-objno = l_folder_id-folno.
REFRESH lt_rec_tab.
CLEAR lt_rec_tab.
lt_rec_tab-sel = X.
lt_rec_tab-recesc = object_type. This field for FAX/MAIL
lt_rec_tab-recnam = U-.
lt_rec_tab-deliver = X.
lt_rec_tab-not_deli = X.
lt_rec_tab-read = X.
lt_rec_tab-mailstatus = E.
lt_rec_tab-adr_name = fax_mail_number.
lt_rec_tab-sortfield = fax_mail_number.
lt_rec_tab-recextnam = fax_mail_number.
lt_rec_tab-sortclass = 5′.
APPEND lt_rec_tab.
lt_rec_tab-recextnam = fax_mail_number.
lt_rec_tab-recesc = object_type.
lt_rec_tab-sndart = INT.
lt_rec_tab-sndpri = 1.
APPEND lt_rec_tab.
lt_files-file = c_file.
APPEND lt_files.
begin of insertion by faianf01
hd_dat-objdes = header_mail.
CALL FUNCTION SO_ATTACHMENT_INSERT
EXPORTING
object_id = object_id
attach_type = attach_type
object_hd_change = hd_dat
owner = sy-uname
TABLES
objcont = l_objcont
objhead = l_objhead
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
object_type_not_exist = 17
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
x_error = 1000.
IF sy-subrc > 0.
ENDIF.
end of insertion by faianf01
send email from SAPOFFICE
CALL FUNCTION SO_OBJECT_SEND
EXPORTING
folder_id = folder_id
object_id = object_id
outbox_flag = outbox_flag
link_folder_id = link_folder_id
owner = sy-uname
check_send_authority = X
TABLES
receivers = lt_rec_tab
note_text = lt_note_text
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
component_not_available = 1
folder_no_authorization = 5
folder_not_exist = 6
forwarder_not_exist = 8
object_no_authorization = 13
object_not_exist = 14
object_not_sent = 15
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
too_much_receivers = 73
user_not_exist = 35.
ENDIF.
ENDFUNCTION.
=================================================================================
z_send_email_fax
FUNCTION ZCBFS_SEND_MAIL.
Interface local:
* IMPORTING
* REFERENCE(SRC_SPOOLID) LIKE TSP01-RQIDENT
* REFERENCE(HEADER_MAIL) TYPE SO_OBJ_DES
* TABLES
* LIST_FAX_MAIL_NUMBER STRUCTURE SOLI
* EXCEPTIONS
* ERR_NO_ABAP_SPOOLJOB
DATA: vg_achou(1) TYPE n.
Fist part: Verify if the spool really exists
vg_achou = 1.
DO 60 TIMES.
SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.
IF sy-subrc IS INITIAL.
CLEAR vg_achou.
EXIT.
ELSE.
WAIT UP TO 1 SECONDS.
ENDIF.
ENDDO.
IF vg_achou = 1.
RAISE err_no_abap_spooljob. doesnt exist
ENDIF.
client = tsp01-rqclient.
name = tsp01-rqo1name.
CALL FUNCTION RSTS_GET_ATTRIBUTES
EXPORTING
authority = SP01′
client = client
name = name
part = 1
IMPORTING
type = type
objtype = objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF objtype(3) = OTF.
desired_type = otf.
ELSE.
desired_type = ali.
ENDIF.
CALL FUNCTION RSPO_RETURN_SPOOLJOB
EXPORTING
rqident = src_spoolid
desired_type = desired_type
IMPORTING
real_type = real_type
TABLES
buffer = l_objcont
EXCEPTIONS
no_such_job = 14
type_no_match = 94
job_contains_no_data = 54
no_permission = 21
can_not_access = 21
read_error = 54.
IF sy-subrc EQ 0.
attach_type = real_type.
ENDIF.
CALL FUNCTION SO_FOLDER_ROOT_ID_GET
EXPORTING
owner = sy-uname
region = ou_fol
IMPORTING
folder_id = l_folder_id
EXCEPTIONS
OTHERS = 5.
fill out informations about the header of the email
CLEAR: g_document.
g_document-foltp = l_folder_id-foltp.
g_document-folyr = l_folder_id-folyr.
g_document-folno = l_folder_id-folno.
g_document-objtp = c_objtp.
g_document-objdes = header_mail.
g_document-file_ext = c_file_ext.
g_header_data-objdes = header_mail.
CALL FUNCTION SO_DOCUMENT_REPOSITORY_MANAGER
EXPORTING
method = SAVE
office_user = sy-uname
IMPORTING
authority = g_authority
TABLES
attachments = lt_attachments
CHANGING
document = g_document
header_data = g_header_data
EXCEPTIONS
OTHERS = 1.
folder_id-objtp = l_folder_id-foltp.
folder_id-objyr = l_folder_id-folyr.
folder_id-objno = l_folder_id-folno.
object_id-objtp = c_objtp.
object_id-objyr = g_document-objyr.
object_id-objno = g_document-objno.
link_folder_id-objtp = l_folder_id-foltp.
link_folder_id-objyr = l_folder_id-folyr.
link_folder_id-objno = l_folder_id-folno.
REFRESH lt_rec_tab.
LOOP AT LIST_FAX_MAIL_NUMBER.
lt_rec_tab-recextnam = LIST_FAX_MAIL_NUMBER-LINE.
lt_rec_tab-recesc = U.
lt_rec_tab-sndart = INT.
lt_rec_tab-sndpri = 1.
APPEND lt_rec_tab.
ENDLOOP.
lt_files-file = c_file.
APPEND lt_files.
hd_dat-objdes = header_mail.
CALL FUNCTION SO_ATTACHMENT_INSERT
EXPORTING
object_id = object_id
attach_type = attach_type
object_hd_change = hd_dat
owner = sy-uname
TABLES
objcont = l_objcont
objhead = l_objhead
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
object_type_not_exist = 17
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
x_error = 1000.
IF sy-subrc > 0.
ENDIF.
send email from SAPOFFICE
CALL FUNCTION SO_OBJECT_SEND
EXPORTING
folder_id = folder_id
object_id = object_id
outbox_flag = outbox_flag
link_folder_id = link_folder_id
owner = sy-uname
TABLES
receivers = lt_rec_tab
note_text = lt_note_text
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
component_not_available = 1
folder_no_authorization = 5
folder_not_exist = 6
forwarder_not_exist = 8
object_no_authorization = 13
object_not_exist = 14
object_not_sent = 15
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
too_much_receivers = 73
user_not_exist = 35.
ENDFUNCTION.
regards,
srinivas
<b>*reward for useful answers*</b> -
Printing to windows printer via SMB - Printing garbled text
Hi all.
I have been working on this issue for around 3 hrs this morning and finally figured it out. Thought I'd post what I did to help others with similar issues.
Here's my set up:
I have a PC with HP photosmart printer connected to it. I've a Macbook Pro that I connect to the PC via SMB protocol for file sharing. If I wanted to print from the mac to the printer I had to disconnect the printer form the PC and directly connect it to the mac. I wanted to be able to print from the Mac to the printer via the PC. Should be that hard right as I have already successfully file shared via SMB.
Well it was a little difficult. I did many a search on here and the web and eventually found the following article:
http://docs.info.apple.com/article.html?path=Mac/10.4/en/mh2231.html
So, following these steps i tried to print a single page word (office 2008 for mac) doc from the mac. Hey presto! The printer kicked into life and started...
...problem was it spewed out around 20 pages of Garbled text! I tought it might have been print jobs stacked up from the last unsuccessful attemt at doing this but no, no jobs there. Thought it might have been Word/office for mac, etc. so tried to print from Text Edit but same thing.
After hrs of screaming, F'ing & Blinding I finally figured out it was to do with what printer I had it set up on. I went into Print & Fax in System Preferences, highlighted the printer and clicked printer setup tab. In the drop down tab I selected printer model. It was set on Generic.
In the drop down list there it shows a huge selection of printers. my particular model was not there so I chose the closest thing and selected that.
After exiting all that and trying again it worked.
I'm very happy.
AdamHi iVirtual, what Mac OS are you running, Leopard (10.5.4) or Tiger (10.4.11)? Also, is your printer directly attached to your pc or is it a network printer directly on the local area network? One last question, do you have a firewall (like Trend Micro or Norton Internet Security) on your PC?
From my Mac running Leopard, I have no problem printing to a printer directly attached to my WindowsXP machine. However, I don't have the same luck from my Tiger Machines.
When I print to any networked printer (by that I mean printers directly attached to the network) from the WindowsXP machine with SP3, I always have to use the IP address. The printer.local name no longer works since I installed SP3.
simonparker, If your printer is directly attached to your PC using a USB cable, I don't think you'll be able to see it with the Bonjour Printer Wizard application. Since your printer is shared, you might check your WORKGROUP name on your PC. Something you might check is this:
Do you have a password on your user account on the PC? You'll probably need a password on your PC account. I don't think you can share anything if you don't have a password (I could be wrong, but it has never worked for me without a password).
On leopard, when I added the printer to the Mac I did this:
1) bring up System Preferences/Print&Fax
2) Press the + sign under the printer list, when the add window pops up, choose the "Windows" icon and you should see your workgroup name in the left list.
3) Choose the workgroup and it should populate with your machine name.
4) Select the machine name in the middle list and you should get a login and password dialog box.
5) Enter your PC's Username and Password.
6) You should see a list of shared printers in the right most list.
7) Select the printer and then select the driver.
Your printer should now be configured on the Mac. I know that I had to enter my PC's user name and password several times before I could print. -
Java Mapping: payload as mail attachment and dynamic file name .
Hi,
I have written this piece of java code.
The code includes XPATH for fetching dynamic filename and the copysource( in, out ) to copy the content of payload as mail attchment.
The code seems to work fine, when either of the functionality is implemented.
but when both are implemented together ie parsing for xpath then again parsing to copy payload, then it doesnt executes the latter path i.e the payload is not fetched in the attachment.
public class MailPackage implements StreamTransformation {
public void setParameter(Map map) {
public void execute(InputStream in, OutputStream out)
throws StreamTransformationException {
String mailSubject = "test mail";
String mailSender = "aaaaaaaa";
String mailReceiver = "[email protected]";
String attachmentName = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
factory.setNamespaceAware(false);
factory.setValidating(false);
try {
builder = factory.newDocumentBuilder();
Document doc = null;
doc = builder.parse(in);
String XPATH ="/*/Invoice/InvoiceHeader/InvoiceNumber/text()";
Node fieldValueNode = org.apache.xpath.XPathAPI.selectSingleNode(doc,XPATH);
System.out.print(fieldValueNode);
attachmentName = fieldValueNode.getNodeValue() +".xml";
String boundary = "--";
String mailContent = "This is a sample file";
String CRLF = "\r\n";
// create XML structure of mail package
String output ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<ns:Mail xmlns:ns=\"http://sap.com/xi/XI/Mail/30\">"
+ "<Subject>" + mailSubject + "</Subject>"
+ "<From>" + mailSender + "</From>"
+ "<To>" + mailReceiver + "</To>"
+ "<Content_Type>multipart/mixed; boundary=\"" + boundary + "\"</Content_Type>"
+ "<Content>";
out.write(output.getBytes());
// create the declaration of the MIME parts
//First part
output = "--" + boundary + CRLF
+ "Content-Type: text/plain; charset=UTF-8" + CRLF
+ "Content-Disposition: inline" + CRLF + CRLF
+ mailContent + CRLF
//Second part
+ "--" + boundary + CRLF
+ "Content-Type: application/xml; name=" + attachmentName + CRLF
+ "Content-Disposition: attachment; filename=" + attachmentName + CRLF + CRLF;
out.write(output.getBytes());
//Source is taken as attachment
copySource(in, out);
out.write("</Content></ns:Mail>".getBytes());
} catch (Exception ie) {
throw new StreamTransformationException(ie.getMessage());
protected static void copySource(InputStream in, OutputStream out)throws IOException {
byte[] bbuf = new byte[in.available()];
int bblen = in.read(bbuf);
if (!(bblen < 0)) {
String sbuf = new String(bbuf);
//replace all control characters with escape sequences
sbuf = sbuf.replaceAll("&", "&");
sbuf = sbuf.replaceAll("\"", """);
sbuf = sbuf.replaceAll("'", "'");
sbuf = sbuf.replaceAll("<", "<");
sbuf = sbuf.replaceAll(">", ">");
out.write(sbuf.getBytes());
Povide your suggestions.Hi,
This is the sample o/p that I get by opening the mail attachment using notepad.
<?xml version="1.0" encoding="UTF-8"?>
<InvoiceTransmission><InvoiceTransmissionHeader><InvoiceCreationDate>2008-12-03T00:00:00</InvoiceCreationDate><Version>2.0.2</Version></InvoiceTransmissionHeader><Invoice><InvoiceHeader><CustomerEntityID>LH</CustomerEntityID><IssuingEntityID>009140559</IssuingEntityID><InvoiceNumber>913353669</InvoiceNumber><InvoiceIssueDate>2008-12-03</InvoiceIssueDate><InvoiceType InvoiceTransactionType="OR">INV</InvoiceType><InvoiceDeliveryLocation>aaa</InvoiceDeliveryLocation><TaxInvoiceNumber>Not Applicable</TaxInvoiceNumber><InvoiceCurrencyCode>USD</InvoiceCurrencyCode><InvoiceTotalAmount>517174.63</InvoiceTotalAmount><InvoiceIDDetails InvoiceIDType="BT"><InvoiceIDVATRegistrationNumber>0000000000</InvoiceIDVATRegistrationNumber><InvoiceIDName1>aaaaaaaaaaaaaaa</InvoiceIDName1><InvoiceIDName2>bbbbbbHKG</InvoiceIDName2><InvoiceIDCity>ccccccccc ccccc</InvoiceIDCity><InvoiceIDCountryCode>HK</InvoiceIDCountryCode></InvoiceIDDetails><InvoiceIDDetails InvoiceIDType="II"><InvoiceIDVATRegistrationNumber>0000000000</InvoiceIDVATRegistrationNumber><InvoiceIDName1>eeeeeeee</InvoiceIDName1><InvoiceIDName2>PAY BY WIRE TRANSFER</InvoiceIDName2><InvoiceIDCity>fffffffffffffff, NA</InvoiceIDCity><InvoiceIDCustomField ID="1"><InvoiceIDCustomFieldDescription>Company Registration Number</InvoiceIDCustomFieldDescription><InvoiceIDCustomFieldValue>0000000000</InvoiceIDCustomFieldValue></InvoiceIDCustomField></InvoiceIDDetails></InvoiceHeader><SubInvoiceHeader><InvoiceLine><ItemNumber>001</ItemNumber><ItemQuantity><ItemQuantityType>IN</ItemQuantityType><ItemQuantityFlag>GR</ItemQuantityFlag><ItemQuantityQty>28134.000</ItemQuantityQty><ItemQuantityUOM>USG</ItemQuantityUOM></ItemQuantity><ItemQuantity><ItemQuantityType>DL</ItemQuantityType><ItemQuantityFlag>GR</ItemQuantityFlag><ItemQuantityQty>106498.775</ItemQuantityQty><ItemQuantityUOM>LT</ItemQuantityUOM></ItemQuantity><ItemDeliveryReferenceValue ItemDeliveryReferenceType="DTN">590365</ItemDeliveryReferenceValue><ItemDeliveryReferenceValue ItemDeliveryReferenceType="!
ARN">DAL
CH</ItemDeliveryReferenceValue><ItemDeliveryReferenceValue ItemDeliveryReferenceType="FNO">mmmmmmmmm</ItemDeliveryReferenceValue><ItemDeliveryLocation>pppp</ItemDeliveryLocation><ItemReferenceLocalDate
If you notice the problem is, the undesired "exclamation mark" that gets added in some fields before the actual value.
In the above case.. look at "ItemDeliveryReferenceType="! ARN">DAL"
the exclamation mark before value "ARN is unwanted, which leads to improper XML formation.
Cant figure out why is this coming.
Regards,
Faria Mithani -
Problem in displaying smartform as pdf in mail attachment
Hi Gurus,
I have generated a Smartform, converted to PDF and sent as attachment to email, upto this everything working fine.
Now the email is generated with the PDF attachment but Adobe Reader encounters an error when opening.
Error display as below mentioned
Adobe Reader could not open 'abc_X.PDF' because it is either not a supported file type or because the file has been damaged(for example, it was sent as an email attachment and wasn't correctly decoded).
The program cods as below mentioned
TYPES:BEGIN OF ty_viqmel,
qmnum TYPE viqmel-qmnum,
qmart TYPE viqmel-qmart,
objnr TYPE viqmel-objnr,
qmtxt TYPE viqmel-qmtxt,
erdat TYPE viqmel-erdat,
erzeit TYPE viqmel-erzeit,
aenam TYPE viqmel-aenam,
aufnr TYPE viqmel-aufnr,
qmdab TYPE viqmel-qmdab,
swerk TYPE viqmel-swerk,
END OF ty_viqmel.
TYPES: BEGIN OF ty_t001w,
werks TYPE werks,
name1 TYPE name1,
END OF ty_t001w.
DATA:IT_VIQMEL TYPE TABLE OF TY_VIQMEL,
WA_VIQMEL TYPE TY_VIQMEL,
IT_T001W TYPE TABLE OF TY_T001W,
WA_T001W TYPE TY_T001W,
IT_FINAL TYPE TABLE OF ZPM_T_MAINTENACE,
WA_FINAL TYPE ZPM_T_MAINTENACE.
data: it_diff like it_viqmel,
wa_diff like line of it_diff.
Smartforms data declarations
DATA: lv_fmname TYPE rs38l_fnam, "value 'ZPM_F_MAINTENANCE_REQUEST'.
w_cparam TYPE ssfctrlop ," To display smart form in arabic.
w_compop type ssfcompop,
W_bin_filesize TYPE i, " Binary File Size
w_FILE_NAME type string,
w_File_path type string,
w_FULL_PATH type string,
WA_BUFFER TYPE STRING. "To convert from 132 to 255
Internal table to hold the OTF data
DATA:
t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
Internal table to hold OTF data recd from the SMARTFORM
t_otf_from_fm TYPE ssfcrescl,
Internal table to hold the data from the FM CONVERT_OTF
T_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE.
Objects to send mail.
data:I_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
I_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
I_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
I_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
WA_OBJHEAD TYPE SOLI_TAB,
WA_DOC_CHNG TYPE SODOCCHGI1.
DATA: V_LEN_IN LIKE SOOD-OBJLEN,
I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE,
V_LEN_OUT LIKE SOOD-OBJLEN,
V_LEN_OUTN TYPE I,
V_LINES_TXT TYPE I,
V_LINES_BIN TYPE I.
START-OF-SELECTION.
SELECT QMNUM
QMART
QMTXT
ERDAT
ERZEIT
AENAM
AUFNR
QMDAB
SWERK
OBJNR
FROM VIQMEL
INTO CORRESPONDING FIELDS OF TABLE IT_VIQMEL
WHERE aufnr = SPACE
and qmdab = '00000000'
AND ( QMART EQ 'M1' OR QMART EQ 'M2' OR QMART EQ 'M3' ).
IF SY-SUBRC = 0.
sort it_viqmel by qmnum.
ENDIF.
loop at it_viqmel into wa_viqmel.
perform 72hours.
endloop.
SELECT WERKS
NAME1 FROM T001W INTO TABLE IT_T001W
FOR ALL ENTRIES IN IT_diff
WHERE WERKS = IT_diff-SWERK.
IF SY-SUBRC = 0.
LOOP AT IT_diff INTO WA_diff.
READ TABLE IT_T001W INTO WA_T001W WITH KEY WERKS = WA_diff-SWERK.
IF SY-SUBRC = 0.
WA_FINAL-QMNUM = WA_diff-QMNUM.
WA_FINAL-QMTXT = WA_diff-QMTXT.
WA_FINAL-ERDAT = WA_diff-ERDAT.
WA_FINAL-ERZEIT = WA_diff-ERZEIT.
WA_FINAL-SWERK = WA_diff-SWERK.
WA_FINAL-NAME1 = WA_T001W-NAME1.
WA_FINAL-AENAM = WA_diff-AENAM.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
ENDIF.
ENDLOOP.
ENDIF.
clear:w_cparam,w_compop.
w_cparam-langu = 'AR'.
w_cparam-getotf = 'X'.
w_cparam-no_dialog = 'X'. " Suppressing the dialog box
W_COMPOP-TDNOPREV = 'X'.
w_compop-tddest = 'LP01'.
W_COMPOP-TDPRINTER = 'PRINTER'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZPM_F_MAINTENANCE_REQUEST'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = lv_fMNAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
CALL FUNCTION lv_fmname
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = w_cparam
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = w_compop
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = t_otf_from_fm
JOB_OUTPUT_OPTIONS =
TABLES
it_final = it_final
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
t_otf[] = t_otf_from_fm-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
ARCHIVE_INDEX = ' '
COPYNUMBER = 0
ASCII_BIDI_VIS2LOG = ' '
PDF_DELETE_OTFTAB = ' '
PDF_USERNAME = ' '
IMPORTING
BIN_FILESIZE = w_bin_FILESIZE
BIN_FILE =
TABLES
otf = T_OTF
lines = T_PDF_TAB
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
LOOP AT T_PDF_TAB.
TRANSLATE T_PDF_TAB USING '~'.
CONCATENATE WA_BUFFER T_PDF_TAB INTO WA_BUFFER.
ENDLOOP.
TRANSLATE WA_BUFFER USING '~'.
DO.
I_RECORD = WA_BUFFER.
APPEND I_RECORD.
SHIFT WA_BUFFER LEFT BY 255 PLACES.
IF WA_BUFFER IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Attachment
REFRESH: I_RECLIST,
I_OBJTXT,
I_OBJBIN,
I_OBJPACK.
CLEAR WA_OBJHEAD.
I_OBJBIN[] = I_RECORD[].
Create Message Body Title and Description
I_OBJTXT = 'Maintenance Request'.
APPEND I_OBJTXT.
DESCRIBE TABLE I_OBJTXT LINES V_LINES_TXT.
READ TABLE I_OBJTXT INDEX V_LINES_TXT.
WA_DOC_CHNG-OBJ_NAME = 'ZPM_F_MAINTENANCE_REQUEST'.
*WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.
WA_DOC_CHNG-OBJ_DESCR = 'Maintenance Request'.
WA_DOC_CHNG-SENSITIVTY = 'F'.
WA_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255.
Main Text
CLEAR I_OBJPACK-TRANSF_BIN.
I_OBJPACK-HEAD_START = 1.
I_OBJPACK-HEAD_NUM = 0.
I_OBJPACK-BODY_START = 1.
I_OBJPACK-BODY_NUM = V_LINES_TXT.
I_OBJPACK-DOC_TYPE = 'RAW'.
APPEND I_OBJPACK.
Attachment (pdf-Attachment)
I_OBJPACK-TRANSF_BIN = 'X'.
I_OBJPACK-HEAD_START = 1.
I_OBJPACK-HEAD_NUM = 0.
I_OBJPACK-BODY_START = 1.
DESCRIBE TABLE I_OBJBIN LINES V_LINES_BIN.
READ TABLE I_OBJBIN INDEX V_LINES_BIN.
I_OBJPACK-DOC_SIZE = V_LINES_BIN * 255 .
I_OBJPACK-BODY_NUM = V_LINES_BIN.
I_OBJPACK-DOC_TYPE = 'PDF'.
I_OBJPACK-OBJ_NAME = 'ZPM_F_MAINTENANCE_REQUEST'.
I_OBJPACK-OBJ_DESCR = 'Maintenance Request'.
APPEND I_OBJPACK.
CLEAR I_RECLIST.
I_RECLIST-RECEIVER = '[email protected]'.
I_RECLIST-REC_TYPE = 'U'.
APPEND I_RECLIST.
ENDLOOP.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = WA_DOC_CHNG
PUT_IN_OUTBOX = 'X'
SENDER_ADDRESS = SY-UNAME
SENDER_ADDRESS_TYPE = 'B'
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL = w_sent_all
NEW_OBJECT_ID =
SENDER_ID =
tables
packing_list = I_OBJPACK
OBJECT_HEADER = WA_OBJHEAD
CONTENTS_BIN = I_OBJBIN
CONTENTS_TXT = I_OBJTXT
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
receivers = I_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
IF sy-subrc <> 0.
WRITE:/ 'Error When Sending the File', SY-SUBRC.
ELSE.
WRITE:/ 'Mail sent'.
ENDIF.
ENDIF.
ENDIF.
Please let me know what could be the problem.
Thanks in advance.
vs.sarvan.Hi Sarvan,
Post the code in code format.Check on the right side for example.
Sy-subrc = 0
Regards,
Madhu. -
Excel mail attachment in background execution
I want to send excel as mail attachment with 53 columns when exceute in background. But i_attach has 255 characters so its truncating more than 255 characters in header and values of excel.
so pls tel how to send attachment with all internal table contents.
Adding Attachment
CALL METHOD L_DOCUMENT->ADD_ATTACHMENT
EXPORTING
I_ATTACHMENT_TYPE = C_EXT
I_ATTACHMENT_SIZE = L_SIZE
I_ATTACHMENT_SUBJECT = 'Valid Standard Cost Estimate'
I_ATT_CONTENT_TEXT = I_ATTACH[].Hi,
What extension are you using? Try 'BIN' Extension and remove the size parameter.
Also add it to the HEX table, not the text one.
CALL METHOD lv_document->add_attachment
EXPORTING
i_attachment_type = 'BIN'
i_attachment_subject = lv_string
i_att_content_hex = lt_attach[]
i_attachment_header = lt_att_table[].
Thanks
Ernesto
Maybe you are looking for
-
Happy New Year, I am attempting to get Facetime on my new Mac Mini to connect to Facetime on my new iPad 32 G through my WiFi router. It rings on the iPad but after clicking on Accept, all it does is try to connect with no success. I have tried to re
-
Does iPhoto alter images when importing from camera ?(+ tip for slideshow)
I came across the following article: http://www.andrewburke.orconhosting.net.nz/mac/builtin.htm#photo The claim here is that during import iPhoto alters images in some way. The iPhoto experts, Terence OldToad, LarryHN and others, could you please com
-
SMC 4: Java Application Classes on Solaris 10 system
Dear all, after installing SMC 4.0 without any errors I try to start the Console on the Solaris 10 platform by running "es-start -c &". After put in the Login Information SMC shows this message: An error occurred loading Java application classes. Ver
-
ISE 1.1.1 login not working after install on VMWare on ESX 5.0
I did an ISE 1.1.1 installation on a VMWare with ESX 5.0. After installation I am not able to login with my credentials(username admin, password XXXX) I can ping my ISE server after initial installation but I can not ping my ISE s
-
ESS/MSS sso configure between java and abap instance
Dear Gurus, I want to configure sso between java and abap instance for ESS/MSS. I couldnt find any guide for it, could you please help me gurus ? Other question is, is there any specific role for ESS/MSS users in JAVA instance. I want to create users