Structure of SAP Script.....
Hi,
What is the structure of SAP SCRIPT..... If anybody knows help me....
Thanx in adv,
Regards,
<b>SureshKumar.V</b>
Hi,
Check the links for info on SAPSCRIPT structures -
BAPI Tutorial
Re: Sapscript
Re: Sapscript
Re: sapscript: how to align empty fields?
Re: Addition of new fields to SAP script
Re: scripts
Re: scripts
Regards,
Amit
Reward all helpful replies.
Similar Messages
-
BI 7 : Command to export a table structure of SAP R/3 into a script/text ?
Hi All.
Greetings.
Am New to SAP R/3 system. And request help.
We are trying to pull data from SAP R/3 thro Bussiness Objects Data Services into Oracle.
For now : we create a target oracle table looking at the table structure of SAP R/3 from SE 11.
In BODS, We then do the query transformation, and use the oracle target table created by us manually.
This works absolutely fine.
We would like to know the command by which we could export the table structure of any existing table
in SAP R/3 into a script / or to text file,
which we could use to create the same table structure in oracle.
Rather than manually typing some 200 field names for each tables.
Can anyone advise on this.
Thanks
InduHello,
The problem is caused due to the spaces in your directories
C:\SAP Dumps\Core Release SR1 Export_CD1_51019634/DB/ADA/DBSIZE.XML
Replace the spaces with underscores and restart the installation from from scratch.
Cheers
Bert -
521
- Heading for trans. w/out sp.G/L indicators (item sorting method 2)-
Transactions without special G/L indicators
522
- Heading for trans. with sp.G/L indicators (item sorting method 2)-
&T074T-LTEXT&
523
- Heading for open item list of line items -
&ULINE(71)&
<K>Invoice No,,Reference.,,Inv.Date,, Due date,,,,
Balance</>
&ULINE(71)&
PERFORM GET_DATE IN PROGRAM ZREPORT
USING &BSID-BELNR&
CHANGING &S_DATE&
ENDPERFORM.
530
- Line items Customer open items -
&BSID-BELNR&,,&RF140-BELEGNUM&,,&BSID-BLDAT&,,&S_DATE&,,
FORM get_date tables
int_cond structure itcsy
outt_cond structure itcsy.
BREAK SNAGI.
tables : bseg.
data : w_belnr type ITCSY-value.
DATA due_date TYPE rfpos-faedt.
READ TABLE OUTT_COND WITH KEY name = 'S_DATE'.
IF sy-subrc = 0.
outt_cond-value = S_itab11.
MODIFY outt_cond INDEX sy-tabix.
ENDIF.
SELECT SINGLE
shkzg zfbdt zbd1t zbd2t zbd3t rebzg
FROM bseg
INTO CORRESPONDING FIELDS OF bseg
WHERE
*bukrs = bukrs AND
belnr = int_cond-value.
*AND vbeln = belnr.
CALL FUNCTION 'NET_DUE_DATE_GET'
EXPORTING
i_zfbdt = bseg-zfbdt
i_zbd1t = bseg-zbd1t
i_zbd2t = bseg-zbd2t
i_zbd3t = bseg-zbd3t
i_shkzg = bseg-shkzg
i_rebzg = bseg-rebzg
I_KOART = 'D'
IMPORTING
e_faedt = due_date.
outt_cond-value = due_date.
MODIFY outt_cond INDEX sy-tabix.
ENDFORM.
Now the problem is that,it is int_cond-value is always picking up the first invoice number.
and the net due date is always same for all invoices..?
should I loop in the sap script or in the form..?Solved my self.
just placing the perform and endform in 530 -
Missing fields in the output while using SAP SCRIPT
Hi,
I am working on an issue where we are using F110 to print some checks, and for this we have created a custom sap script and we are using a std driver program RFFOUS_C, we have also maintianed a custom subroutine pool ZRFFOUS which will retrieve the missing data for the sap script which was not there in the std. program. Now we have applied a SP to our system and since then we are having a problem...when we are printing the chechks its missing some fields.
Surpisingly, it is happening for all scripts like Dunning, invoice......
These scripts are working good in production which is not applied patches.
I have tried in all ways, did debug, data is there in tables and scripts are exactly same as in production.
Could you please share any ideas regarding this? What would be the effect of patches?
Thanks
ShaHi ,
I think u r printing the Check through the Tr Code F110.
In that program u r using the Standard Driver Program RFFOUS_C and u create a New Sap script.
and also u also mantained the custom subroutine pool ZRFFOUS . when ru giving printing u are not able to print some field.
In this case when u using the Standard driver Program RFFOUS_C in that program there is a Include Progran * RFFORI01---- check ,
in this program it is calling the Standard Form (F110PRENUM_CHCK) i--e t042e-zforn .as shown in the below and it is calling the function module 'OPEN_FORM'._
Please copy the form asZF110_PRENUM_CHCK and and do the changes in that form . and we need to maintained the Form as Company code level -- and it will shown this Table T042E (Company Code-Specific Specifications for Payment Methods)
Please go to Transaction Code FBZP and U can maitained the New Sap Script Form Company Code Level.
one thing while u calling your new subroutine pool ZRFFOUS Please call this subroutine in your Sap Script form then only u can see all values in your Check. and Actvate the Sap script .
Like U can call your new subroutine ZRFFOUS in your New Sap script Program.
/E CHECK
/: PERFORM XXXXXXX IN PROGRAM XXXXXX''
/: PERFORM CHECK_NAME IN PROGRAM ZRFFOUS
/: USING &XXXXXXX&
/: CHANGING &XXXXXX&
/: ENDPERFORM
In the subroutine pool ZRFFOUS u have to call as
FORM CHECK_NAME TABLES t_data_in STRUCTURE itcsy
t_data_out STRUCTURE itcsy.
xxxxx
xxxxx
xxxxx
ENDFORM.
In this case when u using the Standard driver Program RFFOUS_C in that program there is a Include Progran * RFFORI01---- check ,
in this program it is calling the Standard Form (F110_PRENUM_CHCK) i--e t042e-zforn .
open check form
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = t042e-zforn
device = 'PRINTER'
language = t001-spras
options = itcpo
dialog = space
EXCEPTIONS
form = 1.
IF sy-subrc EQ 1. "abend:
IF sy-batch EQ space. "form is not active
MESSAGE a069 WITH t042e-zforn.
ELSE.
MESSAGE s069 WITH t042e-zforn.
MESSAGE s094.
STOP.
ENDIF.
ENDIF.
I thing it will help u to solve this issue.
Thanks.
Gagan -
SAP SCRIPT Header text and Item text not printing in customized PO
Hello Experts,
I have copied the standard MEDRUCK to ZMEDRUCK and customized the form according to the requirement.
I want to print the header text and Item text in my form.
For Header text I have used :
/: INCLUDE &EKKO-EBELN& OBJECT EKKO ID F01
Problem 1: The text what I enter in header text is flowing only when I hit on print preview without saving the form. Once I save the SAP SCRIPT and click on print preview the field is appearing blank. I also tried to print the form, but the field is appearing blank even on the print out.
Problem 2: For item text the field is concatenation of EBELN & EBELP. Can anyone suggest me how to concatenate and fetch the text in item text.Hi,
Im getting an error in my subroutine pool for i_xtline which is to fetch ITEM TEXT., It says its not a in any internal table nor defined as data. How can I proceed further. I have pasted my code below. Please check and revert ASAP
PROGRAM ZMEDRUCK_SUBP1.
TABLES: EKPO, EKKO.
FORM fetch_table_data TABLES in_tab STRUCTURE itcsy
out_tab STRUCTURE itcsy.
data xname like THEAD-TDNAME.
data i_xtline like xtline.
clear i_xtline.
refresh i_xtline.
CONCATENATE EKPO-ebeln EKPO-ebelp INTO v_item_text.
MOVE v_item_text to ITEMTXT.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
id = F01
language = EN
name = ITEMTXT
object = EKPO
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
tables
lines = i_xtline
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 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. -
Calculation of values in a dunning form (SAP Script)
Hi Experts!
I want to add values to a sum (dunning-amount + dunning-fee + interest) in a dunning form (SAP Script; Z150_DUNN_02).Therefore I'm using a subroutine (Z_FI_KX_DUNN_02_INTEREST) to summarize. Problem is the format of the output-field &Z_FAEBT&. It's not similar to field &MHNK-FAEBT& which was formerly printed (without calculation of interest and dunning-fees.
/: DEFINE &Z_FAEHW& := &MHNK-FAEHW&
/: DEFINE &Z_ZINHW& := &MHNK-ZINHW&
/: DEFINE &Z_MHNGH& := &MHNK-MHNGH&
/: DEFINE &Z_FAEBT& := &MHNK-FAEBT&
/: PERFORM ZFAEBT IN PROGRAM Z_FI_KX_DUNN_02_INTEREST
/: USING &Z_FAEHW&
/: USING &Z_ZINHW&
/: USING &Z_MHNGH&
/: CHANGING &Z_FAEBT&
/: ENDPERFORM
/: ENDIF
A3 &MHNK-WAERS& &Z_FAEBT(C)&
It would be fine to get a hint how to format the field &Z_FAEBT& correctly. Must be done in the subroutine Z_FI_KX_DUNN_02_INTEREST by a special WRITE-command? Is it possible to add these values only in the form?
Thanks for support!
Regards, Berndhi!
I defined the field like you said! After moving this field to a numeric field to add the different amounts the
following error occurred:
Runtime errors CONVT_NO_NUMBER
Exception CX_SY_CONVERSION_NO_NUMBER
Occurred on 16.06.2009 at 15:15:25
Unable to interpret " 1.316,59" as a number.
Definition:
FORM zfaebt TABLES in_par STRUCTURE itcsy
out_par STRUCTURE itcsy.
TABLES: mhnk.
DATA: z_faehw_num LIKE mhnk-faehw,
z_zinhw_num LIKE mhnk-zinhw,
z_mhngh_num LIKE mhnk-mhngh,
z_faebt_num LIKE mhnk-faebt.
DATA: z_faehw TYPE string,
z_zinhw TYPE string,
z_mhngh TYPE string,
z_faebt TYPE string.
statement:
READ TABLE in_par WITH KEY 'Z_FAEHW'.
CHECK sy-subrc = 0.
z_faehw = in_par-value.
z_faehw_num = z_faehw.
I suppose a type-conflict.
Regard, Bernd -
Hi Experts,
I am trying to convert a script to pdf data.
In the open_form I set getotf = 'X' and in the close form , i get the OTf data.
I convert this otf to pdf data.
In the pdf output, I only have the static fields and no data.Though the number of pages generated are same in the PDF output and the script.
Please help me to figure it outtry this
Here is some sample code for achieving manual conversion to the OTF format.
In case of more than 10 pages:
- Check the spool request
- Click Edit -> OTF display -> No. of OTF pages
Convert SAP Script to text:
- Display the spool request
- Then click Goto -> List display
Automatic conversion to the OTF format:
tables: tline.
data: begin of int_tline1 occurs 100.
include structure tline.
data: end of int_tline1.
call function 'OPEN_FORM'
device = 'OTF_MEM'
after CLOSE_FORM
call function 'CONVERT_OTF_MEMORY'
exporting
format = 'ASCII'
max_linewidth = 132
tables
lines = int_tline1
exceptions
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
others = 4.
write the text file to spool
loop at int_tline1.
if int_tline1-tdline = space.
skip.
else.
write:/ int_tline1-tdline.
endif.
endloop.
regards,
srinivas
<b>*reward for useful answers*</b> -
How to use perform statements in sap scripts
how to use perform statements in sap scripts . and pls send me one progam for this
thnaks
rajaHi Raja,
<b>PERFORM</b> key work is used to include subroutine in sapscript form...
But the processing is lttle bit different form the one we use in ABAP.
Here the paramters passed to form is stored in internal table of name-value table. there are two table one for inbound parameter and other for outbound parameters.
Check out the example below to see how this is used..
<b>Definition in the SAPscript form:</b>
/: PERFORM GET_BARCODE IN PROGRAM QCJPERFO
/: USING &PAGE&
/: USING &NEXTPAGE&
/: CHANGING &BARCODE&
/: ENDPERFORM
/ &BARCODE&
<b>Coding of the calling ABAP program:</b>
REPORT QCJPERFO.
FORM GET_BARCODE TABLES IN_PAR STUCTURE ITCSY
OUT_PAR STRUCTURE ITCSY.
DATA: PAGNUM LIKE SY-TABIX, "page number
NEXTPAGE LIKE SY-TABIX. "number of next page
READ TABLE IN_PAR WITH KEY PAGE.
CHECK SY-SUBRC = 0.
PAGNUM = IN_PAR-VALUE.
READ TABLE IN_PAR WITH KEY NEXTPAGE.
CHECK SY-SUBRC = 0.
NEXTPAGE = IN_PAR-VALUE.
READ TABLE OUT_PAR WITH KEY BARCODE.
CHECK SY-SUBRC = 0.
IF PAGNUM = 1.
OUT_PAR-VALUE = |. "First page
ELSE.
OUT_PAR-VALUE = ||. "Next page
ENDIF.
IF NEXTPAGE = 0.
OUT_PAR-VALUE+2 = L. "Flag: last page
ENDIF.
MODIFY OUT_PAR INDEX SY-TABIX.
ENDFORM.
Hope this is clear to understand...
Enjoy SAP.
Pankaj Singh. -
How to calculate a value in sap script?
Hi friends i have to do addition and then display the added value in grandtotal like
total amount + late fee = grand total
i have to do this in sap script can anyone tell me the procedure where to declare wheather in abap aditor if yes how?Hi ...
Its easy to add up two values...
u can do it in a subpool program...
Refer the following code:
Code the following in the Script...
/: PERFORM TOTAL_SUM IN PROGRAM 'ZTEST_ADDITION'
/: USING &VAL1&
/: USING &VAL2&
/: CHANGING &TOTAL&
In the EDitor..create a program ' ZTEST_ADDITION'..
FORM TOTAL_SUM TABLES in_tab STRUCTURE itcsy
out_tab STRUCTURE itcsy.
Read in_tab index 1.
Here u will get the val1...
Read in_tab index 2.
here u will get val2.
l_v_total = val1 + val2.
read out_tab index 1.
out_tab-value = l_v_total.
modify out_tab index 1.
Write the changing paramets in the form
to Output the values...
Thanx,
navin..! -
How to write a perform in Sap Script
Hi Guys,
Can anyone let me know how to write a perform statement in Sap Script.
Thanks,
RameshI just took this example from SAP Help
=======================================
Syntax in a form window:
/: PERFORM <form> IN PROGRAM <prog>
/: USING &INVAR1&
/: USING &INVAR2&
/: CHANGING &OUTVAR1&
/: CHANGING &OUTVAR2&
/: ENDPERFORM
INVAR1 and INVAR2 are variable symbols and may be of any of the four SAPscript symbol types.
OUTVAR1 and OUTVAR2 are local text symbols and must therefore be character strings.
The ABAP subroutine called via the command line stated above must be defined in the ABAP report prog as follows:
FORM <form> TABLES IN_TAB STRUCTURE ITCSY
OUT_TAB STRUCTURE ITCSY.
ENDFORM. -
Hi all,
I am trying to add content of field (Tax VAT) in sap script and put into another symbol using following command
/:SUMMING program symbol INTO sum symbol
but after running me22n tcode to display the PO error occured
<b>Overwriting a protected field</b>Error analysis
The program tried to assign a new value to the field "<SM_SUM>" even though
it is protected against changes.
I am modifying medruck std PO script and using standard prog. for it i.e. SAPFM06P.
Please tell me wheather it is necessary to make sum symbol dynamically define in SAPFM06P and how to do this.
with regards
Rajvinder SahniHi...
If you need to summ numbers or do any operation, in your SAP Script you can call subritunes and do all the operations you need.
On your SAP script write:
/: PERFORM subrutine IN PROGRAM Zprogram
/: USING &PAR1&
/: CHANGING &PAR2&
/: ENDPERFORM
PS: You can use as many USING AND CHANGING as you need.
And the zprogram goes;
FORM subrutine TABLES t_in STRUCTURE itcsy
t_out STRUCTURE itcsy.
data: par1 type n.
Read the value on PAR1
READ TABLE t_in WITH KEY 'PAR1'.
CHECK sy-subrc = 0.
PAR1 = t_IN-value.
DO WHATEVER YOU NEED TO DO
ADD 1 TO PAR1.
SEND THE VALUES BACK
READ TABLE t_OUT WITH KEY 'PAR2'.
t_sal-value = PAR1 .
MODIFY t_OUT INDEX sy-tabix.
ENDFORM.
Hope this helps,
Gabriel -
Problem in Sap Script while printing
HI,
This report calling when I print billing document .this report getting data and call some sap script form but it prints 20 pages in place of only one page. Please
Guide me to finding the exact problem.the code is below..
REPORT zsd_excinv LINE-SIZE 110 LINE-COUNT 100 MESSAGE-ID vn.
TABLES: vbco3, "Keyfelder Vertriebsbeleg: Dokumentendruck
tvko, "Verkaufsorganisation
sadr, "Adressen
komk, "Communicationarea for conditions
komp, "Communicationarea for conditions
komvd, "Communicationarea for conditions
vbdkr, "Druck Rechnung: Kopfdaten
vbdpr, "Druck Rechnung: Positionsdaten
conf_out, "Configuration data
vbpla, "Druck Packliste : allgemeine Daten
vbplk, "Druck Packliste : Versandelementkopfdaten
vbplp, "Druck Packliste : Versandelementinhaltsdaten
vbpls. "Druck Packliste : Summendaten Verpackung
TABLES : j_1iexchdr, j_1iexcdtl, vbrk,eikp,j_1imocust,likp,
j_1iregset, itcpp,kna1, t001w.
*PARAMETER : p_grp LIKE j_1iexchdr-exgrp.
*SELECT-OPTIONS : so_num FOR j_1iexchdr-exnum.
*PARAMETERS : p_num LIKE j_1iexchdr-exnum.
DATA : wa_j_1iexchdr TYPE j_1iexchdr,
it_j_1iexchdr TYPE TABLE OF j_1iexchdr.
DATA : wa_j_1iexcdtl TYPE j_1iexcdtl,
it_j_1iexcdtl TYPE TABLE OF j_1iexcdtl.
DATA : wa_vbrk TYPE vbrk,
wa_vbrp TYPE vbrp,
wa_lips TYPE lips,
wa_j_1iregset TYPE j_1iregset,
wa_j_1iwrkcus TYPE j_1iwrkcus,
wa_j_cust TYPE j_1imocust,
it_vbrp TYPE TABLE OF vbrp.
DATA : BEGIN OF wa_header,
exnum TYPE j_1iexchdr-exnum ,
exdat TYPE j_1iexchdr-exdat ,
exccd TYPE j_1iregset-j_1iexccd,
excrg TYPE j_1iregset-j_1iexcrg,
excd1 TYPE j_1iregset-j_1iexcdi,
bstnk_vf TYPE vbrk-bstnk_vf,
zterm TYPE vbrk-zterm,
iever TYPE eikp-iever,
btgew TYPE likp-btgew,
chapid TYPE j_1iexcdtl-chapid,
traid TYPE likp-traid,
rdoc TYPE j_1iexchdr-rdoc,
maktx TYPE j_1iexcdtl-maktx,
meins TYPE likp-gewei,
END OF wa_header.
*DATA : BEGIN OF wa_header,
exnum TYPE j_1iexchdr-exnum ,
exdat TYPE j_1iexchdr-exdat ,
exccd TYPE j_1iregset-j_1iexccd,
excrg TYPE j_1iregset-j_1iexcrg,
excd1 TYPE j_1iregset-j_1iexcdi,
bstnk_vf TYPE vbrk-bstnk_vf,
zterm TYPE vbrk-zterm,
iever TYPE eikp-iever,
btgew TYPE likp-btgew,
ntgew TYPE likp-ntgew,
chapid TYPE j_1iexcdtl-chapid,
traid TYPE likp-traid,
rdoc TYPE j_1iexchdr-rdoc,
maktx TYPE j_1iexcdtl-maktx,
meins TYPE likp-gewei,
END OF wa_header.
*DATA : BEGIN OF wa_detail,
zeile TYPE j_1iexcdtl-zeile,
matnr TYPE j_1iexcdtl-matnr,
maktx TYPE j_1iexcdtl-maktx,
menge TYPE j_1iexcdtl-menge,
rate TYPE konv-kbetr,
amount TYPE konv-kwert,
fob TYPE konv-kwert,
meins TYPE j_1iexcdtl-meins,
*END OF wa_detail.
*DATA : BEGIN OF wa_duties,
zpr0 TYPE konv-kbetr,
jadc TYPE konv-kbetr,
st1 TYPE konv-kwert,
jexp TYPE konv-kbetr,
jecs TYPE konv-kbetr,
st2 TYPE konv-kwert,
jetc TYPE konv-kbetr,
st3 TYPE konv-kwert,
jsad TYPE konv-kbetr,
st4 TYPE konv-kwert,
st5 TYPE konv-kwert,
vat TYPE konv-kbetr,
st6 TYPE konv-kwert,
zint TYPE konv-kbetr,
jead TYPE konv-kbetr,
zect TYPE konv-kbetr,
zsad TYPE konv-kbetr,
vat_per TYPE konv-kbetr,
vat_val TYPE konv-kwert,
total TYPE konv-kwert,
remtime TYPE j_1iexchdr-remtime,
exdat TYPE j_1iexchdr-exdat,
*END OF wa_duties.
*DATA : wa_t618t TYPE t618t.
*DATA : in_words TYPE spell,
word TYPE spell-word,
decword TYPE spell-decword,
gv_plant_adrnr TYPE t001w-adrnr,
lv_iever TYPE eikp-iever,
lv_btgew TYPE likp-btgew,
lv_ntgew TYPE likp-ntgew,
lv_traid TYPE likp-traid,
lv_regid TYPE j_1iregset-j_1iregid,
gv_cust_adrnr TYPE kna1-adrnr,
gv_ecsduty TYPE konv-kbetr,
gv_tot_cen_amt TYPE konv-kwert,
gv_zterm TYPE tvzbt-vtext,
gv_tot_amt TYPE konv-kwert,
lv_ins TYPE konv-kbetr,
lv_fre TYPE konv-kbetr.
*CONSTANTS : c_ecs TYPE j_1iexcdtl-ecsrate VALUE '0.368'.
*SELECT-OPTIONS : so_num FOR j_1iexchdr-exnum.
DATA : BEGIN OF wa_detail,
zeile TYPE j_1iexcdtl-zeile,
matnr TYPE j_1iexcdtl-matnr,
maktx TYPE j_1iexcdtl-maktx,
menge TYPE j_1iexcdtl-menge,
rate TYPE konv-kbetr,
amount TYPE konv-kwert,
fob TYPE konv-kwert,
meins TYPE j_1iexcdtl-meins,
END OF wa_detail.
DATA : BEGIN OF wa_duties,
zpr0 TYPE konv-kwert,
jadc TYPE konv-kwert,
st1 TYPE konv-kwert,
jexp TYPE konv-kwert,
jecs TYPE konv-kwert,
st2 TYPE konv-kwert,
jetc TYPE konv-kwert,
st3 TYPE konv-kwert,
jsad TYPE konv-kwert,
st4 TYPE konv-kwert,
st5 TYPE konv-kwert,
vat TYPE konv-kwert,
st6 TYPE konv-kwert,
zint TYPE konv-kwert,
jead TYPE konv-kwert,
jeap TYPE konv-kwert,
jeap_per TYPE konv-kbetr,
zect TYPE konv-kwert,
zect_per TYPE konv-kbetr,
zecs TYPE konv-kwert,
zsad TYPE konv-kwert,
vat_per TYPE konv-kwert,
vat_val TYPE konv-kwert,
zlst_per TYPE konv-kwert,
zlst_val TYPE konv-kwert,
zcst_per TYPE konv-kwert,
zcst_val TYPE konv-kwert,
zeap TYPE konv-kwert,
zeap_per TYPE konv-kbetr,
total TYPE konv-kwert,
remtime TYPE j_1iexchdr-remtime,
exdat TYPE j_1iexchdr-exdat,
END OF wa_duties.
DATA : wa_t618t TYPE t618t.
DATA : temp TYPE konv-kwert VALUE 0,
cen_amt TYPE konv-kbetr VALUE 0.
DATA : in_words TYPE spell,
word TYPE spell-word,
decword TYPE spell-decword,
gv_plant_adrnr TYPE t001w-adrnr,
lv_iever TYPE eikp-iever,
lv_btgew TYPE likp-btgew,
lv_traid TYPE likp-traid,
lv_regid TYPE j_1iregset-j_1iregid,
gv_cust_adrnr TYPE kna1-adrnr,
gv_ecsduty TYPE konv-kbetr,
gv_tot_cen_amt TYPE konv-kwert,
gv_zterm TYPE tvzbt-vtext,
gv_tot_amt TYPE konv-kwert,
gv_amount TYPE konv-kwert,
lv_ins TYPE konv-kbetr,
lv_fre TYPE konv-kbetr.
CONSTANTS : c_ecs TYPE j_1iexcdtl-ecsrate VALUE '0.368',
rdocyr TYPE j_1iexchdr-docyr VALUE 2006.
DATA : wa_t685t TYPE t685t.
DATA : gv_zint TYPE t685t-vtext,
gv_vat TYPE t685t-vtext,
gv_zect TYPE t685t-vtext,
gv_jetc TYPE t685t-vtext,
gv_jeap TYPE t685t-vtext,
gv_jecs TYPE t685t-vtext,
gv_zlst TYPE t685t-vtext,
gv_zcst TYPE t685t-vtext,
gv_zeap TYPE t685t-vtext,
gv_jadc TYPE t685t-vtext.
INCLUDE rvadtabl.
DATA: BEGIN OF lvbplk OCCURS 0.
INCLUDE STRUCTURE vbplk. "Packlistenkopf
DATA: END OF lvbplk.
DATA: BEGIN OF lvbplp OCCURS 0.
INCLUDE STRUCTURE vbplp. "Packlistenposition
DATA: END OF lvbplp.
DATA: BEGIN OF lvbpls OCCURS 0.
INCLUDE STRUCTURE vbpls. "Packlistenstruktur
DATA: END OF lvbpls.
DATA: BEGIN OF tvbdpr OCCURS 0. "Rechnungspositionen
INCLUDE STRUCTURE vbdpr.
DATA: END OF tvbdpr.
DATA: BEGIN OF tvbplp OCCURS 10. "Packlistenposition
INCLUDE STRUCTURE vbplp.
DATA: END OF tvbplp.
DATA: BEGIN OF tkomv OCCURS 50.
INCLUDE STRUCTURE komv. "Kommunikation
DATA: END OF tkomv.
DATA: BEGIN OF tkomvd OCCURS 50.
INCLUDE STRUCTURE komvd. "Kommunikation
DATA: END OF tkomvd.
DATA: BEGIN OF *tkomvd OCCURS 50.
INCLUDE STRUCTURE komvd.
DATA: END OF *tkomvd.
DATA: BEGIN OF hkomvd OCCURS 50.
INCLUDE STRUCTURE komvd.
DATA: END OF hkomvd.
DATA: BEGIN OF tkomcon OCCURS 50.
INCLUDE STRUCTURE conf_out.
DATA: END OF tkomcon.
DATA: retcode LIKE sy-subrc. "Returncode
DATA: repeat(1) TYPE c.
DATA: xscreen(1) TYPE c. "Output on printer or screen
DATA: pr_kappl(01) TYPE c VALUE 'V'. "Application für Preisfindung
DATA: print_mwskz. "Mehrwertsteuer-Kz drucken
data for access to central address maintenance
INCLUDE sdzavdat.
FORM ENTRY *
Einstieg für Nachrichtensteuerung *
--> RETURN_CODE *
--> US_SCREEN *
FORM entry USING return_code us_screen.
CLEAR retcode.
xscreen = us_screen.
Formular öffnen, aufbereiten und schließen
PERFORM formular_invoice USING us_screen.
CASE retcode.
WHEN 0.
return_code = 0.
WHEN 3.
return_code = 3.
WHEN OTHERS.
return_code = 1.
ENDCASE.
ENDFORM. "ENTRY
FORM FORMULAR_INVOICE *
Formular abarbeiten *
FORM formular_invoice USING proc_screen.
Werte aufbauen
PERFORM get_data.
Beleg unvollständig
IF vbdkr-uvall NE space OR
vbdkr-uvals NE space OR
vbdkr-uvprs NE space.
IF proc_screen = space.
retcode = 3.
IF vbdkr-uvall NE space OR vbdkr-uvals NE space.
syst-msgno = '201'.
syst-msgid = 'VN'.
syst-msgty = 'I'.
PERFORM protocol_update.
ENDIF.
IF vbdkr-uvprs NE space.
syst-msgno = '200'.
syst-msgid = 'VN'.
syst-msgty = 'I'.
PERFORM protocol_update.
ENDIF.
ELSE.
IF vbdkr-uvall NE space OR vbdkr-uvals NE space.
MESSAGE i201.
ENDIF.
IF vbdkr-uvprs NE space.
MESSAGE i200.
ENDIF.
ENDIF.
ENDIF.
CHECK retcode = 0.
SAP-SCRIPT STEUERUNG festlegen
PERFORM form_open USING proc_screen vbdkr-land1.
CHECK retcode = 0.
Formular aufbereiten
PERFORM sd_invoice_suppl.
CHECK retcode = 0.
Formular schließen
PERFORM form_close.
CHECK retcode = 0.
ENDFORM. "FORMULAR_INVOICE
FORM GET_DATA *
Daten besorgen *
FORM get_data.
PERFORM vbdkr_data. "Rechnungskopf und -liste
PERFORM vbpla_data. "Packliste
ENDFORM. "GET_DATA
FORM FORM_OPEN *
Formular öffnen *
--> US_SCREEN Output on screen *
' ' = printer *
'X' = screen *
--> US_COUNTRY County for telecommunication and SET COUNTRY *
FORM form_open USING us_screen us_country.
DATA: xdevice(8) TYPE c.
SET LANGUAGE nast-spras.
CLEAR itcpo.
MOVE-CORRESPONDING nast TO itcpo.
itcpo-tdcover = nast-tdocover.
itcpo-tddest = nast-ldest.
itcpo-tddataset = nast-dsnam.
itcpo-tdsuffix1 = nast-dsuf1.
itcpo-tdsuffix2 = nast-dsuf2.
itcpo-tdimmed = nast-dimme.
itcpo-tddelete = nast-delet.
itcpo-tdcopies = nast-anzal.
itcpo-tdprogram = sy-repid.
itcpo-tdteleland = us_country.
itcpo-tdsenddate = nast-vsdat.
itcpo-tdsendtime = nast-vsura.
IF us_screen NE space.
itcpo-tdpreview = 'X'.
itcpo-tdnoprint = 'X'.
ENDIF.
IF sy-tcode EQ 'J1IP'.
itcpo-tdpreview = 'X'.
ENDIF.
CASE nast-nacha.
WHEN '1'.
xdevice = 'PRINTER'.
WHEN '2'.
xdevice = 'TELEFAX'.
itcpo-tdtelenum = nast-telfx.
IF nast-tland IS INITIAL.
itcpo-tdteleland = us_country.
ELSE.
itcpo-tdteleland = nast-tland.
ENDIF.
WHEN '3'.
xdevice = 'TELETEX'.
itcpo-tdtelenum = nast-teltx.
IF nast-tland IS INITIAL.
itcpo-tdteleland = us_country.
ELSE.
itcpo-tdteleland = nast-tland.
ENDIF.
WHEN '4'.
xdevice = 'TELEX'.
itcpo-tdtelenum = nast-telx1.
IF nast-tland IS INITIAL.
itcpo-tdteleland = us_country.
ELSE.
itcpo-tdteleland = nast-tland.
ENDIF.
WHEN OTHERS.
xdevice = 'PRINTER'.
ENDCASE.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = tnapr-fonam
language = nast-spras
OPTIONS = itcpo
archive_index = toa_dara
archive_params = arc_params
device = xdevice
dialog = ' '
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
retcode = sy-subrc.
PERFORM protocol_update.
ENDIF.
SET COUNTRY us_country.
ENDFORM. "FORM_OPEN
FORM FORM_CLOSE *
Formular schließen *
FORM form_close.
CALL FUNCTION 'CLOSE_FORM' "...Ende Formulardruck
EXCEPTIONS OTHERS = 1.
IF sy-subrc NE 0.
retcode = 1.
PERFORM protocol_update.
ENDIF.
SET COUNTRY space.
SET LANGUAGE space.
ENDFORM. "FORM_CLOSE
FORM SD_INVOICE_SUPPL *
Rechnung aufbereiten *
FORM sd_invoice_suppl.
CLEAR : wa_j_1iexchdr, wa_j_1iexcdtl, wa_lips, wa_duties,
gv_tot_amt.
get data from excise header
SELECT * FROM j_1iexchdr INTO TABLE it_j_1iexchdr
WHERE exgrp = '31'
AND rdoc = nast-objky
AND trntyp = 'DLFC'
AND lifnr = space
AND docyr = rdocyr.
AND exdat IN so_dat.
SORT it_j_1iexchdr BY exdat exnum.
READ TABLE it_j_1iexchdr INTO wa_j_1iexchdr INDEX 1.
SELECT * FROM j_1iexcdtl INTO TABLE it_j_1iexcdtl
FOR ALL ENTRIES IN it_j_1iexchdr
WHERE exnum = it_j_1iexchdr-exnum
AND trntyp = 'DLFC'
AND docno = it_j_1iexchdr-docno.
SORT it_j_1iexcdtl BY exdat exnum.
LOOP AT it_j_1iexchdr INTO wa_j_1iexchdr.
*open form
PERFORM open_form USING 'ZSD_EXCINV' 1
'printer' 'X'.
MOVE : wa_j_1iexchdr-exnum TO wa_header-exnum,
wa_j_1iexchdr-exdat TO wa_header-exdat,
wa_j_1iexchdr-rdoc TO wa_header-rdoc.
get plant details
SELECT SINGLE * FROM j_1iwrkcus INTO wa_j_1iwrkcus
WHERE j_1iwerks = wa_j_1iexchdr-werks.
SELECT SINGLE * FROM j_1iregset INTO wa_j_1iregset
WHERE j_1iregid = wa_j_1iwrkcus-j_1iregid.
SELECT adrnr INTO gv_plant_adrnr FROM t001w
WHERE werks = wa_j_1iexchdr-werks.
ENDSELECT.
MOVE : wa_j_1iregset-j_1iexccd TO wa_header-exccd,
wa_j_1iregset-j_1iexcrg TO wa_header-excrg,
wa_j_1iregset-j_1iexcdi TO wa_header-excd1.
get order no. from vbrk
SELECT * INTO wa_vbrk FROM vbrk
WHERE vbeln = wa_j_1iexchdr-rdoc.
ENDSELECT .
MOVE : wa_vbrk-bstnk_vf TO wa_header-bstnk_vf,
wa_vbrk-zterm TO wa_header-zterm.
SELECT vtext FROM tvzbt INTO gv_zterm
WHERE zterm = wa_vbrk-zterm
AND spras = 'EN'.
ENDSELECT.
get nature of removal
SELECT iever INTO lv_iever FROM eikp
WHERE refnr = wa_vbrk-vbeln.
ENDSELECT.
SELECT SINGLE * FROM t618t INTO wa_t618t
WHERE expvz = lv_iever
AND spras = 'E'.
MOVE : lv_iever TO wa_header-iever.
*get consignment weight.
SELECT SINGLE * FROM vbrp INTO wa_vbrp
WHERE vbeln = wa_vbrk-vbeln.
READ TABLE it_j_1iexcdtl INDEX 1 INTO wa_j_1iexcdtl.
SELECT btgew traid gewei INTO (lv_btgew, lv_traid, wa_header-meins) FROM likp
WHERE vbeln = wa_j_1iexcdtl-rdoc1.
ENDSELECT.
MOVE : lv_btgew TO wa_header-btgew,
lv_traid TO wa_header-traid.
lv_weight to wa_header-meins.
*get chapter id
READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl WITH KEY exnum = wa_j_1iexchdr-exnum .
IF sy-subrc = 0.
MOVE : wa_j_1iexcdtl-chapid TO wa_header-chapid,
wa_j_1iexcdtl-maktx TO wa_header-maktx.
ENDIF.
*get customer details.
SELECT adrnr FROM kna1 INTO gv_cust_adrnr
WHERE kunnr = wa_j_1iexchdr-kunag.
ENDSELECT.
SELECT SINGLE * FROM j_1imocust INTO wa_j_cust
WHERE kunnr = wa_j_1iexchdr-kunag.
*write invoice header details
PERFORM write_form USING '' 'APPEND' 'BODY' 'LOCCODE' .
*get data from excise details.
LOOP AT it_j_1iexcdtl INTO wa_j_1iexcdtl.
MOVE : wa_j_1iexcdtl-zeile TO wa_detail-zeile,
wa_j_1iexcdtl-matnr TO wa_detail-matnr,
wa_j_1iexcdtl-maktx TO wa_detail-maktx,
wa_j_1iexcdtl-menge TO wa_detail-menge,
wa_j_1iexcdtl-meins TO wa_detail-meins.
SELECT SINGLE * FROM vbrp INTO wa_vbrp
WHERE vbeln = wa_vbrk-vbeln
AND matnr = wa_j_1iexcdtl-matnr.
SELECT kbetr kwert FROM konv
INTO (wa_detail-rate, wa_detail-amount)
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZPR0'.
ENDSELECT.
SELECT kwert FROM konv
INTO lv_ins
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZINS'.
ENDSELECT.
SELECT kwert FROM konv
INTO lv_fre
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZFRE'.
ENDSELECT.
wa_detail-fob = wa_detail-amount + lv_ins + lv_fre.
gv_tot_amt = gv_tot_amt + wa_detail-amount.
gv_amount = gv_amount + wa_detail-amount.
write item details
PERFORM write_form USING 'LINE_ITEMS' 'SET' 'BODY' 'MAIN' .
ENDLOOP.
**get insurance .
SELECT kwert INTO lv_ins FROM konv
WHERE knumv = wa_vbrk-knumv
AND kschl = 'ZINS'.
ENDSELECT.
**get freight .
SELECT kwert INTO lv_fre FROM konv
WHERE knumv = wa_vbrk-knumv
AND kschl = 'ZFRE'.
ENDSELECT.
**get net value .
MOVE wa_vbrk-netwr TO wa_costs-grandtot.
**calculate netvalue(fobvalue)
wa_costs-fobval = wa_costs-grandtot + wa_costs-insurance + wa_costs-freight.
gv_tot_amt = gv_tot_amt + lv_ins + lv_fre.
*get values for different condition types.
SELECT kbetr INTO wa_duties-zpr0 FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZPR0'.
ENDSELECT.
SELECT kwert INTO wa_duties-jadc FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JADC'.
temp = temp + wa_duties-jadc.
CLEAR : wa_duties-jadc.
ENDSELECT.
MOVE : temp TO wa_duties-jadc.
CLEAR : temp.
wa_duties-st1 = wa_duties-zpr0 + wa_duties-jadc.
SELECT kwert INTO wa_duties-jexp FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JEXP'.
temp = temp + wa_duties-jexp.
CLEAR : wa_duties-jexp.
ENDSELECT.
MOVE : temp TO wa_duties-jexp.
CLEAR : temp.
SELECT kwert INTO wa_duties-jecs FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JECS'.
temp = temp + wa_duties-jecs.
CLEAR : wa_duties-jecs.
ENDSELECT.
MOVE : temp TO wa_duties-jecs.
CLEAR : temp.
wa_duties-st3 = gv_tot_amt + wa_j_1iexchdr-exbed + wa_j_1iexchdr-ecs.
SELECT kwert INTO wa_duties-jetc FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JETC'.
temp = temp + wa_duties-jetc.
CLEAR : wa_duties-jetc.
ENDSELECT.
MOVE : temp TO wa_duties-jetc.
CLEAR : temp.
wa_duties-st3 = wa_duties-zpr0 + wa_duties-st2 + wa_duties-jetc.
SELECT kwert INTO wa_duties-jsad FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JSAD'.
temp = temp + wa_duties-jsad.
CLEAR : wa_duties-jsad.
ENDSELECT.
MOVE : temp TO wa_duties-jsad.
CLEAR : temp.
SELECT kbetr kwert INTO (wa_duties-jeap_per, wa_duties-jeap) FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JEAP'.
temp = temp + wa_duties-jeap.
CLEAR : wa_duties-jeap.
ENDSELECT.
MOVE : temp TO wa_duties-jeap.
CLEAR : temp.
wa_duties-jeap_per = wa_duties-jeap_per / 10.
SELECT kbetr kwert INTO (wa_duties-zeap_per, wa_duties-zeap) FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZEAP'.
temp = temp + wa_duties-zeap.
CLEAR : wa_duties-zeap.
ENDSELECT.
MOVE : temp TO wa_duties-zeap.
CLEAR : temp.
wa_duties-zeap_per = wa_duties-zeap_per / 10.
(st2jetcjsad)
wa_duties-st4 = wa_duties-st2 + wa_duties-jetc + wa_duties-jsad.
(zpr0+st4)
wa_duties-st5 = wa_duties-zpr0 + wa_duties-st4 .
SELECT kbetr INTO wa_duties-vat FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'VAT'.
ENDSELECT.
SELECT kbetr kwert INTO (wa_duties-vat_per, wa_duties-vat_val) FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZVAT'.
temp = temp + wa_duties-vat_val.
CLEAR : wa_duties-vat_val.
ENDSELECT.
MOVE : temp TO wa_duties-vat_val.
CLEAR : temp.
wa_duties-vat_per = wa_duties-vat_per / 10.
SELECT kbetr kwert INTO (wa_duties-zcst_per, wa_duties-zcst_val) FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZCST'.
temp = temp + wa_duties-zcst_val.
CLEAR : wa_duties-zcst_val.
ENDSELECT.
MOVE : temp TO wa_duties-zcst_val.
CLEAR : temp.
wa_duties-zcst_per = wa_duties-zcst_per / 10.
SELECT kbetr kwert INTO (wa_duties-zlst_per, wa_duties-zlst_val) FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZLST'.
temp = temp + wa_duties-zlst_val.
CLEAR : wa_duties-zlst_val.
ENDSELECT.
MOVE : temp TO wa_duties-zlst_val.
CLEAR : temp.
wa_duties-zlst_per = wa_duties-zlst_per / 10.
(st5+vat)
wa_duties-st6 = wa_duties-vat_val + wa_duties-st5 .
SELECT kwert INTO wa_duties-zint FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZINT'.
temp = temp + wa_duties-zint.
CLEAR : wa_duties-zint.
ENDSELECT.
MOVE : temp TO wa_duties-zint.
CLEAR : temp.
SELECT kwert INTO wa_duties-jead FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'JEAD'.
temp = temp + wa_duties-jead.
CLEAR : wa_duties-jead.
ENDSELECT.
MOVE : temp TO wa_duties-jead.
CLEAR : temp.
SELECT kbetr kwert INTO (wa_duties-zect_per, wa_duties-zect) FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZECT'.
temp = temp + wa_duties-zect.
CLEAR : wa_duties-zect.
ENDSELECT.
MOVE : temp TO wa_duties-zect.
CLEAR : temp.
wa_duties-zect_per = wa_duties-zect_per / 10.
SELECT kwert INTO wa_duties-zsad FROM konv
WHERE knumv = wa_vbrk-knumv
AND kposn = wa_vbrp-posnr
AND kschl = 'ZSAD'.
temp = temp + wa_duties-zsad.
CLEAR : wa_duties-zsad.
ENDSELECT.
MOVE : temp TO wa_duties-zsad.
CLEAR : temp.
IF wa_vbrk-kalsm = 'ZINSCR'.
wa_duties-total = gv_tot_amt
+ wa_duties-jexp
+ wa_duties-jecs
+ wa_duties-zlst_val
+ wa_duties-zint
+ wa_duties-jead
+ wa_duties-vat_val
+ wa_duties-zcst_val.
+ wa_duties-jecs
+ wa_duties-zeap
+ wa_duties-zecs
+ wa_duties-zsad
+ wa_duties-jadc.
ELSEIF wa_vbrk-kalsm = 'ZINFAC'.
wa_duties-total = gv_tot_amt
+ wa_duties-jexp
+ wa_duties-jecs
+ wa_duties-zlst_val
+ wa_duties-zint
+ wa_duties-jeap
+ wa_duties-vat_val
+ wa_duties-zcst_val
+ wa_duties-jecs
+ wa_duties-zeap
+ wa_duties-zect.
+ wa_duties-zsad
+ wa_duties-jadc.
ENDIF.
Get Condition descriptions.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'ZVAT' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_vat.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'ZVAT' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_vat.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'ZLST' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_zlst.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'ZCST' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_zcst.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'ZECT' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_zect.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'ZEAP' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_zeap.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'JETC' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_jetc.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'JEAP' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_jeap.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'JECS' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_jecs.
CLEAR wa_t685t.
SELECT SINGLE * FROM t685t INTO wa_t685t
WHERE kschl = 'JADC' AND spras = 'EN'.
MOVE wa_t685t-vtext TO gv_jadc.
CLEAR wa_t685t.
gv_ecsduty = wa_j_1iexchdr-exbed * ( c_ecs / 100 ).
cen_amt = wa_duties-jexp + wa_duties-jeap.
gv_tot_cen_amt = cen_amt + wa_duties-jecs.
MOVE wa_j_1iexchdr-remtime TO wa_duties-remtime.
MOVE wa_j_1iexchdr-exdat TO wa_duties-exdat.
Convert amount to words.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = wa_duties-total
currency = 'INR '
filler = space
language = sy-langu
IMPORTING
in_words = in_words
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
MOVE : in_words-word TO word,
in_words-decword TO decword.
write duty details
IF wa_vbrk-kalsm = 'ZINSCR'.
PERFORM write_form USING 'ZINSCR' 'APPEND' 'BODY' 'GRANDTOT' .
ELSEIF wa_vbrk-kalsm = 'ZINFAC'.
PERFORM write_form USING 'ZINFAC' 'APPEND' 'BODY' 'GRANDTOT' .
ENDIF.
*close form
PERFORM close_form.
ENDLOOP.
ENDFORM. "SD_INVOICE_SUPPL
FORM FORM_TITLE_PRINT *
Formulartitel entsprenchend des Feldes VBTYP drucken *
FORM form_title_print.
CASE vbdkr-vbtyp.
WHEN 'M'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_M'
window = 'HEADER'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
WHEN 'N'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_N'
window = 'TITLE'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
WHEN 'O'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_O'
window = 'TITLE'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
WHEN 'P'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_P'
window = 'TITLE'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
WHEN 'S'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_S'
window = 'TITLE'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
WHEN 'U'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_U'
window = 'TITLE'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
WHEN OTHERS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TITLE_M'
window = 'TITLE'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
ENDCASE.
IF repeat NE space.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'REPEAT'
window = 'REPEAT'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
ENDIF.
ENDFORM. "FORM_TITLE_PRINT
FORM REFERENCE_NUMBER *
Referenznummer ausgeben *
FORM reference_number.
CHECK vbdkr-vbtyp CA 'MUN'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'INVOICE'
EXCEPTIONS
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
ENDFORM. "REFERENCE_NUMBER
FORM HEADER_TEXT_PRINT *
Kopftexte ausgeben *
FORM header_text_print.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'HEADER_TEXT'
EXCEPTIONS
element = 1
window = 2.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
ENDFORM. "HEADER_TEXT_PRINT
FORM ITEM_PRINT *
Rechnungsposition ausgeben *
FORM item_print.
Kopieren LVBPLP für direkt Zugriff
LOOP AT lvbplp.
MOVE-CORRESPONDING lvbplp TO tvbplp.
APPEND tvbplp.
ENDLOOP.
LOOP AT tvbdpr.
vbdpr = tvbdpr.
IF tvbdpr-charg IS INITIAL.
PERFORM get_item_prices.
PERFORM get_item_characteristics.
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
command = 'PROTECT'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ITEM_LINE'.
PERFORM item_price_print.
PERFORM item_characteristics_print.
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
command = 'ENDPROTECT'.
PERFORM different_consignee.
PERFORM different_order_no.
PERFORM different_delivery_no.
PERFORM different_extern_no.
PERFORM different_purchase_order_no.
PERFORM item_packing_print.
ELSE.
IF NOT tvbdpr-fkimg IS INITIAL.
PERFORM get_item_prices.
PERFORM item_price_print.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. "ITEM_PRINT
FORM ITEM_PACKING_PRINT *
Verpackung zu einer Position ausgeben *
FORM item_packing_print.
DATA: count LIKE sy-index.
DATA: BEGIN OF hvbplp OCCURS 0,
stufe TYPE i.
INCLUDE STRUCTURE vbplp.
DATA: END OF hvbplp.
DATA: vs_element LIKE vbplp-venum.
CLEAR hvbplp.
REFRESH hvbplp.
Aufbau Versandelementstruktur für Ausgabe
LOOP AT tvbplp WHERE vbeln = vbdkr-vbeln AND posnr = tvbdpr-posnr.
hvbplp-stufe = 1.
MOVE-CORRESPONDING tvbplp TO hvbplp.
APPEND hvbplp.
vs_element = tvbplp-venum.
IF vs_element EQ ' '. EXIT. ENDIF. "unverpackt
CLEAR lvbplk.
WHILE lvbplk-kzobe NE 'X'. "nicht oberstes VS-Ele
suchen übergeordnetes Versandelement
LOOP AT lvbplp WHERE unvel = vs_element.
hvbplp-stufe = hvbplp-stufe + 1.
MOVE-CORRESPONDING lvbplp TO hvbplp.
APPEND hvbplp.
EXIT.
ENDLOOP.
vs_element = lvbplp-venum.
lesen übergeordnetes Versandelement
READ TABLE lvbplk WITH KEY vs_element.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDWHILE.
ENDLOOP.
SORT hvbplp BY stufe venum.
CLEAR vbplp.
LOOP AT hvbplp.
lesen Versandelement
CLEAR vbplk.
CLEAR vbpls.
IF hvbplp-venum EQ ' '.Hi,
SAPScript addresses are formated by postal standards...irrespective of the data populated....
In line
/: ADDRESS PARAGRAPH LZ
change to
/: ADDRESS DELIVERY PARAGRAPH LZ
that should bring the street into the address
Regards
Stu -
Invoice List SAP script - Problem with SAP script functionality
Hello Friends,
I am working on SAP script - Invoice List SD_INVOICE_LIST. The invoice list contains the underlying billing documents. As per the standard functionality, in the line items, its printing the underlying billing documents with the net value. My requirement is to dig these line items into another level, meaning, I need to display the line items of billing documents as well(like material, material description, quantity, net price and net value of that item etc).
The billing linte item informatin is stored in VBRP table and the VBRP structure is not at all defined in the print program of SD_INVOICE_LIST (I.E.RVADIL01). Change of standard SAP program is not an option for me here.
In the external subroutine we can fetch these line items for each billing document in the invoice list. However, my question here is how to take these line items back to the sap script and print them in SAP script (We can print one line item but how to loop these fetched lines and print them on SAP script. Any help in this regard would be greatly appreciated.
I think there is no standard smart form exist for the invoice list. Please also let me know if there is any standard smart form available for INVOICE List.
Thanks in advanace for any help in this regard.
Best regards,
SivaHi
As you cannot change the standard, you will have to see if there are any enhancements provided in the print program. if not you have to copy into a custom one and do changes accordingly.
Thanks,
Venkatesh -
Issue in New Page Display in a SAP Script
Hi All
I have applied a line count logic in my SAP script, such that if lines are more than 32, Sub Total is displayed on this page(Sub Total needs 4 lines to display) and from next page,another heading starts. (Total around 39 lines can be displayed in one page)
Sub Total Text contains 2 lines of text, and 2 blank lines after it (Total 4 lines)
Now, if number of lines is around 36, Sub Total, doesnt fully display in this page and the 2 blank lines gets passed to the next page. And I am also firing a new page from my code. As a result, the 2nd page comes fully blank and the data is now being displayed at the 3rd page. How can I prevent the 2nd page from coming blank ??
I am using Function Module 'CONTROL_FORM' (or WRITE_FORM) to fire a new page.
I do not want to apply a line count logic for this as this wont be fool proof !!
I hope I have made the issue clear. Kindly help !!
Thanks
KPHi,
otherwise u can do one thing: U call the PERFORM in the SCRIPT FORM passing the &PAGE&(Contains the current Page No) value to it. take a loal variable and pass the PAGE value to the local variable and check for every line whether both &PAGE& & local varaiable are same, if not then set the FLAG value to 'X' (it means the new page has triggered).
Eg:
In Script:
/: lv_tabix = lv_tabix + 1.
/: PERFORM new_page_flag IN PROGRAM ZXXXXX
/: USING &PAGE&
/: USING &lv_tabix&
/: CHANGING &FLAG&
In ZXXXXX Program:
FORM new_page_flag USING int_tab STRUCTURE itcsy
CHANING out_tab STRUCTURE itcsy.
data : lv_page TYPE i,
lv1_tabix TYPE i.
READ TABLE int_tab WITH KEY name = 'LV_TABIX'.
IF sy-subrc EQ '0'.
lv1_tabix = int_tab-value.
clear : int_tab.
ENDIF.
IF lv1_tabix EQ '1'.
lv_page = '1'.
ENDIF.
READ TABLE int_tab WITH KEY name = 'PAGE'.
IF lv1_tabix GT '1'.
IF lv_page NE int_tab-value.
READ TABLE out_tab WITH KEY name = 'FLAG'.
IF sy-subrc EQ 0.
out_tab-value = 'X'.
MODIFY out_tab.
clear : out_tab.
ENDIF.
ENDIF.
ENDIF.
IF sy-subrc EQ '0'.
lv_page = int_tab-value.
ENDIF.
Hope it helps!!
Rgds,
Pavan -
Need to print a text of 255 char from a Ztable into sap script printing.
Hi All,
I Have a requirement where I have to fetch an incoterm description maintained in Z table according to incoterm key and print it via SAP script.
I am getting the complete 255 char data in the variable which I am passing to the script from the driver program, However in the output I can see only 80 characters getting printed.
My code
Subroutine created in se71
DEFINE &L_VTEXT& = SPACE
PERFORM GET_INCOTERMS IN PROGRAM ZMM_MEDRUCK
USING &EKKO-INCO1&
CHANGING &L_VTEXT&
ENDPERFORM
Form created in Driver program:
FORM get_incoterms TABLES pt_input STRUCTURE itcsy
pt_output STRUCTURE itcsy.
DATA: l_vtext TYPE zincoterms-vtext.
READ TABLE pt_input WITH KEY name = 'EKKO-INCO1'.
SELECT SINGLE vtext FROM zincoterms INTO l_vtext
WHERE inco1 = pt_input-value.
CLEAR pt_output.
pt_output-value = l_vtext.
MODIFY pt_output TRANSPORTING value WHERE name = 'L_VTEXT'.
ENDFORM.
Note: Here pt_output-value is having a complete 255 char data
I have tried printing it using offset as well, However complete text is not getting printed.
Please help me in solving this issue as it is urgent requirement.
Thanks and Regards,
AnkitHi Ankit,
pt_output-value = l_vtext.
MODIFY pt_output TRANSPORTING value WHERE name = 'L_VTEXT1'.
pt_output-value = l_vtext+80.
MODIFY pt_output TRANSPORTING value WHERE name = 'L_VTEXT2'.
pt_output-value = l_vtext+160.
MODIFY pt_output TRANSPORTING value WHERE name = 'L_VTEXT3'.
pt_output-value = l_vtext+240.
MODIFY pt_output TRANSPORTING value WHERE name = 'L_VTEXT4'.
I guess it's a workaround if it's really urgent. Present variables next to one another.
regards,
Edgar
Maybe you are looking for
-
How to cut between clips?
I'm not sure how to cut between two clips in a sequence. I uploaded a screencast documenting my frustrations: http://youtu.be/gIMspPJxXF4 After uploading and carefully reading Cutting Two Camera Shoot and watching Multicamera Editing in Adobe Premier
-
How do I put aperture in the "vault" on my WD Smartware external hard drive backup?
How do I put aperture in the "vault" on my WD Smartware external hard drive backup?
-
i want to unlock my iphone 4 Tmobile
-
Wifi / networking drops as soon as micro HDMI connected
I saw an earlier post similar to this, but it was closed without response by the original poster. I have a Yoga 2 Pro with the most recent available network and graphics drivers. Whenever I plug the micro HDMI in to a working monitor (in this case a
-
[Solved] No sound (only headphones) on Thinkpad X200 Tablet
A few years ago, I installed Arch on a Thinkpad X200 Tablet, and everything was fine until a few day ago the HD had to be replaced. I was happy with system and the only think I remember being a headache was the touchscreen. With the new HD, I decided