Modify SAPScript Form
Hi,
I'm new with sapscript and I would like to understand what are the steps in order to copy and modify existing SAPScript Form.
As I know a print program should be copied and assotiated with a form, but I don't know how.Please give an advice or show me an example.
BR
Stefan
Go to transaction code SE71
Go to menu option Utilities --> Copy from Client
enter standard form name and your target(custom) form name, usually we copy all the standard forms from client 000
Execute.
Go to SE71, and give your custom form name and do respective changes...
Note: if you want to modify the window position make sure you modify in the original language or try to change original language to your local language.
Close the thread once your question is answered.
Regards,
SaiRam
Similar Messages
-
SAPSCRIPT form - Text is not porperly displayed
hi all,
in my SAPSCRIPT form, I am getting a text from PERFORM stmt. in the PERFORM , the text is coming correct, but in the form , it is showing only half of the text.
the code
FORM get_text TABLES ts_intab STRUCTURE itcsy
ts_outtab STRUCTURE itcsy.
DATA: l_haul_text(500) TYPE c,
l_haul_long(250) TYPE c.
l_haul_long = l_haul_text+0(250).
LOOP AT ts_outtab.
CASE ts_outtab-name.
WHEN 'L_HAUL_LONG'.
ts_outtab-value = l_haul_long.
MODIFY ts_outtab.
ENDCASE.
ENDLOOP.
Then in the form, just display
/: PERFORM GET_TEXT IN PROGRAM
/: USING &VBDKL-VBELN&
/: CHANGING &L_HAUL_LONG&
/: ENDPERFORM
&L_HAUL_LONG&
while debugging, the text is correct till TS_OUTTAB but when it comes to the form L_HAUL_LONG, it is truncated.......what should i do..
Kindly help.
THnaksanswered
-
Addint new field to the standard sapscript form.
FOR SALES INVOICE DOCUMENT FORM PRINTING
TRANSACTION CODE: VF01
OUTPUT TYPE : FJCI
PROGRAM NAME: RVADAUS1
SAPSCRIPT FORM NAME: SD_EXPORT_FJCI
ENTRY ROUTINE: ENTRY_FJCI.
STRUCTURE USED FOR THIS OUTPUT TYPE = V55EFJCI
THE QUERY IS AS FOLLOWS:
I WANT TO ADD DATA MODE OF TRANSPORT FROM THE INVOICE DOCUMENT. THE TABLE AND FIELD IS T618-BEZEI.
SO I COPIED THE STANDARD FORM TO ZSD_EXPORT_FJCI AND THE STANDARD PROGRAM TO ZRVADAUS1.
I SUCCESSFULLY FETCHED THAT FIELD DATA.
I APPEND THE STRUCTURE 'ZAV55EFJCI' TO ADD THE ADDITIONAL T618-BEZEI FIELD.
AND WRITE MY SELECT QUERY IN THE ENTRY_FJCI FORM ROUTINE.
THE CODE IS AS FOLLOWS:
data: begin of it_mode_of_tp occurs 1,
bezei type t618t-bezei,
end of it_mode_of_tp.
select a~bezei as zzbezei into table it_mode_of_tp from t618t as a
inner join
eikp as b on aexpvz = bexpvz and aland1 = baland inner join vbrk as
c on bexnum = cexnum
where cvbeln = nast-objky and aspras = nast-spras .
loop at it_mode_of_tp.
v55efjci-zzbezei = it_mode_of_tp-bezei.
endloop.
BUT THE DATA FOR THAT IS NOT GETTING DISPLAYED.
THIS WAS THE FIRST METHOD I FOLLOWD.
THE SECOND METHOD I DID WAS AS FOLLOWS:
FORM ENTRY_FJCI.
PERFORM PROCESSING.
ENDFORM
FORM PROCESSING.
PERFORM PRINT_DOCUMENT.
ENDFORM.
FORM PRINT_DOCUMENT.
CALL FUNCTION 'RV_EXPORT_DOCUMENT_PRINT'
ENDFORM.
IN THIS FUNCTION THE DATA IS GETTING FETCHED FROM THE DATABASE TABLES AND STORED IN THE STRUCURE V55EFJCI.
SO I COPIED THAT FUNCTION.
IN THIS FUNCTION , THEIR IS A INCLUDE PROGRAM 'LV55EF11' FOR FETCHING DATA FOR ENTRY_FJCI FORM ROUTINE.
I COPIED THAT PROGRAM CODE , AND CREATED MY OWN INCLUDE PROGRAM (WHICH I AM STORING IT IN ANOTHER Z PACKAGE.)
AND WRITTEN MY ABOVE CODE IN THAT PROGRAM. BUT WHEN I DO THIS, NOITHING GETS DISPLAYED , EVEN THE PREVIOUSLY COMING DATA ALSO NOT GETTING DISPLAYED.
HOW SHOULD I PROCEED.you said you copied layout(form) SD_EXPORT_FJCI to ZSD_EXPORT_FJCI,
you updated program to fetch datat & populate v55efjci-zzbezei field.
Now
- you need to modify layout(form) ZSD_EXPORT_FJCI via SE71 to insert your field in one of the windows where it has to be printed (sap script knowledge is required here).
- you need to either modify SAP output type FJCI to use your program/layout(form) or you need to create your own output type and assign your form/program to it, and in addition to that if you define your own output type - yo have to add it to output determination procedure, to access sequences, add condition records to condition table... so it's picked up by the invoice. -
Call a function module from within a sapscript form
not being an ABAPer i have the task of changing the Invoice SAPScript form.
i have made the necessary changes - just about... but they have asked that i include the VAT Number on the Invoice....
not too bad apart from different company codes have different vat numbers...
not knowing a better way to retrieve data from table V_001_B - i am using the print program -RFKORD50, is there a better way of getting the VAT Number by company code? I figured if i could call the FM to return the value, all well and good.., they do not want the print program changed if possible so was looking at alternate methods....
or am i trying to reinvent the wheel here?thank you both! helpful answers! :o)
anyway!
i have written the program which is called from the SAPScript:
/: PERFORM GET_VATNUMBER IN PROGRAM ZFI_F140_OPERATIONS
/: USING &BKPF-BUKRS&
/: CHANGING &VATNUMBER&
CE VAT Registration No : &VATNUMBER&
REPORT zfi_f140_operations.
FORM get_vatnumber TABLES in_par STRUCTURE itcsy
out_par STRUCTURE itcsy.
DATA: lv_co_code TYPE bukrs,
lv_vat_no TYPE stceg.
READ TABLE in_par WITH KEY name = 'BKPF-BUKRS'.
MOVE in_par-value TO lv_co_code.
SELECT SINGLE stceg FROM t001
INTO lv_vat_no WHERE bukrs = lv_co_code.
out_par-name = 'VATNUMBER'.
WRITE lv_vat_no TO out_par-value.
CONDENSE out_par-value.
MODIFY out_par INDEX 1.
ENDFORM.
it is not working and i cannot work out why...
i have not been ABAPing for very long but have had a go....
any thoughts as to what i have done wrong?
or point me where i should be looking? thank you! -
How Sapscript form can be send by mail
Hello all,
I want to send a Sapscript form by mail.
I think it should first be converted to PDF form and than need to be send by mail.
I have created a z form which is a copy of standard for medruck and also have changed the standard program SAPFM06P. So I need to add functionality in z program so that i can send the sapscript form by mail.
Can any body let me know the complete process how can i do it?
ThanksHi,
Just follow the below code . I am giving the code which starts from OPEN_FORM. After that one submit program is there u can see the code.
*& Form display_layout
text
--> p1 text
<-- p2 text
FORM display_layout.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
APPLICATION = 'TX'
ARCHIVE_INDEX =
ARCHIVE_PARAMS =
device = 'PRINTER'
DIALOG = 'X'
form = 'YFIL_DUNN_01'
LANGUAGE = SY-LANGU
options = itcpo
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJECT =
RAW_DATA_INTERFACE = '*'
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
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT i_tab INTO wa_tab.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = '531'
FUNCTION = 'SET'
TYPE = 'BODY'
window = 'MAIN'
IMPORTING
pending_lines = wa_tab.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
result = itcpp
RDI_RESULT =
TABLES
OTFDATA =
EXCEPTIONS
unopened = 1
bad_pageformat_for_print = 2
send_error = 3
spool_error = 4
OTHERS = 5.
IF sy-subrc = 0.
IF ( itcpp-userexit IS INITIAL AND
NOT itcpp-tdspoolid IS INITIAL ).
p_spool = itcpp-tdspoolid.
SUBMIT yfir_mailsend_pdf_attachment WITH p_spool = p_spool
WITH p_kunnr = p_kunnr.
ENDIF.
ENDIF.
ENDFORM. " display_layout
*& Form modify_duedate
text
--> p1 text
<-- p2 text
FORM modify_duedate.
SELECT SINGLE mat_rec_no
mat_rec_date FROM yfi_matno
INTO (v_mat_rec_no, v_mat_rec_date)
WHERE vbeln = wa_tab-vbeln.
CHECK sy-subrc EQ 0.
SELECT SINGLE zterm
FROM vbrk INTO v_zterm
WHERE vbeln EQ wa_tab-vbeln.
CHECK sy-subrc EQ 0.
SELECT SINGLE zdays
FROM yfi_payment INTO v_zdays
WHERE zterm EQ v_zterm.
IF sy-subrc EQ 0.
wa_tab-zfbdt_due = ( v_mat_rec_date + v_zdays ).
wa_tab-due_days = ( sy-datum - wa_tab-zfbdt_due ).
IF wa_tab-due_days LE 0.
wa_tab-due_days = 'N/A'.
ENDIF.
IF ( wa_tab-umskz = 'A' AND wa_tab-shkzg = 'H' ).
wa_tab-zfbdt = ' '.
wa_tab-zfbdt_due = ''.
wa_tab-due_days = ''.
ENDIF.
MODIFY i_tab FROM wa_tab INDEX sy-tabix.
CLEAR: v_mat_rec_no, v_mat_rec_date, v_zterm, v_zdays.
ENDIF.
ENDFORM. " modify_duedate
SUBMIT PROGRAM :
REPORT yfir_mailsend_pdf_attachment MESSAGE-ID yf.
*& Program Name : *
& Author :
*& Creation Date : *
*& Program Type : *
*& SAP Release : *
*& Description : *
*& Transport No : *
*& Transaction : *
*& Send document with OTF/ALI attachment from spool to externalreci-
*& pient. OTF/ALI document is converted to PDF/HTML format duringthe
*& SAPconnect send process.
*& This report serves as example documentation for the function
*& modules SO_NEW_DOCUMENT_ATT_SEND_API1 and SO_DOCUMENT_SEND_API1.
*& Following this example you should be able to develop your own
*& report to send documents with all kinds of attachments.
Creation of the entry for the compressed document
*& TABLES:
TABLES : kna1,
adr6.
*& INTERNAL TABLES:
***********PDF Declaration*******
DATA: BEGIN OF i_spool OCCURS 0,
rqident LIKE tsp01-rqident,
rqo1name LIKE tsp01-rqo1name,
rqclient LIKE tsp01-rqclient,
END OF i_spool.
*& VARIABLES :
DATA: client LIKE tst01-dclient,
name LIKE tst01-dname,
objtype LIKE rststype-type,
type LIKE rststype-type.
DATA: spoolno LIKE tsp01-rqident,
download TYPE c VALUE 'X', "AS CHECKBOX DEFAULT 'X',
p_file LIKE rlgrap-filename
VALUE 'C:\Invoice.pdf', "#EC NOTEXT
otf LIKE itcoo OCCURS 100 WITH HEADER LINE,
cancel,
pdf LIKE tline OCCURS 100 WITH HEADER LINE,
doctab LIKE docs OCCURS 1 WITH HEADER LINE,
numbytes TYPE i,
arc_idx LIKE toa_dara,
pdfspoolid LIKE tsp01-rqident,
jobname LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount,
is_otf.
Data Declaration
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.
*objpack-head_start = 1.
*objbin = ' | '. APPEND objbin.
*DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.
DATA: tab_lines TYPE i,
doc_size TYPE i,
att_type LIKE soodk-objtp.
objpack-head_start = 1.
*& PARAMETERS:
PARAMETERS : p_spool LIKE tsp01-rqident NO-DISPLAY,
p_kunnr LIKE kna1-kunnr NO-DISPLAY.
*& M A I N P R O C E S S
*& START OF SELECTION.
START-OF-SELECTION.
SELECT SINGLE
adr6~addrnumber
adr6~smtp_addr
FROM adr6
INNER JOIN kna1
ON kna1~adrnr = adr6~addrnumber
INTO CORRESPONDING FIELDS OF adr6
WHERE kna1~kunnr = p_kunnr.
IF sy-subrc = 0.
Create receiver list
reclist-receiver = adr6-smtp_addr. "<-- customer address
reclist-rec_type = 'U'.
APPEND reclist.
ENDIF.
***Convert Spool request to PDF
PERFORM pdf_convert.
docdata-obj_name = 'MAIL_AEIW'.
docdata-obj_descr = 'Dunning'.
Main Text
objtxt = 'Hi,'.
APPEND objtxt.
objtxt = 'Dunning'.
APPEND objtxt.
objtxt = 'Regards'.
APPEND objtxt.
Write Packing List (Main)
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 = 'RAW'.
APPEND objpack.
Create Message Attachment
Write Packing List (Attachment)
att_type = 'PDF'.
DESCRIBE TABLE objbin LINES tab_lines.
READ TABLE objbin INDEX tab_lines.
*objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
objpack-doc_size = tab_lines * 255.
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = att_type.
objpack-obj_name = 'ATTACHMENT'.
objpack-obj_descr = 'Attached Document'.
APPEND objpack.
*check for not maintaining customer address
IF reclist IS INITIAL.
MESSAGE e000 WITH 'Please Maintain Customer e-Mail ID'.
LEAVE LIST-PROCESSING.
ELSE.
Send Message
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.
ELSE.
WRITE 'Mail sent successfully'.
ENDIF.
ENDIF.
WRITE: / 'End of Program'.
*& Form pdf_convert
text
--> p1 text
<-- p2 text
FORM pdf_convert.
DATA: date1 LIKE sy-datum,
time1 LIKE sy-uzeit,
period1 LIKE tsp01-rqcretime.
date1 = sy-datum.
time1 = sy-uzeit.
date1 = date1 - 1.
CONCATENATE date1 time1 INTO period1.
SELECT rqident
rqo1name
rqclient FROM tsp01 INTO TABLE i_spool
WHERE rqowner = sy-uname AND
rqclient = sy-mandt AND
rqident = p_spool.
IF sy-subrc <> 0.
WRITE: / 'No Spool Request created today'(003)
COLOR COL_NEGATIVE.
EXIT.
ENDIF.
SORT i_spool DESCENDING BY rqident.
READ TABLE i_spool INDEX 1.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = i_spool-rqclient
name = i_spool-rqo1name
part = 1
IMPORTING
CHARCO =
CREATER =
CREDATE =
DELDATE =
MAX_CREDATE =
MAX_DELDATE =
NON_UNIQ =
NOOF_PARTS =
RECTYP =
SIZE =
STOTYP =
type = type
objtype = objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = i_spool-rqident
no_dialog = ' '
DST_DEVICE =
PDF_DESTINATION =
IMPORTING
pdf_bytecount = numbytes
pdf_spoolid = pdfspoolid
OTF_PAGECOUNT =
btc_jobname = jobname
btc_jobcount = jobcount
TABLES
pdf = pdf
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11.
CASE sy-subrc.
WHEN 0.
WHEN 1.
WRITE: / 'Error On Spool Job'(002)
COLOR COL_NEGATIVE.
EXIT.
WHEN 2.
WRITE: / 'No Permission'(003)
COLOR COL_NEGATIVE.
EXIT.
WHEN 3.
WRITE: / 'Conversion Not Possible'(004)
COLOR COL_NEGATIVE.
EXIT.
WHEN OTHERS.
WRITE: / 'Incorrect Destination Device'(005)
COLOR COL_NEGATIVE.
EXIT.
ENDCASE.
CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
EXPORTING
line_width_src = 134
line_width_dst = 255
TABLES
content_in = pdf
content_out = objbin
EXCEPTIONS
err_line_width_src_too_long = 1
err_line_width_dst_too_long = 2
err_conv_failed = 3
OTHERS = 4.
ENDFORM. " pdf_convert -
How to do calculation to a variable in Sapscript form
Hi experts,
My question looks simple but I failed to solve it. Supposed in the Sapscript form there are two variables: &it_tab-qty1&, &it_tab-qty2&. I need to add the first variable's value to the second one, I tried as below in Sapscript form editor:
/: &it_tab-qty2& = &it_tab-qty2& + &it_tab-qty1&
But it doesn't work. Could you please tell me the syntax to do such calculation in Sapscript? I cannot modify the print program so I have to modify the Sapscript form instead.
Thanks a lot.
YuYes, you need to write an external program using SE38 to perform the calculation.
The syntax in SAPscript:
/* all the var define in the SAPscript is char string type
/: define &v1& = &it_tab-qty1&
/: define &v2& = &it_tab-qty2&
/: define &v3& = ''
/* GET_COMPNAME is the form name & Z001 is the program name
/: PERFORM GET_COMPNAME IN PROGRAM Z001
/: USING &v1&
/: USING &v2&
/: CHANGING &v3&
/: ENDPERFORM.
The syntax in program Z001 (Created by SE38):
REPORT ZFIR001.
FORM GET_COMPNAME tables in_tab structure itcsy
out_tab structure itcsy.
data : p_1 TYPE CHAR80,
p_1 TYPE CHAR80,
p_3 TYPE CHAR80.
retrieve data from the SAPscript
READ table in_tab index 1.
MOVE in_tab-value to p_1.
READ table in_tab index 2.
MOVE in_tab-value to p_1.
Write the code to convert p_1 & p_2 to numeric and perform the addition to p_3
After that convert the p_3 to char.
send data back to the SAPscript
read table out_tab index 1.
move p_3 to out_tab-value.
modify out_tab index sy-tabix.
ENDFORM. -
Asking for the current position in SAPScript Form
Hello,
is there the possibility to get the current position which is printed at that moment in SAPScript Form? Thanks.
Regards, Lars.Thanks Naimesh Patel .
Is there anyway to get the PENDING_LINES value in the script?
Because i can't modify the standard print program, i can only edit the Sapscript Form and add in some extra subroutine only.
tnx. -
Ways to get the line number in sapscript form?
Hi, all.
May I know whether that there are ways to get the line number in sapscript form?
For example, I want to get to know the certain line number in the MAIN window.
Thanks in advance.Thanks Naimesh Patel .
Is there anyway to get the PENDING_LINES value in the script?
Because i can't modify the standard print program, i can only edit the Sapscript Form and add in some extra subroutine only.
tnx. -
Sending sapscript form through Email
Hi,
I modifyed a std sapscript form for customer statement and that output i want to send to the customer through Email.So now i need a help for further what are the steps need to be do for sending that form by email.Pls be in details so that for me easy to solve this.
Thanks,
Rajendra.Hi ,
I am using the below code to send the form output by mail but it is not working for me.pls correct my code where i want to change so that i can solve my issues.
DATA: itcpo LIKE itcpo,
tab_lines LIKE sy-tabix.
Variables for EMAIL functionality
DATA: maildata LIKE sodocchgi1.
DATA: mailpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.
DATA: mailhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA: mailbin LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: mailtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: mailrec LIKE somlrec90 OCCURS 0 WITH HEADER LINE.
DATA: solisti1 LIKE solisti1 OCCURS 0 WITH HEADER LINE.
parameter: p_email1 like somlreci1-receiver .
PERFORM send_form_via_email.
FORM SEND_FORM_VIA_EMAIL *
FORM send_form_via_email.
CLEAR: maildata, mailtxt, mailbin, mailpack, mailhead, mailrec.
REFRESH: mailtxt, mailbin, mailpack, mailhead, mailrec.
Creation of the document to be sent File Name
maildata-obj_name = 'TEST'.
Mail Subject
maildata-obj_descr = 'Subject'.
Mail Contents
mailtxt-line = 'Here is your file'.
APPEND mailtxt.
Prepare Packing List
PERFORM prepare_packing_list.
Set recipient - email address here!!!
mailrec-receiver = p_email1.
mailrec-rec_type = 'U'.
APPEND mailrec.
Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = maildata
put_in_outbox = ' '
TABLES
packing_list = mailpack
object_header = mailhead
contents_bin = mailbin
contents_txt = mailtxt
receivers = mailrec
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
ENDFORM.
Form PREPARE_PACKING_LIST
FORM prepare_packing_list.
CLEAR: mailpack, mailbin, mailhead.
REFRESH: mailpack, mailbin, mailhead.
DESCRIBE TABLE mailtxt LINES tab_lines.
READ TABLE mailtxt INDEX tab_lines.
maildata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( mailtxt ).
Creation of the entry for the compressed document
CLEAR mailpack-transf_bin.
mailpack-head_start = 1.
mailpack-head_num = 0.
mailpack-body_start = 1.
mailpack-body_num = tab_lines.
mailpack-doc_type = 'RAW'.
APPEND mailpack.
Creation of the document attachment
This form gets the OTF code from the SAPscript form.
If you already have your OTF code, I believe that you may
be able to skip this form. just do the following code, looping thru
your SOLISTI1 and updating MAILBIN.
PERFORM get_otf_code.
LOOP AT solisti1.
MOVE-CORRESPONDING solisti1 TO mailbin.
APPEND mailbin.
ENDLOOP.
DESCRIBE TABLE mailbin LINES tab_lines.
mailhead = 'TEST.OTF'.
APPEND mailhead.
Creation of the entry for the compressed attachment
mailpack-transf_bin = 'X'.
mailpack-head_start = 1.
mailpack-head_num = 1.
mailpack-body_start = 1.
mailpack-body_num = tab_lines.
mailpack-doc_type = 'OTF'.
mailpack-obj_name = 'TEST'.
mailpack-obj_descr = 'Subject'.
mailpack-doc_size = tab_lines * 255.
APPEND mailpack.
ENDFORM.
Form GET_OTF_CODE
FORM get_otf_code.
DATA: BEGIN OF otf OCCURS 0.
INCLUDE STRUCTURE itcoo .
DATA: END OF otf.
DATA: itcpo LIKE itcpo.
DATA: itcpp LIKE itcpp.
CLEAR itcpo.
itcpo-tdgetotf = 'X'.
Start writing OTF code
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = 'Z2006FICSE'
language = sy-langu
options = itcpo
dialog = ' '
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'START_FORM'
EXCEPTIONS
error_message = 01
OTHERS = 02.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'MAIN'
EXCEPTIONS
error_message = 01
OTHERS = 02.
Close up Form and get OTF code
CALL FUNCTION 'END_FORM'
EXCEPTIONS
error_message = 01
OTHERS = 02.
MOVE-CORRESPONDING itcpo TO itcpp.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
result = itcpp
TABLES
otfdata = otf
EXCEPTIONS
OTHERS = 1.
Move OTF code to structure SOLI form email
CLEAR solisti1. REFRESH solisti1.
LOOP AT otf.
solisti1-line = otf.
APPEND solisti1.
ENDLOOP.
ENDFORM.
Hope i can expect the feedback soon from you guys.
Thanks,
Rajendra. -
Change in SAPScript form not reflect in old orders
Hi Expert,
I have modified the layout of a sales order SAPScript form. For newly created one, I can get the new sales order printed with new layout. But for those who already exists, even though I go to the sales order, Extra -> Output -> Header to delete the original output, and manually add the output type again, the printout are always shown with old layout. I just wonder how can I have my old sales order printed with the new layout, thanks!Kumar,
Remove and add the query into the workbook again, save the work, close and reopen. You should get it working again.
Workbook also saves the format details and does not work well sometimes. So every time you do any format changes to the query, it is advisable to remove and add back the query into the workbook.
Hope it helps
_RJA -
PMW - Payment Advice - Sapscript Form
Hi.
I need help understanding and seting up payment advice for ACH and wire transfer using PMW.
Can someone tell me where and how I need to set up/program to create payment advice after creating either ACH or
wire transfer? If possible, I want to use sapscript form (modified version of F110_IN_AVIS form) and email the form to the vendors.
I can create payment advice using F110 w/ variant for checks using classic program, but can't figure out how to do that using PMW.
Thanks in advance for your help.
JohnHi,
You need to assign the form for Payment Advice in the FBZP t-code under Form data for Payment methods in Company Code. For PMW you use PMW Workbench and the Std. SAP program it uses for Payment Advice is RFFOAVIS_FPAYM. You need to set the print variant for this program to generate the Payment Advice and also this Variant has to be used in F110 printout/ data medium.
Let me know if you need any more help.
Thanks,
Ashok -
SAPSCRIPT FORMS and THEIR PROGRAMS
When a production order is printed, a cove page is generated by a form ZPSFC_PRINT_LAY. ZPSFC_PRINT_LAY is designed to print necessary information regarding all operations, including base rate and etc. I modified ZPSFC_PRINT_LAY to include one more piece of information and now I am trying to modify its program that calls all the tables and has created the form itself. I am having difficulty in finding it. The form is not mentioned under nace. I also checked the TNAPR and it is not there. Where do I find a program for sapscript form ZPSFC_PRINT_LAY that is used for Production Order Cover Sheet? PLEASE HELP! THANKS!
Hi,
You can't find production order lay out sets link with print programs in TNAPR.
Please use T/code : OPK8 to configure the Print Shop Papers .
You have to assing your custom Print programs and sap scripts by using above transaction.
Please go through the attached link this will show you the stp-by-step procedure how to attach shop floor papers:
<a href="http://www.sap-basis-abap.com/sappp013.htm">Print Shop Papers - Configure new / existing SAP Printers</a>
Regards,
Lanka -
SAPScript form coding changed automatically during transport
Hi,
I have developped a SAPScript form in dev. and worked well.
After I had transport it to testing environnment to test it there, I found out that my SAPScript coding
was modified: some new lines code have been added replacing the original code while others have been just deleted.
When I checked the attribute of the SAPScript, I notice that these modifications have been added automatically by user DDIC!
I really do not understand how this could be.
Any idea is welcome.
Thanks,
CharasHi Charas,
Note that SAPScripts are client specific, so make sure you import your script to each and every QA client. Inform your basis that the transport is not a cross client object. So, he will import to all the QA client.
Or check with your Basis, to which QA client the transport has been imported to, go to SCC1 transcation code and copy it over to required QA client.
I guess, above information will help you to close the thread.
Regards,
SaiRam -
Dialog progam call sapscript form
I wiould like to develop a dialog program which will generate a sapscript form. when i call start from, then popup the print dialog and click preview, then it nothing show on screen and return to dialog program. How can i display the sapscript form once click print preivew. thanks!
<b>PROGRAM</b>
CLASS lcl_grupo_atividade DEFINITION.
ENDCLASS.
CLASS lcl_grupo_atividade IMPLEMENTATION.
ENDCLASS.
START-OF-SELECTION.
DATA obj TYPE REF TO lcl_grupo_atividade.
CREATE OBJECT obj.
CALL METHOD obj->main.
FORM provide_main TABLES itab STRUCTURE itcsy
...........................................otab STRUCTURE itcsy.
MOVE 'SS_TRANSACAO' TO otab-name.
MOVE obj->ss_transacao TO otab-value.
MODIFY otab INDEX 1.
MOVE 'SS_DESCRICAO' TO otab-name.
MOVE obj->ss_descricao TO otab-value.
MODIFY otab INDEX 2.
ENDFORM.
<b>SAPSCRIPT:</b>
/E MAIN
/* BOX FRAME 30 TW
/: PERFORM PROVIDE_MAIN IN PROGRAM ZPWTSOAC100
/: CHANGING &SS_TRANSACAO&
/: CHANGING &SS_DESCRICAO&
/: ENDPERFORM
P2 ,,&ss_transacao&,,&ss_descricao&
I code in this way, its works but, I think that have a better way, because I had to use public variables and code a FORM outside of my class.
What do you think? Do you think exist another way to do that?
By the way, thanks for the help, I cant find that without you. -
Is there any api to modify the form field in PDF?
Hi,
Our client need we provide the editable PDF, i.e. some form fields in the PDF report can be edit. Now we created the PDF template and merged it with the XML data definition in Jdeveloper, but when we get the final PDF report, we found that the PDF form field property is changed to "Read-Only" automatically. We make sure that in PDF template the form field is not "Read-Only", something happened when we merging the XML data and the PDF template.
Now we wonder if there is any API can help us to modify the PDF form field property, after we merge the XML data and PDF template, we can use it to change the form fields to editable, not "Read-Only".Hi,
What I need is to modify some form fields' property, I explore some web and found before I create the PDF file, I can set the security of the PDF:
Properties prop = new Properties();
prop.put("pdf-security","true");
prop.put("pdf-open-password","welcome");
So I wonder if there is one property related to the PDF form field.
Thank you.
Maybe you are looking for
-
Problème d'acquisition des données pendant un temps fixé par l'utilisateur
Bonjour la communauté Labview, j'ai un problème d'acqusition et d'écrire des données dans un fichier .lvm Comme vous le montre le fichier pdf joint, en mode manuel toute se passe bien. Lorsque j'appuie sur le bouton acquisition, un nombre de données
-
Here's a bit of a gotchya!
So isn't it great that we can install on two machines now and use one at a time of course? Anyway, I thought I would utilize the ability to share my various presets and KCs between my machines, when I discovered that I couldn't. (was trying to simply
-
IT2001 error, no time constraint reachion for infotype 2001 with tm const00
Dear Seriors, When I try to add any absence, it show the below given error message (red colour), but if I hit the enter button it allows me to mark absence. no time constraint reachion for infotype 2001 with time constraint class 001 What might be th
-
Reading 2 GB binary text files
Hello, I have several data files that are around 2.1 GB. They were recorded in binary and the vi I use to read them seems to be having trouble with files this large. When I try to read any of these files I receive the following message: "Error 1 occu
-
My motherboard went out and I got a new computer and I need to deactivate Pro X from the old system and activate it on the new system. How is this done?