Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

attaching output types to Tcode

Former Member
0 Likes
1,348

hi everyone,

can any one please tell me the settings for attaching output type which we give in NACE that must be attached to ME21N that means when ever a PO is created that must be printed or e-mailed...... what ever it may be, according to the output type given in NACE for all PO's,instead of creating message type for every PO in ME21N.

THANKS IN ADVANCE

8 REPLIES 8
Read only

Former Member
0 Likes
1,144

Hi,

Follow the steps-->

1>Go to nace

2>Select EF(Purchase Order)

3>Then Click On Output Types

4>You Can Create new Entries There by clicking The change Button-->New Entries or select existing one(NEU)

5>Click On Processing Routines.

6> Give Your Form Name There.

Dont Forget To Save it.

It will work.

Read only

0 Likes
1,144

hi sandipan,

Thanks for responding , actually i had done what u said but after that saving we have to assign that output type to a Tcode . so that when we create a PO that can be directly send to output by clicking on printpreview icon in ME21N. How to do those settings?

Read only

0 Likes
1,144

Hi srinath,

if you click on print preview of some PO one SAPScript or Smartform will be displayed.

They are internally linked with each other.

So You just do one thing

Select NEU

Double click on processing Routines,

Then if Smartform

Give <Your Smartform> in the column PDF/Smartform Form in Print Output Row

or

If it is a SAPScript Give <Your SAPScript> in the column FORM

Save it. Go to me21n. Create One PO an Click Print Preview. It will Display Your Form.

Read only

0 Likes
1,144

hi sandipan,

i had done already ,what you said .but, its not displaying when i click on print preview .generally for VA01 what we do is after configuring the NACE we will come to VA01 in extras->output->header->edit in that if u give the output type and enter all the details will come accordingly what we have done in NACE and if you u want to print the sales order go to VA02 in menu click on salesorder you will find issue-to-output and click on it,you can select what ever the output type you want. in this way you can attach the output type to a Tcode . so ,in that manner how can we do for ME21N .for ME21 we can do by going to header-> messages .but this is not working for ME21N. now can u tell me how to link the output to ME21N ,so that it is not necessary to create the output type for every PO by the user.

Read only

Former Member
0 Likes
1,144

hi check this simple code for email,

report zrich_0003 .

data: maildata like sodocchgi1.

data: mailtxt like solisti1 occurs 10 with header line.

data: mailrec like somlrec90 occurs 0 with header line.

data: list type table of abaplist with header line.

data: ascilines(1024) type c occurs 0 with header line.

data: htmllines type table of w3html with header line.

start-of-selection.

submit <zreport> exporting list to memory and return.

call function 'LIST_FROM_MEMORY'

tables

listobject = list

exceptions

not_found = 1

others = 2.

call function 'LIST_TO_ASCI'

tables

listobject = list

listasci = ascilines

exceptions

empty_list = 1

list_index_invalid = 2

others = 3.

call function 'WWW_HTML_FROM_LISTOBJECT'

tables

html = htmllines

listobject = list.

clear: maildata, mailtxt, mailrec.

refresh: mailtxt, mailrec.

maildata-obj_name = 'TEST'.

maildata-obj_descr = 'Test Subject'.

loop at htmllines.

mailtxt = htmllines.

append mailtxt.

endloop.

mailrec-receiver = 'you@yourcompany'.

mailrec-rec_type = 'U'.

append mailrec.

call function 'SO_NEW_DOCUMENT_SEND_API1'

exporting

document_data = maildata

document_type = 'HTM'

put_in_outbox = 'X'

tables

object_header = mailtxt

object_content = mailtxt

receivers = mailrec

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.

  • This will trigger the send process in SAPconnent

  • submit rsconn01 with mode = 'INT'

  • with output = 'X'

  • and return.

regards,

venkat.

Read only

Former Member
0 Likes
1,144

hi here is another example ,

1. We can send files with attachment.

However, There is some trick involved

in the binary files.

2. I have made a program (and it works fantastic)

ONLY 6 LINES FOR EMAILING

BELIEVE ME

ITS A FANTASTIC PROGRAM.

IT WILL WORK LIKE OUTLOOK EXPRESS !

3. The user is provided with

a) file name

b) email address to send mail

and it sends ANY FILE (.xls,.pdf .xyz..)

Instantaneously !

-


4. Make two things first :

1. Include with the name : ZAMI_INCLFOR_MAIL

2. Report with the name : ZAM_TEMP147 (any name will do)

3. Activate both and execute (2)

4. After providing filename, email adress

5. Code for Include :

*----


10.08.2005 Amit M - Created

Include For Mail (First Req F16)

Modification Log

*************************************

Data

*----


DATA: docdata LIKE sodocchgi1,

objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,

objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,

objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,

objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,

objhex LIKE solix OCCURS 10 WITH HEADER LINE,

reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.

DATA: tab_lines TYPE i,

doc_size TYPE i,

att_type LIKE soodk-objtp.

DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.

*----


FORM

*----


FORM ml_customize USING objname objdesc.

Clear Variables

CLEAR docdata.

REFRESH objpack.

CLEAR objpack.

REFRESH objhead.

REFRESH objtxt.

CLEAR objtxt.

REFRESH objbin.

CLEAR objbin.

REFRESH objhex.

CLEAR objhex.

REFRESH reclist.

CLEAR reclist.

REFRESH listobject.

CLEAR listobject.

CLEAR tab_lines.

CLEAR doc_size.

CLEAR att_type.

Set Variables

docdata-obj_name = objname.

docdata-obj_descr = objdesc.

ENDFORM. "ml_customize

*----


FORM

*----


FORM ml_addrecp USING preceiver prec_type.

CLEAR reclist.

reclist-receiver = preceiver.

reclist-rec_type = prec_type.

APPEND reclist.

ENDFORM. "ml_customize

*----


FORM

*----


FORM ml_addtxt USING ptxt.

CLEAR objtxt.

objtxt = ptxt.

APPEND objtxt.

ENDFORM. "ml_customize

*----


FORM

*----


FORM ml_prepare USING bypassmemory whatatt_type whatname.

IF bypassmemory = ''.

Fetch List From Memory

CALL FUNCTION 'LIST_FROM_MEMORY'

TABLES

listobject = listobject

EXCEPTIONS

OTHERS = 1.

IF sy-subrc 0.

MESSAGE ID '61' TYPE 'E' NUMBER '731'

WITH 'LIST_FROM_MEMORY'.

ENDIF.

CALL FUNCTION 'TABLE_COMPRESS'

IMPORTING

COMPRESSED_SIZE =

TABLES

in = listobject

out = objbin

EXCEPTIONS

OTHERS = 1

.

IF sy-subrc 0.

MESSAGE ID '61' TYPE 'E' NUMBER '731'

WITH 'TABLE_COMPRESS'.

ENDIF.

ENDIF.

*

-


Header Data

Already Done Thru FM

*

-


-


main Text

Already Done Thru FM

*

-


Packing Info For Text Data

*

-


DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.

docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

CLEAR objpack-transf_bin.

objpack-head_start = 1.

objpack-head_num = 0.

objpack-body_start = 1.

objpack-body_num = tab_lines.

objpack-doc_type = 'TXT'.

APPEND objpack.

*----


Packing Info Attachment

*

-


att_type = whatatt_type..

DESCRIBE TABLE objbin LINES tab_lines.

READ TABLE objbin INDEX tab_lines.

objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).

objpack-transf_bin = 'X'.

objpack-head_start = 1.

objpack-head_num = 0.

objpack-body_start = 1.

objpack-body_num = tab_lines.

objpack-doc_type = att_type.

objpack-obj_name = 'ATTACHMENT'.

objpack-obj_descr = whatname.

APPEND objpack.

-


Receiver List

Already done thru fm

*

-


ENDFORM. "ml_prepare

*----


FORM

*----


FORM ml_dosend.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = docdata

put_in_outbox = 'X'

commit_work = 'X' "used from rel. 6.10

IMPORTING

SENT_TO_ALL =

NEW_OBJECT_ID =

TABLES

packing_list = objpack

object_header = objhead

contents_bin = objbin

contents_txt = objtxt

CONTENTS_HEX = objhex

OBJECT_PARA =

object_parb =

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 'SO' TYPE 'S' NUMBER '023'

WITH docdata-obj_name.

ENDIF.

ENDFORM. "ml_customize

*----


FORM

*----


FORM ml_spooltopdf USING whatspoolid.

DATA : pdf LIKE tline OCCURS 0 WITH HEADER LINE.

Call Function

CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'

EXPORTING

src_spoolid = whatspoolid

TABLES

pdf = pdf

EXCEPTIONS

err_no_otf_spooljob = 1

OTHERS = 12.

Convert

PERFORM doconv TABLES pdf objbin.

ENDFORM. "ml_spooltopdf

*----


FORM

*----


FORM doconv TABLES

mypdf STRUCTURE tline

outbin STRUCTURE solisti1.

Data

DATA : pos TYPE i.

DATA : len TYPE i.

Loop And Put Data

LOOP AT mypdf.

pos = 255 - len.

IF pos > 134. "length of pdf_table

pos = 134.

ENDIF.

outbin+len = mypdf(pos).

len = len + pos.

IF len = 255. "length of out (contents_bin)

APPEND outbin.

CLEAR: outbin, len.

IF pos < 134.

outbin = mypdf+pos.

len = 134 - pos.

ENDIF.

ENDIF.

ENDLOOP.

IF len > 0.

APPEND outbin.

ENDIF.

ENDFORM. "doconv

CODE FOR PROGRAM

5.

REPORT zam_temp147 .

INCLUDE zami_inclfor_mail.

*----


DATA

*----


DATA : itab LIKE tline OCCURS 0 WITH HEADER LINE.

DATA : file_name TYPE string.

data : path like PCFILE-PATH.

data : extension(5) type c.

data : name(100) type c.

*----


SELECTION SCREEN

*----


PARAMETERS : receiver TYPE somlreci1-receiver lower case.

PARAMETERS : p_file LIKE rlgrap-filename

OBLIGATORY.

*----


AT SELECTION SCREEN

*----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CLEAR p_file.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

file_name = p_file.

*----


START-OF-SELECTION

*----


START-OF-SELECTION.

PERFORM ml_customize USING 'Tst' 'Testing'.

PERFORM ml_addrecp USING receiver 'U'.

PERFORM upl.

PERFORM doconv TABLES itab objbin.

PERFORM ml_prepare USING 'X' extension name.

PERFORM ml_dosend.

SUBMIT rsconn01

WITH mode EQ 'INT'

AND RETURN.

FORM

*----


FORM upl.

file_name = p_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = file_name

filetype = 'BIN'

TABLES

data_tab = itab

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

path = file_name.

CALL FUNCTION 'PC_SPLIT_COMPLETE_FILENAME'

EXPORTING

complete_filename = path

CHECK_DOS_FORMAT =

IMPORTING

DRIVE =

EXTENSION = extension

NAME = name

NAME_WITH_EXT =

PATH =

EXCEPTIONS

INVALID_DRIVE = 1

INVALID_EXTENSION = 2

INVALID_NAME = 3

INVALID_PATH = 4

OTHERS = 5

.

ENDFORM. "upl

*----


Read only

0 Likes
1,144

hi venkat,

Thanks for giving reponse. your answer is very helpful. but , i want , when i click on printpreview icon in ME21N Tcode , i must select any one of that which i selected as output types in NACE transaction.generally after giveing the output types in NACE we will assign it to ME21N Tcode .i need how to assign that output types to ME21N Tcode.

Read only

Former Member
0 Likes
1,144

Hello,

In transaction NACE when you create output condition record, set the Dispatch time to '4' (Send immediately (when saving the application)). So depending upon the medium (print, fax, EDI, ALE, Email etc.), output will be generated and sent on saving the document.

Thanks,

Venu