DYNPRO_FIELD_CONVERSION bseg-dmbtr
Hi gurus:
When we use the transaction FB03 and if we click in one line we receive a Short Dump saying the message DYNPRO_FIELD_CONVERSION and the trouble is in the field bseg-dmbtr, we review the field for that line and found that this field contains a negative sign, we already review the SAP notes but we do not found one related note to fix this field, we are closing the month and this came to be critical, because other important transaction could fail, anyone have an idea how to solve this issue? we do not want to affect the tables manually. Thanks a lot.
Hi Ravi:
Thanks a lot for your promptly answer, I am already review the notes and do not apply to solve the actual situation, in the case of the program that is in the note 368355 this helps to fix just the field SKFBT, but my trouble is with the DMBTR and the WRBTR in BSEG, do you know if exist a similar program to fix these fields?
In other hand I already had the half of the solution, I found a SAP note that fix the function POST_DOCUMENT for not accept negatives in these fields: SAP NOTE 325595 I want to share this information with us.
If someone could help i will appreciate it.
Similar Messages
-
How to make BSEG-DMBTR (amt in loc CoCode currency) Optional or mandatory?
Hi,
Normally, the field BSEG-DMBTR is hidden unless you put a value (other than that of the company code currency) in the field BKPF-WAERS (Document Currency). However, for data conversion purposes, we are uploading an excel file with our open items & balances and wish to populate both BSEG-WRBTR (amount in transaction currency) and BSEG-DMBTR (amount in CoCode / local currency). The problem is that where BKPF-WAERS = CoCode Currency, the BSEG-DMBTR is hidden. It seems there's no way of making BSEG-DMBTR optional / mandatory via the field status of either the g/l account or the posting keys..........
Any ideas on this, or experiences you've had regarding uploading values to BSEG-DMBTR and BSEG-WRBTR wold be appreciated. For example, if the document currency = CoCode currency, have you just uploaded the value into BSEG-WRBTR? The reason we are trying to upload both BSEG-WRBTR and BSEG-DMBTR is because in our excel file, it makes reconciliation easier if we have the BSEG-DMBTR for all documents (inclulding those where the transaction currency = CoCode Currency).
Regards, Garoid.when you enter the doc currency as local currency - system will ask only doc currency which will be updated in local currency field automatically- no customising required.
When you enter the doc cur as a different currency than local currency, you have option to enter
a. exchange rate
b. enter doc currency and local currency - where rate will be updated automatically by conversion the actual values written.
When you manually update the Revaluation entries - system will not allow you to enter doc currency - it will ask only local currency. or additional currency as the case may be (if you maintain more parallel currencies.
SAP program takes care of the subsequent screens fields on the basis first screen entry made- This will be clearly visible when you use Complex posting TCodes like FB01, F-02, etc. This may not be visible in Enjoy SAP screens as the fields are controlled through variants activated - but internal controls stands same.
Hope it is clear. -
Field BSEG-DMBTR. does not exist in the screen SAPMF05A 0302
Hi Gurus,
I am facing an error when uploading document in background through SM35(batch session)
1. 1. If i try to post the document in the forground system gives same message but on pressing enter it goes to next line item and ultimately posts the document. But if i try to post (SM35 session) in the back ground i am facing the issue"Field BSEG-DMBTR. does not exist in the screen SAPMF05A 0302" Message no. 00349
2. The system is ECC 6.0 recently upgraded from 4.7
It would be great if any expert can help to resolve this issue.
Thanks
AnandSeems that your screen flow does not factor in the transaction currency. BSEG-DMBTR is only available for input when the transaction currency is different from the company code currency.
Your program creating the BDC session needs rework, or better use SAP standard tools for document posting (e.g. RFBIBL00 or one of the BAPIs available )
Thomas -
Why in FI doc. show value 909 but in table BSEG-DMBTR show 9.09 ?
hello everyone .
I have problem
in FI document (transaction code FB03) system show value 909
but in BSEG it's show 9.09
and i use this value to show in report .
it's show 9.09 .
could you tell me why this happen ?
what should i do to fix this problem ?
please help.Hi
There are some currencies which will not always use 2 decimals, they can be 3, 4 or even none. Since the data element used for storing this field is 2 decimals, internally the amount will be stored after converting the amount to 2 decimals.
But when the same amount is displayed in any screen or reports it will use the currency key associated with the amount and does the conversion as per table TCURX and displays them.
So this is not any problem, you do not have to worry. But whenever you are using these amount fields always add the currency addition for any purpose be it ALV, list output etc. so that you will not have any issue.
Regards
Ran ganath -
Required replace BSEG with BSAK BSIK BSIS BSAS for report performance
Hi Experts
i m optimizing a report in which data is extracting from BSEG , 5 time so i reduses the performance of report
so i want replace BSEG with BSAK BSIK BSIS BSAS for the same data what I am getting now . this is report of Purchase of item. code is here.
REPORT zmm_pur_reg_kanhe LINE-SIZE 1023.
*& Des :Purchase Tax Register Report for KANHE
*& Created on :12-07-07
*& Suggested by:Paresh Saini(MM)
*& Changes By: Lailu Philip
*& Changed On: 24.09.2007
*& Changes: New columns for G/L Code Description,VAT Amt,VAT Perc,CST Perc
*& ,SHCESS Amounts,WCT G/L Acc., WCT Amt,Tax Code
*& for Purchase Order,WCT tax code & Percentage.
*& Request No: S6DK921577
Data Declaration
*& changes: by Vincy on 12.01.2007
*& changes: display purchase order with vendor type zpsr(get_zpsr)
*& Request No: S6DK930821
TABLES:ekbe, lfa1, faglflexa.",j_1iexcdtl,lfa1,bkpf,bseg.
TYPE-POOLS: slis. "ALV Declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
DATA: it_sortcat TYPE slis_sortinfo_alv OCCURS 1,
col_pos LIKE fieldcatalog-col_pos .
TYPES :BEGIN OF wa1_ekbe,
belnr TYPE ekbe-belnr,
budat TYPE ekbe-budat,
menge TYPE ekbe-menge,
matnr TYPE ekbe-matnr,
ebelp TYPE j_1iexcdtl-ritem1,
ebeln TYPE ekbe-ebeln,
gjahr TYPE ekbe-gjahr,
lfbnr TYPE ekbe-lfbnr,
lfpos TYPE ekbe-lfpos,
bldat TYPE ekbe-bldat,
REEWR TYPE REEWR,
END OF wa1_ekbe.
TYPES :BEGIN OF wa2_ekbe,
belnr TYPE ekbe-belnr,
budat TYPE ekbe-budat,
menge TYPE ekbe-menge,
ebelp TYPE ekbe-ebelp,
ebeln TYPE ekbe-ebeln,
gjahr TYPE ekbe-gjahr,
lfbnr TYPE ekbe-lfbnr,
lfpos TYPE ekbe-lfpos,
bldat TYPE ekbe-bldat,
REEWR TYPE REEWR,
awkey(20) TYPE c,
MATNR TYPE MATNR,
MWSKZ TYPE EKBE-MWSKZ,
END OF wa2_ekbe.
TYPES :BEGIN OF wa1_j_1iexcdtl,
exnum TYPE j_1iexcdtl-exnum,
exdat TYPE j_1iexcdtl-exdat,
lifnr TYPE j_1iexcdtl-lifnr,
matnr TYPE j_1iexcdtl-matnr ,
maktx TYPE j_1iexcdtl-maktx ,
capind TYPE j_1iexcdtl-capind,
exbas TYPE j_1iexcdtl-exbas,
exbed TYPE j_1iexcdtl-exbed,
ecs TYPE j_1iexcdtl-ecs,
werks TYPE j_1iexcdtl-werks,
ritem1 TYPE j_1iexcdtl-ritem1,
rdoc1 TYPE j_1iexcdtl-rdoc1,
docyr TYPE j_1iexcdtl-docyr,
bedinv type J_1IBEDINV,
ecsinv type J_1IECSINV,
EXADDINV1 type J_1IEXADDINV1,
exaddtax1 TYPE j_1iexcdtl-exaddtax1,
rdoc2 TYPE j_1iexcdtl-rdoc2,
ritem2 TYPE j_1iexcdtl-ritem2,
menge TYPE j_1iexcdtl-menge,
ADDED FOR RUDRAPUR ON 08.03.2008 BY ASHOK.CH
*ENDED ON 08.02.2008
END OF wa1_j_1iexcdtl.
TYPES :BEGIN OF wa1_lfa1,
name1 TYPE lfa1-name1,
ktokk TYPE lfa1-ktokk,
werks TYPE lfa1-werks,
lifnr TYPE lfa1-lifnr,
END OF wa1_lfa1.
TYPES :BEGIN OF wa1_ekexclf,
belnr TYPE ekbe-belnr,
budat TYPE ekbe-budat,
menge TYPE ekbe-menge,
ebelp TYPE ekbe-ebelp,
ebeln TYPE ekbe-ebeln,
gjahr TYPE ekbe-gjahr,
awkey(20) TYPE c,
exnum TYPE j_1iexcdtl-exnum,
exdat TYPE j_1iexcdtl-exdat,
lifnr TYPE j_1iexcdtl-lifnr,
matnr TYPE j_1iexcdtl-matnr ,
maktx TYPE j_1iexcdtl-maktx ,
capind TYPE j_1iexcdtl-capind,
exbas TYPE j_1iexcdtl-exbas,
exbed TYPE j_1iexcdtl-exbed,
ecs TYPE j_1iexcdtl-ecs,
werks TYPE j_1iexcdtl-werks,
ritem1 TYPE j_1iexcdtl-ritem1,
rdoc1 TYPE j_1iexcdtl-rdoc1,
docyr TYPE j_1iexcdtl-docyr,
name1 TYPE lfa1-name1,
ktokk TYPE lfa1-ktokk,
exaddtax1 TYPE j_1iexcdtl-exaddtax1,
added for rudrapur on 08.03.2008 by ASHOK.CH
bedinv type J_1IBEDINV,
ecsinv type J_1IECSINV,
EXADDINV1 type J_1IEXADDINV1,
END OF MODIFICATION ON 08.02.2008
END OF wa1_ekexclf.
TYPES :BEGIN OF wa1_bkpf,
bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
budat TYPE bkpf-budat,
tcode TYPE bkpf-tcode,
awkey TYPE bkpf-awkey,
END OF wa1_bkpf.
TYPES :BEGIN OF wa1_bseg,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
buzei TYPE bseg-buzei,
bschl TYPE bseg-bschl,
fwbas TYPE bseg-fwbas ,
pswbt TYPE bseg-pswbt,
hkont TYPE bseg-hkont,
wrbtr TYPE bseg-wrbtr,
ktosl TYPE bseg-ktosl,
koart TYPE bseg-koart,
shkzg TYPE bseg-shkzg,
mwskz TYPE bseg-mwskz,
qsskz TYPE bsis-qsskz,
dmbtr TYPE bseg-dmbtr,
lifnr TYPE bseg-lifnr,
matnr TYPE bseg-matnr,
flag TYPE C,
flag_21 TYPE C,
END OF wa1_bseg.
TYPES :BEGIN OF wa1_tax,
belnr TYPE bseg-belnr,
fi_docno TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
bukrs TYPE bseg-bukrs,
awkey TYPE bkpf-awkey,
fwbas TYPE bseg-fwbas ,
cst_amt TYPE bseg-pswbt,
vat_amt TYPE bseg-pswbt,
shcess_amt TYPE bseg-pswbt,
gl_accnt TYPE bseg-hkont,
gl_desc TYPE skat-txt50,
wctglacc TYPE bseg-hkont,
wctamt TYPE bseg-dmbtr,
taxcode TYPE t059z-wt_withcd,
taxperc TYPE t059z-qsatz,
total_value TYPE bseg-wrbtr,
set_off TYPE bseg-wrbtr,
cond_type TYPE konv-kschl,
description(20) TYPE c,
service_tax TYPE bseg-wrbtr,
service_ecess TYPE bseg-wrbtr,
service_shcess TYPE bseg-wrbtr, "vincy on 31.01.08
ebelp TYPE ekbe-ebelp, " on 15.04.08
flag TYPE c,
mwskz TYPE bseg-mwskz,
END OF wa1_tax.
DATA:BEGIN OF itab_skat,
saknr TYPE skat-saknr,
spras TYPE skat-spras,
txt50 TYPE skat-txt50,
END OF itab_skat.
DATA: iskat LIKE itab_skat OCCURS 0,
wa_skat LIKE itab_skat.
DATA : BEGIN OF zbsis OCCURS 0,
bukrs TYPE bsis-bukrs,
hkont TYPE bsis-hkont,
augdt TYPE bsis-augdt,
augbl TYPE bsis-augbl,
zuonr TYPE bsis-zuonr,
gjahr TYPE bsis-gjahr,
belnr TYPE bsis-belnr,
buzei TYPE bsis-buzei,
budat TYPE bsis-budat,
qsskz TYPE bsis-qsskz,
END OF zbsis.
DATA: BEGIN OF zt059z OCCURS 0,
land1 TYPE t059z-land1,
witht TYPE t059z-witht,
wt_withcd TYPE t059z-wt_withcd,
qscod TYPE t059z-qscod,
qsatz TYPE t059z-qsatz,
hkont TYPE bsis-hkont,
belnr TYPE bsis-belnr,
END OF zt059z.
DATA: BEGIN OF it_faglflexa OCCURS 0, "added by vincy
ryear TYPE faglflexa-ryear,
docnr TYPE faglflexa-docnr,
rldnr TYPE faglflexa-rldnr,
rbukrs TYPE faglflexa-rbukrs,
docln TYPE faglflexa-docln,
prctr TYPE faglflexa-prctr,
END OF it_faglflexa.
Final Table***
TYPES :BEGIN OF wa1_final,
belnr TYPE ekbe-belnr,
fi_docno TYPE bseg-belnr,
budat TYPE ekbe-budat,
menge TYPE ekbe-menge,
rate TYPE konv-kbetr,
ebelp TYPE ekbe-ebelp,
ebeln TYPE ekbe-ebeln,
mwskz TYPE bseg-mwskz,
gjahr TYPE ekbe-gjahr,
awkey(20) TYPE c,
exnum TYPE j_1iexcdtl-exnum,
exdat TYPE j_1iexcdtl-exdat,
lifnr TYPE j_1iexcdtl-lifnr,
matnr TYPE j_1iexcdtl-matnr ,
maktx TYPE j_1iexcdtl-maktx ,
capind TYPE string,
exbas TYPE j_1iexcdtl-exbas,
exbed TYPE j_1iexcdtl-exbed,
ecs TYPE j_1iexcdtl-ecs,
werks TYPE j_1iexcdtl-werks,
ritem1 TYPE j_1iexcdtl-ritem1,
rdoc1 TYPE j_1iexcdtl-rdoc1,
docyr TYPE j_1iexcdtl-docyr,
name1 TYPE lfa1-name1,
ktokk TYPE lfa1-ktokk,
fwbas TYPE bseg-fwbas ,
vat_per TYPE konv-kbetr,
vat_amt TYPE bseg-pswbt,
cst_per TYPE konv-kbetr,
cst_amt TYPE bseg-pswbt,
shcess_amt TYPE bseg-pswbt,
gl_accnt TYPE bseg-hkont,
gl_desc TYPE skat-txt50,
wctglacc TYPE bseg-hkont,
wctamt TYPE bseg-dmbtr,
taxcode TYPE t059z-wt_withcd,
taxperc TYPE t059z-qsatz,
total_value TYPE bseg-wrbtr,
total_value1 TYPE bseg-wrbtr,
excise_tax TYPE bseg-wrbtr,
excise TYPE bseg-wrbtr,
set_off TYPE bseg-wrbtr,
inventorised TYPE konv-kawrt,
cond_type TYPE konv-kschl,
cond_type2 TYPE konv-kschl,
description(20) TYPE c,
service_tax TYPE bseg-wrbtr,
service_ecess TYPE bseg-wrbtr,
service_shcess TYPE bseg-wrbtr, "vincy on 31.01.08
END OF wa1_final.
DATA :it2_ekbe TYPE TABLE OF wa1_ekbe WITH HEADER LINE,
it_ekbe TYPE TABLE OF wa1_ekbe WITH HEADER LINE,
it1_ekbe TYPE TABLE OF wa2_ekbe WITH HEADER LINE WITH KEY ebelp ebeln,
it_j_1iexcdtl TYPE TABLE OF wa1_j_1iexcdtl WITH HEADER LINE WITH KEY rdoc1 ritem1,
it_lfa1 TYPE TABLE OF wa1_lfa1 WITH HEADER LINE WITH KEY lifnr,
it_lfa2 TYPE TABLE OF wa1_lfa1 WITH HEADER LINE WITH KEY lifnr,
it_bkpf TYPE TABLE OF wa1_bkpf WITH HEADER LINE,
it_bseg TYPE TABLE OF wa1_bseg WITH HEADER LINE WITH KEY
bukrs belnr gjahr ktosl shkzg koart,
it1_bseg TYPE TABLE OF wa1_bseg WITH HEADER LINE WITH KEY
bukrs belnr gjahr ktosl shkzg koart,
it_tax TYPE TABLE OF wa1_tax WITH HEADER LINE WITH KEY awkey ,
it_ekexclf TYPE TABLE OF wa1_ekexclf WITH HEADER LINE,
it_final TYPE TABLE OF wa1_final WITH HEADER LINE,
it_final1 TYPE TABLE OF wa1_final WITH HEADER LINE, "vincy
wa_ekbe TYPE wa1_ekbe,
wa1_ekbe TYPE wa2_ekbe,
wa_j_1iexcdtl TYPE wa1_j_1iexcdtl,
wa_lfa1 TYPE wa1_lfa1,
wa_lfa2 TYPE wa1_lfa1,
wa_bkpf TYPE wa1_bkpf,
wa_bseg TYPE wa1_bseg,
wa_tax TYPE wa1_tax,
wa_ekexclf TYPE wa1_ekexclf,
PLANT TYPE WERKS_D,
wa_final TYPE wa1_final.
DATA: it_konv TYPE konv OCCURS 0 WITH HEADER LINE ,
wa_konv TYPE konv,
invent TYPE p DECIMALS 4,
invent1 TYPE konv-kawrt.
DATA:d1 TYPE konv-kposn,
d2 TYPE ekbe-ebelp.
DATA: v_belnr TYPE ekbe-belnr,
v_gjahr TYPE ekbe-gjahr,
v_awkey(20) TYPE c,
idx TYPE sy-tabix.
**********by vincy on 12.01.07***********
DATA: BEGIN OF it_ekko OCCURS 0,
ebeln LIKE ekko-ebeln,
bukrs LIKE ekko-bukrs,
bsart LIKE ekko-bsart,
lifnr LIKE ekko-lifnr,
belnr LIKE ekbe-belnr,
END OF it_ekko.
DATA: BEGIN OF it_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
txz01 LIKE ekpo-txz01,
END OF it_ekpo.
DATA: BEGIN OF it_lfa1v OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
END OF it_lfa1v.
DATA: BEGIN OF s_prctr OCCURS 0,
low LIKE faglflexa-prctr,
END OF s_prctr.
DATA: it_bsegv TYPE TABLE OF wa1_bseg WITH HEADER LINE.
DATA: it_konv1 LIKE konv OCCURS 0 WITH HEADER LINE.
DATA:cnt TYPE i,
awkey1(250).
DATA: LIFNR TYPE LIFNR,
NAME TYPE NAME1_GP,
MTART TYPE MARA-MTART,
MAKTX TYPE MAKTX,
TAX_TOT TYPE KWERT.
***********end of changes by vincy ************
Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_werks1 FOR ekbe-werks,
s_budat1 FOR ekbe-budat,
s_fiscal FOR ekbe-gjahr,
s_lifnr FOR lfa1-lifnr.
SELECTION-SCREEN END OF BLOCK b1.
**"changes being by nahid on 16.04.2008
PARAMETERS : excel AS CHECKBOX DEFAULT 'X'.
PARAMETERS: infile LIKE rlgrap-filename.
DATA : zfile TYPE string.
**"changes ended by nahid on 16.04.2008
AT SELECTION-SCREEN.
IF s_werks1 IS INITIAL.
MESSAGE 'Please Enter Plant details' TYPE 'E'.
ENDIF.
IF s_budat1 IS INITIAL.
MESSAGE 'Please Enter Posting date' TYPE 'E'.
ENDIF.
IF s_fiscal IS INITIAL.
MESSAGE 'Please Enter Fiscal Year' TYPE 'E'.
ENDIF.
*start change by nahid on 16.4.08
AT SELECTION-SCREEN ON VALUE-REQUEST FOR infile.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
CHANGING
file_name = infile
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
zfile = infile.
*end change by nahid on 16.4.08
START-OF-SELECTION.
plant = s_werks1-low.
MODIFIED FOR RUDRAPUR BY ASHOK.CH ON 13.03.2008
IF PLANT NE 'RD01'.
PERFORM get_data.
PERFORM get_zpsr. "vincy
ENDIF.
IF PLANT EQ 'RD01'.
PERFORM get_data1.
ENDIF.
*END OF MODIFICATION ON 13.03.2008
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*start chng by nahid on 16.4.08
IF excel = 'X'.
IF NOT infile IS INITIAL.
PERFORM excel_data.
ELSE.
MESSAGE e000(0) WITH 'Please Enter the File Path'.
ENDIF.
ENDIF.
*end by nahid on 16.4.08
*& Form get_data
FORM get_data .
SELECT belnr budat menge matnr ebelp ebeln gjahr lfbnr lfpos bldat REEWR FROM ekbe INTO
TABLE it_ekbe
WHERE werks IN s_werks1 AND
(bewtp EQ 'Q' OR bewtp EQ 'N') AND
bewtp IN ('Q' , 'N') AND "added N by vincy on 6.07.2008
budat IN s_budat1 AND
gjahr IN s_fiscal .
IF sy-subrc = 0. "for 1st ekbe
IF it_ekbe[] IS NOT INITIAL.
SELECT exnum exdat lifnr matnr maktx capind exbas exbed ecs werks
ritem1 rdoc1 docyr bedinv ecsinv EXADDINV1 exaddtax1 rdoc2 ritem2 menge
FROM j_1iexcdtl INTO TABLE it_j_1iexcdtl FOR ALL ENTRIES IN it_ekbe
WHERE rdoc1 = it_ekbe-ebeln
AND ritem1 = it_ekbe-ebelp AND
lifnr IN s_lifnr.
ENDIF.
IF it_j_1iexcdtl[] IS NOT INITIAL.
SELECT name1 ktokk werks lifnr FROM lfa1 INTO
TABLE it_lfa1 FOR ALL ENTRIES IN it_j_1iexcdtl
WHERE lifnr = it_j_1iexcdtl-lifnr.
ENDIF.
LOOP AT it_ekbe INTO wa_ekbe.
wa1_ekbe-belnr = wa_ekbe-belnr.
wa1_ekbe-budat = wa_ekbe-budat.
wa1_ekbe-menge = wa_ekbe-menge.
wa1_ekbe-ebelp = wa_ekbe-ebelp.
wa1_ekbe-ebeln = wa_ekbe-ebeln.
wa1_ekbe-gjahr = wa_ekbe-gjahr.
wa1_ekbe-matnr = wa_ekbe-matnr.
wa1_ekbe-lfbnr = wa_ekbe-lfbnr.
wa1_ekbe-lfpos = wa_ekbe-lfpos.
wa1_ekbe-bldat = wa_ekbe-bldat.
v_belnr = wa_ekbe-belnr.
v_gjahr = wa_ekbe-gjahr.
CONCATENATE v_belnr v_gjahr INTO v_awkey.
wa1_ekbe-awkey = v_awkey.
APPEND wa1_ekbe TO it1_ekbe.
CLEAR :wa_ekbe.
ENDLOOP.
************changes by vincy on 29.05.08 for 'FB08' and 'FB60'**************
LOOP AT s_werks1.
IF s_werks1-low = 'KN01'.
s_prctr-low = 'MUKNHSTM'.
ELSEIF
s_werks1-low = 'NS01'.
s_prctr-low = 'MUNSKSTM'.
ELSEIF
s_werks1-low = 'RD01'.
s_prctr-low = 'MURDPSTM'.
ENDIF.
APPEND s_prctr.
ENDLOOP.
SELECT bukrs belnr gjahr budat tcode awkey FROM bkpf INTO TABLE it_bkpf
WHERE bukrs = 'MU51' AND
gjahr IN s_fiscal AND
budat IN s_budat1 AND
( tcode = 'FB60' OR tcode = 'FB08' ).
IF it_bkpf[] IS NOT INITIAL.
SELECT ryear docnr rldnr rbukrs docln prctr FROM faglflexa INTO TABLE it_faglflexa
FOR ALL ENTRIES IN it_bkpf WHERE rbukrs = 'MU51' AND
ryear = it_bkpf-gjahr AND
docnr = it_bkpf-belnr.
ENDIF.
LOOP AT it_faglflexa.
READ TABLE s_prctr WITH KEY low = it_faglflexa-prctr.
IF sy-subrc <> 0.
DELETE it_faglflexa.
ENDIF.
CLEAR: it_faglflexa, s_prctr.
ENDLOOP.
**************************end of change*************************************
IF it1_ekbe[] IS NOT INITIAL.
SELECT bukrs belnr gjahr budat tcode awkey FROM bkpf APPENDING
TABLE it_bkpf FOR ALL ENTRIES IN it1_ekbe
WHERE bukrs = 'MU51' AND
gjahr IN s_fiscal AND
awkey = it1_ekbe-awkey.
ENDIF.
IF sy-subrc = 0. "bkpf
IF it_bkpf[] IS NOT INITIAL.
SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
FROM bseg INTO TABLE it1_bseg FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-belnr AND
gjahr = it_bkpf-gjahr AND
bukrs = it_bkpf-bukrs AND
( bschl = '21' ) AND
lifnr IN s_lifnr. "added 21 for miro cancelation
IF it1_bseg[] IS NOT INITIAL.
SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
FROM bseg INTO TABLE it_bseg FOR ALL ENTRIES IN it1_bseg
WHERE belnr = it1_bseg-belnr AND
gjahr = it1_bseg-gjahr AND "changed it_bkpf to it1_bseg
bukrs = it1_bseg-bukrs .
LOOP AT it_bseg.
it_bseg-wrbtr = it_bseg-wrbtr * -1.
it_bseg-fwbas = it_bseg-fwbas * -1.
it_bseg-pswbt = it_bseg-pswbt * -1.
it_bseg-flag_21 = 'X'.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
SELECT name1 ktokk werks lifnr FROM lfa1 INTO
TABLE it_lfa2 FOR ALL ENTRIES IN it1_bseg
WHERE lifnr = it1_bseg-lifnr.
ENDIF.
REFRESH it1_bseg.
SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
FROM bseg INTO TABLE it1_bseg FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-belnr AND
gjahr = it_bkpf-gjahr AND
bukrs = it_bkpf-bukrs AND
( bschl = '31' ) AND "added bschl and lifnr by vincy
lifnr IN s_lifnr.
IF it1_bseg[] IS NOT INITIAL.
SELECT name1 ktokk werks lifnr FROM lfa1 APPENDING
TABLE it_lfa2 FOR ALL ENTRIES IN it1_bseg
WHERE lifnr = it1_bseg-lifnr.
SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
FROM bseg APPENDING TABLE it_bseg FOR ALL ENTRIES IN it1_bseg
WHERE belnr = it1_bseg-belnr AND
gjahr = it1_bseg-gjahr AND "changed it_bkpf to it1_bseg
bukrs = it1_bseg-bukrs AND
bschl <> '35'. "added bschl to avoid vendor paymnt
ENDIF.
SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr ktosl koart shkzg mwskz qsskz dmbtr lifnr
FROM bseg APPENDING CORRESPONDING FIELDS OF TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-belnr AND
gjahr = it_bkpf-gjahr AND
lifnr IN s_lifnr AND
bukrs = it_bkpf-bukrs AND qsskz IN ('WI', 'WJ').
ENDIF.
ENDIF.
SORT it_bseg BY belnr buzei.
IF NOT it_bseg[] IS INITIAL.
SELECT saknr spras txt50 FROM skat
INTO TABLE iskat
FOR ALL ENTRIES IN it_bseg
WHERE saknr = it_bseg-hkont AND spras = 'EN'.
SELECT bukrs hkont augdt augbl zuonr gjahr belnr buzei budat qsskz FROM bsis
INTO TABLE zbsis
FOR ALL ENTRIES IN it_bseg
WHERE bukrs = 'MU51' AND hkont = it_bseg-hkont
AND belnr = it_bseg-belnr AND gjahr = s_fiscal
AND budat IN s_budat1.
ENDIF.
LOOP AT it_bseg.
READ TABLE zbsis WITH KEY hkont = it_bseg-hkont.
IF sy-subrc = 0.
it_bseg-qsskz = zbsis-qsskz.
MODIFY it_bseg.
ENDIF.
CLEAR: it_bseg,zbsis.
ENDLOOP.
LOOP AT zt059z.
LOOP AT it_bseg WHERE qsskz = zt059z-wt_withcd.
zt059z-hkont = it_bseg-hkont.
zt059z-belnr = it_bseg-belnr.
MODIFY zt059z.
CLEAR: it_bseg,zt059z.
ENDLOOP.
ENDLOOP.
CLEAR: wa_bkpf.
*******Filling Wa.
LOOP AT it_bkpf INTO wa_bkpf. "changes by vincy on 14.04.2008
LOOP AT it1_ekbe INTO wa1_ekbe .
READ TABLE it_bkpf INTO wa_bkpf
WITH KEY awkey = wa1_ekbe-awkey.
wa_tax-belnr = wa_bkpf-belnr.
wa_tax-gjahr = wa_bkpf-gjahr.
wa_tax-bukrs = wa_bkpf-bukrs.
wa_tax-awkey = wa_bkpf-awkey.
wa_tax-ebelp = wa1_ekbe-ebelp.
CLEAR: wa_bseg,wa_skat.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr INTO wa_bseg.
IF sy-subrc = 0.
wa_tax-fi_docno = wa_bseg-belnr.
wa_tax-mwskz = wa_bseg-mwskz.
CLEAR: wa_bseg.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'JP4' INTO wa_bseg.
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-gl_accnt = wa_bseg-hkont.
READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
IF sy-subrc = 0.
wa_tax-gl_desc = wa_skat-txt50.
ENDIF.
wa_tax-set_off = wa_bseg-wrbtr.
wa_tax-fwbas = wa_bseg-fwbas.
wa_tax-cst_amt = wa_bseg-pswbt.
wa_tax-description = 'CST CG Sett off'.
wa_tax-cond_type = 'JVCS'.
ENDIF.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'VS1' INTO wa_bseg.
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-fwbas = wa_bseg-fwbas.
ENDIF.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'JP7' INTO wa_bseg.
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-gl_accnt = wa_bseg-hkont.
READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
IF sy-subrc = 0.
wa_tax-gl_desc = wa_skat-txt50.
ENDIF.
wa_tax-set_off = wa_bseg-wrbtr.
wa_tax-fwbas = wa_bseg-fwbas.
wa_tax-vat_amt = wa_bseg-pswbt.
wa_tax-description = 'VAT CG Sett off'.
wa_tax-cond_type = 'JVCD'.
ENDIF.
CLEAR wa_bseg.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'JP5' INTO wa_bseg.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
hkont = '0002868001' INTO wa_bseg. "vat changed for V0 tax code
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-gl_accnt = wa_bseg-hkont.
READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
IF sy-subrc = 0.
wa_tax-gl_desc = wa_skat-txt50.
ENDIF.
wa_tax-vat_amt = wa_bseg-pswbt.
wa_tax-set_off = wa_bseg-wrbtr.
wa_tax-cond_type = 'JVRD'.
wa_tax-fwbas = wa_bseg-fwbas.
wa_tax-description = 'VAT RM Set off'.
ENDIF.
CLEAR: wa_bseg,wa_skat.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
shkzg = 'H'
koart = 'K'
INTO wa_bseg.
IF sy-subrc = 0.
wa_tax-total_value = wa_bseg-wrbtr.
ENDIF.
START OF MODIFICATION BY ASHOK.CH ON 08.02.2008
service_tax
CLEAR wa_bseg.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'VS8' INTO wa_bseg.
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-gl_accnt = wa_bseg-hkont.
READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
IF sy-subrc = 0.
wa_tax-gl_desc = wa_skat-txt50.
ENDIF.
wa_tax-service_tax = wa_bseg-wrbtr.
wa_tax-description = 'Service Tax'.
wa_tax-cond_type = 'JSRT'.
ENDIF.
service_ecess
CLEAR: wa_bseg,wa_skat.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'VS9' INTO wa_bseg.
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-service_ecess = wa_bseg-wrbtr.
ENDIF.
**********changes by vincy on 31.01.08*********************
service_shcess
CLEAR: wa_bseg.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr
flag = ''
ktosl = 'VSE' INTO wa_bseg.
IF sy-subrc = 0.
wa_bseg-flag = 'X'.
MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
wa_tax-service_shcess = wa_bseg-wrbtr.
ENDIF.
*************************end of changes***********************
END OF MODIFICATION ON 08.02.2008
APPEND wa_tax TO it_tax.
ENDIF.
CLEAR :wa_tax,wa_bseg,wa_bkpf,wa_skat.
ENDLOOP.
CLEAR wa1_ekbe.
LOOP AT it1_ekbe INTO wa1_ekbe.
READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
WITH KEY rdoc1 = wa1_ekbe-ebeln
ritem1 = wa1_ekbe-ebelp.
*New query added by Nilesh
READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
WITH KEY rdoc1 = wa1_ekbe-lfbnr
ritem2 = wa1_ekbe-lfpos.
READ TABLE it_bkpf INTO wa_bkpf
WITH KEY awkey = wa1_ekbe-awkey.
IF sy-subrc = 0.
READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
belnr = wa_bkpf-belnr
gjahr = wa_bkpf-gjahr.
IF sy-subrc = 0.
wa_ekexclf-belnr = wa1_ekbe-belnr.
wa_ekexclf-budat = wa1_ekbe-budat.
wa_ekexclf-menge = wa1_ekbe-menge.
wa_ekexclf-ebelp = wa1_ekbe-ebelp.
wa_ekexclf-ebeln = wa1_ekbe-ebeln.
wa_ekexclf-gjahr = wa1_ekbe-gjahr.
wa_ekexclf-awkey = wa1_ekbe-awkey.
wa_ekexclf-lifnr = it_bseg-lifnr.
wa_ekexclf-matnr = it_bseg-matnr .
READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl "for records for which either rdoc1 or matnr
WITH KEY rdoc2 = wa1_ekbe-lfbnr "not maintained in ekbe by vincy on 16.06.08
menge = wa1_ekbe-menge.
IF sy-subrc <> 0 .
READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
WITH KEY rdoc1 = wa1_ekbe-ebeln
exdat = wa1_ekbe-bldat
matnr = wa1_ekbe-matnr
menge = wa1_ekbe-menge.
ENDIF.
READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
WITH KEY rdoc1 = wa1_ekbe-ebeln
ritem1 = wa1_ekbe-ebelp.
IF sy-subrc = 0.
wa_ekexclf-belnr = wa1_ekbe-belnr.
wa_ekexclf-budat = wa1_ekbe-budat.
wa_ekexclf-menge = wa1_ekbe-menge.
wa_ekexclf-ebelp = wa1_ekbe-ebelp.
wa_ekexclf-ebeln = wa1_ekbe-ebeln.
wa_ekexclf-gjahr = wa1_ekbe-gjahr.
wa_ekexclf-awkey = wa1_ekbe-awkey.
wa_ekexclf-exnum = wa_j_1iexcdtl-exnum.
wa_ekexclf-exdat = wa_j_1iexcdtl-exdat.
wa_ekexclf-lifnr = wa_j_1iexcdtl-lifnr.
wa_ekexclf-matnr = wa_j_1iexcdtl-matnr .
wa_ekexclf-maktx = wa_j_1iexcdtl-maktx .
wa_ekexclf-capind = wa_j_1iexcdtl-capind.
wa_ekexclf-exbas = wa_j_1iexcdtl-exbas.
wa_ekexclf-exbed = wa_j_1iexcdtl-exbed.
wa_ekexclf-ecs = wa_j_1iexcdtl-ecs.
wa_ekexclf-werks = wa_j_1iexcdtl-werks.
wa_ekexclf-ritem1 = wa_j_1iexcdtl-ritem1.
wa_ekexclf-rdoc1 = wa_j_1iexcdtl-rdoc1.
wa_ekexclf-docyr = wa_j_1iexcdtl-docyr.
wa_ekexclf-exaddtax1 = wa_j_1iexcdtl-exaddtax1.
IF it_bseg-flag_21 = 'X'.
wa_ekexclf-exbas = wa_ekexclf-exbas * -1.
ENDIF.
MODIFIED BY ASHOK.CH ON 08.03.2008
IF wa_j_1iexcdtl-WERKS NE 'RD01' .
wa_ekexclf-exbed = wa_j_1iexcdtl-exbed.
wa_ekexclf-ecs = wa_j_1iexcdtl-ecs.
wa_ekexclf-exaddtax1 = wa_j_1iexcdtl-exaddtax1.
IF it_bseg-flag_21 = 'X'.
wa_ekexclf-exbed = wa_ekexclf-exbed * -1.
wa_ekexclf-ecs = wa_ekexclf-ecs * -1.
wa_ekexclf-exaddtax1 = wa_ekexclf-exaddtax1 * -1.
ENDIF.
ELSE.
wa_ekexclf-exbed = wa_j_1iexcdtl-BEDINV.
wa_ekexclf-ecs = wa_j_1iexcdtl-ecsINV.
wa_ekexclf-exaddtax1 = wa_j_1iexcdtl-exaddINV1.
ENDIF.
END IF MODIFICATION ON 08.03.2008
APPEND wa_ekexclf TO it_ekexclf.
CLEAR :wa_lfa1,wa_j_1iexcdtl,wa1_ekbe.
ENDIF.
READ TABLE it_lfa2 INTO wa_lfa2
WITH KEY lifnr = wa_ekexclf-lifnr.
IF sy-subrc = 0.
wa_ekexclf-name1 = wa_lfa2-name1.
wa_ekexclf-ktokk = wa_lfa2-ktokk.
ENDIF.
APPEND wa_ekexclf TO it_ekexclf.
ENDIF.
ENDIF.
CLEAR :wa_lfa1,wa_j_1iexcdtl,wa1_ekbe,wa_lfa2,wa_ekexclf.
ENDLOOP.
CLEAR wa_ekexclf.
LOOP AT it_ekexclf INTO wa_ekexclf.
wa_final-belnr = wa_ekexclf-belnr.
wa_final-budat = wa_ekexclf-budat.
wa_final-menge = wa_ekexclf-menge.
wa_final-ebelp = wa_ekexclf-ebelp.
wa_final-ebeln = wa_ekexclf-ebeln.
wa_final-gjahr = wa_ekexclf-gjahr.
wa_final-awkey = wa_ekexclf-awkey.
wa_final-exnum = wa_ekexclf-exnum.
wa_final-exdat = wa_ekexclf-exdat.
wa_final-lifnr = wa_ekexclf-lifnr.
wa_final-matnr = wa_ekexclf-matnr .
wa_final-maktx = wa_ekexclf-maktx .
wa_final-shcess_amt = wa_ekexclf-exaddtax1.
IF wa_ekexclf-capind = 'C'.
wa_final-capind = 'Consumables'.
ENDIF.
IF wa_ekexclf-capind = 'A'.
wa_final-capind = 'Assets'.
ENDIF.
IF wa_ekexclf-capind = 'T'.
wa_final-capind = 'Tools'.
ENDIF.
IF wa_ekexclf-capind = ''.
wa_final-capind = 'Raw Material'.
ENDIF.
IF wa_ekexclf-capind = 'N'.
wa_final-capind = 'Non Cenvatable'.
ENDIF.
IF wa_ekexclf-capind NE 'C' AND wa_ekexclf-capind NE 'A' AND
wa_ekexclf-capind NE '' AND wa_ekexclf-capind NE 'N'.
wa_final-capind = wa_ekexclf-capind.
ENDIF.
wa_final-exbas = wa_ekexclf-exbas.
wa_final-exbed = wa_ekexclf-exbed.
wa_final-ecs = wa_ekexclf-ecs.
wa_final-werks = wa_ekexclf-werks.
wa_final-ritem1 = wa_ekexclf-ritem1.
wa_final-rdoc1 = wa_ekexclf-rdoc1.
wa_final-docyr = wa_ekexclf-docyr.
wa_final-name1 = wa_ekexclf-name1.
wa_final-ktokk = wa_ekexclf-ktokk.
wa_final-excise = wa_final-exbas + wa_final-exbed + wa_final-ecs + wa_final-shcess_amt.
CLEAR :wa_tax.Hi ,
I think you are using the redundant selects to fetch the data from BSEG.
First select all the data into an internal table based on bkpf.
Now you can distribute the data into whatever tables you want using the loop,read-binary search and append statements..
Loop at it_bseg.
read it_bseg where
xxxxx
xxxxx
binary search.
append wa to it2_bseg.
endloop
This avoid several database fetches..
Thank you.. -
How to change the Amount in LC(DMBTR) in F-02
Usually, when we create accounting document though F-02. the Amount in LC(bseg-DMBTR) is create base on the amount(bseg-WRBTR) and the local currency .
Now I want to change this field's value, I want to know in which program create I can change the Amount in LC(bseg-dmbtr) , or can we change it in Substitution (ZRGGBS000) ?Hi,
as per SAP standard it is no possible once document has posted
If you want to change amount LC or DC
Please cancel/reverse document in FB08 if it is open item
if it is Cleared item means use T code - FBRA
and post new document correct LC amount
Thanking you
Regards
mahesh -
How to use BKPF and BSEG without using inner join
Hi,
can anybody plz tell me the logic about how to complete the report without inner joining bkpf and bseg.Is this report can be really be made by using only bseg,bkpf ?
*selection-criteria .
BKPF-USNAM
BKPF-CPUDT
BKPF-BUDAT
BKPF-GJAHR
BKPF-BUKRS
BKPF-BELNR
BSEG-SAKNR
BSEG-LIFNR
BSEG-KUNNR
BSEG-ZUONR
BSEG-SGTXT
Output fields required.
BKPF-BUKRS
BKPF-BELNR
BKPF-GJAHR
BKPF-MONAT
BKPF-BLART
BKPF-CPUDT
BKPF-BLDAT
BKPF-BUDAT
BKPF-USNAM
BKPF-XBLNR
BKPF-STBLG
BKPF-BKTXT
BKPF-WAERS
BKPF-KURSF
BSEG-BUZEI
BSEG-BSCHL
BSEG-KOART
BSEG-UMSKZ
BSEG-SHKZG
BSEG-MWSKZ
BSEG-PSWBT
BSEG-PSWSL
BSEG-DMBTR
BSEG-SAKNR
BSEG-HKONT
BSEG-KOSTL
BSEG-KUNNR
BSEG-VBELN
BSEG-LIFNR
BSEG-ANLN1
BSEG-ANLN2
BSEG-AUFNR
BSEG-MATNR
BSEG-MENGE
BSEG-MEINS
BSEG-ZUONR
BSEG-SGTXT
Thanks,
Rahman
Moderator Message: Please search before posting your question. Thread locked.
Edited by: Suhas Saha on Jan 31, 2012 3:07 PMQuick question - what's preventing your from using built-in functions?
I suggest mapping your Time Dim to a standard Time Dim and work with it - you'll save a lot more time. You'd even need this table if you wanted to work around Todate/AGO.
It is possible to model this functionality w/o functions, but it'll be time consuming task, similar to using Time Series Wizard in Siebel Analytics. You'll need to build aliases and views along with some complex joins (such as TIME.KEY=TIME.KEY-365), introduce a bunch of variables to control. Also, you might not get much flexibility in terms of years. For each year, you'd need an alias table. (TIME_DIM_PY). -
How to determine Tax and Basic amount from BSEG entry
Hi Guru's,
How can I determine from the BSEG table the following lines for one BELNR?
I need to know the TAX amount and the basic amount (without TAX). When I search the bseg table I see tree lines and the field DMBTR contains all values but I need to determine which line is the line with tax amount and the line with the basic amount.
Hope someone can help me out.
Best regards.
Edited by: Julius Bussche on Jan 9, 2009 1:58 PM
Please use meaningfull subject titles.Hello,
How can I determine from the BSEG table the following lines for one BELNR?
I need to know the TAX amount and the basic amount (without TAX). When I search the bseg table I see tree lines and the field DMBTR contains all values but I need to determine which line is the line with tax amount and the line with the basic amount.
In our system we have BSEG-BUZID: 'T' (for Tax items)
For the Tax line:
BSEG-HWBAS: Tax Base Amount in Local Currency
BSEG-DMBTR: Tax Amount in Local Currency
Hope this helps.
BR,
Suhas
Edited by: Suhas Saha on Jan 9, 2009 1:39 PM -
How do we join cluster table bseg?
Friends ,
i just wanna know as 2 how can we combine bseg and bkpf tables.
since bkpf is a transparent table and bseg is a cluster table.
regards
Essam
[email protected]Hi Essam,
REPORT ztestport_01.
TABLES : bkpf,
bseg.
INTERNAL TABLE AND WORK AREA FOR THE FIELDS IN BKPF TABLE *
DATA : BEGIN OF itab_bkpf OCCURS 0,
bukrs LIKE bkpf-bukrs, "Company Code.
gjahr LIKE bkpf-gjahr, "Fiscal Year.
budat LIKE bkpf-budat, "Posting Date in the Document.
belnr LIKE bkpf-belnr, "Accounting document number.
blart LIKE bkpf-blart, "Document Type.
END OF itab_bkpf.
DATA : wa_bkpf LIKE LINE OF itab_bkpf.
INTERNAL TABLE AND WORK AREA FOR THE FIEDLS IN BSEG TABLE *
DATA : BEGIN OF itab_bseg_debit OCCURS 0,
bukrs LIKE bseg-bukrs, "Company Code.
gjahr LIKE bseg-gjahr, "Fiscal Year.
belnr LIKE bseg-belnr, "Accounting Document Number.
buzei LIKE bseg-buzei, "Line Item.
hkont LIKE bseg-hkont, "General Leadger Account.
shkzg LIKE bseg-shkzg, "Credit/Debit Indicator.
wrbtr LIKE bseg-wrbtr, "Amount in Document Currency.
pswsl LIKE bseg-pswsl, "Update Currency for Gen.Ledger
dmbtr LIKE bseg-dmbtr, "Amount in local currency.
sgtxt LIKE bseg-sgtxt, "Item Text.
zuonr LIKE bseg-zuonr, "Assignment Number.
END OF itab_bseg_debit.
DATA : itab_bseg_credit LIKE STANDARD TABLE OF itab_bseg_debit WITH
HEADER LINE.
FINAL OUTPUT INTERNAL TABLE *
DATA : BEGIN OF itab_output OCCURS 0,
belnr(08) ,
bukrs(04) ,
budat LIKE bkpf-budat,
buzei(03) ,
hkont(07) ,
blart(02) ,
shkzg(01) ,
wrbtr(08) ,
pswsl(05) ,
dmbtr(10) ,
sgtxt(19) ,
zuonr(10) ,
END OF itab_output.
CONSTANTS : c_debit TYPE c VALUE 'S',
c_credit TYPE c VALUE 'H'.
SELECT-OPTIONS *
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-t01.
SELECT-OPTIONS : s_bukrs FOR bkpf-bukrs.
PARAMETERS : p_year LIKE bkpf-gjahr visible length 2.
SELECT-OPTIONS : s_budat FOR bkpf-budat,
s_dbacct FOR bseg-hkont,
s_cracct FOR bseg-hkont,
s_amt FOR bseg-dmbtr.
SELECTION-SCREEN END OF BLOCK input.
SELECTING RECORDS FROM BKPF TABLE BASED ON THE CONDITION *
SELECT bukrs gjahr budat belnr blart
FROM bkpf INTO TABLE itab_bkpf
WHERE bukrs IN s_bukrs AND
gjahr EQ p_year AND
budat IN s_budat.
SELECTING DEBIT LINE ITEMITEMS FROM BSEG FOR THE DOCUMENT *
NUMBER SELECTED FROM BKPF *
IF NOT itab_bkpf[] IS INITIAL.
SELECT bukrs gjahr belnr buzei
hkont shkzg wrbtr pswsl
dmbtr sgtxt zuonr
FROM bseg INTO TABLE itab_bseg_debit
FOR ALL ENTRIES IN itab_bkpf
WHERE bukrs EQ itab_bkpf-bukrs AND
belnr EQ itab_bkpf-belnr AND
gjahr EQ itab_bkpf-gjahr AND
hkont IN s_dbacct AND
shkzg EQ c_debit AND
dmbtr IN s_amt.
SELECTING CREDIT LINE ITEMITEMS FROM BSEG FOR THE DOCUMENT *
NUMBER SELECTED FROM BKPF *
SELECT bukrs gjahr belnr buzei
hkont shkzg wrbtr pswsl
dmbtr sgtxt zuonr
FROM bseg INTO TABLE itab_bseg_credit
FOR ALL ENTRIES IN itab_bkpf
WHERE bukrs EQ itab_bkpf-bukrs AND
belnr EQ itab_bkpf-belnr AND
gjahr EQ itab_bkpf-gjahr AND
hkont IN s_cracct AND
shkzg EQ c_credit AND
dmbtr IN s_amt.
ENDIF.
SORT itab_bkpf BY bukrs gjahr belnr.
SORT itab_bseg_credit BY bukrs gjahr belnr.
LOOPING THE DEBIT ENTRIES *
LOOP AT itab_bseg_debit.
READING THE CREDIT ENTRIES WHICH MATCHES WITH HE CURRENT DOC. NUMBER *
READ TABLE itab_bseg_credit WITH KEY
bukrs = itab_bseg_debit-bukrs
gjahr = itab_bseg_debit-gjahr
belnr = itab_bseg_debit-belnr BINARY SEARCH.
IF sy-subrc EQ 0.
*READING THE POSTING DATE AND DOCUMENT TYPE FOR THE CURRENT DOUCMENT *
AND APPENDING THE DEBIT AND CREDIT ENTRIES *
READ TABLE itab_bkpf INTO wa_bkpf WITH KEY
bukrs = itab_bseg_debit-bukrs
gjahr = itab_bseg_debit-gjahr
belnr = itab_bseg_debit-belnr BINARY SEARCH.
itab_output-belnr = itab_bseg_debit-belnr.
itab_output-bukrs = itab_bseg_debit-bukrs.
itab_output-budat = wa_bkpf-budat.
itab_output-buzei = itab_bseg_debit-buzei.
itab_output-hkont = itab_bseg_debit-hkont.
itab_output-blart = wa_bkpf-blart.
itab_output-shkzg = itab_bseg_debit-shkzg.
itab_output-wrbtr = itab_bseg_debit-wrbtr.
itab_output-pswsl = itab_bseg_debit-pswsl.
itab_output-dmbtr = itab_bseg_debit-dmbtr.
itab_output-sgtxt = itab_bseg_debit-sgtxt.
itab_output-zuonr = itab_bseg_debit-zuonr.
APPEND itab_output.
itab_output-belnr = itab_bseg_credit-belnr.
itab_output-bukrs = itab_bseg_credit-bukrs.
itab_output-budat = wa_bkpf-budat.
itab_output-buzei = itab_bseg_credit-buzei.
itab_output-hkont = itab_bseg_credit-hkont.
itab_output-blart = wa_bkpf-blart.
itab_output-shkzg = itab_bseg_credit-shkzg.
itab_output-wrbtr = itab_bseg_credit-wrbtr.
itab_output-pswsl = itab_bseg_credit-pswsl.
itab_output-dmbtr = itab_bseg_credit-dmbtr.
itab_output-sgtxt = itab_bseg_credit-sgtxt.
itab_output-zuonr = itab_bseg_credit-zuonr.
APPEND itab_output.
ENDIF.
ENDLOOP.
SORT itab_output BY belnr budat shkzg.
then loop your final itab_output
and give write command to print
your fields.
<b>Regards,
Jackie.</b>
Message was edited by:
Jackie -
BSEG is a cluster table and I need to improve the performance of the extract as given below. This is really taking a long time to run. Any suggestions as to how I can improve the performance?
SELECT BELNR
BUZEI
BSCHL
SHKZG
PRCTR
KOSTL
HKONT
DMBTR
WRBTR
SGTXT
FROM BSEG
INTO TABLE IBSEG
FOR ALL entries in IBKPF
WHERE BELNR = IBKPF-BELNR
AND HKONT in gl_acct.Here is a program that I wrote for extracting
data from BSEG. There was a part which had
some "summarized extract", which I have not posted.
REPORT zbseg_extract
LINE-SIZE 100
LINE-COUNT 65
NO STANDARD PAGE HEADING.
TYPE-POOLS : sscr.
TYPES : BEGIN OF ty_bkpf,
bukrs TYPE bkpf-bukrs, "COMPANY CODE(4)
belnr TYPE bkpf-belnr, "DOCUMENT NUMBER(10)
gjahr TYPE bkpf-gjahr, "FISCAL YEAR(4)
blart TYPE bkpf-blart, "DOC TYPE(2)
bldat TYPE bkpf-bldat, "DOC DATE(10)
budat TYPE bkpf-budat, "POSTING DATE(10)
monat TYPE bkpf-monat, "PERIOD(2)
usnam TYPE bkpf-usnam, "USER NAME(12)
tcode TYPE bkpf-tcode, "TCODE(20)
xblnr TYPE bkpf-xblnr, "REF DOC #(16)
stjah TYPE bkpf-stjah, "REVERSE DOC FICAL YR(4)
bktxt TYPE bkpf-bktxt, "DOC HEADER TEXT(25)
waers TYPE bkpf-waers, "CURRENCY KEY(5)
kursf TYPE bkpf-kursf, "EXCHG RATE(12)
bstat TYPE bkpf-bstat, "DOC STATUS(1)
END OF ty_bkpf.
TYPES : BEGIN OF ty_bseg,
bukrs TYPE bkpf-bukrs, "COMPANY CODE
belnr TYPE bkpf-belnr, "DOCUMENT NUMBER
gjahr TYPE bkpf-gjahr, "FISCAL YEAR
buzei TYPE bseg-buzei, "FI LINE ITEM(3)
augdt TYPE bseg-augdt, "CLEARING DATE(10)
augcp TYPE bseg-augcp, "CLEARING ENTRY DATE(10)
augbl TYPE bseg-augbl, "DOC # OF CLEARING DOC(10)
bschl TYPE bseg-bschl, "POSTING KEY(2)
koart TYPE bseg-koart, "ACCOUNT TYPE(1)
shkzg TYPE bseg-shkzg, "DR/CR INDIC(1)
dmbtr TYPE bseg-dmbtr, "AMT IN LOCAL CURRENCY(16)
* sgtxt TYPE bseg-sgtxt, "ITEM TEXT(50)
bewar TYPE bseg-bewar, "TRANSACTION TYPE(3)
kostl TYPE bseg-kostl, "COST CENTER(10)
saknr TYPE bseg-saknr, "G/L ACCOUNT NUMBER(10)
hkont TYPE bseg-hkont, "GENERAL LEDGR ACCT(10)
END OF ty_bseg.
* Itab of file names
TYPES: BEGIN OF ty_file,
file LIKE rlgrap-filename,
END OF ty_file.
* Result of system command
TYPES: BEGIN OF ty_result,
line(132) TYPE c,
END OF ty_result.
TYPES: BEGIN OF ty_sum_bkpf,
bukrs TYPE bkpf-bukrs, "Company Code
belnr TYPE bkpf-belnr, "DOCUMENT NUMBER
gjahr TYPE bkpf-gjahr, "Fiscal year
blart TYPE bkpf-blart, "Document type
monat TYPE bkpf-monat, "Period
END OF ty_sum_bkpf,
BEGIN OF ty_sum_bseg,
bukrs TYPE bseg-bukrs, "COMPANY CODE
belnr TYPE bseg-belnr, "DOCUMENT NUMBER
gjahr TYPE bseg-gjahr, "FISCAL YEAR
hkont TYPE bseg-hkont, "GENERAL LEDGR ACCT
dmbtr TYPE bseg-dmbtr, "AMT IN LOCAL CURRENCY
END OF ty_sum_bseg.
DATA: t_bkpf TYPE TABLE OF ty_bkpf,
t_bseg TYPE TABLE OF ty_bseg,
t_file TYPE TABLE OF ty_file,
t_result TYPE TABLE OF ty_result,
t_sum_bkpf TYPE TABLE OF ty_sum_bkpf,
t_sum_bseg TYPE TABLE OF ty_sum_bseg.
DATA wa_file LIKE LINE OF t_file.
DATA wa_result LIKE LINE OF t_result.
DATA w_cmd(132) TYPE c. "unix command
DATA gv_current_file LIKE rlgrap-filename.
FIELD-SYMBOLS: <bkpf> TYPE ty_bkpf,
<bseg> TYPE ty_bseg,
<bkpf_s> TYPE ty_sum_bkpf,
<bseg_s> TYPE ty_sum_bseg.
DATA: gc_bkpf TYPE cursor,
wa_out(1000) TYPE c,
lv_belnr LIKE bseg-belnr,
lv_kursf(16) TYPE c,
lv_dmbtr(20) TYPE c,
w_monat LIKE bkpf-monat,
lv_dcpfm LIKE usr01-dcpfm, "Decimal point format
w_bkpf_cnt(9) TYPE n, "# of records from BKPF
w_bseg_cnt(9) TYPE n, "# of records from BSEG
w_max TYPE i VALUE 1000,
gv_error(1) TYPE c,
w_current_size(9) TYPE n,
gv_file_ct(8) TYPE n VALUE '1', "initial value of file suffix
wa_bkpf TYPE bkpf,
lv_flag.
DATA : ls_restriction TYPE sscr_restrict,
ls_opt_list TYPE sscr_opt_list,
ls_*** TYPE sscr_***.
CONSTANTS c_pipe(1) TYPE c VALUE '|'.
CONSTANTS: c_x(1) TYPE c VALUE 'X',
c_option(2) VALUE 'EQ',
c_sign(1) VALUE 'I',
c_yes(1) VALUE '1',
c_no(1) VALUE '0',
c_txt(4) TYPE c VALUE '.TXT',
c_gz(3) TYPE c VALUE '.gz',
c_selgrp(3) VALUE 'SEL',
c_pargrp(3) VALUE 'PAR',
c_cmd1(15) TYPE c VALUE 'gzip -v -S .gz',
c_cmd2(8) TYPE c VALUE '2>&1',
c_noint(10) VALUE 'NOINTERVLS',
c_s(1) VALUE 'S',
c_name(7) VALUE 'S_BLART',
c_modgrp(3) VALUE 'MOD'.
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-t03.
PARAMETERS p_detail RADIOBUTTON GROUP rad USER-COMMAND rem.
PARAMETERS p_sum RADIOBUTTON GROUP rad.
SELECTION-SCREEN END OF BLOCK blk.
SELECTION-SCREEN BEGIN OF BLOCK one WITH FRAME TITLE text-t01.
PARAMETERS p_bukrs LIKE bkpf-bukrs OBLIGATORY default 'US15'.
* SELECT-OPTIONS
* s_belnr FOR lv_belnr.
PARAMETERS p_gjahr LIKE bkpf-gjahr OBLIGATORY default sy-datum(4).
PARAMETERS p_monat LIKE bkpf-monat OBLIGATORY
MODIF ID par default sy-datum+4(2).
SELECT-OPTIONS
s_monat FOR w_monat
MODIF ID sel.
SELECT-OPTIONS
s_blart FOR wa_bkpf-blart
NO INTERVALS MODIF ID mod.
SELECTION-SCREEN SKIP.
PARAMETERS p_file LIKE rlgrap-filename OBLIGATORY
DEFAULT text-001.
SELECTION-SCREEN END OF BLOCK one.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK two WITH FRAME TITLE text-t02.
PARAMETERS p_size TYPE i OBLIGATORY
DEFAULT w_max.
PARAMETERS p_count TYPE i OBLIGATORY "Count on the number of
DEFAULT '20000'. "BSEG records per file
PARAMETERS p_zip TYPE c AS CHECKBOX DEFAULT c_x.
SELECTION-SCREEN END OF BLOCK two.
INITIALIZATION.
CLEAR w_bkpf_cnt.
CLEAR w_bseg_cnt.
CLEAR p_monat.
REFRESH s_monat.
REFRESH t_file.
* Restrict the select-options S_BLART
CLEAR ls_opt_list.
ls_opt_list-name = c_noint.
ls_opt_list-options-eq = c_x.
APPEND ls_opt_list TO ls_restriction-opt_list_tab.
CLEAR ls_***.
ls_***-kind = c_s.
ls_***-name = c_name.
ls_***-sg_main = c_sign.
ls_***-sg_addy = space.
ls_***-op_main = c_noint.
ls_***-op_addy = c_noint.
APPEND ls_*** TO ls_restriction-***_tab.
CLEAR ls_opt_list.
CLEAR ls_***.
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
restriction = ls_restriction
EXCEPTIONS
too_late = 1
repeated = 2
selopt_without_options = 3
selopt_without_signs = 4
invalid_sign = 5
empty_option_list = 6
invalid_kind = 7
repeated_kind_a = 8
OTHERS = 9.
AT SELECTION-SCREEN.
IF p_detail EQ c_x.
if s_blart[] is initial.
MESSAGE e257(F0) WITH text-013 text-014.
endif.
ELSEIF p_sum EQ c_x.
ENDIF.
START-OF-SELECTION.
REFRESH t_bkpf.
REFRESH t_sum_bkpf.
CLEAR lv_dcpfm.
* First file name
CONCATENATE p_file gv_file_ct c_txt INTO gv_current_file.
OPEN DATASET gv_current_file IN TEXT MODE FOR OUTPUT ENCODING DEFAULT.
IF sy-subrc NE 0.
gv_error = c_x.
FORMAT COLOR COL_NEGATIVE.
WRITE : text-002, gv_current_file.
STOP.
ELSE.
CLEAR wa_out.
CONCATENATE text-010 gv_current_file
INTO wa_out SEPARATED BY space.
TRANSFER wa_out TO gv_current_file LENGTH 1000.
CLEAR wa_out.
IF p_detail EQ c_x.
CONCATENATE text-h01 text-h02 text-h03
INTO wa_out SEPARATED BY c_pipe.
else.
MOVE text-s01 TO wa_out.
endif.
TRANSFER wa_out TO gv_current_file LENGTH 1000.
ENDIF.
IF sy-sysid = c_yrp.
REFRESH s_monat.
s_monat-sign = c_sign.
s_monat-option = c_option.
s_monat-low = p_monat.
APPEND s_monat.
CLEAR: p_monat, s_monat.
ENDIF.
IF p_detail EQ c_x.
perform do_detailed_extract.
ELSEIF p_sum EQ c_x.
perform do_summarized_extract.
endif.
CLOSE DATASET gv_current_file.
IF NOT p_zip IS INITIAL.
* zip the file just created.
CLEAR w_cmd.
REFRESH t_result.
CONCATENATE c_cmd1 gv_current_file c_cmd2
INTO w_cmd SEPARATED BY space.
CALL 'SYSTEM' ID 'COMMAND' FIELD w_cmd
ID 'TAB' FIELD t_result[].
WRITE : /1 w_cmd COLOR COL_POSITIVE INTENSIFIED OFF.
LOOP AT t_result INTO wa_result.
WRITE /5 wa_result
COLOR COL_POSITIVE INTENSIFIED ON.
ENDLOOP.
CONCATENATE gv_current_file c_gz INTO gv_current_file.
ENDIF.
* Retain last file name
CLEAR wa_file.
MOVE gv_current_file TO wa_file.
APPEND wa_file TO t_file.
CLEAR wa_file.
END-OF-SELECTION.
IF gv_error IS INITIAL.
* Write out the selection screen parameters
WRITE:/ text-004 COLOR COL_HEADING,
p_bukrs COLOR COL_TOTAL INTENSIFIED OFF,
/ text-005 COLOR COL_HEADING,
p_gjahr COLOR COL_TOTAL INTENSIFIED OFF,
/ text-011 COLOR COL_HEADING,
s_monat-low COLOR COL_TOTAL INTENSIFIED OFF,
/ text-006 COLOR COL_HEADING.
* Display all files generated
CLEAR wa_file.
LOOP AT t_file INTO wa_file.
IF sy-tabix = 1.
WRITE: 15 wa_file COLOR COL_TOTAL INTENSIFIED OFF.
ELSE.
WRITE: /15 wa_file COLOR COL_TOTAL INTENSIFIED OFF.
ENDIF.
CLEAR wa_file.
ENDLOOP.
* # of records processed from BKPF, BSEG
SKIP 2.
WRITE: / text-007,
w_bkpf_cnt COLOR COL_POSITIVE INTENSIFIED OFF,
/ text-008,
w_bseg_cnt COLOR COL_POSITIVE INTENSIFIED OFF.
ELSE.
WRITE text-009 COLOR COL_NEGATIVE.
ENDIF.
*& Form do_detailed_extract
* text
* --> p1 text
* <-- p2 text
FORM do_detailed_extract .
* Detailed Extract *
OPEN CURSOR gc_bkpf FOR
SELECT bukrs
belnr
gjahr
blart
bldat
budat
monat
usnam
tcode
xblnr
stjah
bktxt
waers
kursf
bstat
FROM bkpf
WHERE bukrs EQ p_bukrs
* AND belnr IN s_belnr
AND gjahr EQ p_gjahr
AND blart IN s_blart
AND monat IN s_monat.
CLEAR w_max.
w_max = p_size.
CLEAR w_current_size.
DO.
FETCH NEXT CURSOR gc_bkpf
INTO TABLE t_bkpf
PACKAGE SIZE w_max.
IF sy-subrc NE 0.
CLOSE CURSOR gc_bkpf.
EXIT.
ELSEIF sy-subrc EQ 0.
REFRESH t_bseg.
IF NOT t_bkpf[] IS INITIAL.
SELECT bukrs
belnr
gjahr
buzei
augdt
augcp
augbl
bschl
koart
shkzg
dmbtr
* sgtxt
bewar
kostl
saknr
hkont
FROM bseg
INTO TABLE t_bseg
FOR ALL ENTRIES IN t_bkpf
WHERE bukrs EQ t_bkpf-bukrs
AND belnr EQ t_bkpf-belnr
AND gjahr EQ t_bkpf-gjahr.
IF sy-subrc EQ 0.
* PREPARE THE EXTRACT
LOOP AT t_bkpf ASSIGNING <bkpf>.
w_bkpf_cnt = w_bkpf_cnt + 1.
LOOP AT t_bseg ASSIGNING <bseg>
WHERE bukrs EQ <bkpf>-bukrs
AND belnr EQ <bkpf>-belnr
AND gjahr EQ <bkpf>-gjahr.
CLEAR wa_out.
WRITE <bkpf>-kursf TO lv_kursf.
WRITE <bseg>-dmbtr TO lv_dmbtr.
CONCATENATE <bkpf>-bukrs
<bkpf>-belnr
<bkpf>-gjahr
<bseg>-buzei
<bkpf>-blart
<bkpf>-bldat
<bkpf>-budat
<bkpf>-monat
<bkpf>-usnam
<bkpf>-tcode
<bkpf>-xblnr
<bkpf>-stjah
<bkpf>-bktxt
<bkpf>-waers
lv_kursf
<bkpf>-bstat
<bseg>-augdt
<bseg>-augcp
<bseg>-augbl
<bseg>-bschl
<bseg>-koart
<bseg>-shkzg
lv_dmbtr
* <bseg>-sgtxt
<bseg>-bewar
<bseg>-kostl
<bseg>-saknr
<bseg>-hkont
INTO wa_out SEPARATED BY c_pipe.
REPLACE ',' IN wa_out WITH ''.
TRANSFER wa_out TO gv_current_file LENGTH 1000.
w_bseg_cnt = w_bseg_cnt + 1.
* Logic to split files as per Count on sel. screen
w_current_size = w_current_size + 1.
IF w_current_size EQ p_count.
CLEAR w_current_size.
CLEAR wa_out.
* Denote end of current file
CONCATENATE text-003 gv_file_ct INTO wa_out.
TRANSFER wa_out TO gv_current_file.
CLOSE DATASET gv_current_file.
IF NOT p_zip IS INITIAL.
* zip the file just closed.
CLEAR w_cmd.
REFRESH t_result.
CONCATENATE c_cmd1 gv_current_file c_cmd2
INTO w_cmd SEPARATED BY space.
CALL 'SYSTEM' ID 'COMMAND' FIELD w_cmd
ID 'TAB' FIELD t_result[].
WRITE /1 w_cmd COLOR COL_POSITIVE INTENSIFIED OFF.
LOOP AT t_result INTO wa_result.
WRITE /5 wa_result
COLOR COL_POSITIVE INTENSIFIED ON.
ENDLOOP.
CONCATENATE gv_current_file c_gz INTO gv_current_file.
ENDIF.
* Retain name of current file
CLEAR wa_file.
MOVE gv_current_file TO wa_file.
APPEND wa_file TO t_file.
CLEAR wa_file.
CLEAR: wa_out, gv_current_file.
gv_file_ct = gv_file_ct + 1. "increment file counter
CONDENSE gv_file_ct.
CONCATENATE p_file gv_file_ct c_txt
INTO gv_current_file.
* Open next file
OPEN DATASET gv_current_file IN TEXT MODE
FOR OUTPUT ENCODING DEFAULT.
IF sy-subrc NE 0.
gv_error = c_x.
FORMAT COLOR COL_NEGATIVE.
WRITE : text-002, gv_current_file.
STOP.
ELSE.
CLEAR wa_out.
CONCATENATE text-010 gv_current_file
INTO wa_out SEPARATED BY space.
TRANSFER wa_out TO gv_current_file LENGTH 1000.
CLEAR wa_out.
CONCATENATE text-h01 text-h02 text-h03
INTO wa_out SEPARATED BY c_pipe.
TRANSFER wa_out TO gv_current_file LENGTH 1000.
ENDIF.
* End of file split logic
ENDIF.
ENDLOOP.
DELETE t_bseg WHERE bukrs EQ <bkpf>-bukrs
AND belnr EQ <bkpf>-belnr
AND gjahr EQ <bkpf>-gjahr.
ENDLOOP.
CLEAR wa_out.
CONCATENATE text-003 gv_file_ct INTO wa_out.
TRANSFER wa_out TO gv_current_file.
ENDIF. "END OF SY-SUBRC CHECK
ENDIF.
REFRESH: t_bkpf, t_bseg.
ENDIF. " ELSEIF SY-SUBRC EQ 0.
ENDDO. " DO
ENDFORM. " do_detailed_extract -
Hi,
I am having serious performance issue due to BSEG table .I am having a change request in which I have to solve the performance issue with regard to BSEG. The situation was that previously they had used select * on both BKPF and BSEG. I removed the select * and selected only those fields which are required as shown below. I also tried using cursors. But the problem is happening in the TEST server where BSEG is having more than 1 crore entries. I have gone through some threads but still not able to understand how to solve this problem. Please help
select bukrs belnr gjahr bldat bstat from bkpf into table T_BKPF_p
WHERE BUKRS IN sd_bukrs AND
BLDAT < s_bldat-low
and BSTAT = ' ' .
select bukrs belnr gjahr shkzg dmbtr hkont from bseg into table T_BSEG_C
FOR ALL ENTRIES IN t_BKPF_p
WHERE BUKRS = T_bkpf_p-bukrs
AND BELNR = T_bkpf_p-belnr
AND GJAHR = T_bkpf_p-gjahr
AND HKONT = SKB1-SAKNR.Hi Kunal,
Here is my take on your issue.
In your select statement on BKPF you are selecting every BKPF record for a specified company code and blank document status that was created before a specified date. If your company has implemented SAP 10 years ago, and your user enters todays date and leaves the company code field blank you will effectively be retrieving almost all the records from BKPF (excluding the ones created today or those with non-blank document status). This would effectively be a huge amount of data. After that you are looking for the corresponding BSEG records for all the records that you have selected in BKPF.
My question to you is why do you need to look at all the records before a given date? Why not ask the user to enter a smaller date range and make the document date and the company code a mandatory entry? You do not have to look at 10 years worth of data especially if you are running this online (as opposed to in the background).
Your BSEG select looks correct. There is very little that you can do except for adding BUZEI to the field list. If you use for all entries and do not include the entire primary key you could lose data.
TABLES: bkpf,
skb1.
SELECT-OPTIONS: s_bldat FOR bkpf-bldat OBLIGATORY,
sd_bukrs FOR bkpf-bukrs OBLIGATORY.
TYPES: BEGIN OF ty_bkpf,
bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
bldat TYPE bkpf-bldat,
bstat TYPE bkpf-bstat,
END OF ty_bkpf,
BEGIN OF ty_bseg,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
buzei TYPE bseg-buzei,
shkzg TYPE bseg-shkzg,
dmbtr TYPE bseg-dmbtr,
hkont TYPE bseg-hkont,
END OF ty_bseg.
DATA: t_bkpf_p TYPE TABLE OF ty_bkpf,
t_bseg_c TYPE TABLE OF ty_bseg.
SELECT bukrs
belnr
gjahr
bldat
bstat
FROM bkpf
INTO TABLE t_bkpf_p
WHERE bukrs IN sd_bukrs
AND bldat IN s_bldat
AND bstat EQ space .
IF NOT t_bkpf_p[] IS INITIAL.
SELECT bukrs
belnr
gjahr
buzei
shkzg
dmbtr
hkont
FROM bseg
INTO TABLE t_bseg_c
FOR ALL ENTRIES IN t_bkpf_p
WHERE bukrs EQ t_bkpf_p-bukrs
AND belnr EQ t_bkpf_p-belnr
AND gjahr EQ t_bkpf_p-gjahr
AND hkont EQ skb1-saknr.
ENDIF. -
Difference between BSEG amount field and FAGLFLEXA/FAGLFLEXT Amount fields.
Hi experts,
We have a newly SAP instance with the New GL activated. However, when i compared between BSEG and the FAGLFLEXA/FAGLFLEXT tables, I found a difference in the length of the transaction amounts.
BSEG
DMBTR DMBTR CURR 13 2 Amount in Local Currency
WRBTR WRBTR CURR 13 2 Amount in Document Currency
FAGLFLEXA/FAGLFLEXT
TSL VTCUR12 CURR 23 2 Value in Transaction Currency
HSL VLCUR12 CURR 23 2 Value in Local Currency
KSL VGCUR12 CURR 23 2 Value in Group Currency
OSL VOCUR12 CURR 23 2 Value in Another Currency
Is there a reason for this difference? and any config that needs to be perform to synchronise the difference?
Thank you in advance.Hi Jason,
Please run report TFC_COMPARE_VZ in SE38/SA38 and compare the difference. If there is any difference ONLY SAP can correct this. Should you notice any difference, please raise an OSS.
Hope this helps.
Vikas. -
Hello,
I need to get fields from KOART ALTKT XBILK GVTYP from BSEG based on BKPF entries. Is there any other table that I can get these details from Because its taking a lot of time to get the entries from BSEG. Please suggest.
Thanks
VikPlease see this Query for getting data from the BSEG Based on the BKPF internal table data ... it was Performed tuned already ..
Code to demonstrate select command
*Code to demonstrate select into internal table command
TYPES: BEGIN OF t_bkpf,
* include structure bkpf.
bukrs LIKE bkpf-bukrs,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
bldat LIKE bkpf-bldat,
monat LIKE bkpf-monat,
budat LIKE bkpf-budat,
xblnr LIKE bkpf-xblnr,
awtyp LIKE bkpf-awtyp,
awkey LIKE bkpf-awkey,
END OF t_bkpf.
DATA: it_bkpf TYPE STANDARD TABLE OF t_bkpf INITIAL SIZE 0,
wa_bkpf TYPE t_bkpf.
TYPES: BEGIN OF t_bseg,
*include structure bseg.
bukrs LIKE bseg-bukrs,
belnr LIKE bseg-belnr,
gjahr LIKE bseg-gjahr,
buzei LIKE bseg-buzei,
mwskz LIKE bseg-mwskz, "Tax code
umsks LIKE bseg-umsks, "Special G/L transaction type
prctr LIKE bseg-prctr, "Profit Centre
hkont LIKE bseg-hkont, "G/L account
xauto LIKE bseg-xauto,
koart LIKE bseg-koart,
dmbtr LIKE bseg-dmbtr,
mwart LIKE bseg-mwart,
hwbas LIKE bseg-hwbas,
aufnr LIKE bseg-aufnr,
projk LIKE bseg-projk,
shkzg LIKE bseg-shkzg,
kokrs LIKE bseg-kokrs,
END OF t_bseg.
DATA: it_bseg TYPE STANDARD TABLE OF t_bseg INITIAL SIZE 0,
wa_bseg TYPE t_bseg.
*Select FOR ALL ENTRIES command
SELECT bukrs belnr gjahr bldat monat budat xblnr awtyp awkey
UP TO 100 ROWS
FROM bkpf
INTO TABLE it_bkpf.
IF sy-subrc EQ 0.
* The FOR ALL ENTRIES comand only retrieves data which matches
* entries within a particular internal table.
SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart
dmbtr mwart hwbas aufnr projk shkzg kokrs
FROM bseg
INTO TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE bukrs EQ it_bkpf-bukrs AND
belnr EQ it_bkpf-belnr AND
gjahr EQ it_bkpf-gjahr.
ENDIF.
reward points if it is usefull.....
Girish -
GL a/c opening and closing balances
Hi All,
Below is my selection screen:
select-options : s_bukrs for bkpf-bukrs obligatory.
parameter : p_gjahr like bkpf-gjahr obligatory.
select-options : s_budat for bkpf-budat,
s_monat for bkpf-monat,
s_hkont for bseg-hkont.
I am displaying the data from tables BKPF, BSEG, KNA1-NAME1, LFA1-NAME1, SKAT-TXT50. I have to fetch Opening and Closing balances for GL a/c's. I am fetching data from table GLT0-HSLVT(opening balance). But unable to get the data for closing balance based on the period given on the selection screen. In my report I am looping on table it_bseg to populate the final internal table. How to get the closing balances's total based on the input.
Please help me.
Thanks,
HarithaHello Haritha,
Try this code by building a function module. This would cover both opening and closing balance.
FUNCTION ZGL_OPENING_CLOSING_BAL_KEYDAT.
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(COMP) TYPE BKPF-BUKRS
*" REFERENCE(DATE) TYPE BKPF-BUDAT
*" REFERENCE(ACCT) TYPE BSEG-HKONT
*" EXPORTING
*" REFERENCE(BALANCE) TYPE BSEG-DMBTR
DATA : COMPANYCODEID LIKE BAPI0002_2-COMP_CODE ,
POSTING_DATE LIKE BAPI0002_4-POSTING_DATE ,
FISCAL_YEAR LIKE BAPI0002_4-FISCAL_YEAR ,
FISCAL_PERIOD LIKE BAPI0002_4-FISCAL_PERIOD .
DATA : ACCOUNT_BALANCES TYPE TABLE OF BAPI3006_4 WITH HEADER LINE.
DATA : BAL TYPE BSEG-DMBTR.
DATA : IV_DATE TYPE D ,
EV_MONTH_BEGIN_DATE TYPE D,
EV_MONTH_END_DATE TYPE D .
DATA : COMPANYCODE LIKE BAPI3006_0-COMP_CODE,
GLACCT LIKE BAPI3006_0-GL_ACCOUNT ,
FISCALYEAR LIKE BAPI3006_4-FISC_YEAR,
CURRENCYTYPE LIKE BAPI3006_5-CURR_TYPE VALUE 10.
DATA : IT_BKPF TYPE TABLE OF BKPF WITH HEADER LINE.
DATA : BEGIN OF IT_BSEG OCCURS 0,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
SHKZG TYPE BSEG-SHKZG ,
DMBTR TYPE BSEG-DMBTR,
END OF IT_BSEG.
COMPANYCODEID = COMP.
POSTING_DATE = DATE.
IV_DATE = DATE.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
IV_DATE = IV_DATE
IMPORTING
EV_MONTH_BEGIN_DATE = EV_MONTH_BEGIN_DATE
EV_MONTH_END_DATE = EV_MONTH_END_DATE.
CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
EXPORTING
COMPANYCODEID = COMPANYCODEID
POSTING_DATE = POSTING_DATE
IMPORTING
FISCAL_YEAR = FISCAL_YEAR
FISCAL_PERIOD = FISCAL_PERIOD.
IF EV_MONTH_END_DATE NE DATE.
IF FISCAL_PERIOD = 1.
FISCAL_PERIOD = 12 .
FISCAL_YEAR = FISCAL_YEAR - 1 .
ELSE.
FISCAL_PERIOD = FISCAL_PERIOD - 1.
ENDIF.
ENDIF.
COMPANYCODE = COMP.
GLACCT = ACCT.
FISCALYEAR = FISCAL_YEAR.
CALL FUNCTION 'BAPI_GL_ACC_GETPERIODBALANCES'
EXPORTING
COMPANYCODE = COMPANYCODE
GLACCT = GLACCT
FISCALYEAR = FISCALYEAR
CURRENCYTYPE = CURRENCYTYPE
TABLES
ACCOUNT_BALANCES = ACCOUNT_BALANCES.
READ TABLE ACCOUNT_BALANCES WITH KEY FISC_YEAR = FISCALYEAR FIS_PERIOD = FISCAL_PERIOD.
IF SY-SUBRC = 0.
BALANCE = ACCOUNT_BALANCES-BALANCE.
ENDIF.
IF EV_MONTH_END_DATE NE DATE.
SELECT * FROM BKPF INTO TABLE IT_BKPF WHERE BUKRS = COMP AND BUDAT >= EV_MONTH_BEGIN_DATE
AND BUDAT <= DATE.
IF IT_BKPF[] IS NOT INITIAL.
SELECT BELNR GJAHR SHKZG DMBTR
FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_BKPF
WHERE BELNR = IT_BKPF-BELNR AND GJAHR = IT_BKPF-GJAHR AND HKONT = ACCT AND BUKRS = COMP.
ENDIF.
LOOP AT IT_BSEG.
IF IT_BSEG-SHKZG = 'H'.
BAL = BAL - IT_BSEG-DMBTR.
ELSEIF IT_BSEG-SHKZG = 'S'.
BAL = BAL + IT_BSEG-DMBTR.
ENDIF.
ENDLOOP.
BALANCE = BALANCE + BAL.
ENDIF.
ENDFUNCTION.
Raghav -
All Records not showing in Report
Hi All,
U just solved my amount problem....
But now i gives my earlier problem again, means displaying only 1 rows, when i executing for 1 month in selection criteria...and amount showing right total of all records...
example---
Document No......Doc. date.......P.date........Vendor..........Name.........Tax Code.........Base Amt....... Tax Amt........Ven. Ref.........P. Doc...
5500000022 .......22.04.2008 ...28.04.2008....1011............XXXXXXX........NB..................500,000............25,000.............A-102.......4500034463
This Document No. is my 1st Document no. (5500000022)..
Here Base Amount (500,000) & Tax Amount (25,000) is the total of more than 100 records total but showing in Single Row...(This rows showing the only 1st record)...
Here what is the problem in my program...where i m wrong in clearing the itab or itab2...
please let me know...
I m again sending my corrected Program...
Code-----
REPORT zak_form_c4 NO STANDARD PAGE HEADING LINE-SIZE 125 .
TABLES : bsik,bkpf,bseg,j_1imovend,lfa1,t001,t005u,bsak,ekko,bsis, ekkn, anla, anlc.
TYPE-POOLS : slis.
DATA : BEGIN OF itab OCCURS 0,
hkont LIKE bseg-hkont, "Gl account
mwskz LIKE bseg-mwskz, "Tax Code
dmbtr LIKE bseg-dmbtr, "Amount
buzei LIKE bseg-buzei, "line item
ebeln LIKE bseg-ebeln, "Purchasing Document
ebelp LIKE bseg-ebelp, "line item nbr
hwbas LIKE bseg-hwbas, "Base amount
shkzg LIKE bseg-shkzg, "Debit/Credit code
belnr LIKE bsik-belnr, "Document number
gjahr LIKE bsik-gjahr, "Fiscal Year
bldat LIKE bsik-bldat, "Document Date
budat LIKE bsik-budat, "Posting Date
lifnr LIKE bsik-lifnr, "Vendor number
xblnr LIKE mkpf-xblnr, "Ven invoice nbr
name1(25), "name1
ort01 LIKE lfa1-ort01, "City
j_1ilstno LIKE j_1imovend-j_1ilstno, " Vendor tin nbr
regio LIKE lfa1-regio, "Region Code
bezei LIKE t005u-bezei, "Region desc
dmbtr1 LIKE bseg-dmbtr, "Amount
hwbas1 LIKE bseg-hwbas, "Base amount
END OF itab.
DATA : BEGIN OF itab3 OCCURS 0.
INCLUDE STRUCTURE itab.
DATA:END OF itab3.
DATA : wa LIKE LINE OF itab.
DATA : BEGIN OF itab1 OCCURS 0.
INCLUDE STRUCTURE itab.
DATA:END OF itab1.
DATA : BEGIN OF itab2 OCCURS 0.
INCLUDE STRUCTURE itab.
DATA:END OF itab2.
***********************************Purchase order history
DATA: BEGIN OF bet OCCURS 50.
INCLUDE STRUCTURE ekbe.
DATA: END OF bet.
DATA: BEGIN OF bzt OCCURS 50.
INCLUDE STRUCTURE ekbz.
DATA: END OF bzt.
DATA: BEGIN OF betz OCCURS 50.
INCLUDE STRUCTURE ekbez.
DATA: END OF betz.
DATA: BEGIN OF bets OCCURS 50.
INCLUDE STRUCTURE ekbes.
DATA: END OF bets.
DATA: BEGIN OF xekbnk OCCURS 10.
INCLUDE STRUCTURE ekbnk.
DATA: END OF xekbnk.
DATA : w_container TYPE scrfname VALUE 'CL_GRID',
w_cprog TYPE lvc_s_layo,
g_repid LIKE sy-repid,
w_save TYPE c,
w_exit TYPE c,
cl_grid TYPE REF TO cl_gui_alv_grid,
cl_custom_container TYPE REF TO cl_gui_custom_container,
it_fld_catalog TYPE slis_t_fieldcat_alv,
wa_fld_catalog TYPE slis_t_fieldcat_alv WITH HEADER LINE ,
layout TYPE slis_layout_alv,
col_pos LIKE sy-cucol ,
alvfc TYPE slis_t_fieldcat_alv.
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : hkont LIKE bseg-hkont OBLIGATORY. "GL Code
*SELECT-OPTIONS : hkont FOR bseg-hkont .
SELECT-OPTIONS : belnr FOR bsik-belnr .
SELECT-OPTIONS : gjahr FOR bsik-gjahr .
SELECT-OPTIONS : bldat FOR bsik-bldat.
SELECT-OPTIONS : budat FOR bsik-budat.
SELECTION-SCREEN : END OF BLOCK b1.
PERFORM fill_catalog1 USING:
'HKONT' 'ITAB2' 'G/L Code' ,
'BELNR' 'ITAB2' 'Document Number',
'GJAHR' 'ITAB2' 'Year',
'BLDAT' 'ITAB2' 'Doc. date' ,
'BUDAT' 'ITAB2' 'Posting Date',
'LIFNR' 'ITAB2' 'Vendor',
'NAME1' 'ITAB2' 'Name',
'EBELN' 'ITAB2' 'Purchasing Document',
'MWSKZ' 'ITAB2' 'Tax Code',
'HWBAS' 'ITAB2' 'Base Amount',
'DMBTR' 'ITAB2' 'Tax Amount',
'XBLNR' 'ITAB2' 'Vendor Inv. No.'.
SELECT DISTINCT hkont belnr gjahr bldat budat INTO CORRESPONDING FIELDS OF TABLE itab
FROM bsis
WHERE bukrs = '1000'
AND hkont = hkont
AND belnr IN belnr
AND gjahr IN gjahr
AND bldat IN bldat
AND budat IN budat.
SORT itab BY belnr.
LOOP AT itab.
SELECT * FROM bseg WHERE belnr = itab-belnr AND gjahr = itab-gjahr
AND bukrs = '1000'
AND ( ebeln <> ' ' OR hkont = hkont ).
IF sy-subrc = 0.
itab-buzei = bseg-buzei.
itab-mwskz = bseg-mwskz.
IF bseg-ebeln <> ' '.
itab-ebeln = bseg-ebeln.
itab-ebelp = bseg-ebelp.
MODIFY itab.
ENDIF.
IF bseg-hkont = hkont.
itab-shkzg = bseg-shkzg.
itab-hwbas = bseg-hwbas.
itab-dmbtr = bseg-dmbtr.
IF itab-shkzg = 'H'.
itab-dmbtr = itab-dmbtr * ( -1 ).
ENDIF.
MOVE-CORRESPONDING itab TO itab2.
APPEND itab2.
ENDIF.
ENDIF.
ENDSELECT.
ENDLOOP.
LOOP AT itab2.
SELECT SINGLE * FROM ekko WHERE ebeln = itab2-ebeln.
IF sy-subrc = 0.
itab2-lifnr = ekko-lifnr.
ENDIF.
CALL FUNCTION 'ME_READ_HISTORY'
EXPORTING
ebeln = itab2-ebeln
ebelp = itab2-ebelp
webre = 'X'
TABLES
xekbe = bet
xekbz = bzt
xekbes = bets
xekbez = betz
xekbnk = xekbnk.
itab2-xblnr = bet-xblnr.
SELECT SINGLE * FROM lfa1 WHERE lifnr = itab2-lifnr.
itab2-name1 = lfa1-name1.
itab2-ort01 = lfa1-ort01.
itab2-regio = lfa1-regio.
SELECT SINGLE * FROM t005u WHERE bland = itab2-regio
AND spras = 'EN'
AND land1 = 'IN'.
itab2-bezei = t005u-bezei.
SELECT SINGLE * FROM j_1imovend WHERE lifnr = itab2-lifnr.
IF sy-subrc = 0 .
itab2-j_1ilstno = j_1imovend-j_1ilstno. " Vendor tin nbr
ENDIF.
MODIFY itab2.
ENDLOOP.
SORT itab2 BY belnr.
LOOP AT itab2.
DATA : cnt TYPE i,
cnt1 TYPE i.
itab1-dmbtr1 = itab1-dmbtr1 + itab2-dmbtr.
itab1-hwbas1 = itab1-hwbas1 + itab2-hwbas.
AT END OF belnr.
cnt = sy-tabix.
cnt1 = cnt - 1.
DO cnt1 TIMES.
DELETE itab2.
ENDDO.
CLEAR itab2.
itab2-dmbtr = itab1-dmbtr1.
itab2-hwbas = itab1-hwbas1.
MODIFY itab2 TRANSPORTING dmbtr hwbas .
ENDAT.
ENDLOOP.
layout-zebra = 'X' .
layout-colwidth_optimize(1) = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZAK_FORM_C4'
is_layout = layout
it_fieldcat = it_fld_catalog
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = itab2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*& Form FILL_CATALOG1
text
-->P_FIELDNAME text
-->P_REF_TABLE text
-->P_SCRTEXT text
FORM fill_catalog1 USING p_fieldname TYPE any
p_ref_table TYPE any
p_scrtext TYPE any.
CLEAR : wa_fld_catalog.
wa_fld_catalog-fieldname = p_fieldname.
wa_fld_catalog-tabname = p_ref_table.
wa_fld_catalog-seltext_s = p_scrtext.
wa_fld_catalog-seltext_m = p_scrtext.
wa_fld_catalog-seltext_l = p_scrtext.
wa_fld_catalog-datatype = 'CURR'.
wa_fld_catalog-outputlen = 20.
APPEND wa_fld_catalog TO it_fld_catalog.
ENDFORM. " fill_catalog1.
Plz let me know...
ThanksHello Prince,
I just want that my code will show single time records..and Sum of base Value and Tax amount...
You want to summarise Base Value and Tax amount per document, right
I am making a very very small modification to the declaration of ITAB:
DATA :
BEGIN OF itab OCCURS 0,
belnr LIKE bsik-belnr, "Document number "--> Add here
buzei LIKE bseg-buzei, "line item "--> Add here
hkont LIKE bseg-hkont, "Gl account
mwskz LIKE bseg-mwskz, "Tax Code
dmbtr LIKE bseg-dmbtr, "Amount
" buzei LIKE bseg-buzei, "line item "--> Delete Here
ebeln LIKE bseg-ebeln, "Purchasing Document
ebelp LIKE bseg-ebelp, "line item nbr
hwbas LIKE bseg-hwbas, "Base amount
shkzg LIKE bseg-shkzg, "Debit/Credit code
" belnr LIKE bsik-belnr, "Document number "--> Delete here
gjahr LIKE bsik-gjahr, "Fiscal Year
bldat LIKE bsik-bldat, "Document Date
budat LIKE bsik-budat, "Posting Date
lifnr LIKE bsik-lifnr, "Vendor number
xblnr LIKE mkpf-xblnr, "Ven invoice nbr
name1(25), "name1
ort01 LIKE lfa1-ort01, "City
j_1ilstno LIKE j_1imovend-j_1ilstno, " Vendor tin nbr
regio LIKE lfa1-regio, "Region Code
bezei LIKE t005u-bezei, "Region desc
dmbtr1 LIKE bseg-dmbtr, "Amount
hwbas1 LIKE bseg-hwbas, "Base amount
END OF itab.
And modified the code as below:
DATA:
V_DMBTR TYPE DMBTR,
V_HWBAS TYPE HWBAS.
LOOP AT ITAB2.
V_DMBTR = V_DMBTR + ITAB2-DMBTR.
V_HWBAS = V_HWBAS + ITAB2-HWBAS.
AT END OF BELNR.
ITAB2-DMBTR = V_DMBTR.
ITAB2-HWBAS = V_HWBAS.
APPEND ITAB2 TO ITAB3.
CLEAR: ITAB2, V_DMBTR, V_HWBAS.
ENDAT.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZAK_FORM_C4'
is_layout = layout
it_fieldcat = it_fld_catalog
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = itab3 "itab2 --> Use ITAB3 instead of ITAB2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
BR,
Suhas
Edited by: Suhas Saha on Jan 13, 2009 3:23 PM
Maybe you are looking for
-
Método CHECK SUBSEQUENT DOCUMENTS impede cancelamento de algumas NFe´s
Bom dia a todos, Após implementarmos o método CHECK_SUBSEQUENT_DOCUMENTS no QA para impedir a solicitação de estorno cancelamento (através do usuário) de NFe´s do mês anterior, nos primeiros dias do mês subsequente, verificamos que algumas NF-e´s ger
-
hai every one .... i created three files and saved in respective areas new.jsp--->C:\Tomcat 5.0\webapps\ROOT one.html--->C:\Tomcat 5.0\webapps\ROOT MyBean.java--->C:\Tomcat 5.0\webapps\ROOT MyBean.class--->C:\Tomcat 5.0\webapps\ROOT\WEB-INF\classes t
-
How to create a csv file with NCS attributes?
Hi i installed Cisco Prime NCS and trying to perform bulk update of device credentials with csv file. How to create a csv file with all required attributes? This is part of NCS online help talking about this topic: Bulk Update Devices-To update the d
-
I just bought an ipad mini 2. However, could not find photo stream under photos. Why?
-
Using Adobe Photoshop Elements 10 Editor as external editor in Aperture. The issue is once i make the changes in Photoshop it request that I save (use tiff) and the photo is not update in Aperture. What am I doing wrong?