0% found this document useful (0 votes)
28 views

Sapscripts 160202092854

This document discusses SAP Scripts which are used to create forms and layouts in SAP. It provides examples of creating a delivery note using Form Painter transaction code SE71. It describes various SAPScript commands, functions, and transactions used to design, test, and populate forms including importing logos, defining text elements and windows, and using programs to retrieve and write data to forms. It also provides an example of converting OTF form data to a PDF format.

Uploaded by

ritesh
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Sapscripts 160202092854

This document discusses SAP Scripts which are used to create forms and layouts in SAP. It provides examples of creating a delivery note using Form Painter transaction code SE71. It describes various SAPScript commands, functions, and transactions used to design, test, and populate forms including importing logos, defining text elements and windows, and using programs to retrieve and write data to forms. It also provides an example of converting OTF form data to a PDF format.

Uploaded by

ritesh
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 95

SAP Scripts

Introduction
Script is a text composer.
Used to create the layout.
Script is Client and language dependent.
SAPScript Transaction codes
SE71- Form painter
SE72- Style maintenance
SE78- SapScript Graphics Management
SO10- Create standard text module

Ex 1 : Creating Delivery Note.


Go to Transaction code SE71 and enter the form
name and click on create.

Click on Continue.

Give the short description and save.

A location in a page is called as window.


Click on Setting->Form painter.

To Create new window click on create.

Rename the window name.

Paragraph format and Character


format :
Paragraph format : If you want to
decide font size and font style for a
paragraph then use Paragraph format .

Character format : If you want to highlight


the words then use character format.

Click on Heading Window and click on text.

To check output .
Utilities -> printing test.

Enter output device as LP01 and click on print


preview.

To Upload the LOGO .


Transaction code SE78.
Double click on Bitmap Images.
Click on Import.

Mention the File path in File name.


Enter the name for Logo.

Click on Logo window and click

Click on Insert -> Graphics.

Click on Stored on Document Server.


Enter the Logo name and Resolution.

Script or Smart forms will get the data from


program called driver program or print program .
SE38 -> Enter the program name and click on
create.
TABLES:LIKP,TVKO.
DATA:WA_SALESTYPEADRC.
PARAMETERS:P_VBELNTYPELIKP-VBELN.
START-OF-SELECTION.
PERFORMGET_DATA.
PERFORMPRINT_DATA.

FORMGET_DATA.
*GETTHEDATAFROMDELIVERYDOCHEADER
SELECTSINGLE*FROMLIKP
WHEREVBELN=P_VBELN.
*GETTHESALESORGADDRESS
SELECTSINGLE*FROMTVKO
WHEREVKORG=LIKP-VKORG.
*GETTHEDATAFROMADRESSTABLEADRC
SELECTSINGLE*FROMADRC
INTOWA_SALESWHEREADDRNUMBER=TVKO
-ADRNR.
ENDFORM."GET_DATA

FORMPRINT_DATA.
callfunction'OPEN_FORM'
EXPORTING
*APPLICATION='TX'
*ARCHIVE_INDEX=
*ARCHIVE_PARAMS=
DEVICE='PRINTER'
*DIALOG='X'
FORM='ZBILLINGNOTE'
LANGUAGE=SY-LANGU
*OPTIONS=
*MAIL_SENDER=
*MAIL_RECIPIENT=
*MAIL_APPL_OBJECT=
*RAW_DATA_INTERFACE='*'
*SPONUMIV=
*IMPORTING
*LANGUAGE=
*NEW_ARCHIVE_PARAMS=
*RESULT=
EXCEPTIONS
CANCELED=1
DEVICE=2
FORM=3
OPTIONS=4
UNCLOSED=5
MAIL_OPTIONS=6
ARCHIVE_ERROR=7
INVALID_FAX_NUMBER=8
MORE_PARAMS_NEEDED_IN_BATCH=9
SPOOL_ERROR=10
CODEPAGE=11
OTHERS=12
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

*TOCALLPARTICULARWINDOW
callfunction'WRITE_FORM'
EXPORTING
ELEMENT='SALES'
*FUNCTION='SET'
*TYPE='BODY'
WINDOW='ADD1'
*IMPORTING
*PENDING_LINES=
EXCEPTIONS
ELEMENT=1
FUNCTION=2
TYPE=3
UNOPENED=4
UNSTARTED=5
WINDOW=6
BAD_PAGEFORMAT_FOR_PRINT=7
SPOOL_ERROR=8
CODEPAGE=9
OTHERS=10
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

callfunction'CLOSE_FORM'
*IMPORTING
*RESULT=
*RDI_RESULT=
*TABLES
*OTFDATA=
EXCEPTIONS
UNOPENED=1
BAD_PAGEFORMAT_FOR_PRINT=2
SEND_ERROR=3
SPOOL_ERROR=4
CODEPAGE=5
OTHERS=6
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

ENDFORM."PRINT_DATA

Click on window ADD1 and click on text.


A group of fields will be defined as Text Element.

Execute the program.

To get Sold to party address.


TABLES:LIKP,TVKO,KNA1.
DATA:WA_SOLDTYPEADRC.
***GETTHESOLDTOPARTYADRESS
SELECTSINGLE*FROMKNA1
WHEREKUNNR=LIKP-KUNNR.
SELECTSINGLE*FROMADRC
INTOWA_SOLDWHEREADDRNUMBER=KNA1ADRNR.

callfunction'WRITE_FORM'
EXPORTING
ELEMENT='SOLD'
*FUNCTION='SET'
*TYPE='BODY'
WINDOW='ADD2'
*IMPORTING
*PENDING_LINES=
EXCEPTIONS
ELEMENT=1
FUNCTION=2
TYPE=3
UNOPENED=4
UNSTARTED=5
WINDOW=6
BAD_PAGEFORMAT_FOR_PRINT=7
SPOOL_ERROR=8
CODEPAGE=9
OTHERS=10
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

Click on window add2.

Execute the program.

Tab spaces in paragraph.

Use of Character format and bar code.

Click on Details Window and click on text.

Execute

Click on Window Col_head and click on text.

Execute.

Click on Main Window and text.

Data : itab type table of lips,


wa type lips ,

count(93) type c.

Standard Text : Request


Transaction code SO10.
Enter the Text Name and click on create.

Go to Layout, condition window and click on text.


Insert -> Text -> Standard.

Execute the program.

Click on Signature window and click on text.

Click on footer window and click on text.

Commands in Scripts
Address.
------- -----Endaddress.

Used to specify the postal address format depend


on country.
Also we can use.
Address_into_printform

Top .
EndTop.
Its acts like AT FIRST in control break statement.

Bottom.
EndBottom.
Its acts like AT LAST and ENDAT.

Protect.
EndProtect.

New-Page.

Download the script from one server and


uploading into another Server .
Transaction code SE38.
Enter standard program name and execute.

Enter the object name as Form name and Mode


as EXPORT .
Click on Execute
Mentioned the file path and name.
Click on Save.

To Upload.
SE38.

Debugging the script.


SE71
(stxh)

Utilities -> activate debugger.

Converting Script OTF data to


PDF
TYPES:BEGINOFT_MAKT,
MATNRTYPEMAKT-MATNR,
SPRASTYPEMAKT-SPRAS,
MAKTXTYPEMAKT-MAKTX,
ENDOFT_MAKT.
DATA:IT_MAKTTYPETABLEOFT_MAKT,
WA_MAKTTYPET_MAKT.
DATA:LC_OPTIONTYPEITCPO,
OTFDATATYPETABLEOFITCOO,
FILE_SIZETYPEI,
LINESTYPETABLEOFTLINE.
SELECT-OPTIONS:S_MATNRFORWA_MAKT-MATNR.

START-OF-SELECTION.
PERFORMFETCH_DATA.
PERFORMPRINT_DATA.
FORMFETCH_DATA.
SELECTMATNRSPRASMAKTXFROMMAKTINTOTA
BLEIT_MAKT
WHEREMATNRINS_MATNR.
ENDFORM."FETCH_DATA

FORMPRINT_DATA.
LC_OPTION-TDGETOTF='X'.
callfunction'OPEN_FORM'
EXPORTING
*APPLICATION='TX'
*ARCHIVE_INDEX=
*ARCHIVE_PARAMS=
DEVICE='PRINTER'
DIALOG='X'
FORM='ZCONERT'
LANGUAGE=SY-LANGU
OPTIONS=LC_OPTION
*MAIL_SENDER=
*MAIL_RECIPIENT=
*MAIL_APPL_OBJECT=
*RAW_DATA_INTERFACE='*'
*SPONUMIV=
*IMPORTING
*LANGUAGE=
*NEW_ARCHIVE_PARAMS=
*RESULT=
EXCEPTIONS
CANCELED=1
DEVICE=2
FORM=3
OPTIONS=4
UNCLOSED=5
MAIL_OPTIONS=6
ARCHIVE_ERROR=7
INVALID_FAX_NUMBER=8
MORE_PARAMS_NEEDED_IN_BATCH=9
SPOOL_ERROR=10
CODEPAGE=11
*OTHERS=12
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

callfunction'START_FORM'
EXPORTING
*ARCHIVE_INDEX=
FORM='ZCONERT'
*LANGUAGE=''
*STARTPAGE=''
*PROGRAM=''
*MAIL_APPL_OBJECT=
*IMPORTING
*LANGUAGE=
EXCEPTIONS
FORM=1
FORMAT=2
UNENDED=3
UNOPENED=4
UNUSED=5
SPOOL_ERROR=6
CODEPAGE=7
OTHERS=8
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

LOOPATIT_MAKTINTOWA_MAKT.
callfunction'WRITE_FORM'
EXPORTING
ELEMENT='MAKT'
*FUNCTION='SET'
*TYPE='BODY'
WINDOW='MAIN'
*IMPORTING
*PENDING_LINES=
EXCEPTIONS
ELEMENT=1
FUNCTION=2
TYPE=3
UNOPENED=4
UNSTARTED=5
WINDOW=6
BAD_PAGEFORMAT_FOR_PRINT=7
SPOOL_ERROR=8
CODEPAGE=9
OTHERS=10
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

ENDLOOP.

callfunction'CLOSE_FORM'
*IMPORTING
*RESULT=
*RDI_RESULT=
TABLES
OTFDATA=OTFDATA
EXCEPTIONS
UNOPENED=1
BAD_PAGEFORMAT_FOR_PRINT=2
SEND_ERROR=3
SPOOL_ERROR=4
CODEPAGE=5
OTHERS=6
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

callfunction'CONVERT_OTF'
EXPORTING
FORMAT='PDF'
*MAX_LINEWIDTH=132
*ARCHIVE_INDEX=''
*COPYNUMBER=0
*ASCII_BIDI_VIS2LOG=''
*PDF_DELETE_OTFTAB=''
*PDF_USERNAME=''
IMPORTING
BIN_FILESIZE=FILE_SIZE
*BIN_FILE=
tables
OTF=OTFDATA
LINES=LINES
EXCEPTIONS
ERR_MAX_LINEWIDTH=1
ERR_FORMAT=2
ERR_CONV_NOT_POSSIBLE=3
ERR_BAD_OTF=4
OTHERS=5
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

callfunction'GUI_DOWNLOAD'
exporting
BIN_FILESIZE=FILE_SIZE
FILENAME='C:\Users\user19\Desktop\TEST1.PDF'
FILETYPE='BIN'
*APPEND=''
*WRITE_FIELD_SEPARATOR=''
*HEADER='00'
*TRUNC_TRAILING_BLANKS=''
*WRITE_LF='X'
*COL_SELECT=''
*COL_SELECT_MASK=''
*DAT_MODE=''
*CONFIRM_OVERWRITE=''
*NO_AUTH_CHECK=''
*CODEPAGE=''
*IGNORE_CERR=ABAP_TRUE
*REPLACEMENT='#'
*WRITE_BOM=''
*TRUNC_TRAILING_BLANKS_EOL='X'
*WK1_N_FORMAT=''
*WK1_N_SIZE=''
*WK1_T_FORMAT=''
*WK1_T_SIZE=''
*WRITE_LF_AFTER_LAST_LINE=ABAP_TRUE
*SHOW_TRANSFER_STATUS=ABAP_TRUE
*IMPORTING
*FILELENGTH=
TABLES
DATA_TAB=LINES
*FIELDNAMES=
EXCEPTIONS
FILE_WRITE_ERROR=1
NO_BATCH=2
GUI_REFUSE_FILETRANSFER=3
INVALID_TYPE=4
NO_AUTHORITY=5
UNKNOWN_ERROR=6
HEADER_NOT_ALLOWED=7
SEPARATOR_NOT_ALLOWED=8
FILESIZE_NOT_ALLOWED=9
HEADER_TOO_LONG=10
DP_ERROR_CREATE=11
DP_ERROR_SEND=12
DP_ERROR_WRITE=13
UNKNOWN_DP_ERROR=14
ACCESS_DENIED=15
DP_OUT_OF_MEMORY=16
DISK_FULL=17
DP_TIMEOUT=18
FILE_NOT_FOUND=19
DATAPROVIDER_EXCEPTION=20
CONTROL_FLUSH_ERROR=21
OTHERS=22
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.
ENDFORM."PRINT_DATA

Total and SubTotal

TYPES:BEGINOFTY,
VBELNTYPEVBRP-VBELN,
POSNRTYPEVBRP-POSNR,
NETWRTYPEVBRP-NETWR,
ENDOFTY.
DATA:IT_VBRPTYPETABLEOFTY,
WA_VBRPTYPETY.
DATA:TOTALTYPEVBRP-NETWR,
SUB_TOTALTYPEVBRP-NETWR.
SELECT-OPTIONS:S_VBELNFORWA_VBRP-VBELN.

START-OF-SELECTION.
PERFORMFETCH_DATA.
PERFORMPRINT_DATA.
FORMFETCH_DATA.
SELECTVBELNPOSNRNETWRFROMVBRPINTO
TABLEIT_VBRP
WHEREVBELNINS_VBELN.
ENDFORM.

FORMPRINT_DATA.
callfunction'OPEN_FORM'
EXPORTING
*APPLICATION='TX'
*ARCHIVE_INDEX=
*ARCHIVE_PARAMS=
DEVICE='PRINTER'
*DIALOG='X'
FORM='ZSUBNDTOT'
*LANGUAGE=SY-LANGU
*OPTIONS=
*MAIL_SENDER=
*MAIL_RECIPIENT=
*MAIL_APPL_OBJECT=
*RAW_DATA_INTERFACE='*'
*SPONUMIV=
*IMPORTING
*LANGUAGE=
*NEW_ARCHIVE_PARAMS=
*RESULT=
*EXCEPTIONS
*CANCELED=1
*DEVICE=2
*FORM=3
*OPTIONS=4
*UNCLOSED=5
*MAIL_OPTIONS=6
*ARCHIVE_ERROR=7
*INVALID_FAX_NUMBER=8
*MORE_PARAMS_NEEDED_IN_BATCH=9
*SPOOL_ERROR=10
*CODEPAGE=11
*OTHERS=12
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

LOOPATIT_VBRPINTOWA_VBRP.
callfunction'WRITE_FORM'
EXPORTING
ELEMENT='TEXT_ALL'
*FUNCTION='SET'
*TYPE='BODY'
WINDOW='MAIN'
*IMPORTING
*PENDING_LINES=
*EXCEPTIONS
*ELEMENT=1
*FUNCTION=2
*TYPE=3
*UNOPENED=4
*UNSTARTED=5
*WINDOW=6
*BAD_PAGEFORMAT_FOR_PRINT=7
*SPOOL_ERROR=8
*CODEPAGE=9
*OTHERS=10
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.
TOTAL=TOTAL+WA_VBRP-NETWR.
SUB_TOTAL=SUB_TOTAL+WA_VBRP-NETWR.

ATENDOFVBELN.
callfunction'WRITE_FORM'
EXPORTING
ELEMENT='TEXT_SUB'
*FUNCTION='SET'
*TYPE='BODY'
WINDOW='MAIN'
*IMPORTING
*PENDING_LINES=
*EXCEPTIONS
*ELEMENT=1
*FUNCTION=2
*TYPE=3
*UNOPENED=4
*UNSTARTED=5
*WINDOW=6
*BAD_PAGEFORMAT_FOR_PRINT=7
*SPOOL_ERROR=8
*CODEPAGE=9
*OTHERS=10
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.
CLEARSUB_TOTAL.
ENDAT.

CLEARWA_VBRP.
ENDLOOP.

callfunction'WRITE_FORM'
EXPORTING
ELEMENT='TEXT_TOTAL'
*FUNCTION='SET'
*TYPE='BODY'
WINDOW='MAIN'
*IMPORTING
*PENDING_LINES=
*EXCEPTIONS
*ELEMENT=1
*FUNCTION=2
*TYPE=3
*UNOPENED=4
*UNSTARTED=5
*WINDOW=6
*BAD_PAGEFORMAT_FOR_PRINT=7
*SPOOL_ERROR=8
*CODEPAGE=9
*OTHERS=10
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.
callfunction'CLOSE_FORM'
*IMPORTING
*RESULT=
*RDI_RESULT=
*TABLES
*OTFDATA=
*EXCEPTIONS
*UNOPENED=1
*BAD_PAGEFORMAT_FOR_PRINT=2
*SEND_ERROR=3
*SPOOL_ERROR=4
*CODEPAGE=5
*OTHERS=6
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

ENDFORM."P

Uses of FM: CONTROL_FORM in SAP


Script
TYPES:BEGINOFT_MAT,
MATNRTYPEMAKT-MATNR,
SPRASTYPEMAKT-SPRAS,
MAKTXTYPEMAKT-MAKTX,
ENDOFT_MAT.
DATA:IT_MAKTTYPETABLEOFT_MAT,
WA_MAKTTYPET_MAT.
DATA:INTYPEI.
SELECT-OPTIONS:S_MATNRFORWA_MAKTMATNR.

START-OF-SELECTION.
PERFORMFETCH_DATA.
PERFORMPRINT_PAGE.
FORMFETCH_DATA.
SELECTMATNRSPRASMAKTXFROMMAKTINTOT
ABLEIT_MAKT
WHEREMATNRINS_MATNR.
ENDFORM."FETCH_DATA

FORMPRINT_PAGE.
callfunction'OPEN_FORM'
EXPORTING
*APPLICATION='TX'
*ARCHIVE_INDEX=
*ARCHIVE_PARAMS=
DEVICE='PRINTER'
*DIALOG='X'
FORM='ZCONTROL'
*LANGUAGE=SY-LANGU
*OPTIONS=
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

LOOPATIT_MAKTINTOWA_MAKT.
IN=IN+1.
callfunction'WRITE_FORM'
EXPORTING
ELEMENT='MATA'
*FUNCTION='SET'
TYPE='BODY'
WINDOW='MAIN'
*IMPORTING
*PENDING_LINES=
*EXCEPTIONS
*ELEMENT=1
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.


IFIN=10.
callfunction'CONTROL_FORM'
exporting
COMMAND='NEW-PAGE'
*EXCEPTIONS
*UNOPENED=1
*UNSTARTED=2
*OTHERS=3
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.
CLEARIN.
ENDIF.

ENDLOOP.

callfunction'CLOSE_FORM'
*IMPORTING
*RESULT=
*RDI_RESULT=
*TABLES
*OTFDATA=
*EXCEPTIONS
*UNOPENED=1
*BAD_PAGEFORMAT_FOR_PRINT=2
*SEND_ERROR=3
*SPOOL_ERROR=4
*CODEPAGE=5
*OTHERS=6
.
ifSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
endif.

ENDFORM."PRINT_PAGE

You might also like