cancel
Showing results for 
Search instead for 
Did you mean: 

Output type for the managed codes cut letter is hard coded

Former Member
0 Kudos

Hello,

Very Good afternoon!

I have a requirement to create new Output Types for a Smart Form.

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

The already existing Output types are hard coded as shown Below :

CONSTANTS : c_kschl_order LIKE nast-kschl

VALUE 'ZUS0',

c_kschl_order1 LIKE nast-kschl

VALUE 'ZUS1',

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

Now they do not want to use ZUS1. Insted they wnat to use New Output Types.

u2022 Remove ZUS1 as we no longer use this one.

u2022 Add ZAU0

u2022 Add ZNZ0

u2022 Add ZJP0

u2022 Add ZCN0

u2022 Add ZKR0

How to add these Output types without Hardcoding as shown ABove.

Any Suggestions will be appreciated.....

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

For reference..I will paste the code of the Program here.

Here is the code :

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

  • PROGRAM DECLARATION

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

  • PROGRAM ID Z_RVADOR01_SALES_CUT_LETTER

TABLES: vbak, "Sales Document: Header Data

vbap, "Sales Document: Item Data

vbpa, "Sales Document: Partner

vbep, "Sales Document: Schedule Line Data

kna1, "General Data in Customer Master

MARA, "Material Master

KOMK, "Communicationarea for conditions

KOMP, "Communicationarea for conditions

KOMVD, "Communicationarea for conditions

VBCO3, "Communicationarea for view

VBDKA, "Headerview

VBDPA, "Itemview

VBDPAU, "Subitemnumbers

CONF_OUT, "Configuration data

SADR, "Addresses

TVAG, "Reason for rejection

VEDKA, "Servicecontract head data

VEDPA, "Servicecontract position data

VEDKN, "Servicecontract head notice data

VEDPN, "Servicecontract pos. notice data

RISERLS, "Serialnumbers

KOMSER, "Serialnumbers for print

TVBUR, "Sales office

TVKO, "Sales organisation

ADRS, "Communicationarea for Address

FPLTDR, "billing schedules

WTAD_ADDIS_IN_SO_PRINT, "additional

WTAD_BUYING_PRINT_EXTRA_TEXT, "texts belonging to additional

adrc,

adr6,

t247.

INCLUDE RVADTABL.

INCLUDE RVDIREKT.

INCLUDE VEDADATA.

  • data for access to central address maintenance

INCLUDE SDZAVDAT.

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

TYPE-POOLS: ADDI.

DATA PRICE_PRINT_MODE(1) TYPE C. "Print-mode

DATA: RETCODE LIKE SY-SUBRC. "Returncode

DATA: REPEAT(1) TYPE C.

DATA: XSCREEN(1) TYPE C. "Output on printer or screen

DATA: BEGIN OF STEU, "Controldata for output

VDKEX(1) TYPE C,

VDPEX(1) TYPE C,

KBKEX(1) TYPE C,

KBPEX(1) TYPE C,

END OF STEU.

DATA: BEGIN OF TVBDPA OCCURS 0. "Internal table for items

INCLUDE STRUCTURE VBDPA.

DATA: END OF TVBDPA.

DATA: BEGIN OF TKOMV OCCURS 50.

INCLUDE STRUCTURE KOMV.

DATA: END OF TKOMV.

DATA: BEGIN OF TKOMVD OCCURS 50.

INCLUDE STRUCTURE KOMVD.

DATA: END OF TKOMVD.

DATA: BEGIN OF TVBDPAU OCCURS 5.

INCLUDE STRUCTURE VBDPAU.

DATA: END OF TVBDPAU.

DATA: BEGIN OF TKOMCON OCCURS 50.

INCLUDE STRUCTURE CONF_OUT.

DATA: END OF TKOMCON.

DATA: BEGIN OF TKOMSERVH OCCURS 1.

INCLUDE STRUCTURE VEDKA.

DATA: END OF TKOMSERVH.

DATA: BEGIN OF TKOMSERVP OCCURS 5.

INCLUDE STRUCTURE VEDPA.

DATA: END OF TKOMSERVP.

DATA: BEGIN OF TKOMSERVHN OCCURS 5.

INCLUDE STRUCTURE VEDKN.

DATA: END OF TKOMSERVHN.

DATA: BEGIN OF TKOMSERVPN OCCURS 5.

INCLUDE STRUCTURE VEDPN.

DATA: END OF TKOMSERVPN.

DATA: BEGIN OF TKOMSER OCCURS 5.

INCLUDE STRUCTURE RISERLS.

DATA: END OF TKOMSER.

DATA: BEGIN OF TKOMSER_PRINT OCCURS 5.

INCLUDE STRUCTURE KOMSER.

DATA: END OF TKOMSER_PRINT.

DATA: BEGIN OF TFPLTDR OCCURS 5.

INCLUDE STRUCTURE FPLTDR.

DATA: END OF TFPLTDR.

DATA: TADDI_PRINT TYPE ADDI_SO_PRINT_ITAB WITH HEADER LINE.

TYPES:BEGIN OF ty_orders ,

xblnr LIKE mkpf-xblnr, "delivery number

erfmg LIKE mseg-erfmg, "goods issue quantity

custname LIKE kna1-name1, "customer name

bstnk LIKE vbak-bstnk, "purchase order number

ean11 LIKE vbap-ean11, "upc

kdmat LIKE vbap-kdmat, "customer material code

arktx LIKE vbap-arktx, "description

csrno LIKE kna1-kunnr, "customer service rep number

spras LIKE kna1-spras, "customer language key

csrname LIKE kna1-name1, "customer service rep name

csremail LIKE adr6-smtp_addr, "csr email

csrphone LIKE kna1-telf1, "csr telephone

csrext LIKE adrc-tel_extens, "csr extension

csrfax LIKE kna1-telfx, "csr fax

total LIKE lips-lfimg, "cut quantity

ldate(18) TYPE c,

END OF ty_orders.

CONSTANTS: c_kschl_order LIKE nast-kschl

VALUE 'ZUS0',

c_kschl_order1 LIKE nast-kschl

VALUE 'ZUS1', c_parvw_shipto LIKE vbpa-parvw

VALUE 'WE',

c_parvw_csr LIKE vbpa-parvw

VALUE 'ZS',

c_eng(1) TYPE c VALUE 'E',

c_sep(1) TYPE c VALUE '/',

c_sale(25) type c VALUE 'Sales Order'.

DATA: WA_VBAK TYPE VBAK,

tbl_ord TYPE ty_orders OCCURS 0 WITH HEADER LINE,

w_csrname(30) TYPE c,

w_csrno(30) TYPE c,

w_email LIKE adr6-smtp_addr,

f_shipto_found TYPE c,

w_custname(30) TYPE c,

w_month(2),

w_ldate(18),

w_total LIKE lips-lfimg,

w_lines TYPE i VALUE 0,

f_mail(1) TYPE c,

cnt_1 TYPE i VALUE 0,

cnt_2 TYPE i VALUE 0,

tbl_otf LIKE itcoo OCCURS 0 WITH HEADER LINE,

w_type(25) TYPE c,

st_doc_data LIKE sodocchgi1,

tbl_objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,

tbl_line LIKE tline OCCURS 0 WITH HEADER LINE,

tbl_attach LIKE solisti1 OCCURS 10 WITH HEADER LINE,

tbl_objhead LIKE solisti1 OCCURS 10 WITH HEADER LINE,

tbl_proc_para LIKE soparai1 OCCURS 10 WITH HEADER LINE,

tbl_maillist LIKE somlreci1 OCCURS 10 WITH HEADER LINE,

tbl_pack_list LIKE sopcklsti1 OCCURS 10 WITH HEADER LINE,

tbl_cpo LIKE itcpo OCCURS 0 WITH HEADER LINE,"SAPscript output

" interface

tbl_cpp LIKE itcpp OCCURS 0 WITH HEADER LINE,"SAPscript output

" parameters

tbl_smtp TYPE szadr_adsmtp_line OCCURS 0 WITH HEADER LINE,

tbl_cdhdpos LIKE cdshw OCCURS 0 WITH HEADER LINE,

tbl_cdpos LIKE cdshw OCCURS 0 WITH HEADER LINE,

wrk_lines LIKE sy-tabix,

hltlines TYPE i,

off1 TYPE p,

fle1(2) TYPE p,

fle2(2) TYPE p,

htabix LIKE sy-tabix,

hfeld(500) TYPE c.

FORM ENTRY USING RETURN_CODE US_SCREEN.

if sy-tcode = 'VA01'.

IF nast-kschl = c_kschl_order.

SELECT SINGLE * FROM VBAK INTO WA_VBAK WHERE vbeln = nast-objky.

IF SY-SUBRC = 0.

CLEAR RETCODE.

XSCREEN = US_SCREEN.

PERFORM PROCESSING USING us_screen.

IF RETCODE NE 0.

RETURN_CODE = 1.

ELSE.

RETURN_CODE = 0.

ENDIF.

ELSE.

retcode = sy-subrc.

syst-msgid = 'ZVERROR'.

syst-msgno = '000'.

syst-msgty = 'E'.

syst-msgv1 = NAST-KSCHL.

  • syst-msgv1 = 'Sales Order cut letter

  • for this order already issued'.

  • syst-msgv2 = ' '.

PERFORM protocol_update.

ENDIF.

ELSE.

CLEAR retcode.

xscreen = us_screen.

PERFORM processing USING us_screen.

IF retcode NE 0.

return_code = 1.

ELSE.

return_code = 0.

ENDIF.

ENDIF.

endif.

ENDFORM.

----


  • FORM PROCESSING *

----


  • ........ *

----


FORM PROCESSING USING proc_screen.

CASE nast-kschl.

WHEN c_kschl_order.

PERFORM get_orders.

CHECK retcode = 0.

PERFORM openform USING proc_screen vbak-landtx.

CHECK retcode = 0.

PERFORM layout.

CHECK retcode = 0.

CHECK proc_screen NE 'X'.

w_type = c_sale.

PERFORM send_email USING proc_screen.

  • WHEN c_kschl_order1.

  • PERFORM get_orders.

  • CHECK retcode = 0.

  • CHECK proc_screen NE 'X'.

    • w_type = c_sale.

  • PERFORM send_email USING proc_screen.

WHEN OTHERS.

retcode = 1.

syst-msgid = 'E0'.

syst-msgno = '430'.

syst-msgty = 'E'.

PERFORM protocol_update.

ENDCASE.

IF retcode EQ 0.

syst-msgid = '69'.

syst-msgno = '254'.

syst-msgty = 'S'.

syst-msgv1 = nast-kschl.

PERFORM protocol_update.

ELSE.

syst-msgid = 'CKCC'.

syst-msgno = '036'.

syst-msgty = 'E'.

PERFORM protocol_update.

ENDIF.

ENDFORM.

----


  • FORM PROTOCOL_UPDATE *

----


  • The messages are collected for the processing protocol. *

----


FORM PROTOCOL_UPDATE.

IF xscreen EQ space.

CALL FUNCTION 'NAST_PROTOCOL_UPDATE'

EXPORTING

MSG_ARBGB = SYST-MSGID

MSG_NR = SYST-MSGNO

MSG_TY = SYST-MSGTY

MSG_V1 = SYST-MSGV1

MSG_V2 = SYST-MSGV2

MSG_V3 = SYST-MSGV3

MSG_V4 = SYST-MSGV4

EXCEPTIONS

OTHERS = 1.

ELSE.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM.

&----


*& Form get_orders

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_orders.

DATA : f_csr_found TYPE c.

SELECT SINGLE vbeln vkorg vdatu bstnk kunnr

FROM vbak

INTO (vbak-vbeln,vbak-vkorg,vbak-vdatu,vbak-bstnk,vbak-kunnr)

WHERE vbeln EQ nast-objky.

IF sy-subrc NE 0.

retcode = sy-subrc.

syst-msgid = 'VN'.

syst-msgno = '203'.

syst-msgty = 'E'.

syst-msgv1 = 'VBAK'.

syst-msgv2 = sy-subrc.

PERFORM protocol_update.

ENDIF.

SELECT vbeln posnr matnr pmatn arktx abgru kdmat werks

FROM vbap

INTO (vbap-vbeln,vbap-posnr,vbap-matnr,vbap-pmatn,

vbap-arktx,vbap-abgru,vbap-kdmat,vbap-werks)

WHERE vbeln = vbak-vbeln

AND abgru NE space "select items havng Rejection Reason

and PSTYV NE 'ZHDR'.

  • to check whether the reason for rejection was picked from the

  • managed codes tables

data: war_abgru type abgru,

w_exist type c.

clear : war_abgru, w_exist.

select single abgru from ZMAT_REJ002

into war_abgru

where vkorg = vbak-vkorg

and kunnr <> vbak-kunnr

and MATNR = vbap-matnr

and datef <= vbak-vdatu

and datet >= vbak-vdatu.

if sy-subrc <> 0.

select single abgru from ZMAT_REJ003

into war_abgru

where vkorg = vbak-vkorg

and kunnr <> vbak-kunnr

and MATNR = vbap-matnr

and datef <= vbak-vdatu

and datet >= vbak-vdatu.

if sy-subrc <> 0.

select single abgru from ZMAT_REJ001

into war_abgru

where vkorg = vbak-vkorg

and werks <> vbap-werks

and matnr = vbap-matnr

and datef <= vbak-vdatu

and datet >= vbak-vdatu.

if sy-subrc <> 0.

select single abgru from ZMAT_REJ004

into war_abgru

where vkorg = vbak-vkorg

and matnr = vbap-matnr

and datef >= vbak-vdatu

and datet <= vbak-vdatu.

if sy-subrc <> 0.

else.

w_exist = 'X'.

endif.

else.

w_exist = 'X'.

endif.

else.

w_exist = 'X'.

endif.

else.

w_exist = 'X'.

endif.

if w_exist = 'X'.

  • end for check from managed codes table

*to find the quantity fields

SELECT SINGLE wmeng bmeng

FROM vbep

INTO (vbep-wmeng,vbep-bmeng)

WHERE vbeln EQ vbap-vbeln

AND posnr EQ vbap-posnr.

*to get info about the customer

SELECT SINGLE kunnr

FROM vbpa

INTO vbpa-kunnr

WHERE vbeln EQ vbak-vbeln

AND parvw EQ c_parvw_shipto.

IF sy-subrc EQ 0.

f_shipto_found = 'X'.

SELECT SINGLE name1 spras

FROM kna1

INTO (kna1-name1,kna1-spras)

WHERE kunnr EQ vbpa-kunnr.

IF sy-subrc EQ 0.

w_custname = kna1-name1.

CLEAR kna1-name1.

ENDIF.

ENDIF.

SELECT SINGLE kunnr

FROM vbpa

INTO vbpa-kunnr

WHERE vbeln EQ vbak-vbeln

AND parvw EQ c_parvw_csr.

IF SY-SUBRC EQ 0.

f_csr_found = 'X'.

SELECT SINGLE kunnr name1 name2 adrnr

FROM kna1

INTO (kna1-kunnr,kna1-name1,kna1-name2,

kna1-adrnr)

WHERE kunnr EQ vbpa-kunnr.

IF sy-subrc EQ 0.

w_csrno = kna1-kunnr.

w_csrname = kna1-name1.

CLEAR kna1-name1.

SELECT SINGLE tel_number tel_extens fax_number

FROM adrc

INTO (adrc-tel_number,adrc-tel_extens,

adrc-fax_number)

WHERE addrnumber EQ kna1-adrnr.

CLEAR: adr6, w_email.

SELECT SINGLE * FROM adr6 WHERE addrnumber = kna1-adrnr.

IF sy-subrc = 0.

w_email = adr6-smtp_addr.

ENDIF.

ENDIF.

ENDIF.

*to get the date format in french

IF kna1-spras NE c_eng.

w_month = sy-datum+4(2).

SELECT SINGLE ltx

FROM t247

INTO t247-ltx

WHERE spras EQ kna1-spras

AND mnr EQ w_month.

CONCATENATE sy-datum+6(2)

t247-ltx

sy-datum+0(4)

INTO w_ldate

SEPARATED BY space.

ELSE.

CONCATENATE sy-datum+4(2)

sy-datum+6(2)

sy-datum+0(4)

INTO w_ldate

SEPARATED BY c_sep.

ENDIF.

w_total = vbep-wmeng - vbep-bmeng.

IF w_total GT 0.

PERFORM fill_orders.

ELSE.

IF vbap-abgru NE space.

w_total = vbep-wmeng.

PERFORM fill_orders.

ENDIF.

ENDIF.

CLEAR vbap.

endif. " check for w_exist for Managed Codes entry

ENDSELECT.

IF tbl_ord[] IS INITIAL.

retcode = 1.

syst-msgid = 'FZ'.

syst-msgno = '027'.

syst-msgty = 'E'.

PERFORM protocol_update.

ENDIF.

IF f_csr_found IS INITIAL.

syst-msgid = '8B'.

syst-msgno = '127'.

syst-msgty = 'W'.

syst-msgv1 = c_parvw_csr.

PERFORM protocol_update.

ENDIF.

IF f_shipto_found IS INITIAL.

syst-msgid = '8B'.

syst-msgno = '127'.

syst-msgty = 'W'.

syst-msgv1 = c_parvw_shipto.

PERFORM protocol_update.

ENDIF.

ENDFORM. " get_orders

&----


*& Form layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM layout.

SORT tbl_ord BY bstnk kdmat.

LOOP AT tbl_ord.

AT FIRST.

PERFORM writeform_text.

ENDAT.

PERFORM writeform.

AT LAST.

PERFORM writeform_footer.

ENDAT.

ENDLOOP.

CLEAR : cnt_1,cnt_2.

PERFORM closeform.

ENDFORM. " layout

&----


*& Form openform

&----


  • text

----


FORM openform USING us_screen us_country.

DESCRIBE TABLE tbl_ord LINES w_lines.

IF w_lines EQ 0.

retcode = '1'.

syst-msgid = 'FE'.

syst-msgno = '078'.

syst-msgty = 'E'.

PERFORM protocol_update.

ENDIF.

CHECK retcode EQ 0.

INCLUDE zrvadopfo.

ENDFORM. " openform

&----


*& Form send_email

&----


  • text

----


  • -->P_PROC_SCREEN text

----


FORM send_email USING PROC_SCREEN.

f_mail = 'X'.

PERFORM openform USING proc_screen vbak-landtx.

LOOP AT tbl_ord.

AT FIRST.

PERFORM writeform_text.

ENDAT.

PERFORM writeform.

AT LAST.

PERFORM writeform_footer.

ENDAT.

ENDLOOP.

CLEAR cnt_2.

PERFORM closeform.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF' "'ASCII'

IMPORTING

bin_filesize = st_doc_data-doc_size

TABLES

otf = tbl_otf

lines = tbl_line

EXCEPTIONS "DEVK912166

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

OTHERS = 4.

IF sy-subrc NE 0.

retcode = sy-subrc.

syst-msgid = 'OA'. "DEVK912166

syst-msgno = '186'. "DEVK912166

syst-msgty = 'E'. "DEVK912166

PERFORM protocol_update.

ENDIF.

REFRESH tbl_objtxt.

CLEAR tbl_objtxt.

CLEAR tbl_proc_para.

REFRESH tbl_proc_para.

CLEAR tbl_maillist.

REFRESH tbl_maillist.

CLEAR tbl_pack_list.

REFRESH tbl_pack_list.

st_doc_data-obj_name = 'Sales Order Cut Letter'.

st_doc_data-obj_langu = 'E'. "DEVK905849

st_doc_data-sensitivty = 'F'. "DEVK905849

st_doc_data-obj_prio = 1. "DEVK905849

CONCATENATE w_type 'Cut Letter' INTO "#EC NOTEXT

st_doc_data-obj_descr SEPARATED BY space.

DATA w_line(3) TYPE c.

PERFORM format_pdf. "DEVK905849

concatenate VBAK-VBELN '.PDF' into tbl_objhead.

  • tbl_objhead = 'Sales Order Cut Letter.PDF'.

APPEND tbl_objhead.

"DEVK905849

CLEAR wrk_lines.

DESCRIBE TABLE tbl_attach LINES wrk_lines.

  • fields needed for email

tbl_maillist-com_type = 'INT'.

tbl_maillist-receiver = w_email.

tbl_maillist-rec_type = 'U'.

APPEND tbl_maillist.

  • send email

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

STARTING NEW TASK 'MAIL'

EXPORTING

document_data = st_doc_data

document_type = 'PDF'

COMMIT_WORK = 'X' " added after ECC6.0 upgrade

TABLES

object_header = tbl_objhead

object_content = tbl_objtxt

receivers = tbl_maillist

EXCEPTIONS "DEVK912166

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 NE 0.

retcode = sy-subrc.

syst-msgid = 'ZA_G'. "DEVK912166

syst-msgno = '922'. "DEVK912166

syst-msgty = 'E'. "DEVK912166

syst-msgv1 = sy-subrc. "DEVK912166

syst-msgv2 = tbl_smtp-adsmtp-smtp_addr. "DEVK912166

PERFORM protocol_update.

syst-msgid = 'VW'.

syst-msgno = '001'.

syst-msgty = 'E'.

syst-msgv1 = 'Print successful:email Recepient Invalid'."#EC NOTEXT

PERFORM protocol_update.

ENDIF.

ENDFORM. " send_email

&----


*& Form fill_orders

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_orders.

tbl_ord-bstnk = vbak-bstnk.

tbl_ord-kdmat = vbap-kdmat.

tbl_ord-xblnr = vbak-vbeln.

tbl_ord-ean11 = vbap-pmatn.

tbl_ord-arktx = vbap-arktx.

tbl_ord-csrno = w_csrno .

tbl_ord-csremail = w_email.

tbl_ord-spras = kna1-spras .

tbl_ord-csrphone = adrc-tel_number.

tbl_ord-csrfax = adrc-fax_number.

tbl_ord-csrext = adrc-tel_extens.

tbl_ord-total = w_total.

tbl_ord-custname = w_custname.

tbl_ord-csrname = w_csrname .

tbl_ord-ldate = w_ldate.

APPEND tbl_ord.

CLEAR tbl_ord.

CLEAR w_total.

CLEAR w_ldate.

ENDFORM. " fill_orders

&----


*& Form writeform_text

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM writeform_text.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'WTEXT'

window = 'WINDOW2'

EXCEPTIONS

element = 1

window = 2.

IF sy-subrc NE 0.

retcode = sy-subrc.

syst-msgid = 'EBR'.

syst-msgno = '056'.

syst-msgty = 'E'.

syst-msgv1 = 'WTEXT'.

syst-msgv2 = 'WINDOW2'.

PERFORM protocol_update.

ENDIF.

ENDFORM. " writeform_text

&----


*& Form writeform

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM writeform.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'EMAIN'

window = 'MAIN'

EXCEPTIONS

element = 1

window = 2.

IF sy-subrc NE 0.

retcode = sy-subrc.

syst-msgid = 'EBR'.

syst-msgno = '056'.

syst-msgty = 'E'.

syst-msgv1 = 'WTEXT'.

syst-msgv2 = 'WINDOW2'.

PERFORM protocol_update.

ENDIF.

ENDFORM. " writeform

&----


*& Form writeform_footer

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM writeform_footer.

IF nast-spras = 'N'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'FOOTER'

window = 'MAIN'

EXCEPTIONS

element = 1

window = 2.

ENDIF.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'WFOOTER'

window = 'WINDOW12'

EXCEPTIONS

element = 1

window = 2.

IF sy-subrc NE 0.

retcode = sy-subrc.

syst-msgid = 'EBR'.

syst-msgno = '056'.

syst-msgty = 'E'.

syst-msgv1 = 'WFOOTER'.

syst-msgv2 = 'WINDOW12'.

PERFORM protocol_update.

ENDIF.

ENDFORM. " writeform_footer

&----


*& Form closeform

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM closeform.

CALL FUNCTION 'CLOSE_FORM'

TABLES

otfdata = tbl_otf

EXCEPTIONS

unopened = 1

bad_pageformat_for_print = 2

OTHERS = 3.

IF sy-subrc NE 0.

retcode = sy-subrc.

syst-msgid = 'PS'.

syst-msgno = '005'.

syst-msgty = 'E'.

PERFORM protocol_update.

ENDIF.

ENDFORM. " closeform

&----


*& Form format_pdf

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM format_pdf.

FIELD-SYMBOLS <fs>.

DESCRIBE TABLE tbl_line LINES hltlines.

  • DESCRIBE FIELD tbl_line LENGTH fle1 IN BYTE MODE . Defect#1579-

  • DESCRIBE FIELD tbl_objtxt LENGTH fle2 IN BYTE MODE . Defect#1579-

  • Start of Defect#1579+

DESCRIBE FIELD tbl_line LENGTH fle1 IN CHARACTER MODE.

DESCRIBE FIELD tbl_objtxt LENGTH fle2 IN CHARACTER MODE.

  • End of Defect#1579+

CLEAR tbl_objtxt.

REFRESH tbl_objtxt.

LOOP AT tbl_line.

htabix = sy-tabix.

MOVE tbl_line TO hfeld+off1.

IF htabix = hltlines.

fle1 = strlen( tbl_line ).

ENDIF.

off1 = off1 + fle1.

IF off1 GE fle2.

CLEAR tbl_objtxt.

tbl_objtxt = hfeld(fle2).

APPEND tbl_objtxt.

SHIFT hfeld BY fle2 PLACES.

off1 = off1 - fle2.

ENDIF.

IF htabix = hltlines.

IF off1 GT 0.

CLEAR tbl_objtxt.

tbl_objtxt = hfeld(off1).

APPEND tbl_objtxt.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " format_pdf

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

ANy Suggestion or help will be appreciated!

Regards,

Kittu

Edited by: Kittu on Jun 30, 2008 12:32 PM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi

Usually for creating new output types we use NACE tcode. Use this tcode, and create new output types as required. Then assign the program name which you were using already to the newly created output type.

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Julie Waller,

Very Good evening!

Thank you very much for your response!

Sometimes...I miss the basic things and start concentarcting on typical ways to fix the issue. ....which will only make my issue critical.

Hello Sathya,

Thank you for your response!

POints are rewarded..

Have a great day ahead!

Regards,

Kittu

Former Member
0 Kudos

Create a table that holds these values. and cose your program to look at these valuse. If in the future your customer needs to add back 'ZUS1' then this can be done by adding it to the table and not having to change the program.

Cheers

J