Sy-tabix issue
What is the difference between the sy-tabix & sy-index ?
sy-tabix & sy-index
/message/4752267#4752267 [original link is broken]
sy-index & sy-tabix
Reward points..
Similar Messages
-
All,
I have the following code While executing system is pointing to sy-tabix, but the data I am getting in the READ statement is from last record in the internal table
report z_9699_30.
tables : eket.
types : begin of ty_eket.
include structure eket.
types: end of ty_eket.
data: wa_eket type ty_eket.
data: it_eket like sorted table of wa_eket
with unique key primary_key
components ebeln ebelp etenr
with non-unique sorted key secondary_key
components ebeln ebelp.
parameters: p_ebeln like eket-ebeln.
parameters: p_ebelp like eket-ebelp.
select * from eket into table it_eket
where ebeln eq p_ebeln.
read table it_eket into wa_eket with table key secondary_key
components ebeln = p_ebeln
ebelp = p_ebelp.
Please copy and execute this by giving EBELN and EBELP from EKET
Please make sure while selecting from EKET please select data of multiple records available for same EBELP ie llike
Here below PO # 4500000003 and for Item # 00030 is have multiple records
Here in selection screen by giving PO # as 4500000003 (EBELN) Item # as 00030 (EBELP) , then in the above READ statement system giving SY-TABIX as 3 but if you see the WA_EKET-ETENR is showing 2 instead of 1. This is where is the issue is
EBELN
EBELP
ETENR
Header 4
4500000003
00010
1
4500000003
00020
1
4500000003
00030
1
4500000003
00030
2Now execute some
MOVE sy_tabix TO lv_index.
READ TABLE it_eket INTO wa_eket
INDEX lv_index USING KEY secondary_key.
BREAK-POINT.
READ TABLE it_eket INTO wa_eket
INDEX lv_index USING KEY primary_key.
BREAK-POINT.
and conclude yourself on the meaning of life index with two different keys defined...
Regards,
Raymond
PS: Reference in online help for sy-tabix now
Note that the sy-tabix system field is populated by the assigned secondary index, if sorted secondary keys are used. If this value is used for the subsequent index access to the internal table, the same table index must be explicitly used here. If used implicitly, the value would be interpreted as a primary index. -
Issue with sy-tabix..
hey,
In my BADI, i have a variable l_ztabix of type sy-tabix.
i loop thru my idoc data internal table and modify the internal table if neccessary.
loop at t_idoc_data INTO wa_idoc_data.
l_ztabix = sy-tabix.
modify t_idoc_data index l_ztabix FROM wa_idoc_data.
endloop.
now it so happens, that during the 10th iteration, the sy-tabix is 10, but when the statement l_ztabix = sy-tabix.
is encountered, l_ztabix is set to ' * '. I dont understand why !! bcos of this my modify fails and i get a dump that says, convert_no_number !!
can anyone guess what is happening ??
thksYou did not define l_ztabix big enough. Define it like this.
data: l_ztabix type sy-tabix
Regards,
Rich Heilman -
How to refresh/initialize sy-tabix in a loop?????
Dear all,
Please do let me know how to refresh/initialize 'sy-tabix' for every new document in a loop statement.
Thanx in advance.
Alok.Never try to refresh or initialize system variable. It shall always lead to errors in the programs. For this I have an alternative way below.
Please declare a variable for e.g
data: <b>l_count</b> type sy-tabix.
Inside loop you can write the code like this:
say for eg. you need to refresh l_count for every new material.
Loop at itab.
on change of itab-material.
clear : l_count.
endon.
l_count = l_count + 1.
endloop.
Hope this clarifies your issue.
Lakshminarayanan -
Hi all,
I am using one FM in my application, at one place i am reading table using sy-tabix. But it is showing 0 even table contains values.
In some other place in this code tabix is working. perticular in that place it is not working.
And i check this by executing se37 there it is working fine...
Here the code..
SELECT vbeln vkorg vtweg kunnr spart FROM vbak INTO TABLE it_vbak
where vbeln in s_vbeln.
IF it_vbak[] IS NOT INITIAL.
SELECT kunnr "Customer Number 1
adrnr "Address
FROM kna1 INTO CORRESPONDING FIELDS OF TABLE it_kna1
FOR ALL ENTRIES IN it_vbak
WHERE kunnr = it_vbak-kunnr.
//Here sy-tabix always showing 0.
READ TABLE it_kna1 INTO wa_kna1 INDEX sy-tabix.
IF sy-subrc = 0.
gv_kunnr = wa_kna1-kunnr.
ENDIF.
In some other place it is working...
SELECT lifnr "ACCOUNT NUMBER OF VENDOR OR CREDITOR
adrnr "ADDRESS
FROM lfa1
INTO CORRESPONDING FIELDS OF TABLE it_lfa1
FOR ALL ENTRIES IN it_knvp
WHERE lifnr = it_knvp-lifnr.
ENDIF.
READ TABLE it_lfa1 INTO wa_lfa1 INDEX sy-tabix. // Here it is working.
IF sy-subrc = 0.
gv_lifnr = wa_lfa1-lifnr.
ENDIF.
Can anyone give me any suggetions.. i think code is correct, any fault is there...
Tahnks,
Venkat.Venkat,
There are two selects, 1 from KNa1 and other from LFA1 and a read statement after each select.
For your first select, your sy-tabix will always be 0. Sy-tabix will be filled with Loop or read. Now when execution reaches your second statement of read, the sy-tabix is already filled by the first read.
So, two things: 1. Always use debugging, 2. please explore yourself first on these issues. You can use sy-dbcnt which fills with the total number of records returned.
Regards,
Santosh -
Hi,
When I checked in ST22 I found that the below statement is causing TIME_OUT error.
LOOP AT t_data_ship.
CLEAR w_index.
w_index = sy-tabix.
CLEAR s_data_ship3.
s_data_ship3 = t_data_ship.
CLEAR w_wtyp.
w_wtyp = s_data_ship3-wtyp.
In the above statement time_out error is occuring at line CLEAR w_index.
w_index is declared like sy-tabix.
Is there any issue in clearing a variable inside the loop?
Please give me your suggestionsHi,
This time out dump is not coming for single command. report full process is time out.so check prg hole process.
next point is you can store values to variable without clear command.
you used
CLEAR w_index.
w_index = sy-tabix.
you can use this .
w_index = sy-tabix.
it is enough -
Issues installing 0IC_C03 dataflow in BW 7.0
Hi experts,
We are trying to install the dataflow for stocks infocube (0IC_C03) in BW (release 700 level 0015) from Business Content (release 703 level 0008) and we get the following error message when installing the transformation from Infosource 2LIS_03_BF_TR to the cube:
Start Routine: Syntax error in routine
We have checked the code in the start routine and we get the following error message:
E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter
"SOURCE_PACKAGE" is incompatible with the formal parameter
"DATA_PACKAGE".
Has anybody faced with this issue before?
Any help will be really appreciated.
Regards,
DavidHi,
Pls add the following code in the start Routine.
**************Added as per note 1052648****************************************
InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
RMA_XCC TYPE /BI0/OIRMA_XCC,
InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
RMA_LNK TYPE /BI0/OIRMA_LNK,
InfoObject: 0RMA_RFLG RMA Relevance Flag.
RMA_RFLG TYPE /BI0/OIRMA_RFLG,
InfoObject: 0RTHFEES Stock Transfer Fees.
RTHFEES TYPE /BI0/OIRTHFEES,
*******End Added as per note*****1052648*************************************
After adding the above code no syntactical error in start routine activate the Transformation.
The Problem is Solved.
In my system Start routine code:
PROGRAM trans_routine.
CLASS routine DEFINITION
CLASS lcl_transform DEFINITION.
PUBLIC SECTION.
Attributs
DATA:
p_check_master_data_exist
TYPE RSODSOCHECKONLY READ-ONLY,
*- Instance for getting request runtime attributs;
Available information: Refer to methods of
interface 'if_rsbk_request_admintab_view'
p_r_request
TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
PRIVATE SECTION.
TYPE-POOLS: rsd, rstr.
Rule specific types
TYPES:
BEGIN OF tys_SC_1,
InfoObject: 0STORNO Reversal indicator.
STORNO TYPE /BI0/OISTORNO,
InfoObject: 0RT_PROMO Promotion.
RT_PROMO TYPE /BI0/OIRT_PROMO,
InfoObject: 0VAL_CLASS Valuation class.
VAL_CLASS TYPE /BI0/OIVAL_CLASS,
InfoObject: 0DOC_DATE Document Date.
DOC_DATE TYPE /BI0/OIDOC_DATE,
InfoObject: 0STOCKTYPE Stock type.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0STOCKCAT Stock Categories.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0PSTNG_DATE Posting date in the document.
PSTNG_DATE TYPE /BI0/OIPSTNG_DATE,
InfoObject: 0COMP_CODE Company code.
COMP_CODE TYPE /BI0/OICOMP_CODE,
InfoObject: 0BWAPPLNM Application component.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0MOVETYPE Movement Type (Inventory Management).
MOVETYPE TYPE /BI0/OIMOVETYPE,
InfoObject: 0STOCKRELEV BW: Relevance to Stock.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0CPPVLC BW: Purchase Value in Local Currency.
CPPVLC TYPE /BI0/OICPPVLC,
InfoObject: 0CPSVLC BW: Sales Value in Local Currency.
CPSVLC TYPE /BI0/OICPSVLC,
InfoObject: 0CPSTLC BW: Sales Value in Local Currency.
CPSTLC TYPE /BI0/OICPSTLC,
InfoObject: 0CPQUABU BW: Amount in base unit of measure.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0VAL_TYPE Valuation type.
VAL_TYPE TYPE /BI0/OIVAL_TYPE,
InfoObject: 0PROCESSKEY BW: Transaction Key.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0BATCH Batch number.
BATCH TYPE /BI0/OIBATCH,
InfoObject: 0MATMREA Reason for Goods Movement.
MATMREA TYPE /BI0/OIMATMREA,
InfoObject: 0BUS_AREA Business area.
BUS_AREA TYPE /BI0/OIBUS_AREA,
InfoObject: 0COSTCENTER Cost Center.
COSTCENTER TYPE /BI0/OICOSTCENTER,
InfoObject: 0SOLD_TO Sold-to party.
SOLD_TO TYPE /BI0/OISOLD_TO,
InfoObject: 0WHSE_NUM Warehouse number / warehouse complex.
WHSE_NUM TYPE /BI0/OIWHSE_NUM,
InfoObject: 0STOR_LOC Storage location.
STOR_LOC TYPE /BI0/OISTOR_LOC,
InfoObject: 0STRGE_BIN Storage bin.
STRGE_BIN TYPE /BI0/OISTRGE_BIN,
InfoObject: 0STRGE_TYPE Storage type.
STRGE_TYPE TYPE /BI0/OISTRGE_TYPE,
InfoObject: 0VENDOR Vendor.
VENDOR TYPE /BI0/OIVENDOR,
InfoObject: 0MATERIAL Material.
MATERIAL TYPE /BI0/OIMATERIAL,
InfoObject: 0DOC_NUM BW: Document Number.
DOC_NUM TYPE /BI0/OIDOC_NUM,
InfoObject: 0BASE_UOM Base Unit of Measure.
BASE_UOM TYPE /BI0/OIBASE_UOM,
InfoObject: 0DOC_YEAR BW: Document Year.
DOC_YEAR TYPE /BI0/OIDOC_YEAR,
InfoObject: 0PROFIT_CTR Profit Center.
PROFIT_CTR TYPE /BI0/OIPROFIT_CTR,
InfoObject: 0DCINDIC Debit/credit indicator.
DCINDIC TYPE /BI0/OIDCINDIC,
InfoObject: 0LOC_CURRCY Local currency.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
InfoObject: 0PLANT Plant.
PLANT TYPE /BI0/OIPLANT,
InfoObject: 0FISCVARNT Fiscal year variant.
FISCVARNT TYPE /BI0/OIFISCVARNT,
InfoObject: 0CPNOITEMS BW: Number of Activities.
CPNOITEMS TYPE /BI0/OICPNOITEMS,
InfoObject: 0CO_AREA Controlling area.
CO_AREA TYPE /BI0/OICO_AREA,
InfoObject: 0DOC_ITEM BW: Document Line Number.
DOC_ITEM TYPE /BI0/OIDOC_ITEM,
InfoObject: 0VALUE_LC Amount in local currency.
VALUE_LC TYPE /BI0/OIVALUE_LC,
InfoObject: 0COORDER Order number.
COORDER TYPE /BI0/OICOORDER,
InfoObject: 0QUANT_B Quantity in base units of measure.
QUANT_B TYPE /BI0/OIQUANT_B,
InfoObject: 0MOVE_PLANT Receiving Plant/Issuing Plant.
MOVE_PLANT TYPE /BI0/OIMOVE_PLANT,
InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
RECORDMODE TYPE RODMUPDMOD,
InfoObject: 0BWCOUNTER Additional Key Field Revaluation Document
*Record.
BWCOUNTER TYPE /BI0/OIBWCOUNTER,
InfoObject: 0INDSPECSTK Indicator: Valuation of Special Stock.
INDSPECSTK TYPE /BI0/OIINDSPECSTK,
InfoObject: 0GN_R3_SSY Source System for R/3 Entity.
GN_R3_SSY TYPE /BI0/OIGN_R3_SSY,
InfoObject: 0RT_MOVINV Movement Type is Physical Inventory.
RT_MOVINV TYPE /BI0/OIRT_MOVINV,
InfoObject: 0RT_MOVADJ Movement Type is Stock Adjustment.
RT_MOVADJ TYPE /BI0/OIRT_MOVADJ,
InfoObject: 0RSL_STMAT Structured Article.
RSL_STMAT TYPE /BI0/OIRSL_STMAT,
InfoObject: 0RT_MOVRET Movement Type is Return.
RT_MOVRET TYPE /BI0/OIRT_MOVRET,
InfoObject: 0RSL_STAUTO Automatically Completed Component.
RSL_STAUTO TYPE /BI0/OIRSL_STAUTO,
InfoObject: 0RT_MOVTRAN Movement Type is Stock Transfer.
RT_MOVTRAN TYPE /BI0/OIRT_MOVTRAN,
InfoObject: 0RT_MATPOST Transfer Posting from Article to Article.
RT_MATPOST TYPE /BI0/OIRT_MATPOST,
InfoObject: 0RT_SASTSV Share of Business Volume for Set Sales Val
*ue in Local Crcy.
RT_SASTSV TYPE /BI0/OIRT_SASTSV,
InfoObject: 0RT_SASTST Share of Business Volume for Set with Tax
*in Local Currency.
RT_SASTST TYPE /BI0/OIRT_SASTST,
InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
RMA_XCC TYPE /BI0/OIRMA_XCC,
InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
RMA_LNK TYPE /BI0/OIRMA_LNK,
InfoObject: 0RMA_RFLG RMA Relevance Flag.
RMA_RFLG TYPE /BI0/OIRMA_RFLG,
InfoObject: 0RTHFEES Stock Transfer Fees.
RTHFEES TYPE /BI0/OIRTHFEES,
Field: RECORD.
RECORD TYPE RSARECORD,
END OF tys_SC_1.
TYPES:
tyt_SC_1 TYPE STANDARD TABLE OF tys_SC_1
WITH NON-UNIQUE DEFAULT KEY.
$$ begin of global - insert your declaration only below this line -
... "insert your code here
$$ end of global - insert your declaration only before this line -
METHODS
start_routine
IMPORTING
request type rsrequest
datapackid type rsdatapid
EXPORTING
monitor type rstr_ty_t_monitors
CHANGING
SOURCE_PACKAGE type tyt_SC_1
RAISING
cx_rsrout_abort.
METHODS
inverse_start_routine
IMPORTING
i_th_fields_outbound TYPE rstran_t_field_inv
i_r_selset_outbound TYPE REF TO cl_rsmds_set
i_is_main_selection TYPE rs_bool
i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
i_r_universe_inbound TYPE REF TO cl_rsmds_universe
CHANGING
c_th_fields_inbound TYPE rstran_t_field_inv
c_r_selset_inbound TYPE REF TO cl_rsmds_set
c_exact TYPE rs_bool.
ENDCLASS. "routine DEFINITION
$$ begin of 2nd part global - insert your code only below this line *
TYPES:
BEGIN OF tys_SC_1_full,
InfoObject: 0STORNO Stornokennzeichen.
STORNO TYPE /BI0/OISTORNO,
InfoObject: 0RT_PROMO Aktion.
RT_PROMO TYPE /BI0/OIRT_PROMO,
InfoObject: 0VAL_CLASS Bewertungsklasse.
VAL_CLASS TYPE /BI0/OIVAL_CLASS,
InfoObject: 0DOC_DATE Belegdatum.
DOC_DATE TYPE /BI0/OIDOC_DATE,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0PSTNG_DATE Buchungsdatum im Beleg.
PSTNG_DATE TYPE /BI0/OIPSTNG_DATE,
InfoObject: 0COMP_CODE Buchungskreis.
COMP_CODE TYPE /BI0/OICOMP_CODE,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
MOVETYPE TYPE /BI0/OIMOVETYPE,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
CPPVLC TYPE /BI0/OICPPVLC,
InfoObject: 0CPSVLC BW: Verkaufswert in Hauswährung.
CPSVLC TYPE /BI0/OICPSVLC,
InfoObject: 0CPSTLC BW: VerkWmS Hauswährung.
CPSTLC TYPE /BI0/OICPSTLC,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0VAL_TYPE Bewertungsart.
VAL_TYPE TYPE /BI0/OIVAL_TYPE,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0BATCH Chargennummer.
BATCH TYPE /BI0/OIBATCH,
InfoObject: 0MATMREA Grund für die Warenbewegung.
MATMREA TYPE /BI0/OIMATMREA,
InfoObject: 0BUS_AREA Geschäftsbereich.
BUS_AREA TYPE /BI0/OIBUS_AREA,
InfoObject: 0COSTCENTER Kostenstelle.
COSTCENTER TYPE /BI0/OICOSTCENTER,
InfoObject: 0SOLD_TO Auftraggeber.
SOLD_TO TYPE /BI0/OISOLD_TO,
InfoObject: 0WHSE_NUM Lagernummer/Lagerkomplex.
WHSE_NUM TYPE /BI0/OIWHSE_NUM,
InfoObject: 0STOR_LOC Lagerort.
STOR_LOC TYPE /BI0/OISTOR_LOC,
InfoObject: 0STRGE_BIN Lagerplatz.
STRGE_BIN TYPE /BI0/OISTRGE_BIN,
InfoObject: 0STRGE_TYPE Lagertyp.
STRGE_TYPE TYPE /BI0/OISTRGE_TYPE,
InfoObject: 0VENDOR Lieferant.
VENDOR TYPE /BI0/OIVENDOR,
InfoObject: 0MATERIAL Material.
MATERIAL TYPE /BI0/OIMATERIAL,
InfoObject: 0DOC_NUM BW: Belegnummer.
DOC_NUM TYPE /BI0/OIDOC_NUM,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
InfoObject: 0DOC_YEAR BW: Belegjahr.
DOC_YEAR TYPE /BI0/OIDOC_YEAR,
InfoObject: 0PROFIT_CTR Profit Center.
PROFIT_CTR TYPE /BI0/OIPROFIT_CTR,
InfoObject: 0DCINDIC Soll-/Haben-Kennzeichen.
DCINDIC TYPE /BI0/OIDCINDIC,
InfoObject: 0LOC_CURRCY Hauswährung.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
InfoObject: 0PLANT Werk.
PLANT TYPE /BI0/OIPLANT,
InfoObject: 0FISCVARNT Geschäftsjahresvariante.
FISCVARNT TYPE /BI0/OIFISCVARNT,
InfoObject: 0CPNOITEMS BW: Anzahl Vorgänge.
CPNOITEMS TYPE /BI0/OICPNOITEMS,
InfoObject: 0CO_AREA Kostenrechnungskreis.
CO_AREA TYPE /BI0/OICO_AREA,
InfoObject: 0DOC_ITEM BW: Belegpositionsnummer.
DOC_ITEM TYPE /BI0/OIDOC_ITEM,
InfoObject: 0VALUE_LC Betrag in Hauswährung.
VALUE_LC TYPE /BI0/OIVALUE_LC,
InfoObject: 0COORDER Auftragsnummer.
COORDER TYPE /BI0/OICOORDER,
InfoObject: 0QUANT_B Menge in Basismengeneinheiten.
QUANT_B TYPE /BI0/OIQUANT_B,
InfoObject: 0MOVE_PLANT Empfangendes/Abgebendes Werk.
MOVE_PLANT TYPE /BI0/OIMOVE_PLANT,
InfoObject: 0RECORDMODE BW Deltaverfahren: Update Modus.
RECORDMODE TYPE RODMUPDMOD,
*******************Commented based on oss note1052648*****************************
InfoObject: 0RT_RMAPIDA RMA Inventurdatum.
RT_RMAPIDA TYPE /BI0/OIRT_RMAPIDA,
End Commented based on oss note1052648************************
InfoObject: 0BWCOUNTER Zusätzliches Schlüsselfeld Umbewertungsbel
*egsatz.
BWCOUNTER TYPE /BI0/OIBWCOUNTER,
InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
INDSPECSTK TYPE /BI0/OIINDSPECSTK,
InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
GN_R3_SSY TYPE /BI0/OIGN_R3_SSY,
InfoObject: 0RT_MOVINV Bewegungsart ist Inventur.
RT_MOVINV TYPE /BI0/OIRT_MOVINV,
InfoObject: 0RT_MOVADJ Bewegungsart ist Bestandskorrektur.
RT_MOVADJ TYPE /BI0/OIRT_MOVADJ,
InfoObject: 0RSL_STMAT Strukturierter Artikel.
RSL_STMAT TYPE /BI0/OIRSL_STMAT,
InfoObject: 0RT_MOVRET Bewegungsart ist Retoure.
RT_MOVRET TYPE /BI0/OIRT_MOVRET,
InfoObject: 0RSL_STAUTO Automatisch ergänzte Komponente.
RSL_STAUTO TYPE /BI0/OIRSL_STAUTO,
InfoObject: 0RT_MOVTRAN Bewegungsart ist Umlagerung.
RT_MOVTRAN TYPE /BI0/OIRT_MOVTRAN,
InfoObject: 0RT_MATPOST Umbuchung Artikel an Artikel.
RT_MATPOST TYPE /BI0/OIRT_MATPOST,
InfoObject: 0RT_SASTSV Umsatzanteil am Set Verkaufswert in Hauswä
*hrung.
RT_SASTSV TYPE /BI0/OIRT_SASTSV,
InfoObject: 0RT_SASTST Umsatzanteil am Set Verkaufswert mit Steue
*r in Hauswährung.
RT_SASTST TYPE /BI0/OIRT_SASTST,
**********************Added as per note1052648*****************************************
InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
RMA_XCC TYPE /BI0/OIRMA_XCC,
InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
RMA_LNK TYPE /BI0/OIRMA_LNK,
InfoObject: 0RMA_RFLG RMA Relevance Flag.
RMA_RFLG TYPE /BI0/OIRMA_RFLG,
InfoObject: 0RTHFEES Stock Transfer Fees.
RTHFEES TYPE /BI0/OIRTHFEES,
**********************End Added as per note1052648**************************************
Field: RECORD.
RECORD TYPE RSARECORD,
END OF tys_SC_1_full.
TYPES:
tyt_SC_1_full TYPE STANDARD TABLE OF tys_SC_1_full
WITH NON-UNIQUE DEFAULT KEY.
TYPES:
BEGIN OF tys_TG_1_full,
InfoObject: 0CHNGID Änderungslauf ID.
CHNGID TYPE /BI0/OICHNGID,
InfoObject: 0RECORDTP Satztyp.
RECORDTP TYPE /BI0/OIRECORDTP,
InfoObject: 0REQUID Request ID.
REQUID TYPE /BI0/OIREQUID,
InfoObject: 0CALDAY Kalendertag.
CALDAY TYPE /BI0/OICALDAY,
InfoObject: 0CALMONTH Kalenderjahr / Monat.
CALMONTH TYPE /BI0/OICALMONTH,
InfoObject: 0CALWEEK Kalenderjahr / Woche.
CALWEEK TYPE /BI0/OICALWEEK,
InfoObject: 0CALYEAR Kalenderjahr.
CALYEAR TYPE /BI0/OICALYEAR,
InfoObject: 0MATERIAL Material.
MATERIAL TYPE /BI0/OIMATERIAL,
InfoObject: 0PLANT Werk.
PLANT TYPE /BI0/OIPLANT,
InfoObject: 0STOR_LOC Lagerort.
STOR_LOC TYPE /BI0/OISTOR_LOC,
InfoObject: 0BATCH Chargennummer.
BATCH TYPE /BI0/OIBATCH,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0GN_VENDOR Lieferant.
GN_VENDOR TYPE /BI0/OIGN_VENDOR,
InfoObject: 0RECVS_VAL Zugangswert Bewerteter Bestand.
RECVS_VAL TYPE /BI0/OIRECVS_VAL,
InfoObject: 0ISSVS_VAL Abgangswert Bewerteter Bestand.
ISSVS_VAL TYPE /BI0/OIISSVS_VAL,
InfoObject: 0ISSBLOSTCK Abgangsmenge Gesperrter Bestand.
ISSBLOSTCK TYPE /BI0/OIISSBLOSTCK,
InfoObject: 0ISSCNSSTCK Abgangsmenge Konsignationsbestand.
ISSCNSSTCK TYPE /BI0/OIISSCNSSTCK,
InfoObject: 0ISSQMSTCK Abgangsmenge Qualitätsbestand.
ISSQMSTCK TYPE /BI0/OIISSQMSTCK,
InfoObject: 0ISSTRANSST Abgangsmenge Transitbestand.
ISSTRANSST TYPE /BI0/OIISSTRANSST,
InfoObject: 0RECBLOSTCK Zugangsmenge Gesperrter Bestand.
RECBLOSTCK TYPE /BI0/OIRECBLOSTCK,
InfoObject: 0RECCNSSTCK Zugangsmenge Konsignationsbestand.
RECCNSSTCK TYPE /BI0/OIRECCNSSTCK,
InfoObject: 0RECQMSTCK Zugangsmenge Qualitätsbestand.
RECQMSTCK TYPE /BI0/OIRECQMSTCK,
InfoObject: 0RECTRANSST Zugangsmenge Transitbestand.
RECTRANSST TYPE /BI0/OIRECTRANSST,
InfoObject: 0ISSSCRP Abgangsmenge Ausschuss.
ISSSCRP TYPE /BI0/OIISSSCRP,
InfoObject: 0ISSVALSCRP Abgangswert Ausschuss.
ISSVALSCRP TYPE /BI0/OIISSVALSCRP,
InfoObject: 0RECTOTSTCK Zugangsmenge Gesamt Bestand.
RECTOTSTCK TYPE /BI0/OIRECTOTSTCK,
InfoObject: 0ISSTOTSTCK Abgangsmenge Gesamtbestand.
ISSTOTSTCK TYPE /BI0/OIISSTOTSTCK,
InfoObject: 0ISSVALSTCK Abgangsmenge Bewerteter Bestand.
ISSVALSTCK TYPE /BI0/OIISSVALSTCK,
InfoObject: 0RECVALSTCK Zugangsmenge Bewerteter Bestand.
RECVALSTCK TYPE /BI0/OIRECVALSTCK,
InfoObject: 0VENCONCON Verbrauchswerte Lieferantenkonsignationsbe
*stand.
VENCONCON TYPE /BI0/OIVENCONCON,
InfoObject: 0LOC_CURRCY Hauswährung.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
Field: RECORD Nummer des Datensatzes.
RECORD TYPE RSARECORD,
END OF tys_TG_1_full.
TYPES:
BEGIN OF tys_SC_1__RULE_9,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_9.
TYPES:
BEGIN OF tys_SC_1__RULE_10,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_10.
TYPES:
BEGIN OF tys_SC_1__RULE_11,
InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
GN_R3_SSY TYPE /BI0/OIGN_R3_SSY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0VENDOR Lieferant.
VENDOR TYPE /BI0/OIVENDOR,
END OF tys_SC_1__RULE_11.
TYPES:
BEGIN OF tys_SC_1__RULE_12,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
CPPVLC TYPE /BI0/OICPPVLC,
InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
INDSPECSTK TYPE /BI0/OIINDSPECSTK,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0LOC_CURRCY Hauswährung.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
END OF tys_SC_1__RULE_12.
TYPES:
BEGIN OF tys_SC_1__RULE_13,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
CPPVLC TYPE /BI0/OICPPVLC,
InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
INDSPECSTK TYPE /BI0/OIINDSPECSTK,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0LOC_CURRCY Hauswährung.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
END OF tys_SC_1__RULE_13.
TYPES:
BEGIN OF tys_SC_1__RULE_15,
InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
GN_R3_SSY TYPE /BI0/OIGN_R3_SSY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0VENDOR Lieferant.
VENDOR TYPE /BI0/OIVENDOR,
END OF tys_SC_1__RULE_15.
TYPES:
BEGIN OF tys_SC_1__RULE_19,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_19.
TYPES:
BEGIN OF tys_SC_1__RULE_20,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_20.
TYPES:
BEGIN OF tys_SC_1__RULE_21,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
INDSPECSTK TYPE /BI0/OIINDSPECSTK,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_21.
TYPES:
BEGIN OF tys_SC_1__RULE_22,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
INDSPECSTK TYPE /BI0/OIINDSPECSTK,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_22.
TYPES:
BEGIN OF tys_SC_1__RULE_25,
InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
GN_R3_SSY TYPE /BI0/OIGN_R3_SSY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0VENDOR Lieferant.
VENDOR TYPE /BI0/OIVENDOR,
END OF tys_SC_1__RULE_25.
TYPES:
BEGIN OF tys_SC_1__RULE_31,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
CPPVLC TYPE /BI0/OICPPVLC,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0LOC_CURRCY Hauswährung.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
END OF tys_SC_1__RULE_31.
TYPES:
BEGIN OF tys_SC_1__RULE_37,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_37.
TYPES:
BEGIN OF tys_SC_1__RULE_38,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_38.
TYPES:
BEGIN OF tys_SC_1__RULE_39,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_39.
TYPES:
BEGIN OF tys_SC_1__RULE_40,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_40.
TYPES:
BEGIN OF tys_SC_1__RULE_41,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKCAT Bestandstypen.
STOCKCAT TYPE /BI0/OISTOCKCAT,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_41.
TYPES:
BEGIN OF tys_SC_1__RULE_42,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
PROCESSKEY TYPE /BI0/OIPROCESSKEY,
InfoObject: 0STOCKRELEV BW: Best.Relevanz.
STOCKRELEV TYPE /BI0/OISTOCKRELEV,
InfoObject: 0STOCKTYPE Bestandsausprägung.
STOCKTYPE TYPE /BI0/OISTOCKTYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_42.
TYPES:
BEGIN OF tys_SC_1__RULE_43,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
CPQUABU TYPE /BI0/OICPQUABU,
InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
MOVETYPE TYPE /BI0/OIMOVETYPE,
InfoObject: 0BASE_UOM Basismengeneinheit.
BASE_UOM TYPE /BI0/OIBASE_UOM,
END OF tys_SC_1__RULE_43.
TYPES:
BEGIN OF tys_SC_1__RULE_51,
InfoObject: 0BWAPPLNM Anwendungskomponente.
BWAPPLNM TYPE /BI0/OIBWAPPLNM,
InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
CPPVLC TYPE /BI0/OICPPVLC,
InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
MOVETYPE TYPE /BI0/OIMOVETYPE,
InfoObject: 0LOC_CURRCY Hauswährung.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
END OF tys_SC_1__RULE_51.
Additional types for start routine interface
TYPES:
data_package_structure type tys_SC_1_full.
Additional declaration for update rule interface
DATA:
MONITOR type standard table of rsmonitor WITH HEADER LINE,
MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
RECORD_NO LIKE SY-TABIX,
RECORD_ALL LIKE SY-TABIX,
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
global definitions from update rules
INCLUDE rsbctgn_top.
INCLUDE rsbctgn_update_rules.
FORM routine_9998
TABLES DATA_PACKAGE TYPE tyt_SC_1_full
CHANGING
ABORT LIKE sy-subrc
RAISING
cx_sy_arithmetic_error
cx_sy_conversion_error.
init variables
fill the internal table "MONITOR", to make monitor entries
see OSS note 571669
LOOP AT DATA_PACKAGE.
IF DATA_PACKAGE-stockcat EQ 'V' OR
DATA_PACKAGE-stocktype EQ 'V'.
DELETE DATA_PACKAGE.
ENDIF.
ENDLOOP.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
ENDFORM. "routine_9998
FORM routine_0012
USING
COMM_STRUCTURE type tys_SC_1__RULE_9
CHANGING
RESULT TYPE tys_TG_1_full-ISSCNSSTCK
RETURNCODE LIKE sy-subrc
ABORT LIKE sy-subrc
RAISING
cx_sy_arithmetic_error
cx_sy_conversion_error.
init variables
fill the internal table "MONITOR", to make monitor entries
only goods issue is considered
IF ( COMM_STRUCTURE-processkey EQ '100' "Other Issues
OR COMM_STRUCTURE-processkey EQ '101' "Returns / Vendor
OR COMM_STRUCTURE-processkey EQ '104' "Material Transfer
OR COMM_STRUCTURE-processkey EQ '105' "Stock Adjustment InvD
OR COMM_STRUCTURE-processkey EQ '106' "Stock Adjustment Other
OR COMM_STRUCTURE-processkey EQ '110' ) "Issue from Stock Transfer
AND COMM_STRUCTURE-bwapplnm EQ 'MM'
only movements which are relevant for stock control
AND COMM_STRUCTURE-stockrelev EQ '1'
AND COMM_STRUCTURE-cpquabu <> 0.
only consignment stock is considered
CASE COMM_STRUCTURE-stockcat.
WHEN 'K'.
RESULT = COMM_STRUCTURE-cpquabu.
RETURNCODE = 0.
WHEN space.
IF COMM_STRUCTURE-stocktype CA 'KLM'.
RESULT = COMM_STRUCTURE-cpquabu.
RETURNCODE = 0.
ELSE.
RETURNCODE = 4.
ENDIF.
WHEN OTHERS.
RETURNCODE = 4.
ENDCASE.
ELSE.
if the returncode is not equal zero, the result will not be updated
RETURNCODE = 4.
ENDIF.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
ENDFORM. "routine_0012
FORM routine_0014
USING
COMM_STRUCTURE type tys_SC_1__RULE_10
CHANGING
RESULT TYPE tys_TG_1_full-RECCNSSTCK
RETURNCODE LIKE sy-subrc
ABORT LIKE sy-subrc
RAISING
cx_sy_arithmetic_error
cx_sy_conversion_error.
init variables
fill the internal table "MONITOR", to make monitor entries
only goods receipt is considered
IF ( COMM_STRUCTURE-processkey EQ '000' "Other Receipts
OR COMM_STRUCTURE-processkey EQ '001' "Goods Receipt / Vendor
OR COMM_STRUCTURE-processkey EQ '004' "Material Transfer
OR COMM_STRUCTURE-processkey EQ '005' "Stock Adjustment InvD
OR COMM_STRUCTURE-processkey EQ '006' "Stock Adjustment Other
OR COMM_STRUCTURE-processkey EQ '010' ) "Receipt from Stock Transfer
AND COMM_STRUCTURE-bwapplnm EQ 'MM'
only movements which are relevant for stock control
AND COMM_STRUCTURE-stockrelev EQ '1'
AND COMM_STRUCTURE-cpquabu <> 0.
only consignment stock is considered
CASE COMM_STRUCTURE-stockcat.
WHEN 'K'.
RESULT = COMM_STRUCTURE-cpquabu.
RETURNCODE = 0.
WHEN space.
IF COMM_STRUCTURE-stocktype CA 'KLM'.
RESULT = COMM_STRUCTURE-cpquabu.
RETURNCODE = 0.
ELSE.
RETURNCODE = 4.
ENDIF.
WHEN OTHERS.
RETURNCODE = 4.
ENDCASE.
ELSE.
if the returncode is not equal zero, the result will not be updated
RETURNCODE = 4.
ENDIF. -
Issue in ALV List display
Posted: Apr 5, 2008 10:25 AM Edit E-mail this message Reply
Hi Friends,
Can any one help me out in the logic to display the output in the ALV list.
i want to get the out put as
based on the field4 i have to display fieds5, field6 and field 7 values as mentioned below.
field1 field2 field3 field4 field5 field6 field7
0L 123 456 2008 001 123.00 456.00
- - - - 002 213.00 789.00
- - - 003 0.00 0.00
- - - 004 0.00 0.00
- - - 005 0.00 0.00
- - - 006 0.00 0.00
336.00 1245.00
Thanks,
Vijayfor display you have to define fieldcatlaog and use Fm RESUE_ALV_GRID_DISPLAY,
Go through this program
*& Report Z_OPEN_CLOSE *
REPORT Z_OPEN_CLOSE MESSAGE-ID YW2 LINE-SIZE 231 LINE-COUNT 45
NO STANDARD PAGE HEADING.
Type Declaration *
TYPE-POOLS SLIS.
Tables *
TABLES: MKPF, " Material Document: Header Data
MSEG, " Material Document: Item Data
MARA,
MARD,
S031,
EKKO,
EKPO,
LIKP,
MAKT,
J_1IWRKCUS,
T001W,
WB2_V_MKPF_MSEG2,
MMIM_REP_PRINT,
YW2_STKMOVEMENTS,
YPLNT,
MARDH.
Internal Tables *
DATA: I_WERKS LIKE J_1IWRKCUS OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_YPLNT OCCURS 0,
PPLNT LIKE YPLNT-PPLNT,
WPLNT LIKE YPLNT-WPLNT,
END OF I_YPLNT.
DATA: BEGIN OF I_MKPF OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
MJAHR LIKE MKPF-MJAHR,
BUDAT LIKE MKPF-BUDAT,
VGART LIKE MKPF-VGART,
BWART LIKE MSEG-BWART,
MATNR LIKE MSEG-MATNR,
WERKS LIKE MSEG-WERKS,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
KUNNR LIKE MSEG-KUNNR,
ZEILE LIKE MSEG-ZEILE,
XAUTO LIKE MSEG-XAUTO,
SHKZG LIKE MSEG-SHKZG,
MATNR1 LIKE MSEG-MATNR,
END OF I_MKPF.
DATA: BEGIN OF I_MARDH OCCURS 0,
WERKS LIKE MARDH-WERKS,
MEINS LIKE MARA-MEINS,
MATNR LIKE MARDH-MATNR,
LGORT LIKE MARDH-LGORT,
LABST LIKE MARDH-LABST,
LFGJA LIKE MARDH-LFGJA, "Added -MB
LFMON LIKE MARDH-LFMON, "Added -MB
PERIO(6),
INSME LIKE MARDH-LABST,
EINME LIKE MARDH-LABST,
SPEME LIKE MARDH-LABST,
RETME LIKE MARDH-LABST,
O_STK LIKE MARDH-LABST, " Opening Stock
C_STK LIKE MARDH-LABST, " Closing Stock
END OF I_MARDH.
DATA: BEGIN OF I_MARD OCCURS 0,
WERKS LIKE MARD-WERKS,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
INSME LIKE MARD-LABST,
MEINS LIKE MARA-MEINS,
EINME LIKE MARD-LABST,
SPEME LIKE MARD-LABST,
RETME LIKE MARD-LABST,
END OF I_MARD.
DATA: I_MARD1 LIKE I_MARD OCCURS 0 WITH HEADER LINE.
DATA: I_MARDH1 LIKE I_MARDH OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_MKPF1 OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
BWART LIKE MSEG-BWART,
MJAHR LIKE MKPF-MJAHR,
VGART LIKE MKPF-VGART,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
XAUTO LIKE MSEG-XAUTO,
SHKZG LIKE MSEG-SHKZG,
END OF I_MKPF1.
DATA: BEGIN OF I_MKPF2 OCCURS 0,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
BWART LIKE MSEG-BWART,
MJAHR LIKE MKPF-MJAHR,
VGART LIKE MKPF-VGART,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
XAUTO LIKE MSEG-XAUTO,
END OF I_MKPF2.
DATA: BEGIN OF I_FINAL5 OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
LGORT LIKE MSEG-LGORT, " Storage Location
BUDAT LIKE MKPF-BUDAT, " Posting Date
MTART LIKE MARA-MTART, " Material Type
SPMON LIKE S031-SPMON, " Month
MAKTX LIKE MAKT-MAKTX, " Description
meins(3), " UOM
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TLOSS LIKE MARDH-LABST, " Total Loss
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
C_STK LIKE MARDH-LABST, " Closing Stock
TRFSTK LIKE MARDH-LABST, "Transfer stock
MENGE LIKE MSEG-MENGE,
OTHADJ LIKE MARDH-LABST,
END OF I_FINAL5.
DATA: BEGIN OF I_FINAL OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
BUDAT LIKE MKPF-BUDAT, " Posting Date
MTART LIKE MARA-MTART, " Material Type
SPMON LIKE S031-SPMON, " Month
MAKTX LIKE MAKT-MAKTX, " Description
meins(3), " UOM
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TRFSTK LIKE MARDH-LABST, "Material Transfer stock
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
TLOSS LIKE MARDH-LABST, " Total Loss
C_STK LIKE MARDH-LABST, " Closing Stock
OTHADJ LIKE MARDH-LABST,
END OF I_FINAL.
DATA: I_FINAL1 LIKE I_FINAL OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_FINAL_TEMP OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
MTART LIKE MARA-MTART, " Material Type
MAKTX LIKE MAKT-MAKTX, " Description
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TRFSTK LIKE MARDH-LABST, "Material Transfer stock
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
TLOSS LIKE MARDH-LABST, " Total Loss
C_STK LIKE MARDH-LABST, " Closing Stock
OTHADJ LIKE MARDH-LABST,
END OF I_FINAL_TEMP.
For Materials
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MEINS LIKE MARA-MEINS,
LABST TYPE MARD-LABST,
MAKTX LIKE MAKT-MAKTX,
END OF I_MARA.
DATA: BEGIN OF I_STKMVMNTS OCCURS 0,
BWART LIKE MSEG-BWART,
SHKZG LIKE MSEG-SHKZG,
VZBEW LIKE YW2_STKMOVEMENTS-VZBEW,
END OF I_STKMVMNTS.
DATA: BEGIN OF I_FINALT OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
BUDAT LIKE MKPF-BUDAT, " Posting Date
MTART LIKE MARA-MTART, " Material Type
SPMON LIKE S031-SPMON, " Month
MAKTX LIKE MAKT-MAKTX, " Description
meins(3), " UOM
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TRFSTK LIKE MARDH-LABST, "Material Transfer stock
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
TLOSS LIKE MARDH-LABST, " Total Loss
C_STK LIKE MARDH-LABST, " Closing Stock
OTHADJ LIKE MARDH-LABST,
MONTH(8) ,
END OF I_FINALT.
DATA: IMKPFT LIKE I_MKPF OCCURS 0 WITH HEADER LINE.
DATA: IMKPFT1 LIKE I_MKPF1 OCCURS 0 WITH HEADER LINE.
DATA: IMARDT LIKE I_MARD OCCURS 0 WITH HEADER LINE.
DATA: IMARDHT LIKE I_MARDH OCCURS 0 WITH HEADER LINE.
DATA: T_FINAL LIKE I_MKPF OCCURS 0 WITH HEADER LINE.
DATA: IMKPFT2 LIKE I_MKPF OCCURS 0 WITH HEADER LINE.
FCAT is used for the field catalog
DATA: FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
for excluding the ICONs from the application toolbar
FEXC TYPE TABLE OF SLIS_EXTAB WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FS_LAYO is used for Grid Layout
FS_LAYO TYPE SLIS_LAYOUT_ALV,
FEVENTS to handle the events TOP OF PAGE & USER_COMMAND
FEVENTS TYPE TABLE OF SLIS_ALV_EVENT WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FHEADER is used for List header
FHEADER TYPE TABLE OF SLIS_LISTHEADER WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
sort is used for sorting
FSORT TYPE TABLE OF SLIS_SORTINFO_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FCAT1 TYPE TABLE OF SLIS_FIELDCAT_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FS_LAYO1 TYPE SLIS_LAYOUT_ALV,
GT_LIST_TOP_OF_PAGE1 TYPE SLIS_T_LISTHEADER,
FEVENTS1 TYPE TABLE OF SLIS_ALV_EVENT WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FHEADER1 TYPE TABLE OF SLIS_LISTHEADER WITH NON-UNIQUE DEFAULT
KEY WITH HEADER LINE INITIAL SIZE 0,
G_STATU_071 TYPE SLIS_FORMNAME VALUE 'Z_PFSTATUS',
ALV_VARIANT1 LIKE DISVARIANT.
Variable Declaration *
TYPES: TRFF_TYPE_DEC_6_5(6) TYPE P DECIMALS 5.
DATA: FYEAR(4),
MON(2),
FYEAR1(4),
MON1(2),
OBAL LIKE MARD-LABST,
CBAL LIKE MARD-LABST,
INDEX TYPE I,
COUNT,
COUNT1 TYPE I,
O_STK TYPE P DECIMALS 3,
C_STK TYPE P DECIMALS 3,
V_MJAHR LIKE MKPF-MJAHR,
MONTHS TYPE TRFF_TYPE_DEC_6_5,
MONTH TYPE I.
Global variables for handling ALV functionality
DATA: ALV_KEYINFO TYPE SLIS_KEYINFO_ALV,
ALV_VARIANT LIKE DISVARIANT,
ALV_LAYOUT TYPE SLIS_LAYOUT_ALV,
ALV_REPID LIKE SY-REPID,
ALV_PRINT TYPE SLIS_PRINT_ALV,
ALV_DETAIL_FUNC(30),
ALV_DEFAULT_VARIANT LIKE DISVARIANT-VARIANT,
ALV_COLOURIZE_FIELDS LIKE MMIM_REP_PRINT-COLOR.
RANGES: R_BUDAT FOR MKPF-BUDAT.
*Added by Prabhu for year on 26.4.05.
DATA: IDATE LIKE R_BUDAT OCCURS 0 WITH HEADER LINE.
Selection Screen Elements *
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_WERKS FOR MARD-WERKS OBLIGATORY NO INTERVALS.
PARAMETER: P_SPMON LIKE S031-SPMON NO-DISPLAY .
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR OBLIGATORY,
S_LGORT FOR MSEG-LGORT NO-EXTENSION NO INTERVALS,
S_MBLNR FOR MKPF-MBLNR,
S_BUDAT FOR MKPF-BUDAT OBLIGATORY .
SELECTION-SCREEN END OF BLOCK BLK.
SELECTION-SCREEN BEGIN OF BLOCK BLK3 WITH FRAME TITLE TEXT-004.
PARAMETER : MTART LIKE MARA-MTART DEFAULT 'FERT' NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK BLK3.
SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-003.
SELECTION-SCREEN END OF BLOCK BLK2.
ADDED BY PRABHU FOR DAY-WISE REPORT.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-007.
PARAMETERS: D1 RADIOBUTTON GROUP P1 DEFAULT 'X',
M1 RADIOBUTTON GROUP P1,
Y1 RADIOBUTTON GROUP P1.
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-006.
PARAMETERS: ALV_DEF LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK B2.
DATA: S_BUDAT1 LIKE S_BUDAT OCCURS 0 WITH HEADER LINE."prabhu
Initialization *
INITIALIZATION.
PERFORM ALV_INIT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR ALV_DEF.
PERFORM ALV_F4.
At Selection Screen
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_spmon.
PERFORM monat_f4.
At Selection Screen *
AT SELECTION-SCREEN.
checking for the layout
PERFORM ALV_CHECK.
authorisation check for the Plant
PERFORM auth_check.
Validation for the Plant
PERFORM VALIDITY_CHECK.
IF MTART NE 'FERT'.
MESSAGE E041 WITH 'Material Type must be FERT Only...'.
ENDIF.
IF D1 = 'X'." On 26.4.05.
P_SPMON0(4) = S_BUDAT-LOW0(4).
P_SPMON4(2) = S_BUDAT-LOW4(2).
ELSE.
P_SPMON0(4) = S_BUDAT-LOW0(4).
P_SPMON4(2) = S_BUDAT-LOW4(2).
ENDIF.
LOOP AT S_BUDAT.
IF S_BUDAT-HIGH IS INITIAL.
S_BUDAT-HIGH = S_BUDAT-LOW.
MODIFY S_BUDAT.
ENDIF.
ENDLOOP.
IDATE-LOW = S_BUDAT-LOW.
IDATE-HIGH = S_BUDAT-HIGH.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
I_DATE_FROM = IDATE-LOW
I_DATE_TO = IDATE-HIGH
IMPORTING
E_DAYS =
E_MONTHS = MONTH
E_YEARS =
DATA: I(3) TYPE C.
I = S_BUDAT-LOW+4(2).
CLEAR: R_BUDAT.
REFRESH: R_BUDAT.
*added by Prabhu for Only for Oneday.on 18.5.5
IF MONTH EQ '0'.
MONTH = MONTH + 1.
ENDIF.
*added by Prabhu for Only for Oneday.on 18.5.5
DO MONTH TIMES.
R_BUDAT-LOW = S_BUDAT-LOW.
APPEND R_BUDAT.
ENDDO.
I = 0.
LOOP AT R_BUDAT.
R_BUDAT-LOW4(2) = S_BUDAT-LOW4(2) + I.
I = I + 1.
R_BUDAT-LOW+6(2) = '01'.
MODIFY R_BUDAT.
ENDLOOP.
LOOP AT R_BUDAT.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = R_BUDAT-LOW
IMPORTING
LAST_DAY_OF_MONTH = R_BUDAT-HIGH
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2
MODIFY R_BUDAT.
ENDLOOP.
LOOP AT R_BUDAT.
IF R_BUDAT-LOW4(2) = S_BUDAT-LOW4(2).
R_BUDAT-LOW = S_BUDAT-LOW.
MODIFY R_BUDAT.
ENDIF.
IF R_BUDAT-HIGH4(2) = S_BUDAT-HIGH4(2).
R_BUDAT-HIGH = S_BUDAT-HIGH.
MODIFY R_BUDAT.
ENDIF.
For Summary on 26.4.05.
IF Y1 = 'X'.
CLEAR R_BUDAT.
REFRESH R_BUDAT.
R_BUDAT-LOW = S_BUDAT-LOW.
R_BUDAT-HIGH = S_BUDAT-HIGH.
APPEND R_BUDAT.
CLEAR R_BUDAT.
ENDIF.
ENDLOOP.
At Selection Screen *
AT SELECTION-SCREEN OUTPUT.
Start of Selection *
START-OF-SELECTION.
V_MJAHR = P_SPMON+0(4).
Get plant distinction warehouse/production
PERFORM GET_PLANT_DISTINCTION.
Collect the data from various tables
PERFORM GETDATA_FG_STOCK.
here the number of rows in the output table is found
PERFORM OUTPUT_TABLE_CHECK.
here the top of the page code is written, that is to be displayed
in the output
PERFORM Z_TOP_OF_PAGE.
here ALV layout properties are set
PERFORM Z_LAYOUT_SETTINGS.
ALV EVENTS for TOP OF PAGE and for USER COMMAND
PERFORM Z_ALV_EVENTS.
The field catalog is defined for the Primary List is defined in
the subroutine CREATE_FIELD_CATALOG include program ZPRRDOCR_FCAT
PERFORM Z_CREATE_FIELD_CATALOG.
This is for displaying the output
PERFORM Z_REUSE_ALV_GRID_DISPLAY.
*& Form getdata_fg_stock
Getting data from standard tables
FORM GETDATA_FG_STOCK.
For getting the Start date & end date of the month
PERFORM get_month_dates.
Getting the Opening Stock from MARDH table
IF MON EQ '01'.
MON1 = MON.
FYEAR1 = FYEAR.
MON = '12'.
FYEAR = FYEAR - 1.
ELSE.
MON1 = MON.
FYEAR1 = FYEAR.
MON = MON - 1.
FYEAR = FYEAR.
ENDIF.
PERFORM GET_RECORDS_FROM_DB.
*added for Month Summary on 26.4.05.
LOOP AT R_BUDAT.
S_BUDAT-LOW = R_BUDAT-LOW.
S_BUDAT-HIGH = R_BUDAT-HIGH.
*for Month
P_SPMON0(4) = S_BUDAT-LOW0(4).
P_SPMON4(2) = S_BUDAT-LOW4(2).
*for summary.
IF Y1 = 'X'.
LOOP AT S_BUDAT.
S_BUDAT1-SIGN = 'I'.
S_BUDAT1-OPTION = 'NB'.
S_BUDAT1-LOW = S_BUDAT-LOW.
S_BUDAT1-HIGH = S_BUDAT-HIGH.
APPEND S_BUDAT1.
CLEAR S_BUDAT1.
ENDLOOP.
ENDIF.
IMKPFT[] = I_MKPF[].
IMKPFT2[] = I_MKPF[].
IMARDT[] = I_MARD[].
IMARDHT[] = I_MARDH[].
PERFORM MONTH_WISE.
PERFORM PROCESS_MOVEMENTS.
PERFORM CALCULATE_OPENING_STOCK.
PERFORM UPDATE_NON_TRANSACTION_ITMS.
PERFORM DELETE_EMPTY_RECORDS.
CLEAR: IMARDHT,IMARDT,IMKPFT1,IMKPFT,I_FINAL,I_FINAL5.
REFRESH: IMARDHT,IMARDT,IMKPFT1,I_FINAL,I_FINAL5,IMKPFT.
ENDLOOP.
CLEAR: R_BUDAT.
REFRESH: R_BUDAT.
*end of changes for month.
ENDFORM. " getdata_fg_stock
FORM MONAT_F4 *
F4-Hilfe für Monat *
FORM MONAT_F4.
DATA: BEGIN OF MF_DYNPFIELDS OCCURS 1.
INCLUDE STRUCTURE DYNPREAD.
DATA: END OF MF_DYNPFIELDS.
DATA: MF_RETURNCODE LIKE SY-SUBRC,
MF_MONAT LIKE ISELLIST-MONTH,
MF_HLP_REPID LIKE SY-REPID.
FIELD-SYMBOLS: .
Wert von Dynpro lesen
GET CURSOR FIELD MF_DYNPFIELDS-FIELDNAME.
APPEND MF_DYNPFIELDS.
MF_HLP_REPID = SY-REPID.
DO 2 TIMES.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = MF_HLP_REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MF_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 01
INVALID_DYNPROFIELD = 02
INVALID_DYNPRONAME = 03
INVALID_DYNPRONUMMER = 04
INVALID_REQUEST = 05
NO_FIELDDESCRIPTION = 06
UNDEFIND_ERROR = 07.
IF SY-SUBRC = 3.
Aktuelles Dynpro ist Wertemengenbild
MF_HLP_REPID = 'SAPLALDB'.
ELSE.
READ TABLE MF_DYNPFIELDS INDEX 1.
Unterstriche durch Blanks ersetzen
TRANSLATE MF_DYNPFIELDS-FIELDVALUE USING '_ '.
EXIT.
ENDIF.
ENDDO.
IF SY-SUBRC = 0.
Konvertierung ins interne Format
CALL FUNCTION 'CONVERSION_EXIT_PERI_INPUT'
EXPORTING
INPUT = MF_DYNPFIELDS-FIELDVALUE
IMPORTING
OUTPUT = MF_MONAT
EXCEPTIONS
ERROR_MESSAGE = 1.
IF MF_MONAT IS INITIAL.
Monat ist initial => Vorschlagswert aus akt. Datum ableiten
MF_MONAT = SY-DATLO(6).
ENDIF.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
ACTUAL_MONTH = MF_MONAT
IMPORTING
SELECTED_MONTH = MF_MONAT
RETURN_CODE = MF_RETURNCODE
EXCEPTIONS
FACTORY_CALENDAR_NOT_FOUND = 01
HOLIDAY_CALENDAR_NOT_FOUND = 02
MONTH_NOT_FOUND = 03.
IF SY-SUBRC = 0 AND MF_RETURNCODE = 0.
ASSIGN (MF_DYNPFIELDS-FIELDNAME) TO <MF_FELD>. " ==>> note 148804
<MF_FELD> = MF_MONAT.
CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT'
EXPORTING
INPUT = MF_MONAT
IMPORTING
OUTPUT = MF_DYNPFIELDS-FIELDVALUE.
COLLECT MF_DYNPFIELDS.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = MF_HLP_REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MF_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 01
INVALID_DYNPROFIELD = 02
INVALID_DYNPRONAME = 03
INVALID_DYNPRONUMMER = 04
INVALID_REQUEST = 05
NO_FIELDDESCRIPTION = 06
UNDEFIND_ERROR = 07. "<<== note 148804
ENDIF.
ENDIF.
ENDFORM. "MONAT_F4
*& Form get_month_dates
Calculating the Month Start & End Date
FORM GET_MONTH_DATES.
IF M1 = 'X'.
FYEAR = P_SPMON+0(4).
MON = P_SPMON+4(2).
CONCATENATE FYEAR MON '01' INTO R_BUDAT-LOW.
R_BUDAT-SIGN = 'I'.
R_BUDAT-OPTION = 'BT'.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = R_BUDAT-LOW
IMPORTING
E_DATE = R_BUDAT-HIGH.
APPEND R_BUDAT.
CLEAR S_BUDAT.
REFRESH S_BUDAT.
S_BUDAT-SIGN = 'I'.
S_BUDAT-OPTION = 'BT'.
S_BUDAT-LOW = R_BUDAT-LOW.
S_BUDAT-HIGH = R_BUDAT-HIGH.
APPEND S_BUDAT.
ELSE.
FYEAR = P_SPMON+0(4).
MON = P_SPMON+4(2).
CONCATENATE FYEAR MON '01' INTO R_BUDAT-LOW.
R_BUDAT-SIGN = 'I'.
R_BUDAT-OPTION = 'BT'.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = R_BUDAT-LOW
IMPORTING
E_DATE = R_BUDAT-HIGH.
APPEND R_BUDAT.
ENDIF.
ENDFORM. " get_month_dates
*& Form output_table_Check
checking for records for output
FORM OUTPUT_TABLE_CHECK .
DESCRIBE TABLE I_FINALT LINES INDEX.
IF INDEX EQ 0.
MESSAGE I041 WITH TEXT-005.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. "OUTPUT_TABLE_CHECK
*& Form Z_TOP_OF_PAGE
for setting the details in the top of page *
has no formal paramters *
FORM Z_TOP_OF_PAGE.
DATA: V_MON(2),
V_YR(40),
V_FIN(18),
V_FIN1(48),
LOW(10),
HIGH(10).
V_MON = P_SPMON+4(2).
V_YR = P_SPMON+0(4).
FHEADER-TYP = 'H'.
FHEADER-INFO = 'Stock Register Report (FG Stock)'.
APPEND FHEADER.
CLEAR FHEADER.
*if m1 = 'X'.
CONCATENATE 'Month = ' v_mon '.' v_yr INTO v_fin.
fheader-typ = 'H'.
fheader-info = v_fin.
APPEND fheader.
CLEAR fheader.
*endif."prabhu on 18.5.5
IF D1 = 'X'.
CLEAR S_BUDAT.
LOOP AT S_BUDAT.
CONCATENATE S_BUDAT-LOW6(2) '/' S_BUDAT-LOW4(2) '/'
S_BUDAT-LOW+0(4) INTO LOW.
CONCATENATE S_BUDAT-HIGH6(2) '/' S_BUDAT-HIGH4(2) '/'
S_BUDAT-HIGH+0(4) INTO HIGH.
CONCATENATE 'Date = ' LOW ' - ' HIGH INTO V_FIN1.
FHEADER-TYP = 'H'.
FHEADER-INFO = V_FIN1.
APPEND FHEADER.
CLEAR FHEADER.
ENDLOOP.
ENDIF.
ENDFORM. " Z_TOP_OF_PAGE
*& Form Z_LAYOUT_SETTINGS
this is done for setting the properties for the layout of the *
grid *
has no formal paramters *
FORM Z_LAYOUT_SETTINGS.
FS_LAYO-ZEBRA = 'X'. " Output in Zebra pattern
FS_LAYO-DETAIL_POPUP = 'X'. " A popup window appears to give
FS_LAYO-DETAIL_TITLEBAR = TEXT-022.
FS_LAYO-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " Z_LAYOUT_SETTINGS
*& Form Z_ALV_EVENTS
This is used for handling the events TOP OF PAGE and the USER *
COMMAND event *
has no formal paramters *
FORM Z_ALV_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = FEVENTS[].
READ TABLE FEVENTS WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
FEVENTS-FORM = 'Z_TOPOFPAGE'.
MODIFY FEVENTS INDEX SY-TABIX.
CLEAR FEVENTS.
ENDIF.
READ TABLE FEVENTS WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC = 0.
FEVENTS-FORM = 'Z_USER_COMMAND'.
MODIFY FEVENTS INDEX SY-TABIX.
CLEAR FEVENTS.
ENDIF.
ENDFORM. "Z_ALV_EVENTS
*& Form Z_CREATE_FIELD_CATALOG
here the field catalog is created for the primary list *
no formal parameters *
FORM Z_CREATE_FIELD_CATALOG.
for the Plant
FCAT-FIELDNAME = 'WERKS'.
FCAT-KEY = 'X'.
FCAT-OUTPUTLEN = '000005'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Plant'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Material Type
FCAT-FIELDNAME = 'MTART'.
FCAT-KEY = 'X'.
FCAT-OUTPUTLEN = '000006'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'MatTyp'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Material No.
FCAT-FIELDNAME = 'MATNR'.
FCAT-KEY = 'X'.
fcat-hotspot = 'X'.
FCAT-OUTPUTLEN = '000018'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Material'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Material Description
FCAT-FIELDNAME = 'MAKTX'.
FCAT-KEY = ''.
FCAT-OUTPUTLEN = '000040'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Description'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Unit of Measure
FCAT-FIELDNAME = 'MEINS'.
FCAT-KEY = ''.
FCAT-OUTPUTLEN = '03'.
FCAT-JUST = 'C'.
FCAT-SELTEXT_M = 'UOM'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'UNIT'.
APPEND FCAT.
CLEAR FCAT.
for the Plant
FCAT-FIELDNAME = 'MONTH'.
FCAT-KEY = 'X'.
FCAT-OUTPUTLEN = '08'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'MONTH'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Opening Stock
FCAT-FIELDNAME = 'C_STK'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Opening Stock'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
fcat-do_sum = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
for the Total Receipts
FCAT-FIELDNAME = 'TRECEP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Total Receipts'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
for the Production
FCAT-FIELDNAME = 'PRODU'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Production'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
for the Other Plant Receipts
FCAT-FIELDNAME = 'RECEP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Othr Plnt Recpts'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
Sales Return
FCAT-FIELDNAME = 'SAL_RET'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Sales Return'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
Total Dispatches
FCAT-FIELDNAME = 'TDISP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Total Dispatches'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT. -
Hi All,
we have written a bdc for material upload for Tcode MMZ1. all works fine till the Accounting screen where we have to give the valuation type as D. (MBEW-BWTTY). and the Costing Screen we have to manually give enter to cross these screens and then save it. How can i overcome this issue.
Points vl be rewarded for all suggestions.
This is the Program - (Problem area is in bold)
*& Report Z_GMM
REPORT Z_GMM.
TABLES : RMMG1,MAKT,MARA,MVKE,MG03STEUER,MARC,MPOP,MBEW,RM03M.
DATA: BEGIN OF IT_MATE OCCURS 1,
MATNR(16) TYPE C,
MBRSH(1) TYPE C,
MTART(4) TYPE C,
WERKS(4) TYPE C,
LGORT(4) TYPE C,
BWTAR(10) TYPE C,
VKORG(4) TYPE C,
VTWEG(2) TYPE C,
REF_MATNR(16) TYPE C,
REF_WERKS(4) TYPE C,
REF_LGORT(4) TYPE C,
REF_BWTAR(10) TYPE C,
REF_VKORG(4) TYPE C,
REF_VTWEG(2) TYPE C,
VERSG(1) TYPE C,
KTGRM(2) TYPE C,
MTPOS(4) TYPE C,
PRMOD(1) TYPE C,
TAXKM(1) TYPE C,
KLART(3) TYPE C,
BWTTY(1) TYPE C,
END OF IT_MATE.
DATA: BEGIN OF IT_MATE_ERR OCCURS 1,
MATNR(16) TYPE C,
MBRSH(1) TYPE C,
MTART(4) TYPE C,
WERKS(4) TYPE C,
LGORT(4) TYPE C,
BWTAR(10) TYPE C,
VKORG(4) TYPE C,
VTWEG(2) TYPE C,
REF_MATNR(16) TYPE C,
REF_WERKS(4) TYPE C,
REF_LGORT(4) TYPE C,
REF_BWTAR(10) TYPE C,
REF_VKORG(4) TYPE C,
REF_VTWEG(2) TYPE C,
VERSG(1) TYPE C,
KTGRM(2) TYPE C,
MTPOS(4) TYPE C,
PRMOD(1) TYPE C,
TAXKM(1) TYPE C,
KLART(3) TYPE C,
BWTTY(1) TYPE C,
MSG(100) TYPE C,
END OF IT_MATE_ERR.
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 1 WITH HEADER LINE.
DATA: IT_MSGS LIKE BDCMSGCOLL OCCURS 1 WITH HEADER LINE.
DATA: V_MSG(100) TYPE C,
V_MODE,
V1(20) TYPE C.
DATA: V_FILE TYPE STRING.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY DEFAULT 'C:\'.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-H02.
PARAMETERS: P_ALL RADIOBUTTON GROUP G1,
P_NO RADIOBUTTON GROUP G1 DEFAULT 'X',
P_ERR RADIOBUTTON GROUP G1.
SELECTION-SCREEN: END OF BLOCK B2.
SELECTION-SCREEN: END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM SHOW_OPEN_DIALOG.
START-OF-SELECTION.
PERFORM READ_DATA.
IF NOT IT_MATE[] IS INITIAL.
IF P_ALL = 'X'.
V_MODE = 'A'.
ELSEIF P_NO = 'X'.
V_MODE = 'N'.
ELSE.
V_MODE = 'E'.
ENDIF.
PERFORM POPULATE_BDCDATA.
ENDIF.
END-OF-SELECTION.
IF NOT IT_MATE_ERR[] IS INITIAL.
PERFORM DOWNLOAD_ERR_REC.
ENDIF.
*& Form SHOW_OPEN_DIALOG
text
FORM SHOW_OPEN_DIALOG .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
ENDFORM. " SHOW_OPEN_DIALOG
*& Form READ_DATA
text
FORM READ_DATA.
DATA: V_FILE TYPE STRING.
V_FILE = P_FILE.
IF NOT V_FILE IS INITIAL.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_MATE
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
ENDIF.
ENDFORM. " READ_DATA
*& Form POPULATE_BDCDATA
text
FORM POPULATE_BDCDATA .
LOOP AT IT_MATE.
perform bdc_dynpro using 'SAPMM03M' '0060'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RM03M-MATNR' IT_MATE-MATNR.
perform bdc_field using 'RM03M-MBRSH' IT_MATE-MBRSH.
perform bdc_field using 'RM03M-MTART' IT_MATE-MTART.
perform bdc_field using 'RM03M-REF_MATNR' IT_MATE-REF_MATNR.
perform bdc_dynpro using 'SAPMM03M' '0070'.
perform bdc_field using 'BDC_OKCODE' '=SELA'.
perform bdc_dynpro using 'SAPMM03M' '0070'.
perform bdc_field using 'BDC_OKCODE' '=SCHL'.
perform bdc_field using 'RM03M-KZAU1(01)' 'X'.
perform bdc_field using 'RM03M-KZAU1(03)' 'X'.
perform bdc_field using 'RM03M-KZAU1(04)' 'X'.
perform bdc_field using 'RM03M-KZAU1(05)' 'X'.
perform bdc_field using 'RM03M-KZAU1(06)' 'X'.
perform bdc_field using 'RM03M-KZAU1(08)' 'X'.
perform bdc_field using 'RM03M-KZAU1(09)' 'X'.
perform bdc_field using 'RM03M-KZAU1(11)' 'X'.
perform bdc_field using 'RM03M-KZAU1(12)' 'X'.
perform bdc_field using 'RM03M-KZAU2(02)' 'X'.
perform bdc_field using 'RM03M-KZAU2(05)' 'X'.
perform bdc_field using 'RM03M-KZAU2(06)' 'X'.
perform bdc_dynpro using 'SAPMM03M' '0080'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RM03M-WERKS' IT_MATE-WERKS.
perform bdc_field using 'RM03M-LGORT' IT_MATE-LGORT.
perform bdc_field using 'RM03M-VKORG' IT_MATE-VKORG.
perform bdc_field using 'RM03M-VTWEG' IT_MATE-VTWEG.
perform bdc_field using 'RM03M-REF_WERKS' IT_MATE-REF_WERKS.
perform bdc_field using 'RM03M-REF_LGORT' IT_MATE-REF_LGORT.
perform bdc_field using 'RM03M-REF_VKORG' IT_MATE-REF_VKORG.
perform bdc_field using 'RM03M-REF_VTWEG' IT_MATE-REF_VTWEG.
perform bdc_dynpro using 'SAPMM03M' '0210'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0215'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0216'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0212'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0248'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0249'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0252'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0260'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0270'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0275'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0280'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0290'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_OKCODE' '=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE' '=YES'.
CALL TRANSACTION 'MMZ1' USING IT_BDCDATA
MODE V_MODE
UPDATE 'S' "SYNCHRONOUS
MESSAGES INTO IT_MSGS.
IF SY-SUBRC = 0.
PERFORM HANDLE_SUCCESS_RECS.
REFRESH IT_MSGS.
CLEAR: V_MSG.
ELSE.
PERFORM HANDLE_ERROR_RECS.
REFRESH IT_MSGS.
CLEAR: V_MSG,
IT_MATE_ERR.
ENDIF.
CLEAR: IT_BDCDATA,
IT_BDCDATA[].
ENDLOOP.
ENDFORM. " POPULATE_BDCDATA
*& Form BDC_DYNPRO
text
-->PROGRAM text
-->DYNPRO text
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM. "BDC_DYNPRO
*& Form BDC_FIELD
text
-->FNAM text
-->FVAL text
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form HANDLE_SUCCESS_RECS
text
FORM HANDLE_SUCCESS_RECS .
READ TABLE IT_MSGS WITH KEY MSGTYP = 'S'.
IF SY-SUBRC = 0.
*--Formatting the message
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MSGS-MSGID
LANG = SY-LANGU
NO = IT_MSGS-MSGNR
V1 = IT_MSGS-MSGV1
V2 = IT_MSGS-MSGV2
V3 = IT_MSGS-MSGV3
V4 = IT_MSGS-MSGV4
IMPORTING
MSG = V_MSG
EXCEPTIONS
NOT_FOUND = 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.
ELSE.
WRITE:/ V_MSG.
CLEAR: V_MSG,
IT_MSGS.
ENDIF.
ENDIF.
ENDFORM. " HANDLE_SUCCESS_RECS
*& Form HANDLE_ERROR_RECS
*text
FORM HANDLE_ERROR_RECS .
READ TABLE IT_MSGS WITH KEY MSGTYP = 'E'.
IF SY-SUBRC = 0.
*--Formatting the message
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MSGS-MSGID
LANG = SY-LANGU
NO = IT_MSGS-MSGNR
V1 = IT_MSGS-MSGV1
V2 = IT_MSGS-MSGV2
V3 = IT_MSGS-MSGV3
V4 = IT_MSGS-MSGV4
IMPORTING
MSG = IT_MATE_ERR-MSG
EXCEPTIONS
NOT_FOUND = 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.
ELSE.
MOVE-CORRESPONDING IT_MATE TO IT_MATE_ERR.
APPEND IT_MATE_ERR.
DELETE IT_MATE INDEX SY-TABIX.
CLEAR IT_MATE_ERR.
ENDIF.
ENDIF.
ENDFORM. " HANDLE_ERROR_RECS
*& Form DOWNLOAD_ERR_REC
*text
FORM DOWNLOAD_ERR_REC .
V1 = P_FILE(3).
SHIFT P_FILE BY 3 PLACES LEFT.
CONCATENATE 'ERR_' P_FILE INTO P_FILE.
CONCATENATE V1 P_FILE INTO P_FILE.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\ERR_MMZ1.XLS'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
WRITE_EOL = ABAP_TRUE
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = IT_MATE_ERR
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
MESSAGE I000(Z00) WITH 'Error File downloaded at' V_FILE.
ENDIF.
ENDFORM. " DOWNLOAD_ERR_RECHi,
In your code just try and replace the lines
perform bdc_dynpro using 'SAPMM03M' '0290'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_OKCODE' '=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE' '=YES'.
with this code and see if it helps.Please add you itab fields at necessary places in this code.
perform bdc_dynpro using 'SAPMM03M' '0290'.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MARA-MEINS'
record-MEINS_014.
perform bdc_field using 'MBEW-EKALR'
record-EKALR_015.
perform bdc_field using 'MARC-LOSGR'
record-LOSGR_016.
perform bdc_field using 'MBEW-BKLAS'
record-BKLAS_017.
perform bdc_field using 'MBEW-BWTTY'
record-BWTTY_018.
perform bdc_field using 'MBEW-VPRSV'
record-VPRSV_019.
perform bdc_field using 'MBEW-PEINH'
record-PEINH_020.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
Reward points if useful
Regards,
Bhavin P Shah -
PDF Attachment Email Opening issue in ECC6
Hello,
We are having problem with below report. I'm able to send emails(invoice) as PDF attachments , but the attached PDF file wont open. I'm getting a message "Adobe reader could not open attachement the file has been damaged".This report works in our old version 4.6c but we just upgrade to ecc6. Please Please help.
Thanks,
Jose
REPORT zrfi_customer_statement_new
NO STANDARD PAGE HEADING
MESSAGE-ID zm_load
LINE-SIZE 325
LINE-COUNT 65(3).
Tables *
TABLES:
bsid, bsad, knb1, kna1, knkk, t001, t014, t179t,
t052, fplt, vbap, veda, vbrk, vbpa, vbkd, knvk,
cepct, tvzbt, vbak, bsik, tsp01, usr21,adr6, tsp03l.
Internal tables *
DATA: i_bsid LIKE bsid OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_bukrs OCCURS 0,
bukrs LIKE bsid-bukrs,
waers LIKE bsid-waers,
END OF i_bukrs.
DATA:
BEGIN OF i_temp_data OCCURS 0,
bukrs LIKE bsid-bukrs, " Company code
kunnr LIKE bsid-kunnr, " Customer
belnr LIKE bsid-belnr, " Invoice
gjahr LIKE bsid-gjahr, " Fiscal year
waers LIKE bsid-waers, " Currency
rebzg LIKE bsid-rebzg,
bldat LIKE bsid-bldat, " Posting date
shkzg LIKE bsid-shkzg, " Debit/Credit
zfbdt LIKE bsid-zfbdt, " Baseline date
zterm LIKE bsid-zterm, " Terms of payment key
dmbtr LIKE bsid-dmbtr, " company currency
dmbe2 LIKE bsid-dmbe2, " Amount in Group Currency
days LIKE rfposxext-verzn, " No of Arrear Days
kidno LIKE bsid-kidno, " Payment reference number
kunnr_c LIKE vbak-kunnr, " Partner Number
name_c(50), " Partner Last name
matnr LIKE vbap-matnr, " Material no
arktx LIKE vbap-arktx, " material description
vbeln LIKE vbap-vbeln, " Contract/Order no
inv_date LIKE vbrk-fkdat,
xblnr LIKE bsid-xblnr,
xblnr LIKE bsid-zuonr,
vtext LIKE vbap-arktx, "material description
sgtxt LIKE bsid-sgtxt,
plant LIKE t001w-name1,
zzihrez_e LIKE vbap-zzihrez_e,
vvtext LIKE tvzbt-vtext,
blart LIKE bsid-blart,
zuonr LIKE bsid-zuonr,
END OF i_temp_data.
DATA:
BEGIN OF itab OCCURS 0,
kunnr LIKE bsid-kunnr, " Customer
bukrs LIKE bsid-bukrs, " Company code
kunnr_c LIKE vbak-kunnr, " Partner Number
name_c(50), " Partner Last name
matnr LIKE vbap-matnr, " Material no
kidno LIKE bseg-kidno, " Payment reference
name1 LIKE kna1-name1, " Customer name
belnr LIKE bsid-belnr, " Invoice
waers LIKE bsid-waers, " Currency ( Document )
gjahr LIKE bsid-gjahr, " Fiscal year
zfbdt LIKE bsid-zfbdt, " Baseline date
zterm LIKE bsid-zterm, " Terms of payment key
amt00_30 TYPE netwr_ak, " 000 - 030 Days
amt31_60 TYPE netwr_ak, " 031 - 060 Days
amt61_90 TYPE netwr_ak, " 061 - 090 Days
amt91_120 TYPE netwr_ak, " 090 - 120 Days
amt120pls TYPE netwr_ak, " 120+ Days
total TYPE netwr_ak, " Row Total
inv_date LIKE vbrk-fkdat,
rebzg LIKE bsid-rebzg,
xblnr LIKE bsid-xblnr,
xblnr LIKE bsid-zuonr,
sgtxt LIKE bsid-sgtxt,
days(5) , " No of Arrear Days
inv_chk LIKE bsid-xblnr, " invoice/check/wire transfer no
vtext LIKE t179t-vtext,
zzihrez_e LIKE vbap-zzihrez_e,
plant LIKE t001w-name1,
vvtext LIKE tvzbt-vtext,
bldat LIKE bsid-bldat,
blart LIKE bsid-blart,
zuonr LIKE bsid-zuonr,
END OF itab.
DATA: BEGIN OF i_final OCCURS 0,
inv_chk LIKE bsid-xblnr, " invoice/check/wire transfer no
bldat LIKE bsid-bldat,
xblnr LIKE bsid-xblnr,
inv_date LIKE vbrk-fkdat,
name_c(50), " Partner Last name
vtext LIKE t179t-vtext,
zzihrez_e LIKE vbap-zzihrez_e,
plant LIKE t001w-name1,
vvtext LIKE tvzbt-vtext,
total TYPE netwr_ak, " Row Total
days(5) , " No of Arrear Days
waers LIKE bsid-waers,
blart LIKE bsid-blart,
zuonr LIKE bsid-zuonr,
END OF i_final.
DATA: BEGIN OF i_last OCCURS 0,
kunnr LIKE vbak-kunnr,
inv_chk LIKE bsid-xblnr, " invoice/check/wire transfer no
bldat LIKE bsid-bldat,
xblnr LIKE bsid-xblnr,
inv_date LIKE vbrk-fkdat,
name_c(50), " Partner Last name
vtext LIKE t179t-vtext,
zzihrez_e LIKE vbap-zzihrez_e,
plant LIKE t001w-name1,
vvtext LIKE tvzbt-vtext,
total TYPE netwr_ak, " Row Total
days(5) , " No of Arrear Days
waers LIKE bsid-waers,
blart LIKE bsid-blart,
zuonr LIKE bsid-zuonr,
END OF i_last.
DATA: i_bsik LIKE bsik OCCURS 0 WITH HEADER LINE.
DATA: itab_temp LIKE itab OCCURS 100 WITH HEADER LINE.
DATA:
BEGIN OF itab_details OCCURS 0,
bukrs LIKE bsid-bukrs, " Company code
xblnr LIKE bsid-xblnr,
gjahr LIKE bsid-gjahr,
belnr LIKE bsid-belnr,
kunnr LIKE bsid-kunnr,
END OF itab_details.
DATA: BEGIN OF x_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
name2 LIKE kna1-name2,
ptext LIKE tpfkt-vtext,
street LIKE adrc-street,
ort01 LIKE kna1-ort01,
regio LIKE kna1-regio,
pstlz LIKE kna1-pstlz,
landx LIKE t005t-landx,
agdate LIKE sy-datum, " aging date
END OF x_kna1.
DATA: BEGIN OF i_total OCCURS 0,
waers LIKE bsid-waers,
00_30 TYPE netwr_ak,
31_60 TYPE netwr_ak,
61_90 TYPE netwr_ak,
91_120 TYPE netwr_ak,
120pls TYPE netwr_ak,
total TYPE netwr_ak,
END OF i_total.
DATA: i_ssfcrescl TYPE ssfcrescl.
DATA: i_otf_final TYPE itcoo OCCURS 0 WITH HEADER LINE.
DATA: i_ssfctrlop LIKE ssfctrlop OCCURS 0 WITH HEADER LINE.
DATA: v_itcpo LIKE itcpo.
DATA: BEGIN OF itab_vender OCCURS 0,
vender LIKE kna1-kunnr,
END OF itab_vender.
DATA: BEGIN OF ioutput OCCURS 0,
kunnr LIKE vbrk-kunrg,
kname(50),
email(50),
error(1),
END OF ioutput.
DATA: vv_text(90).
Structures *
DATA: x_item LIKE rfposxext.
DATA: x_t001 LIKE t001.
DATA: x_bsegp LIKE bsegp.
Variables *
DATA: v_count TYPE i.
DATA: v_dialog TYPE c VALUE 'X'.
DATA: v_name1 LIKE kna1-name1,
v_name2 LIKE kna1-name2,
v_print LIKE tsp03l-padest,
v_formname(20),
v_flag.
DATA: f_recap_report(1) TYPE c. " Flag for recap report
DATA:
BEGIN OF x_amt,
amt00_ls LIKE bsid-wrbtr,
00_30 LIKE bsid-wrbtr,
31_60 LIKE bsid-wrbtr,
61_90 LIKE bsid-wrbtr,
91_120 LIKE bsid-wrbtr,
120pls LIKE bsid-wrbtr,
END OF x_amt.
DATA: BEGIN OF itab_bill OCCURS 0,
vbeln LIKE vbfa-vbeln,
fplnr LIKE vbfa-fplnr,
fpltr LIKE vbfa-fpltr,
END OF itab_bill.
DATA: v_sdate LIKE vbrk-fkdat,
v_edate LIKE vbrk-fkdat,
v_order(10) TYPE n.
DATA: v_eddate(10), v_stdate(10).
DATA: v_num TYPE i,
v_stat,
v_bill_prd(24),
v_counter TYPE c.
DATA: v_matnr LIKE vbrp-matnr,
v_arktx LIKE vbrp-arktx,
v_vbeln LIKE vbrp-vbeln,
v_vvtext LIKE t176t-vtext,
v_posnr LIKE vbap-posnr,
v_kunnr_c LIKE vbak-kunnr,
v_name_c(50),
v_inv_date LIKE vbrk-fkdat,
v_vdatu LIKE vbak-vdatu,
v_auart LIKE vbak-auart,
v_prctr LIKE vbap-prctr,
v_zzihrez LIKE vbap-zzihrez_e,
v_plant LIKE t001w-name1,
p_form TYPE tdsfname,
fm_name TYPE rs38l_fnam.
DATA: i_ssfcompop TYPE ssfcompop OCCURS 0." WITH HEADER LINE.
DATA: addr_no LIKE kna1-adrnr,
last_name LIKE kna1-name1,
first_name LIKE kna1-name1,
pafkt LIKE knvk-pafkt,
lang LIKE knvk-parla,
v_land LIKE adrc-country,
v_lines TYPE i.
DATA: v_tabix LIKE sy-tabix, v_gjahr LIKE bsid-gjahr,
v_kunnr LIKE vbak-kunnr, v_prodh LIKE vbap-prodh,
v_vtext LIKE t179t-vtext.
DATA: spno LIKE tsp01-rqident,
mi_bytecount TYPE i,
mstr_print_parms LIKE pri_params,
downfile(128) VALUE 'c:\customer.pdf',
mtab_pdf LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: packing_list TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
contents_txt TYPE TABLE OF solisti1 WITH HEADER LINE,
v_email LIKE adr6-smtp_addr,
v_returncode,
contents_hex TYPE TABLE OF solix," WITH HEADER LINE,
w_contents_hex TYPE solix ,
receivers TYPE TABLE OF somlreci1 WITH HEADER LINE.
DATA: att_pos TYPE i.
DATA: document_data LIKE sodocchgi1.
DATA: esubject LIKE sood1-objdes. "subject line
DATA: emsgs TYPE TABLE OF solisti1 WITH HEADER LINE.
DATA: pdf TYPE TABLE OF tline WITH HEADER LINE.
DATA: BEGIN OF itext OCCURS 200,
text(132),
END OF itext.
DATA: i_fields LIKE sval OCCURS 0 WITH HEADER LINE.
DATA: v_ccemail LIKE adr6-smtp_addr,
v_check,
v_kname(50).
DATA: otf_data1 LIKE itcoo OCCURS 0 WITH HEADER LINE,
i_itcpp LIKE itcpp.
*FIELD-GROUPS: HEADER, ...
FIELD-GROUPS: header,
details.
Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK a10 WITH FRAME TITLE text-sa1.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-sa1.
PARAMETERS : p_ex_ic AS CHECKBOX DEFAULT 'X'. "R3DK906903
SELECTION-SCREEN END OF BLOCK a1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
SELECT-OPTIONS : s_kunnr FOR bsid-kunnr,
s_bukrs FOR t001-bukrs OBLIGATORY.
PARAMETERS : p_bdate LIKE sy-datum OBLIGATORY.
PARAMETERS: p_vender AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-s11.
PARAMETERS : r_group RADIOBUTTON GROUP r1,
r_comp RADIOBUTTON GROUP r1.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-s13.
PARAMETERS: p_print LIKE tsp03l-lname MATCHCODE OBJECT prin
OBLIGATORY DEFAULT 'locl'.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-s14.
PARAMETERS: v_immed AS CHECKBOX DEFAULT 'X',
v_dele AS CHECKBOX DEFAULT 'X',
ch_email AS CHECKBOX.
*PARAMETERS:ch_down AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN END OF BLOCK a10.
AT SELECTION-SCREEN.
Selection Screen Validation.
PERFORM validate_selection_screen.
INITIALIZATION.
INITIALIZATION.
IF sy-sysid NE 'R3P'.
v_email = .
ENDIF.
START-OF-SELECTION.
START-OF-SELECTION.
IF p_vender = 'X'.
Fetch data from BSIK .
PERFORM fetch_data_vender.
Get Arrear Days
PERFORM get_arrear_days_vender.
ENDIF.
Fetch data from BSID and BSAD.
PERFORM fetch_data_from_bsid.
Get Arrear Days
PERFORM get_arrear_days.
Format Data as per selection.
PERFORM format_final_data.
Print sapscript
SORT i_last BY kunnr days DESCENDING.
LOOP AT i_last.
AT NEW kunnr.
CLEAR: i_final, x_kna1.
REFRESH: i_final, x_kna1.
PERFORM get_address.
PERFORM get_total.
ENDAT.
MOVE-CORRESPONDING i_last TO i_final.
i_final-xblnr = i_final-zuonr.
APPEND i_final.
CLEAR i_final.
AT END OF kunnr.
SORT i_final BY days DESCENDING inv_chk total DESCENDING.
PERFORM smart_from.
ENDAT.
ENDLOOP.
END-OF-SELECTION.
END-OF-SELECTION.
*& Form FETCH_DATA_FROM_BSID
text
FORM fetch_data_from_bsid.
fetch data from BSID into Internal table I_BSID.
SELECT *
FROM bsid
INTO TABLE i_bsid
WHERE bukrs IN s_bukrs AND
kunnr IN s_kunnr AND
budat LE p_bdate ."AND
BELNR in ('0090000231','1400000131').
Fetch data from BSAD into Internal table I_BSID.
SELECT *
FROM bsad
APPENDING TABLE i_bsid
WHERE bukrs IN s_bukrs AND
kunnr IN s_kunnr AND
budat LE p_bdate AND
augdt GT p_bdate." AND
DELETE i_bsid WHERE ( bukrs = '1500' OR bukrs = '3000' OR
bukrs = '1400' ) AND
( umsks = 'E' OR umskz = 'E' ).
*Exclude intercompany customers
IF p_ex_ic = 'X'.
DELETE i_bsid WHERE kunnr+0(2) EQ 'IC'.
ENDIF.
CLEAR sy-tfill.
DESCRIBE TABLE i_bsid LINES sy-tfill.
IF sy-tfill = 0.
MESSAGE i999 WITH ' No data selected for the selection Condition'.
STOP.
ENDIF.
ENDFORM. " FETCH_DATA_FROM_BSID
*& Form Get_Arrear_Days
text
FORM get_arrear_days.
SORT i_bsid BY bukrs belnr.
LOOP AT i_bsid.
for company code 1500 and 3000
IF i_bsid-bukrs EQ '1500' OR i_bsid-bukrs EQ '3000'.
MOVE i_bsid-xblnr TO i_bsid-belnr.
ENDIF.
MOVE i_bsid-bukrs TO itab_details-bukrs.
MOVE i_bsid-xblnr TO itab_details-xblnr.
MOVE i_bsid-belnr TO itab_details-belnr.
MOVE i_bsid-gjahr TO itab_details-gjahr.
MOVE i_bsid-kunnr TO itab_details-kunnr.
APPEND itab_details.
CLEAR itab_details.
CLEAR x_item.
AT NEW bukrs.
READ TABLE i_bsid INDEX sy-tabix.
CLEAR x_t001.
SELECT SINGLE * FROM t001
INTO x_t001
WHERE bukrs = i_bsid-bukrs.
ENDAT.
for company code 1500 and 3000 .
IF i_bsid-bukrs EQ '1500' OR i_bsid-bukrs EQ '3000'.
MOVE i_bsid-xblnr TO i_bsid-belnr.
ENDIF.
MOVE-CORRESPONDING i_bsid TO x_item.
x_item-koart = 'D'. " Debitor - Customer Indicator
x_item-konto = bsid-kunnr. " Debitor - Customer Number
x_item-dmshb = bsid-dmbtr.
x_item-wrshb = bsid-wrbtr.
Function module to get ARREAR days.
CALL FUNCTION 'ITEM_DERIVE_FIELDS'
EXPORTING
s_t001 = x_t001
s_bsegp = x_bsegp
key_date = p_bdate
CHANGING
s_item = x_item
EXCEPTIONS
bad_input = 1
OTHERS = 2.
IF sy-subrc = 0.
Populate I_TEMP_DATA for further processing.
i_temp_data-bukrs = i_bsid-bukrs.
i_temp_data-kunnr = i_bsid-kunnr.
i_temp_data-belnr = i_bsid-belnr.
i_temp_data-bldat = i_bsid-bldat.
i_temp_data-shkzg = i_bsid-shkzg.
i_temp_data-zfbdt = i_bsid-zfbdt.
i_temp_data-zterm = i_bsid-zterm.
i_temp_data-vbeln = i_bsid-vbeln.
i_temp_data-waers = i_bsid-waers.
IF x_item-verzn < 0.
x_item-verzn = 0.
ENDIF.
i_temp_data-zuonr = i_bsid-zuonr.
i_temp_data-days = x_item-verzn.
i_temp_data-gjahr = i_bsid-gjahr.
i_temp_data-kidno = i_bsid-kidno.
i_temp_data-rebzg = i_bsid-rebzg.
i_temp_data-xblnr = i_bsid-xblnr.
i_temp_data-sgtxt = i_bsid-sgtxt.
Changing the Sign
IF i_bsid-shkzg = 'H'.
i_temp_data-dmbe2 = i_temp_data-dmbe2 + ( -1 * i_bsid-dmbe2 ).
i_temp_data-dmbtr = i_temp_data-dmbtr + ( -1 * i_bsid-dmbtr ).
ELSE.
i_temp_data-dmbe2 = i_temp_data-dmbe2 + i_bsid-dmbe2.
i_temp_data-dmbtr = i_temp_data-dmbtr + i_bsid-dmbtr.
ENDIF.
i_temp_data-blart = i_bsid-blart.
*for doc type DR
IF i_bsid-blart = 'DR' AND i_bsid-bschl = '01'.
IF i_bsid-sgtxt IS INITIAL.
*Changed our phone number to
MOVE 'Contact Flightsafety' TO i_temp_data-vtext.
ELSE.
MOVE i_bsid-sgtxt TO i_temp_data-vtext.
MOVE 'Financial Invoice' TO i_temp_data-vvtext.
ENDIF.
ENDIF.
*for doc type AB
IF i_bsid-blart = 'AB' AND
( i_bsid-bschl GE '01' AND i_bsid-bschl LE '19' ).
i_temp_data-bldat = i_bsid-zfbdt.
i_temp_data-xblnr = i_bsid-vbeln.
IF NOT i_bsid-sgtxt IS INITIAL.
*Changed our phone nuber to
MOVE 'Contact Flightsafety' TO i_temp_data-vtext.
MOVE i_bsid-sgtxt TO i_temp_data-vtext.
MOVE 'Financial Doc' TO i_temp_data-vvtext.
ELSE.
MOVE i_bsid-sgtxt TO i_temp_data-vtext.
MOVE 'Financial Doc' TO i_temp_data-vvtext.
ENDIF.
ENDIF.
*for doc type DG
IF i_bsid-blart = 'DG' AND
( i_bsid-bschl GE '01' AND i_bsid-bschl LE '19' ).
i_temp_data-bldat = i_bsid-zfbdt.
i_temp_data-xblnr = i_bsid-vbeln.
IF i_bsid-sgtxt IS INITIAL.
*Changed our phone nuber to
MOVE 'Contact Flightsafety' TO i_temp_data-vtext.
ELSE.
MOVE i_bsid-sgtxt TO i_temp_data-vtext.
MOVE 'Financial Doc' TO i_temp_data-vvtext.
ENDIF.
ENDIF.
*To display Debit memo and credit memo.
IF i_bsid-blart = 'DG'.
IF ( i_bsid-bschl GE '11' AND i_bsid-bschl LE '19' ).
MOVE 'Credit Memo' TO i_temp_data-vvtext.
ELSEIF ( i_bsid-bschl GE '01' AND i_bsid-bschl LE '09' ).
MOVE 'Debit Memo' TO i_temp_data-vvtext.
ENDIF.
ENDIF.
*for doc type DZ
IF i_bsid-blart = 'DZ' AND
( i_bsid-bschl GE '01' AND i_bsid-bschl LE '19' ).
IF i_bsid-sgtxt IS INITIAL.
*changed our phone number to
MOVE 'Contact Flightsafety' TO i_temp_data-vtext.
ELSE.
MOVE i_bsid-sgtxt TO i_temp_data-vtext.
MOVE 'Cust Pmt' TO i_temp_data-vvtext.
ENDIF.
ENDIF.
*Document type DZ and posting key 15
IF i_bsid-blart = 'DZ' AND
i_bsid-bschl EQ '15'.
MOVE 'Cust Pmt' TO i_temp_data-vvtext.
ENDIF.
*Document type DZ and posting key 06.
IF i_bsid-blart = 'DZ' AND
i_bsid-bschl EQ '06'.
MOVE 'Debit' TO i_temp_data-vvtext.
ENDIF.
*Document type DA and posting key 04, 14.
IF i_bsid-blart = 'DA' AND
i_bsid-bschl EQ '04' OR
i_bsid-bschl EQ '14'.
MOVE 'Cust Pmt' TO i_temp_data-vvtext.
MOVE i_bsid-sgtxt TO i_temp_data-vtext.
IF i_bsid-sgtxt IS INITIAL.
MOVE 'Contact Flightsafety' TO i_temp_data-vtext.
ENDIF.
ENDIF.
ENDIF.
*billing period
IF i_bsid-blart = 'RV' AND i_bsid-bschl = '01'.
PERFORM billing_period USING i_temp_data-belnr
i_temp_data-vbeln.
ENDIF.
AT END OF belnr.
at end of zuonr.
APPEND i_temp_data.
CLEAR i_temp_data.
ENDAT.
ENDLOOP.
PERFORM material_details.
ENDFORM. " Get_Arrear_Days
*& Form FORMAT_FINAL_DATA
text
FORM format_final_data.
PERFORM pop_format_grp_curr_detail.
CLEAR: itab_temp, i_total.
REFRESH: itab_temp, i_total.
itab_temp] = itab[.
CLEAR itab.
REFRESH itab.
LOOP AT itab_temp.
CLEAR itab.
itab = itab_temp.
CLEAR: itab-matnr.
IF itab-belnr+0(2) = '14'.
*Adding two 00 for the left alignment.
CONCATENATE '00' itab-xblnr
INTO itab-inv_chk.
CONDENSE itab-inv_chk NO-GAPS.
itab-inv_chk = itab-xblnr.
itab-xblnr = itab-belnr.
ELSE.
itab-inv_chk = itab-belnr.
ENDIF.
COLLECT itab.
ENDLOOP.
CLEAR v_stat.
SORT itab BY days inv_chk total DESCENDING.
LOOP AT itab.
*To display Aging totals in usd (if v_stat ne f) for
*company code 1100,1300,2000.
IF itab-bukrs NE '1100' AND
itab-bukrs NE '1300' AND
itab-bukrs NE '2000'.
v_stat = 'F'.
ENDIF.
CLEAR: i_last-vvtext, tvzbt.
MOVE-CORRESPONDING itab TO i_last.
APPEND i_last.
CLEAR i_last.
ENDLOOP.
ENDFORM. " FORMAT_FINAL_DATA
*& Form POP_FORMAT_grp_CURR_DETAIL
text
FORM pop_format_grp_curr_detail.
Populating the Final Internal table for report by Group Currency.
CLEAR x_amt.
SORT i_temp_data.
LOOP AT i_temp_data.
CLEAR: v_count.
IF i_temp_data-sgtxt+0(10) = 'Spcfy in p'.
i_temp_data-sgtxt = i_temp_data-sgtxt+32(18).
MOVE i_temp_data-sgtxt TO i_temp_data-vtext.
MODIFY i_temp_data.
ENDIF.
IF r_comp = 'X'.
IF i_temp_data-days LT 0.
x_amt-amt00_ls = x_amt-amt00_ls + i_temp_data-dmbtr.
If between 1 and 30 Days.
ELSEIF i_temp_data-days GE 0 AND i_temp_data-days LE 30.
x_amt-00_30 = x_amt-00_30 + i_temp_data-dmbtr.
If between 31 and 60 Days.
ELSEIF i_temp_data-days GE 31 AND i_temp_data-days LE 60.
x_amt-31_60 = x_amt-31_60 + i_temp_data-dmbtr.
if between 61 and 90
ELSEIF i_temp_data-days GE 61 AND i_temp_data-days LE 90.
x_amt-61_90 = x_amt-61_90 + i_temp_data-dmbtr.
if between 91 and 120
ELSEIF i_temp_data-days GE 91 AND i_temp_data-days LE 120.
x_amt-91_120 = x_amt-91_120 + i_temp_data-dmbtr.
if > 120
ELSEIF i_temp_data-days GT 120.
x_amt-120pls = x_amt-120pls + i_temp_data-dmbtr.
ENDIF.
ELSE.
if the group currency is selected
IF i_temp_data-days LT 0.
x_amt-amt00_ls = x_amt-amt00_ls + i_temp_data-dmbe2.
If between 1 and 30 Days.
ELSEIF i_temp_data-days GE 0 AND i_temp_data-days LE 30.
x_amt-00_30 = x_amt-00_30 + i_temp_data-dmbe2.
If between 31 and 60 Days.
ELSEIF i_temp_data-days GE 31 AND i_temp_data-days LE 60.
x_amt-31_60 = x_amt-31_60 + i_temp_data-dmbe2.
if between 61 and 90
ELSEIF i_temp_data-days GE 61 AND i_temp_data-days LE 90.
x_amt-61_90 = x_amt-61_90 + i_temp_data-dmbe2.
if between 91 and 120
ELSEIF i_temp_data-days GE 91 AND i_temp_data-days LE 120.
x_amt-91_120 = x_amt-91_120 + i_temp_data-dmbe2.
if > 120
ELSEIF i_temp_data-days GT 120.
x_amt-120pls = x_amt-120pls + i_temp_data-dmbe2.
ENDIF.
ENDIF.
Get Customer Name.
SELECT SINGLE name1
INTO itab-name1
FROM kna1
WHERE kunnr = i_temp_data-kunnr.
Invoice and year
AT END OF rebzg.
READ TABLE i_temp_data INDEX sy-tabix.
itab-zuonr = i_temp_data-zuonr.
itab-bukrs = i_temp_data-bukrs.
itab-kunnr = i_temp_data-kunnr.
itab-belnr = i_temp_data-belnr.
itab-gjahr = i_temp_data-gjahr.
IF r_comp EQ 'X'.
itab-waers = i_temp_data-waers.
ELSE.
itab-waers = 'USD'.
ENDIF.
itab-zfbdt = i_temp_data-zfbdt.
itab-zterm = i_temp_data-zterm.
itab-amt00_30 = x_amt-amt00_ls + x_amt-00_30.
itab-amt31_60 = x_amt-31_60.
itab-amt61_90 = x_amt-61_90.
itab-amt91_120 = x_amt-91_120.
itab-amt120pls = x_amt-120pls.
itab-total = x_amt-amt00_ls + x_amt-00_30 +
x_amt-31_60 + x_amt-61_90 +
x_amt-91_120 + x_amt-120pls.
itab-kunnr_c = i_temp_data-kunnr_c.
itab-name_c = i_temp_data-name_c.
itab-kidno = i_temp_data-kidno.
itab-matnr = i_temp_data-matnr.
itab-inv_date = i_temp_data-inv_date.
itab-rebzg = i_temp_data-rebzg.
itab-xblnr = i_temp_data-xblnr.
itab-vtext = i_temp_data-vtext.
itab-sgtxt = i_temp_data-sgtxt.
itab-days = i_temp_data-days.
itab-bldat = i_temp_data-bldat.
itab-vvtext = i_temp_data-vvtext.
itab-zzihrez_e = i_temp_data-zzihrez_e.
itab-blart = i_temp_data-blart.
itab-plant = i_temp_data-plant.
Populating table.
APPEND: itab.
CLEAR : itab,
x_amt.
v_count = 1.
ENDAT.
IF v_count NE 1.
itab-zuonr = i_temp_data-zuonr.
itab-bukrs = i_temp_data-bukrs.
itab-kunnr = i_temp_data-kunnr.
itab-belnr = i_temp_data-belnr.
itab-gjahr = i_temp_data-gjahr.
itab-bldat = i_temp_data-bldat.
IF r_comp EQ 'X'.
itab-waers = i_temp_data-waers.
ELSE.
itab-waers = 'USD'.
ENDIF.
itab-zfbdt = i_temp_data-zfbdt.
itab-zterm = i_temp_data-zterm.
itab-kunnr_c = i_temp_data-kunnr_c.
itab-name_c = i_temp_data-name_c.
itab-kidno = i_temp_data-kidno.
itab-matnr = i_temp_data-matnr.
itab-inv_date = i_temp_data-inv_date.
itab-rebzg = i_temp_data-rebzg.
itab-xblnr = i_temp_data-xblnr.
itab-vtext = i_temp_data-vtext.
itab-sgtxt = i_temp_data-sgtxt.
itab-days = i_temp_data-days.
itab-zzihrez_e = i_temp_data-zzihrez_e.
itab-plant = i_temp_data-plant.
itab-vvtext = i_temp_data-vvtext.
itab-blart = i_temp_data-blart.
IF itab-matnr NE space.
APPEND itab.
CLEAR itab-plant.
ELSE.
ON CHANGE OF i_temp_data-kidno.
READ TABLE i_temp_data INDEX sy-tabix.
itab-zuonr = i_temp_data-zuonr.
itab-bukrs = i_temp_data-bukrs.
itab-kunnr = i_temp_data-kunnr.
itab-belnr = i_temp_data-belnr.
itab-gjahr = i_temp_data-gjahr.
itab-bldat = i_temp_data-bldat.
IF r_comp EQ 'X'.
itab-waers = i_temp_data-waers.
ELSE.
itab-waers = 'USD'.
ENDIF.
itab-zfbdt = i_temp_data-zfbdt.
itab-zterm = i_temp_data-zterm.
itab-amt00_30 = x_amt-amt00_ls + x_amt-00_30.
itab-amt31_60 = x_amt-31_60.
itab-amt61_90 = x_amt-61_90.
itab-amt91_120 = x_amt-91_120.
itab-amt120pls = x_amt-120pls.
itab-total = x_amt-amt00_ls + x_amt-00_30 +
x_amt-31_60 + x_amt-61_90 +
x_amt-91_120 + x_amt-120pls.
itab-kunnr_c = i_temp_data-kunnr_c.
itab-name_c = i_temp_data-name_c.
itab-kidno = i_temp_data-kidno.
itab-matnr = i_temp_data-matnr.
itab-inv_date = i_temp_data-inv_date.
itab-rebzg = i_temp_data-rebzg.
itab-xblnr = i_temp_data-xblnr.
itab-vtext = i_temp_data-vtext.
itab-sgtxt = i_temp_data-sgtxt.
itab-days = i_temp_data-days.
itab-zzihrez_e = i_temp_data-zzihrez_e.
itab-vvtext = i_temp_data-vvtext.
itab-plant = i_temp_data-plant.
APPEND itab.
CLEAR: x_amt-amt00_ls, x_amt-00_30, x_amt-31_60,
x_amt-61_90, x_amt-91_120 , x_amt-120pls.
ENDON.
ENDIF.
CLEAR: itab.
ENDIF.
ENDLOOP.
ENDFORM. " POP_FORMAT_grp_CURR_DETAIL
*& Form material_details
text
--> p1 text
<-- p2 text
FORM material_details.
SORT itab_details.
DELETE ADJACENT DUPLICATES FROM itab_details.
LOOP AT itab_details.
CLEAR: v_counter, v_gjahr, v_kunnr, v_prodh, v_vbeln,
v_vvtext, v_vtext.
v_gjahr = itab_details-gjahr.
v_kunnr = itab_details-kunnr.
*Invoice Date/Billing date
SELECT SINGLE fkdat FROM vbrk INTO v_inv_date
WHERE vbeln = itab_details-xblnr.
*material number, description and product hierarchy
SELECT matnr arktx prodh FROM vbrp
INTO (v_matnr, v_arktx, v_prodh)
WHERE vbeln = itab_details-xblnr AND
uepos = '00000'.
CLEAR: v_vdatu, v_posnr, v_auart, v_prctr, v_zzihrez,
v_kunnr_c, v_name1, v_name2, v_vtext, v_vvtext.
*Find the contract/order no
SELECT SINGLE vbelv posnv FROM vbfa INTO (v_vbeln, v_posnr)
WHERE vbeln = itab_details-xblnr
AND vbtyp_v IN ('C','G').
*delivery date, document type, plant and reservation no
SELECT SINGLE vbakvdatu vbakauart vbapprctr vbapzzihrez_e
INTO (v_vdatu, v_auart, v_prctr, v_zzihrez)
FROM vbak INNER JOIN vbap ON vbakvbeln = vbapvbeln
WHERE vbap~vbeln = v_vbeln AND
vbap~posnr = v_posnr AND
vbap~abgru = space.
*billing type
SELECT SINGLE * FROM vbkd WHERE vbeln = v_vbeln.
IF vbkd-bsark NE 'ZG01' OR vbkd-bsark NE 'ZO02'.
SELECT SINGLE vtext FROM t176t INTO v_vvtext
WHERE bsark = vbkd-bsark
AND spras EQ sy-langu.
ELSE.
MOVE 'One Time' TO v_vvtext.
ENDIF.
*getting only the reservation number (no text)
IF vbkd-ihrez_e+0(11) CO
'0123456789'.
ELSE.
v_zzihrez = space.
ENDIF.
*location
CONCATENATE '000000' v_zzihrez+0(4) INTO v_prctr.
*plant name
CLEAR v_plant.
SELECT SINGLE ktext FROM cepct INTO v_plant WHERE
prctr = v_prctr AND
spras = sy-langu.
*client no and name
SELECT SINGLE vbpakunnr kna1name1 kna1~name2
INTO (v_kunnr_c, v_name1, v_name2)
FROM vbpa INNER JOIN kna1 ON
vbpakunnr = kna1kunnr
WHERE vbpa~vbeln = v_vbeln AND
vbpa~parvw = 'Z3'.
CONCATENATE v_name1 v_name2 INTO v_name_c
SEPARATED BY space.
READ TABLE i_temp_data WITH KEY bukrs = itab_details-bukrs
belnr = itab_details-belnr
gjahr = itab_details-gjahr.
IF sy-subrc = 0.
CLEAR: v_tabix.
v_tabix = sy-tabix.
IF v_counter IS INITIAL.
MOVE v_plant TO i_temp_data-plant.
MOVE v_zzihrez TO i_temp_data-zzihrez_e.
MOVE v_kunnr_c TO i_temp_data-kunnr_c.
MOVE v_name_c TO i_temp_data-name_c.
MOVE v_gjahr TO i_temp_data-gjahr.
MOVE v_kunnr TO i_temp_data-kunnr.
IF v_auart EQ 'ZOTO' AND i_temp_data-inv_date IS INITIAL.
MOVE v_inv_date TO i_temp_data-inv_date.
ELSEIF i_temp_data-inv_date IS INITIAL.
MOVE v_vdatu TO i_temp_data-inv_date.
ENDIF.
IF i_temp_data-vtext IS INITIAL.
MOVE v_arktx TO i_temp_data-vtext.
ENDIF.
IF i_temp_data-vvtext IS INITIAL.
MOVE v_vvtext TO i_temp_data-vvtext.
ENDIF.
MODIFY i_temp_data INDEX v_tabix.
CLEAR i_temp_data.
v_counter = 'T'.
CLEAR: v_matnr,v_arktx,v_vbeln,v_name_c,v_vtext, v_prodh,
v_kunnr_c, v_name1,v_name2, v_vdatu, v_vvtext.
ELSE.
CLEAR:i_temp_data-dmbe2, i_temp_data-dmbtr. " i_temp_data-wrbtr
MOVE v_matnr TO i_temp_data-matnr.
MOVE v_plant TO i_temp_data-plant.
MOVE v_zzihrez TO i_temp_data-zzihrez_e.
MOVE v_kunnr_c TO i_temp_data-kunnr_c.
MOVE v_name_c TO i_temp_data-name_c.
MOVE v_gjahr TO i_temp_data-gjahr.
MOVE v_kunnr TO i_temp_data-kunnr.
IF v_auart EQ 'ZOTO' AND i_temp_data-inv_date IS INITIAL.
MOVE v_inv_date TO i_temp_data-inv_date.
ELSEIF i_temp_data-inv_date IS INITIAL.
MOVE v_vdatu TO i_temp_data-inv_date.
ENDIF.
MOVE v_arktx TO i_temp_data-vtext.
APPEND i_temp_data.
CLEAR i_temp_data.
ENDIF.
ENDIF.
ENDSELECT.
CLEAR:
i_temp_data-kunnr_c,
i_temp_data-name_c,i_temp_data-inv_date,
i_temp_data-vtext.
CLEAR: v_matnr,v_arktx,v_vbeln,v_name_c,
v_kunnr_c, v_name1,v_name2,v_inv_date, v_vdatu,
v_vtext, v_prodh.
ENDLOOP.
ENDFORM. " material_details
*& Form get_address
text
FORM get_address.
Get Address
CLEAR: kna1, x_kna1, first_name, last_name,pafkt, lang, v_land.
SELECT SINGLE * FROM kna1 INTO kna1 WHERE kunnr = i_last-kunnr.
SELECT SINGLE name1 namev pafkt parla FROM knvk
INTO (last_name, first_name, pafkt, lang)
WHERE kunnr = i_last-kunnr
AND abtnr = '0003'. "financial department
IF sy-subrc NE 0.
SELECT SINGLE name1 namev pafkt parla FROM knvk
INTO (last_name, first_name, pafkt, lang)
WHERE kunnr = i_last-kunnr.
ENDIF.
IF lang = ' '.
lang = 'E'.
ENDIF.
SELECT SINGLE vtext FROM tpfkt INTO x_kna1-ptext
WHERE pafkt = pafkt
AND spras = lang.
SELECT SINGLE name1 name2 street country FROM
adrc INTO (x_kna1-name1, x_kna1-name2,
x_kna1-street, v_land)
WHERE addrnumber = kna1-adrnr.
SELECT SINGLE landx FROM t005t INTO x_kna1-landx WHERE land1 = v_land
AND spras = lang.
TRANSLATE x_kna1-landx TO UPPER CASE. "#EC SYNTCHAR added by sony
MOVE kna1-kunnr TO x_kna1-kunnr.
MOVE kna1-ort01 TO x_kna1-ort01.
MOVE kna1-regio TO x_kna1-regio.
MOVE kna1-pstlz TO x_kna1-pstlz.
MOVE p_bdate TO x_kna1-agdate.
APPEND x_kna1.
CLEAR: x_kna1.
ENDFORM. " get_addres
*& Form fetch_data_vender
text
--> p1 text
<-- p2 text
FORM fetch_data_vender.
SELECT lifnr FROM kna1 INTO TABLE itab_vender
WHERE kunnr IN s_kunnr.
LOOP AT itab_vender.
Fetch data from BSIK into Internal table I_BSIK.
SELECT *
FROM bsik
APPENDING TABLE i_bsik
WHERE bukrs IN s_bukrs AND
lifnr EQ itab_vender-vender AND
budat LE p_bdate AND
blart IN ('KA', 'KG', 'KR', 'KZ', 'KF').
Fetch data from BSAK into Internal table I_BSAK.
SELECT *
FROM bsak "#EC ENHOK "added by sony 06/05/08
APPENDING TABLE i_bsik
WHERE bukrs IN s_bukrs AND
lifnr EQ itab_vender-vender AND
budat LE p_bdate AND
augdt GT p_bdate AND
blart IN ('KA', 'KG', 'KR', 'KZ', 'KF').
ENDLOOP.
DELETE i_bsik WHERE ( bukrs = '1500' OR bukrs = '3000' ) AND
( umsks = 'E' OR umskz = 'E' ).
ENDFORM. " fetch_data_vender
*& Form GET_ARREAR_DAYS_vender
text
--> p1 text
<-- p2 text
FORM get_arrear_days_vender.
SORT i_bsik BY mandt bukrs belnr.
CLEAR: v_tabix.
LOOP AT i_bsik.
v_tabix = sy-tabix.
SELECT SINGLE * FROM kna1 WHERE lifnr = i_bsik-lifnr.
MOVE i_bsik-bukrs TO itab_details-bukrs.
MOVE i_bsik-xblnr TO itab_details-xblnr.
MOVE i_bsik-belnr TO itab_details-belnr.
MOVE i_bsik-gjahr TO itab_details-gjahr.
MOVE kna1-kunnr TO itab_details-kunnr.
APPEND itab_details.
CLEAR itab_details.
CLEAR x_item.
AT NEW bukrs.
*company code details
READ TABLE i_bsik INDEX sy-tabix.
CLEAR x_t001.
SELECT SINGLE * FROM t001
INTO x_t001
WHERE bukrs = i_bsik-bukrs.
ENDAT.
MOVE-CORRESPONDING i_bsik TO x_item.
x_item-koart = 'D'. " Debitor - Customer Indicator
x_item-konto = kna1-kunnr. " Debitor - Customer Number
x_item-dmshb = bsik-dmbtr.
x_item-wrshb = bsik-wrbtr.
Function module to get ARREAR days.
CALL FUNCTION 'ITEM_DERIVE_FIELDS'
EXPORTING
s_t001 = x_t001
s_bsegp = x_bsegp
key_date = p_bdate
CHANGING
s_item = x_item
EXCEPTIONS
bad_input = 1
OTHERS = 2.
IF sy-subrc = 0.
Populate I_TEMP_DATA for further processing.
i_temp_data-bukrs = i_bsik-bukrs.
i_temp_data-kunnr = kna1-kunnr.
i_temp_data-belnr = i_bsik-belnr.
i_temp_data-bldat = i_bsik-bldat. "Document date in document
i_temp_data-shkzg = i_bsik-shkzg.
i_temp_data-zfbdt = i_bsik-zfbdt. " Base line date
i_temp_data-zterm = i_bsik-zterm. "Terms of payment key
i_temp_data-waers = i_bsik-waers.
i_temp_data-days = x_item-verzn. " days in arrs
i_temp_data-gjahr = i_bsik-gjahr. " year
i_temp_data-kidno = i_bsik-kidno. " Payment Reference
i_temp_data-rebzg = i_bsik-rebzg. " Number of the Invoice the
"Transaction Belongs to
i_temp_data-xblnr = i_bsik-xblnr.
i_temp_data-sgtxt = i_bsik-sgtxt. " Item Text
Changing the Sign
IF i_bsik-shkzg = 'H'.
i_temp_data-dmbe2 = -1 * i_bsik-dmbe2.
i_temp_data-dmbtr = -1 * i_bsik-dmbtr.
ELSE.
i_temp_data-dmbe2 = i_bsik-dmbe2.
i_temp_data-dmbtr = i_bsik-dmbtr.
ENDIF.
ENDIF.
APPEND i_temp_data.
CLEAR i_temp_data.
ENDLOOP.
PERFORM material_details.
ENDFORM. " Get_Arrear_DaysENDFORM.
" GET_ARREAR_DAYS_vender
*& Form convert_pdf
text
--> p1 text
<-- p2 text
FORM convert_pdf.
CLEAR: tsp01.
CLEAR: mtab_pdf, mi_bytecount.
REFRESH mtab_pdf.
FREE mtab_pdf.
***convert to PDF format
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = mi_bytecount
TABLES
otf = i_otf_final
lines = mtab_pdf
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc 0.
ENDIF.
CONDENSE itab-kunnr NO-GAPS.
CONCATENATE 'C:\' itab-kunnr '_' sy-datum '.pdf' INTO downfile.
IF ch_down = 'X'.
PERFORM download_pdf.
ENDIF.
IF ch_email = 'X'.
PERFORM send_email.
ENDIF.
ENDFORM. " convert_pdf
*& Form download_pdf
text
--> p1 text
<-- p2 text
FORM download_pdf.
DATA: i_downfile TYPE string.
i_downfile = downfile.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = mi_bytecount
filename = i_downfile
filetype = 'BIN'
IMPORTING
FILELENGTH =
TABLES
data_tab = mtab_pdf[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22
IF sy-subrc 0.
ENDIF.
ENDFORM. " download_pdf
*& Form send_email
text
--> p1 text
<-- p2 text
FORM send_email.
CLEAR: packing_list[],
pdf[],
contents_txt[],
contents_hex[],
receivers[],
att_pos,
document_data,
esubject,emsgs[],
w_contents_hex.
PERFORM packing_list.
PERFORM set_data.
IF v_check NE 'X'.
PERFORM send_email_message.
ENDIF.
ENDFORM. " send_email
*& Form packing_list
text
--> p1 text
<-- p2 text
FORM packing_list.
Concatenate the PDF material into the attachments table.
PERFORM append_pdf_to_attachments USING mi_bytecount.
Describe the attachment
CLEAR packing_list.
REFRESH packing_list.
packing_list-transf_bin = 'X'.
ADD 1 TO att_pos.
packing_list-body_start = att_pos.
DESCRIBE TABLE contents_hex LINES att_pos.
packing_list-body_num = att_pos.
packing_list-doc_type = 'PDF'.
CONCATENATE 'Statement Date'
sy-datum4(2) '/' sy-datum6(2) '/'
sy-datum+2(2) '-' 'Customer no -' itab-kunnr
INTO packing_list-obj_descr.
packing_list-obj_langu = 'E'.
packing_list-doc_size = mi_bytecount.
APPEND packing_list.
ENDFORM. " packing_list
*& Form set_data
text
--> p1 text
<-- p2 text
FORM set_data.
CLEAR: sy-tfill.
DESCRIBE TABLE contents_hex LINES sy-tfill.
IF sy-tfill GT 0.
DATA: lines TYPE TABLE OF tline WITH HEADER LINE.
By this point, the attachments have been created. Now we supply body
text and set up the recipients.
CONCATENATE 'Customer Statement for Customer - '
itab-kunnr esubject INTO esubject.
The message header information
CLEAR document_data.
document_data-obj_name = 'ZWRAPPER'.
document_data-obj_descr = esubject.
document_data-obj_langu = 'E'.
document_data-obj_prio = '1'.
CLEAR: contents_txt, contents_txt], itext[, itext.
IF sy-sysid NE 'R3P'.
CONCATENATE 'Please ignore this mail. This is part of testing from '
sy-sysid INTO contents_txt SEPARATED BY space.
APPEND contents_txt.
CLEAR: contents_txt.
APPEND contents_txt.
ENDIF.
CLEAR vv_text.
CONCATENATE 'Enter Body of the Email and SAVE it for customer '
itab-kunnr itab-name1 INTO vv_text SEPARATED BY space.
EDITOR-CALL FOR itext TITLE vv_text.
LOOP AT itext.
contents_txt = itext-text.
APPEND contents_txt.
ENDLOOP.
Describe the body data. This descriptor has to be the first, in front
of all the attachments.
CLEAR packing_list.
packing_list-transf_bin = space.
packing_list-body_start = 1.
DESCRIBE TABLE contents_txt LINES packing_list-body_num.
packing_list-doc_type = 'RAW'.
packing_list-obj_langu = 'E'.
INSERT packing_list INDEX 1.
Set up the recipients.
CLEAR: receivers, receivers[], sy-tfill.
CLEAR: usr21, adr6.
*find email address.
IF sy-sysid = 'R3P'.
SELECT prsnr FROM knvk INTO knvk-prsnr WHERE kunnr = itab-kunnr.
SELECT SINGLE adrnr name1 name2 FROM kna1 INTO
(kna1-adrnr, kna1-name1, kna1-name2)
WHERE kunnr = itab-kunnr.
SELECT SINGLE smtp_addr INTO v_email FROM adr6
WHERE addrnumber EQ kna1-adrnr.
IF sy-subrc NE 0.
CLEAR: v_email.
ELSE.
EXIT.
ENDIF.
ENDSELECT.
ENDIF.
*find the user email address.
CLEAR: usr21, adr6.
SELECT SINGLE * FROM usr21 WHERE bname = sy-uname.
CLEAR adr6.
SELECT SINGLE * FROM adr6 WHERE addrnumber = usr21-addrnumber AND
persnumber = usr21-persnumber.
v_ccemail = adr6-smtp_addr.
CLEAR:i_fields.
REFRESH:i_fields.
i_fields-tabname = 'COMPMSG'.
i_fields-fieldname = 'TEXT'.
i_fields-fieldtext = 'Email'.
i_fields-value = v_email.
APPEND i_fields.
CLEAR i_fields.
i_fields-tabname = 'T100'.
i_fields-fieldname = 'TEXT'.
i_fields-fieldtext = 'CC to'.
i_fields-value = v_ccemail.
APPEND i_fields.
CLEAR i_fields.
CLEAR v_returncode.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = 'Email Address.'
start_column = '25'
start_row = '2'
IMPORTING
returncode = v_returncode
TABLES
fields = i_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc 0.
ENDIF.
IF v_returncode NE 'A'.
*find the new condition value (table name and filed name took itfor char
LOOP AT i_fields WHERE tabname = 'COMPMSG' AND fieldname = 'TEXT'.
v_email = i_fields-value.
ENDLOOP.
LOOP AT i_fields WHERE tabname = 'T100'
AND fieldname = 'TEXT'.
v_ccemail = i_fields-value.
ENDLOOP.
ENDIF.
receivers-receiver = v_email.
receivers-rec_type = 'U'. "..assume it's an internet address
APPEND receivers.
receivers-receiver = v_ccemail.
receivers-rec_type = 'U'.
receivers-copy = 'X'.
APPEND receivers.
SORT receivers BY receiver.
DELETE ADJACENT DUPLICATES FROM receivers COMPARING receiver.
ENDIF.
CLEAR: v_check.
IF v_email = space.
v_check = 'X'.
MOVE itab-kunnr TO ioutput-kunnr.
MOVE v_kname TO ioutput-kname.
MOVE v_email TO ioutput-email.
MOVE 'X' TO ioutput-error.Hi
Looks like BASIS issue.
Pls check the OSS Note - Note 787418 - Sent documents are not readable after upgrade
Pls contact your BASIS person
Regards
MD -
When I Press the Post Goods Issue Button for a delivery in SD the error dump appears.
Runtime Errors MESSAGE_TYPE_X
Date and Time 10/15/2008 06:38:52
Short dump has not been completely stored (too big)
Short text
The current application triggered a termination with a short dump.
What happened?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
Short text of error message:
No RFC destination is defined for SAP Global Trade Services
Long text of error message:
Technical information about the message:
Message class....... "/SAPSLL/PLUGINR3"
Number.............. 002
Variable 1.......... " "
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... " "
How to correct the error
Probably the only way to eliminate the error is to correct the program.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"MESSAGE_TYPE_X" " "
"SAPLMBWL" or "LMBWLU21"
"MB_POST_GOODS_MOVEMENT"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
System environment
SAP-Release 700
Application server... "biw7sap"
Network address...... "68.88.249.38"
Operating system..... "Windows NT"
Release.............. "5.2"
Hardware type........ "4x Intel 801586"
Character length.... 16 Bits
Pointer length....... 32 Bits
Work process number.. 1
Shortdump setting.... "full"
Database server... "BIW7SAP"
Database type..... "ORACLE"
Database name..... "ECS"
Database user ID.. "SAPSR3"
Char.set.... "C"
SAP kernel....... 700
created (date)... "Mar 20 2007 00:45:21"
create on........ "NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10"
Database version. "OCI_10201_SHARE (10.2.0.1.0) "
Patch level. 102
Patch text.. " "
Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."
SAP database version. 700
Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2"
Memory consumption
Roll.... 8176
EM...... 26130600
Heap.... 0
Page.... 57344
MM Used. 19070624
MM Free. 785208
User and Transaction
Client.............. 800
User................ "CUSER14"
Language key........ "E"
Transaction......... "VL02N "
Program............. "SAPLMBWL"
Screen.............. "SAPMV50A 1000"
Screen line......... 39
Information on where terminated
Termination occurred in the ABAP program "SAPLMBWL" - in
"MB_POST_GOODS_MOVEMENT".
The main program was "SAPMV50A ".
In the source code you have the termination point in line 59
of the (Include) program "LMBWLU21".
Source Code Extract
Line
SourceCde
29
when a goods movement for an inbound or outbound delivery is posted
30
directly from VL31N/ VL01N, XBLNR is not yet known when we call
31
CKMV_AC_DOCUMENT_CREATE, but the number is supposed to be stored in
32
BKPF as well. There is no other way to forward XBLNR to FI as not
33
every document is posted by MB_CREATE -> a new function module in
34
MBWL for transferring the information, called by FI, meant to load
35
the complete function group for all MBxx postings when this isn't
36
required (Performance). Would be the better way to transport the
37
information after switching off MBxx in later release.
38
corresponding IMPORT ... FROM MEMORY ... can be found in
39
AC_DOCUMENT_POST (FORM FI_DOCUMENT_PREPARE (LFACIF5D))
40
l_mem_id = 'MKPF-XBLNR'. " 641365
41
EXPORT xblnr = xblnr_sd TO MEMORY ID l_mem_id. " 641365
42
ENDIF.
43
IF xmkpf-xabln IS INITIAL. "note 434093
44
CALL FUNCTION 'MB_XAB_NUMBER_GET'. "note 434093
45
ENDIF. "note 434093
46
47
ENHANCEMENT-POINT MB_POST_GOODS_MOVEMENTS_01 SPOTS ES_SAPLMBWL STATIC.
48
49
ENHANCEMENT-POINT MB_POST_GOODS_MOVEMENTS_02 SPOTS ES_SAPLMBWL.
50
CALL FUNCTION 'MB_CREATE_MATERIAL_DOCUMENT_UT'
51
EXCEPTIONS
52
error_message = 4.
53
As soon as we have started to put things into UPDATE TASK, we must
54
ensure that errors definitely terminate the transaction.
55
MESSAGE A is not sufficient because it can be catched from
56
external callers which COMMIT WORK afterwards, resulting in
57
incomplete updates. Read note 385830 for the full story.
58
IF NOT sy-subrc IS INITIAL.
>>>>>
MESSAGE ID sy-msgid TYPE x NUMBER sy-msgno WITH "385830
60
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
61
MESSAGE A263.
62
ENDIF.
63
Optische Archivierung
64
Spaete Erfassung mit Barcode
65
Redesign of barcode handling -> note 780365
66
PERFORM barcode_update(sapmm07m) USING xmkpf-mblnr
67
xmkpf-mjahr
68
barcode.
69
70
MOVE-CORRESPONDING xmkpf TO emkpf.
71
CALL FUNCTION 'MB_MOVEMENTS_REFRESH'
72
EXCEPTIONS
73
error_message = 4.
74
MOVE-CORRESPONDING xmkpf TO emkpf.
75
CALL FUNCTION 'MB_MOVEMENTS_REFRESH'
76
EXCEPTIONS
77
error_message = 4.
78
IF NOT sy-subrc IS INITIAL.
Contents of system fields
Name
Val.
SY-SUBRC
4
SY-INDEX
0
SY-TABIX
1
SY-DBCNT
1
SY-FDPOS
6
SY-LSIND
0
SY-PAGNO
0
SY-LINNO
1
SY-COLNO
1
SY-PFKEY
W0
SY-UCOMM
WABU_T
SY-TITLE
Delivery 80015203 Change: Overview
SY-MSGTY
X
SY-MSGID
/SAPSLL/PLUGINR3
SY-MSGNO
002
SY-MSGV1
SY-MSGV2
SY-MSGV3
SY-MSGV4
SY-MODNO
0
SY-DATUM
20081015
SY-UZEIT
063852
SY-XPROG
SAPLBPFC
SY-XFORM
CONVERSION_EXIT
Active Calls/Events
No. Ty. Program Include Line
Name
10 FUNCTION SAPLMBWL LMBWLU21 59
MB_POST_GOODS_MOVEMENT
9 FORM SAPMV50A FV50XF0B_BELEG_SICHERN 769
BELEG_SICHERN_POST
8 FORM SAPMV50A FV50XF0B_BELEG_SICHERN 86
BELEG_SICHERN_01
7 FORM SAPMV50A FV50XF0B_BELEG_SICHERN 16
BELEG_SICHERN
6 FORM SAPMV50A MV50AF0F_FCODE_SICH_OHNE_CHECK 10
FCODE_SICH_OHNE_CHECK
5 FORM SAPMV50A MV50AF0F_FCODE_WABU 11
FCODE_WABU
4 FORM SAPLV00F LV00FF0F 92
FCODE_BEARBEITEN
3 FUNCTION SAPLV00F LV00FU02 44
SCREEN_SEQUENCE_CONTROL
2 FORM SAPMV50A MV50AF0F_FCODE_BEARBEITEN 62
FCODE_BEARBEITEN
1 MODULE (PAI) SAPMV50A MV50AI0F 52
FCODE_BEARBEITEN
Chosen variables
Name
Val.
No. 10 Ty. FUNCTION
Name MB_POST_GOODS_MOVEMENT
XBLNR_SD
0080015203
3333333333
0080015203
0000000000
0000000000
EMKPF
000000000000000000 ##
2222222222333333333333333333222222222200222222222222222222222222222222222222222222222222222222
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
XMSSA[]
Table IT_589[0x196]
FUNCTION-POOL=MBWLDATA=XMSSA[]
Table reference: 307
TABH+ 0(20) = 00000000200D869300000000330100004D020000
TABH+ 20(20) = 00000000C4000000FFFFFFFF04090300E01B0000
TABH+ 40( 8) = 08000000C1108001
store = 0x00000000
ext1 = 0x200D8693
shmId = 0 (0x00000000)
id = 307 (0x33010000)
label = 589 (0x4D020000)
fill = 0 (0x00000000)
leng = 196 (0xC4000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000134
occu = 8 (0x08000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
isCtfyAble = 1
>>>>> Shareable Table Header Data <<<<<
tabi = Not allocated
pghook = Not allocated
idxPtr = Not allocated
shmTabhSet = Not allocated
id = Not allocated
refCount = Not allocated
tstRefCount = Not allocated
lineAdmin = Not allocated
lineAlloc = Not allocated
shmVersId = Not allocated
shmRefCount = Not allocated
shmIsReadOnly = Not allocated
>>>>> 1st level extension part <<<<<
regHook = 0x00000000
collHook = 0x00000000
ext2 = 0xD80C8693
>>>>> 2nd level extension part <<<<<
tabhBack = 0x980C8693
delta_head = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
pb_func = 0x00000000
pb_handle = 0x00000000
RRESWK
22222222222
00000000000
00000000000
00000000000
%_SPACE
2
0
0
0
L_MEM_ID
MKPF-XBLNR
4454254445
DB06D82CE2
0000000000
0000000000
RSJOBINFO
00000000000000 ##
2222222222222222222222222222222233333333333333222222222222222222222222222222222200
0000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000
RNAME
R
52222
20000
00000
00000
SCREEN
BT_UALL
4555444222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
24F51CC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
IT_RSTRUCT
Table[initial]
XMKPF-XABLN
2222222222
0000000000
0000000000
0000000000
%_DUMMY$$
2222
0000
0000
0000
SYST-REPID
SAPLMBWL
5454445422222222222222222222222222222222
310CD27C00000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
ODM07M[]
Table[initial]
GT_GOCOMP
000000000000 #### 00000000000000
3333333333332222222222222222222222222222222222222222222220000222222222222223333333333333322222
000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SY-SUBRC
4
0000
4000
L_ATPCB
22222
00000
00000
00000
XMKPF-MBLNR
4900035075
3333333333
4900035075
0000000000
0000000000
XMKPF-MJAHR
2008
3333
2008
0000
0000
BARCODE
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
%_ARCHIVE
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
T003
800WL49AMS XX XXXXXH
3335433445222222222222222222222222225522555554222222
8007C491D3000000000000000000000000008800888888000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
KNVV
00000000 000
2222222222222222222222222222222223333333322222222222222222222233322222222222222222222222222222
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
T064B
2222222222222222222222
0000000000000000000000
0000000000000000000000
0000000000000000000000
VGMSEG[]
Table[initial]
No. 9 Ty. FORM
Name BELEG_SICHERN_POST
MAT_AUF_HINWEIS_COPY
2
0
0
0
XLIKP[]
Table IT_392[1x2360]
PROGRAM=SAPMV50ADATA=XLIKP[]
Table reference: 197
TABH+ 0(20) = 082D1E94E0C8119300000000C500000088010000
TABH+ 20(20) = 01000000380900003000000004FC0100D0070000
TABH+ 40( 8) = 04000000C1108001
store = 0x082D1E94
ext1 = 0xE0C81193
shmId = 0 (0x00000000)
id = 197 (0xC5000000)
label = 392 (0x88010000)
fill = 1 (0x01000000)
leng = 2360 (0x38090000)
loop = 48 (0x30000000)
xtyp = TYPE#000027
occu = 4 (0x04000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
isCtfyAble = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x18081E94
pgHook = 0x00000000
idxPtr = 0x00000000
shmTabhSet = 0x00000000
id = 1541 (0x05060000)
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 4 (0x04000000)
lineAlloc = 4 (0x04000000)
shmVersId = 0 (0x00000000)
shmRefCount = 1 (0x01000000)
>>>>> 1st level extension part <<<<<
regHook = 0xA87F1B94
collHook = 0x00000000
ext2 = 0x28940F93
>>>>> 2nd level extension part <<<<<
tabhBack = 0x70A22B93
delta_head = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
pb_func = 0x00000000
pb_handle = 0x00000000
XLIKP
8000080015203CUSER14 06580920081014 Z0011000LF X20081016200810152008101420081017200
3333333333333455453322222333333333333332222225333333344222533333333333333333333333333333333333
800008001520335352140000006580920081014000000A0011000C6000820081016200810152008101420081017200
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<%_L195>
CVBAP
8000000012132000020T-AS301 T-AS301 0201 Su
3333333333333333333524533322222222222524533322222222222222222222222222222222222222233332222257
80000000121320000204D13301000000000004D1330100000000000000000000000000000000000000002010000035
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
MAT_AUF_HINWEIS_GEPRUEFT
2
0
0
0
<%_L195>-UPDKZ
UPDKZ_DELETE
D
4
4
0
0
IVBPA52_PAGIND
0.0.1.
000
00C
VBUK_KEIN_KREDITCHECK
2
0
0
0
XLIPS[]
Table IT_83[1x3552]
PROGRAM=SAPMV50ADATA=XLIPS[]
Table reference: 50
TABH+ 0(20) = E8F54D93F0282893000000003200000053000000
TABH+ 20(20) = 01000000E00D0000FFFFFFFF0400000080330000
TABH+ 40( 8) = 04000000C1108401
store = 0xE8F54D93
ext1 = 0xF0282893
shmId = 0 (0x00000000)
id = 50 (0x32000000)
label = 83 (0x53000000)
fill = 1 (0x01000000)
leng = 3552 (0xE00D0000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000260
occu = 4 (0x04000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 1
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
isCtfyAble = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0xD0896993
pgHook = 0x00000000
idxPtr = 0x00000000
shmTabhSet = 0x00000000
id = 410 (0x9A010000)
refCount = 1 (0x01000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 4 (0x04000000)
lineAlloc = 4 (0x04000000)
shmVersId = 0 (0x00000000)
shmRefCount = 2 (0x02000000)
>>>>> 1st level extension part <<<<<
regHook = 0xC8402493
collHook = 0x00000000
ext2 = 0x50E41293
>>>>> 2nd level extension part <<<<<
tabhBack = 0xC8532493
delta_head = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
pb_func = 0x00000000
pb_handle = 0x00000000
VBUK_KREDIT_NEUAUFBAU
2
0
0
0
LT_INB_CIFEXT
Table IT_2692[1x476]
PROGRAM=SAPMV50AFORM=BELEG_SICHERN_POSTDATA=LT_INB_CIFEXT
Table reference: 1104
TABH+ 0(20) = C095F993B8301E940000000050040000840A0000
TABH+ 20(20) = 01000000DC010000FFFFFFFF0400000090AC0100
TABH+ 40( 8) = 10000000C1308401
store = 0xC095F993
ext1 = 0xB8301E94
shmId = 0 (0x00000000)
id = 1104 (0x50040000)
label = 2692 (0x840A0000)
fill = 1 (0x01000000)
leng = 476 (0xDC010000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#002271
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 1
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
isCtfyAble = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0xF077F993
pgHook = 0x00000000
idxPtr = 0x00000000
shmTabhSet = 0x00000000
id = 1542 (0x06060000)
refCount = 1 (0x01000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x10000000)
lineAlloc = 16 (0x10000000)
shmVersId = 0 (0x00000000)
shmRefCount = 2 (0x02000000)
>>>>> 1st level extension part <<<<<
regHook = 0x00000000
collHook = 0x00000000
ext2 = 0x70E43294
>>>>> 2nd level extension part <<<<<
tabhBack = 0x70041E94
delta_head = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
pb_func = 0x00000000
pb_handle = 0x00000000
V50AGL-DISPLAY_FROM_ARCHIVE
2
0
0
0
XLIKP-VBELN
0080015203
3333333333
0080015203
0000000000
0000000000
EMKPF
4900035075200800000000000000 ##
3333333333333333333333333333222222222200222222222222222222222222222222222222222222222222222222
4900035075200800000000000000000000000010000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
VBMUE
2222222222222222222
0000000000000000000
0000000000000000000
0000000000000000000
VBSK
0000000000000000000000#### ####
2222222222222222222222222233333333333333333333330000222000022222222222222222222222222222222222
000000000000000000000000000000000000000000000000000C000000C00000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
PACKDATEN_VERBUCHEN
2
0
0
0
No. 8 Ty. FORM
Name BELEG_SICHERN_01
IF_FINAL_CHECK
2
0
0
0
LF_ONLY_FINAL
2
0
0
0
LF_ONLY_PREPARE
2
0
0
0
LF_FLAG_DOCNUM_NEW
2
0
0
0
CF_SUBRC
0
0000
0000
T683V
22222222222222222222222222222222222
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
SY-XPROG
SAPLBPFC
5454454422222222222222222222222222222222
310C206300000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
IF_RENUMBER
X
5
8
0
0
SPACE
2
0
0
0
XVBPA_FIRSTIND
0.0.1.
000
00C
SY-REPID
SAPMV50A
5454533422222222222222222222222222222222
310D650100000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
IF_POST
X
5
8
0
0
SYST-REPID
SAPMV50A
5454533422222222222222222222222222222222
310D650100000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
XVBPA_AKTIND
0.0.1.
000
00C
No. 7 Ty. FORM
Name BELEG_SICHERN
%_DUMMY$$
2222
0000
0000
0000
IVBPA2KEY
000000
22333333
00000000
00000000
00000000
IV_FINAL_CHECK_DURCHFUEHREN
2
0
0
0
CHARX
X
5
8
0
0
LF_SUBRC
0
0000
0000
No. 6 Ty. FORM
Name FCODE_SICH_OHNE_CHECK
IVBPA1KEY
000000
33333322
00000000
00000000
00000000
T180-AKTYP
V
5
6
0
0
AKTYP-CREATE
H
4
8
0
0
CVBFA
000000 000000 #### #### 00000000000000 0
2222222222222333333222222222233333320000222000022222222333333333333332222222222222222222222223
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000C000000C00000000000000000000000000000000000000000000000
XSDCTRLFLAG
22
00
00
00
SYST
| ######################################T#######################################µ#########XP####
000000000000000000000000000000800000005000000000000000000000000000000000000010B0001000AF550000
0000100000000000000010601000104000000040006050407000000000000000000000000000C0500010300F800300
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000AF000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000BF00000C
GC_FCODE_PODCANC
ABBR
4445222222222222222222222222222222222222222222222222222222222222222222
1222000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
XSDCTRLFLAG-PROTSAVE
2
0
0
0
YES
X
5
8
0
0
GC_FCODE_PODQUIT
PODQ
5445222222222222222222222222222222222222222222222222222222222222222222
0F41000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
PROTOCOLCALLER-SDL
SDL
5442
34C0
0000
0000
GC_FCODE_PODSTOR
PODS
5445222222222222222222222222222222222222222222222222222222222222222222
0F43000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
LIKP-VBELN
0080015203
3333333333
0080015203
0000000000
0000000000
LIPS-POSNR
000010
333333
000010
000000
000000Hi
As soon as we have started to put things into UPDATE TASK, we must
54 ensure that errors definitely terminate the transaction.
55 MESSAGE A is not sufficient because it can be catched from
56 external callers which COMMIT WORK afterwards, resulting in
57 incomplete updates. Read note 385830 for the full story.
From the above message I think u need to read the not 385830 in tcode snote.
Thx. -
Performance Issue For Opening And Closing Balance In FBL1N/3N/5N
Dear experts,
I Am Having Requirement to Bring Opening And Closing Balance In FBL1N, FBL3N, FBL5N.
For This requirement I Used BADI : FI_ITEMS_CH_DATA~CHANGE_ITEMS, below is my Code For FBL1N, And I've Done the same For 3N/5N...With Related BAPI
* IF SY-TCODE = 'FBL1N'.
* LOOP AT ct_items INTO gs_items.
* CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
* EXPORTING
* date = gs_items-budat
* days = '01'
* months = '00'
* signum = '-'
* years = '00'
* IMPORTING
* calc_date = lv_date.
* CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
* EXPORTING
* companycode = gs_items-bukrs
* vendor = gs_items-konto
* keydate = lv_date
** BALANCESPGLI = ' '
** NOTEDITEMS = ' '
** IMPORTING
** RETURN =
* TABLES
* keybalance = lv_obal.
* CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
* EXPORTING
* companycode = gs_items-bukrs
* vendor = gs_items-konto
* keydate = gs_items-budat
** BALANCESPGLI = ' '
** NOTEDITEMS = ' '
** IMPORTING
** RETURN =
* TABLES
* keybalance = lv_cbal
* READ TABLE lv_cbal INTO gs_cbal INDEX 1.
* gs_items-cbal = gs_cbal-lc_bal.
* READ TABLE lv_obal INTO gs_obal INDEX 1.
* gs_items-obal = gs_obal-lc_bal.
* MODIFY ct_items FROM gs_items TRANSPORTING obal cbal.
* CLEAR: gs_items,gs_obal,gs_cbal.
* ENDLOOP.
* ENDIF.
So, Above Code Causing Me the Performance Issue, Kindly Suggest Me the Solution..
Regards,
uday.Hi Uday,
I am sending you the code i used for the creation a Zreport based on FBL5N. Please check if it can of any help.
*& Report ZFBL5N *
REPORT zfbl5n_new .
TABLES : bsid,knc1,lfc1.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_bsid,
bukrs TYPE bsid-bukrs,
kunnr TYPE bsid-kunnr,
belnr TYPE bsid-belnr,
buzei TYPE bsid-buzei,
bldat TYPE bsid-bldat,
blart TYPE bsid-blart,
bschl TYPE bsid-bschl,
shkzg TYPE bsid-shkzg,
dmbtr TYPE bsid-dmbtr,
augdt TYPE bsid-augdt,
augbl TYPE bsid-augbl,
zuonr TYPE bsid-zuonr,
sgtxt TYPE bsid-sgtxt,
zfbdt TYPE bsid-zfbdt,
zterm TYPE bsid-zterm,
zbd1t TYPE bsid-zbd1t,
zbd2t TYPE bsid-zbd2t,
zbd3t TYPE bsid-zbd3t,
kkber TYPE bsid-kkber,
bstat TYPE bsid-bstat,
umskz TYPE bsid-umskz,
END OF ty_bsid.
TYPES: BEGIN OF ty_bsik,
bukrs TYPE bsik-bukrs,
lifnr TYPE bsik-lifnr,
belnr TYPE bsik-belnr,
buzei TYPE bsik-buzei,
bldat TYPE bsik-bldat,
blart TYPE bsik-blart,
bschl TYPE bsik-bschl,
shkzg TYPE bsik-shkzg,
dmbtr TYPE bsik-dmbtr,
augdt TYPE bsik-augdt,
augbl TYPE bsik-augbl,
zuonr TYPE bsik-zuonr,
sgtxt TYPE bsik-sgtxt,
zfbdt TYPE bsik-zfbdt,
* KKBER TYPE bsik-kkber,
zterm TYPE bsik-zterm,
zbd1t TYPE bsik-zbd1t,
zbd2t TYPE bsik-zbd2t,
zbd3t TYPE bsik-zbd3t,
bstat TYPE bsid-bstat,
umskz TYPE bsid-umskz,
END OF ty_bsik.
TYPES: BEGIN OF ty_final,
belnr TYPE bsid-belnr,
* buzei TYPE bsak-buzei,
bldat TYPE bsid-bldat,
blart TYPE bsid-blart,
chq TYPE bsid-zuonr,
debit TYPE bsid-dmbtr,
credit TYPE bsid-dmbtr,
txt TYPE bsid-sgtxt,
date TYPE bsid-zfbdt,
kkber TYPE bsid-kkber,
zterm TYPE bsid-zterm,
augbl TYPE bsid-augbl,
augdt TYPE bsid-augdt,
flag TYPE c,
END OF ty_final.
TYPES : BEGIN OF gs_openbal,
bukrs TYPE bapi3007_2-comp_code,
kunnr TYPE bapi3007_2-customer,
dmbtr TYPE bapi3007_2-lc_amount,
END OF gs_openbal.
DATA: it_bsid TYPE STANDARD TABLE OF ty_bsid,
it_bsik TYPE STANDARD TABLE OF ty_bsik,
it_final TYPE STANDARD TABLE OF ty_final.
DATA: wa_bsid TYPE ty_bsid,
wa_bsik TYPE ty_bsik,
wa_final TYPE ty_final.
DATA: w_days TYPE t5a4a-dlydy,
w_month TYPE t5a4a-dlymo,
w_year TYPE t5a4a-dlyyr,
w_date TYPE p0001-begda,
w_name1 TYPE kna1-name1,
w_ort01 TYPE kna1-ort01,
w_lifnr TYPE kna1-lifnr,
w_dmbtr1 TYPE bsid-dmbtr,
w_dmbtr2 TYPE bsid-dmbtr,
w_dmbtr3 TYPE bsad-dmbtr,
w_dmbtr4 TYPE bsad-dmbtr,
w_opbal TYPE bsid-dmbtr,
w_credit TYPE bsik-dmbtr,
w_debit TYPE bsik-dmbtr,
w_clobal TYPE bsik-dmbtr,
w_credit1 TYPE bsik-dmbtr,
w_debit1 TYPE bsik-dmbtr,
w_clobal1 TYPE bsik-dmbtr.
DATA: ld_yrper LIKE rwcoom-fiscper,
kunnr LIKE kna1-kunnr,
x_norm TYPE c,
x_park,
x_apar,
x_merk,
ok_code(4),
wa_x001 LIKE x001,
return LIKE bapireturn,
line_count LIKE sy-loopc,
number_of_records TYPE i,
xindex LIKE sy-tabix,
open LIKE knc1-um01s,
temp(20),
close LIKE knc1-um01s,
gjahr LIKE bsid-gjahr,
period LIKE bkpf-monat,
f(1),
v_char(2),
closec(20),
openc(20),
debit LIKE bapi3007_2-lc_amount,
credit LIKE debit.
DATA : v_dmbtr LIKE bsid-dmbtr.
*DATA : tot_debit LIKE t_ar-debit,
* tot_credit LIKE t_ar-credit.
DATA : t_kna1 LIKE kna1 OCCURS 1 WITH HEADER LINE,
t_knb1 LIKE knb1 OCCURS 10 WITH HEADER LINE.
DATA ibsid LIKE bsid OCCURS 0 WITH HEADER LINE.
DATA ibsad LIKE bsad OCCURS 0 WITH HEADER LINE.
DATA ibsik LIKE bsik OCCURS 0 WITH HEADER LINE.
DATA ibsak LIKE bsak OCCURS 0 WITH HEADER LINE.
DATA : it_fieldcat_alv TYPE slis_t_fieldcat_alv,
wa_fieldcat_alv TYPE slis_fieldcat_alv,
is_layout_alv TYPE slis_layout_alv,
wa_layout_alv TYPE slis_layout_alv,
it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
wa_events TYPE LINE OF slis_t_event.
DATA : BEGIN OF ibukrs OCCURS 0,
bukrs LIKE t001-bukrs,
END OF ibukrs.
DATA : BEGIN OF ikunnr1 OCCURS 0,
kunnr LIKE knc1-kunnr,
END OF ikunnr1.
DATA : BEGIN OF ikunnr OCCURS 0,
kunnr LIKE knc1-kunnr,
bukrs LIKE t001-bukrs,
lifnr LIKE lfc1-lifnr,
END OF ikunnr.
DATA: it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv.
DATA: r_bschl TYPE RANGE OF bschl,
wa_bschl LIKE LINE OF r_bschl.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_kunnr TYPE bsid-kunnr OBLIGATORY,
p_bukrs TYPE bsid-bukrs OBLIGATORY.
SELECT-OPTIONS: so_budat FOR bsid-budat .
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS : p_normal AS CHECKBOX,
p_spl AS CHECKBOX,
p_vendor AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b2.
PERFORM get_data.
PERFORM process_data.
*PERFORM calculate_openbal. " Commented by anish
PERFORM calculate_open_bal.
PERFORM calculate_closing_bal.
PERFORM build_catalog_sort USING it_sort.
PERFORM reuse_alv_events_get .
PERFORM display_data.
*& Form GET_DATA
* text
* --> p1 text
* <-- p2 text
FORM get_data .
SELECT bukrs kunnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t kkber
bstat umskz FROM bsid
INTO TABLE it_bsid
WHERE bukrs = p_bukrs
AND kunnr = p_kunnr
AND budat IN so_budat.
SELECT bukrs kunnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t kkber
bstat umskz FROM bsad
APPENDING TABLE it_bsid
WHERE bukrs = p_bukrs
AND kunnr = p_kunnr
AND budat IN so_budat.
SELECT SINGLE name1 ort01 lifnr FROM kna1
INTO (w_name1 , w_ort01 , w_lifnr)
WHERE kunnr = p_kunnr.
IF p_vendor IS NOT INITIAL.
SELECT bukrs lifnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t
bstat umskz FROM bsik
APPENDING TABLE it_bsik
WHERE bukrs = p_bukrs
AND lifnr = w_lifnr
AND budat IN so_budat.
SELECT bukrs lifnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t
bstat umskz FROM bsak
APPENDING TABLE it_bsik
WHERE bukrs = p_bukrs
AND lifnr = w_lifnr
AND budat IN so_budat.
ENDIF.
SORT it_bsid BY bschl.
DELETE it_bsid WHERE bschl = '04'.
DELETE it_bsid WHERE bschl = '07'.
DELETE it_bsid WHERE bschl = '17'.
DELETE it_bsid WHERE bschl = '34'.
DELETE it_bsid WHERE bschl = '27'.
DELETE it_bsid WHERE bschl = '37'.
SORT it_bsik BY bschl.
DELETE it_bsik WHERE bschl = '04'.
DELETE it_bsik WHERE bschl = '07'.
DELETE it_bsik WHERE bschl = '17'.
DELETE it_bsik WHERE bschl = '34'.
DELETE it_bsik WHERE bschl = '27'.
DELETE it_bsik WHERE bschl = '37'.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
* text
* --> p1 text
* <-- p2 text
FORM process_data .
DATA:okay TYPE c VALUE space.
w_month = '00'.
w_year = '00'.
SORT it_bsid BY bldat .
LOOP AT it_bsid INTO wa_bsid.
PERFORM check_item_ok USING p_normal
p_spl
p_vendor
* x_park
wa_bsid
CHANGING okay.
CHECK okay = 'X'.
wa_final-belnr = wa_bsid-belnr.
wa_final-bldat = wa_bsid-bldat.
wa_final-blart = wa_bsid-blart.
wa_final-txt = wa_bsid-sgtxt.
wa_final-kkber = wa_bsid-kkber.
wa_final-zterm = wa_bsid-zterm.
wa_final-augbl = wa_bsid-augbl.
wa_final-augdt = wa_bsid-augdt.
wa_final-flag = 'C'.
IF wa_bsid-blart = 'DZ'.
wa_final-chq = wa_bsid-zuonr.
ENDIF.
IF wa_bsid-shkzg = 'S'.
wa_final-debit = wa_bsid-dmbtr.
ELSEIF wa_bsid-shkzg = 'H'.
wa_final-credit = wa_bsid-dmbtr.
ENDIF.
w_credit = w_credit + wa_final-credit.
w_debit = w_debit + wa_final-debit.
****** Net due date
IF wa_bsid-zbd1t IS NOT INITIAL.
w_days = wa_bsid-zbd1t.
ELSEIF wa_bsid-zbd2t IS NOT INITIAL.
w_days = wa_bsid-zbd2t.
ELSEIF wa_bsid-zbd3t IS NOT INITIAL.
w_days = wa_bsid-zbd3t.
ENDIF.
IF w_days IS INITIAL.
wa_final-date = wa_bsid-zfbdt.
ELSE.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = wa_bsid-zfbdt
days = w_days
months = w_month
signum = '+'
years = w_year
IMPORTING
calc_date = w_date.
wa_final-date = w_date.
ENDIF.
APPEND wa_final TO it_final.
CLEAR: w_days , w_date , wa_final .
ENDLOOP.
IF it_bsik IS NOT INITIAL.
CLEAR: w_days , w_date.
SORT it_bsik BY bldat.
LOOP AT it_bsik INTO wa_bsik.
wa_final-belnr = wa_bsik-belnr.
wa_final-bldat = wa_bsik-bldat.
wa_final-blart = wa_bsik-blart.
wa_final-txt = wa_bsik-sgtxt.
* wa_final-kkber = wa_bsik-kkber.
wa_final-zterm = wa_bsik-zterm.
wa_final-augbl = wa_bsik-augbl.
wa_final-augdt = wa_bsik-augdt.
wa_final-flag = 'V'.
IF wa_bsik-blart = 'DZ'.
wa_final-chq = wa_bsik-zuonr.
ENDIF.
IF wa_bsik-shkzg = 'S'.
wa_final-debit = wa_bsik-dmbtr.
ELSEIF wa_bsik-shkzg = 'H'.
wa_final-credit = wa_bsik-dmbtr.
ENDIF.
w_credit1 = w_credit1 + wa_final-credit.
w_debit1 = w_debit1 + wa_final-debit.
******* Net Due date
IF wa_bsik-zbd1t IS NOT INITIAL.
w_days = wa_bsik-zbd1t.
ELSEIF wa_bsik-zbd2t IS NOT INITIAL.
w_days = wa_bsik-zbd2t.
ELSEIF wa_bsik-zbd3t IS NOT INITIAL.
w_days = wa_bsik-zbd3t.
ENDIF.
IF w_days IS INITIAL.
wa_final-date = wa_bsik-zfbdt.
ELSE.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = wa_bsik-zfbdt
days = w_days
months = w_month
signum = '+'
years = w_year
IMPORTING
calc_date = w_date.
ENDIF.
wa_final-date = w_date.
APPEND wa_final TO it_final.
CLEAR: wa_final.
ENDLOOP.
ENDIF.
ENDFORM. " PROCESS_DATA
*& Form DISPLAY_DATA
* text
* --> p1 text
* <-- p2 text
FORM display_data .
wa_fieldcat_alv-fieldname = 'BELNR'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-003.
wa_fieldcat_alv-outputlen = '11'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'BLDAT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-004.
wa_fieldcat_alv-outputlen = '13'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'BLART'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-005.
wa_fieldcat_alv-outputlen = '02'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'CHQ'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-006.
wa_fieldcat_alv-outputlen = '09'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'DEBIT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-007.
wa_fieldcat_alv-outputlen = '15'.
wa_fieldcat_alv-do_sum = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'CREDIT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-008.
wa_fieldcat_alv-outputlen = '15'.
wa_fieldcat_alv-do_sum = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'TXT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-009.
wa_fieldcat_alv-outputlen = '50'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'DATE'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-010.
wa_fieldcat_alv-outputlen = '12'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'KKBER'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-011.
wa_fieldcat_alv-outputlen = '04'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'ZTERM'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-012.
wa_fieldcat_alv-outputlen = '13'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'AUGBL'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-013.
wa_fieldcat_alv-outputlen = '15'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'AUGDT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-014.
wa_fieldcat_alv-outputlen = '17'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'FLAG'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-tech = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = wa_layout_alv
it_fieldcat = it_fieldcat_alv
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort
it_events = it_events
i_save = 'A'
TABLES
t_outtab = it_final
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.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* i_callback_program = sy-repid
* i_callback_top_of_page = 'TOP_OF_PAGE'
* is_layout = wa_layout_alv
* it_fieldcat = it_fieldcat_alv
* it_sort = it_sort
*** I_DEFAULT = 'X'
** i_save = 'A'
*** IT_EVENTS =
* TABLES
* t_outtab = it_final
* 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.
ENDFORM. " DISPLAY_DATA
*& Form TOP_OF_PAGE
* Header at top of page.
FORM top_of_page.
SKIP 1.
WRITE: AT 35 'Account Statement from' , so_budat-low , 'to' , so_budat-high.
SKIP 2.
WRITE: AT /5 'CUSTOMER:' , p_kunnr.
WRITE: AT 35 'Name:' , w_name1.
WRITE: AT /5 'Company:' , p_bukrs.
WRITE: AT 35 'City:' , w_ort01.
SKIP 1.
WRITE: AT /5 'Opening Balance as on' , so_budat-low , ' ' , w_opbal LEFT-JUSTIFIED.
SKIP 2.
ENDFORM. "TOP_OF_PAGE
*& Form END_OF_PAGE
* Footer at End of page.
FORM end_of_page.
SKIP 2.
IF so_budat-high IS NOT INITIAL.
WRITE: AT 5 'Closing Balance as on' , so_budat-high , ' ' , w_clobal LEFT-JUSTIFIED.
ELSE.
WRITE: AT 5 'Closing Balance ' , w_clobal LEFT-JUSTIFIED.
ENDIF.
ENDFORM. "end_of_page
*& Form CALCULATE_OPENBAL
* text
* --> p1 text
* <-- p2 text
FORM calculate_openbal .
DATA:v_gjahr TYPE bsid-gjahr.
DATA: v_period LIKE t009b-poper,v_monat LIKE t001-periv.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
i_budat = so_budat-low
i_bukrs = p_bukrs
* I_PERIV = ' '
* I_GJAHR = 0000
* I_MONAT = 00
* X_XMO16 = ' '
IMPORTING
e_gjahr = v_gjahr
* e_monat = v_monat
e_poper = v_period.
IF sy-subrc NE 0.
ENDIF.
DATA: f_date LIKE sy-datum.
CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = v_gjahr
i_monmit = 00
i_periv = 'V3'
i_poper = v_period
IMPORTING
e_date = f_date.
period = v_period - 1.
gjahr = v_gjahr.
DATA wa_kna1 LIKE kna1.
CALL FUNCTION 'READ_KNA1'
EXPORTING
xkunnr = p_kunnr
IMPORTING
xkna1 = wa_kna1
EXCEPTIONS
key_incomplete = 1
not_authorized = 2
not_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE w023(zwww).
CALL SCREEN 0010.
ENDIF.
MOVE-CORRESPONDING wa_kna1 TO t_kna1.
APPEND t_kna1.
SELECT kunnr FROM kna1 INTO TABLE ikunnr1
WHERE kunnr = p_kunnr.
SELECT bukrs FROM t001 INTO TABLE ibukrs
FOR ALL ENTRIES IN t_knb1
WHERE bukrs = t_knb1-bukrs.
LOOP AT ikunnr1.
LOOP AT ibukrs.
ikunnr-kunnr = ikunnr1-kunnr.
ikunnr-bukrs = ibukrs-bukrs.
READ TABLE t_kna1 WITH KEY kunnr = ikunnr1-kunnr.
ikunnr-lifnr = t_kna1-lifnr.
APPEND ikunnr.
ENDLOOP.
ENDLOOP.
DELETE ikunnr WHERE bukrs NE p_bukrs.
LOOP AT ikunnr.
CLEAR: knc1,lfc1,f.
IF NOT ( ikunnr-kunnr IS INITIAL ) AND NOT ( p_vendor IS INITIAL ).
SELECT SINGLE * FROM lfc1
WHERE gjahr = gjahr AND bukrs = ikunnr-bukrs
AND lifnr = ikunnr-lifnr.
ENDIF.
SELECT SINGLE * FROM knc1
WHERE gjahr = gjahr AND bukrs = p_bukrs
AND kunnr = p_kunnr.
IF sy-subrc = 0.
CASE period .
WHEN 12.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h +
knc1-um11s - knc1-um11h + knc1-um12s - knc1-um12h.
IF NOT ( lfc1 IS INITIAL ).
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h +
lfc1-um11s - lfc1-um11h + lfc1-um12s - lfc1-um12h.
ENDIF.
WHEN 11.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h +
knc1-um11s - knc1-um11h.
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h +
lfc1-um11s - lfc1-um11h.
ENDIF.
WHEN 10.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h.
ENDIF.
WHEN 9.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h.
ENDIF.
WHEN 8.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h.
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h .
ENDIF.
WHEN 7.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um -
Hi,
Can you please modify this code, i have performance issue for the following code.
Here: t_po is a final internal table.
select ekkobukrs ekkoebeln ekkolifnr ekkobsart " EKKO
ekkoernam ekkoaedat ekko~memory " EKKO
ekpoebelp ekpoidnlf ekpotxz01 ekpoloekz " EKPO
ekpoeffwr ekpomenge " EKPO
ekknsakto ekknps_psp_pnr " EKKN
ekknzekkn ekknmenge " EKKN
into (t_po-bukrs,t_po-ebeln,t_po-lifnr,t_po-bsart,
t_po-ernam,t_po-aedat,t_po-memory,
t_po-ebelp,t_po-idnlf,t_po-txz01,t_po-loekz,
t_po-effwr,t_po-menge,
t_po-sakto,t_po-ps_psp_pnr,
t_po-zekkn,t_po-menge1)
from ( ekko inner join ekpo
on ekkoebeln eq ekpoebeln )
inner join ekkn
on ekkoebeln eq ekknebeln
and ekpoebelp eq ekknebelp
for all entries in t_pspnr
where ekko~bukrs in s_bukrs and
ekko~lifnr in s_lifnr and
ekko~bsart in s_bsart and
ekko~aedat in s_aedat and
ekko~ernam in s_ernam and
ekpo~idnlf in s_idnlf and
ps_psp_pnr = t_pspnr-pspnr.
append t_po.
clear t_po.
endselect.
Another code:
sort t_po by bukrs idnlf ebeln ebelp.
loop at t_po.
select single post1 psphi into (t_po-post1,t_po-psphi) "Performance issue
from prps
where pspnr = t_po-ps_psp_pnr.
select single pspid into t_po-pspid ""Performance issue
from proj
where pspnr = t_po-psphi.
if t_po-pspid in s_pspid.
do nothing
else.
delete t_po index sy-tabix.
continue.
endif.
Get invoiced amount for a PO line item
select dmbtr shkzg into (ekbe-dmbtr,ekbe-shkzg) ""Performance issue
from ekbe
where ebeln = t_po-ebeln and
ebelp = t_po-ebelp and
vgabe = '2'.
if ekbe-shkzg = 'H'.
ekbe-dmbtr = ekbe-dmbtr * -1.
endif.
t_po-invamt = t_po-invamt + ekbe-dmbtr.
endselect. ""Performance issue
if not t_po-menge eq 0.
t_po-polinamt = t_po-effwr * ( t_po-menge1 / t_po-menge ).
endif.
t_po-amtopen = t_po-polinamt - t_po-invamt.
modify t_po index sy-tabix.
clear: t_po,prps,ekbe,proj.
endloop.HI,
Instead of selecting each fields and putting it in each fileds in internal table, we can select the fields and put it into the internal table which contains the required fields.
Eg.
TYPES: begin of itab,
vorna type vorna,
nachn type nachn,
end of itab.
data: wt_itab type table of itab.
select vorna, nachn into table wt_itab from pa0002 where cond.
This increase the performance because it wont take time to match the each fields given after the table statement.
Regards,
Rani. -
Performance Issue in ABAP part as suggested by SE30 for the below coding
Dear Abapers,
The below coding was done by my seniors and having performance issue i.e in SE30 the abap part is consuming 98% of time.
Pl. help us to solve this situation.
With best regards,
S. Arunachalam.
the code is:
REPORT ZOBJLIST LINE-SIZE 320 NO STANDARD PAGE HEADING. "280 to 320
TABLES: MARA, MAKT, A916, KONP, MVKE, ZSAI_PARAM.
Input parameters *****************************************************
DATA IT_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
DATA T_CLASS LIKE SCLASS OCCURS 0 WITH HEADER LINE.
DATA T_CLOBJDAT LIKE CLOBJDAT OCCURS 0 WITH HEADER LINE.
DATA FLG_COLOR TYPE C.
DATA WRK_CLASS LIKE KLAH-CLASS.
DATA WRK_PERCENT TYPE I. " Progress percentage
DATA WRK_LINES LIKE SY-TABIX. " To store the no. of lines in int.table
DATA WRK_PROGRESSTEXT(72) . " Progress indicator text
DATA : BEGIN OF IT_MATNR OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
BISMT LIKE MARA-BISMT, "Thanikai-17.05.2002
END OF IT_MATNR.
DATA : BEGIN OF IT_HEADER OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
CLART LIKE SCLASS-KLART,
CLASS LIKE SCLASS-CLASS,
BISMT LIKE MARA-BISMT, "Thanikai-17.05.2002
SCMNG(4) TYPE I, "Thanikai-03.10.2002
END OF IT_HEADER.
DATA : BEGIN OF IT_DETAILS OCCURS 0,
MATNR LIKE MARA-MATNR,
ZAEHL LIKE CLOBJDAT-ZAEHL,
ATNAM LIKE CLOBJDAT-ATNAM,
AUSP1 LIKE CLOBJDAT-AUSP1,
END OF IT_DETAILS.
DATA : BEGIN OF IT_DETAILS1 OCCURS 0,
MATNR LIKE MARA-MATNR,
ATNAM LIKE CLOBJDAT-ATNAM,
ZAEHL LIKE CLOBJDAT-ZAEHL,
END OF IT_DETAILS1.
DATA: IT_DETAILS2 LIKE IT_DETAILS1 OCCURS 0 WITH HEADER LINE.
DATA TMP_MATNR LIKE AUSP-OBJEK.
DATA WRK_FIELD(25).
DATA WRK_TABNAME(40). " Name of the int.table from wrk_fldname
DATA WRK_FIELDNAME(40). " Name of the fld name from wrk_fldname
DATA WRK_FLDNAME(40).
DATA T_CLOBJDAT_LINES LIKE SY-TABIX.
DATA WRK_LINES1 LIKE SY-TABIX.
DATA WRK_FIRST_TIME.
DATA TMP_STR.
DATA WRK_AUSP1 LIKE CLOBJDAT-AUSP1.
DATA: WRK_KBETR LIKE KONP-KBETR. "Thanikai-03.10.2002
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
*PARAMETERS:
SELECT-OPTIONS:
P_MATKL FOR MARA-MATKL DEFAULT 'DIAL' OBLIGATORY NO INTERVALS.
SELECT-OPTIONS : S_MATNR FOR MARA-MATNR MATCHCODE OBJECT MAT1.
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS: P_CLASS LIKE KLAH-CLASS,
P_KLART LIKE KLAH-KLART DEFAULT '001' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : REQ RADIOBUTTON GROUP RGRP ,
NREQ RADIOBUTTON GROUP RGRP .
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN.
IF NOT P_CLASS IS INITIAL.
WRK_CLASS = P_CLASS.
ELSE.
WRK_CLASS = SPACE.
ENDIF.
TOP-OF-PAGE.
IF SY-BATCH NE 'X'.
PERFORM PRINT_TOP.
ENDIF.
START-OF-SELECTION.
SET PF-STATUS '9000'.
SELECT * INTO TABLE IT_MARA
FROM MARA CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND MATKL IN P_MATKL
AND MATNR IN S_MATNR.
DESCRIBE TABLE IT_MARA LINES WRK_LINES.
MOVE 'Selecting Material Description' TO WRK_PROGRESSTEXT.
PERFORM SAPGUI USING WRK_PERCENT WRK_PROGRESSTEXT.
LOOP AT IT_MARA.
SELECT SINGLE * FROM MAKT CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND MATNR = IT_MARA-MATNR
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
IT_MATNR-MATNR = IT_MARA-MATNR.
IT_MATNR-MAKTX = MAKT-MAKTX.
IT_MATNR-BISMT = IT_MARA-BISMT. "Thanikai-17.05.2002
ENDIF.
APPEND IT_MATNR.
CLEAR IT_MATNR.
ENDLOOP.
CLEAR WRK_LINES.
DESCRIBE TABLE IT_MATNR LINES WRK_LINES.
MOVE 'Selecting Class / characteristics for the Material'
TO WRK_PROGRESSTEXT.
PERFORM SAPGUI USING WRK_PERCENT WRK_PROGRESSTEXT.
LOOP AT IT_MATNR.
CLEAR: TMP_MATNR, T_CLASS, T_CLOBJDAT. "Thanikai-26.08.2002
REFRESH: T_CLASS, T_CLOBJDAT. "Thanikai-26.08.2002
TMP_MATNR = IT_MATNR-MATNR.
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
CLASS = WRK_CLASS
CLASSTEXT = 'X'
CLASSTYPE = '001'
CLINT = ' '
FEATURES = 'X'
LANGUAGE = SY-LANGU
OBJECT = TMP_MATNR
OBJECTTABLE = 'MARA'
KEY_DATE = SY-DATUM
INITIAL_CHARACT = 'X'
NO_VALUE_DESCRIPT = 'X'
CHANGE_SERVICE_CLF = 'X'
INHERITED_CHAR = ' '
TABLES
T_CLASS = T_CLASS
T_OBJECTDATA = T_CLOBJDAT
EXCEPTIONS
NO_CLASSIFICATION = 1
NO_CLASSTYPES = 2
INVALID_CLASS_TYPE = 3
OTHERS = 4.
IF SY-SUBRC = 0.
READ TABLE T_CLASS INDEX 1.
IT_HEADER-MATNR = IT_MATNR-MATNR.
IT_HEADER-MAKTX = IT_MATNR-MAKTX.
IT_HEADER-BISMT = IT_MATNR-BISMT."Thanikai-17.05.2002
IT_HEADER-CLART = T_CLASS-KLART.
IT_HEADER-CLASS = T_CLASS-CLASS.
PERFORM PKG_DLVY_UNIT.
APPEND IT_HEADER.
CLEAR: IT_HEADER.
Code Start by Thanikai on 16.08.2002
LOOP AT T_CLOBJDAT.
IT_DETAILS-MATNR = IT_MATNR-MATNR.
IT_DETAILS-ZAEHL = T_CLOBJDAT-ZAEHL.
IT_DETAILS-ATNAM = T_CLOBJDAT-ATNAM.
IT_DETAILS-AUSP1 = T_CLOBJDAT-AUSP1.
APPEND IT_DETAILS.
ENDLOOP.
CLEAR: IT_DETAILS.
LOOP AT T_CLOBJDAT.
IT_DETAILS1-MATNR = IT_MATNR-MATNR.
IT_DETAILS1-ATNAM = T_CLOBJDAT-ATNAM.
IT_DETAILS1-ZAEHL = T_CLOBJDAT-ZAEHL.
APPEND IT_DETAILS1.
ENDLOOP.
CLEAR: IT_DETAILS1.
DESCRIBE TABLE IT_DETAILS1 LINES T_CLOBJDAT_LINES.
IF WRK_FIRST_TIME NE 'X'.
WRK_LINES1 = T_CLOBJDAT_LINES.
WRK_FIRST_TIME = 'X'.
IT_DETAILS2[] = IT_DETAILS1[].
ELSE.
IF T_CLOBJDAT_LINES GT WRK_LINES1.
WRK_LINES1 = T_CLOBJDAT_LINES.
IT_DETAILS2[] = IT_DETAILS1[].
ENDIF.
ENDIF.
CLEAR: T_CLOBJDAT_LINES.
CLEAR: IT_DETAILS1. REFRESH: IT_DETAILS1.
ENDIF.
Code end by Thanikai on 16.08.2002
ENDLOOP.
CLEAR: WRK_LINES1, WRK_FIRST_TIME.
Print Details *********************************
PERFORM PRINT_DETAILS.
AT USER-COMMAND.
GET CURSOR FIELD WRK_FIELD.
SPLIT WRK_FIELD AT '-' INTO WRK_TABNAME WRK_FLDNAME.
IF NOT WRK_FLDNAME IS INITIAL.
CASE SY-UCOMM.
WHEN 'SORA'.
IF SY-LSIND > 0.
SY-LSIND = SY-LSIND - 1. "To print in the same window
ENDIF.
PERFORM PRINT_REPORT_ASCENDING.
WHEN 'SORD'.
IF SY-LSIND > 0.
SY-LSIND = SY-LSIND - 1. "To print in the same window
ENDIF.
PERFORM PRINT_REPORT_DESCENDING.
ENDCASE.
ELSE.
MESSAGE S000(38) WITH 'Selete Material Number / Description'.
ENDIF.
*& Form SAPGUI
text
-->P_WRK_PERCENT text *
-->P_WRK_PROGRESSTEXT text *
FORM SAPGUI USING P_WRK_PERCENT
P_WRK_PROGRESSTEXT.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = WRK_PERCENT
TEXT = WRK_PROGRESSTEXT
EXCEPTIONS
OTHERS = 1.
ENDFORM. " SAPGUI
*& Form PRINT_REPORT_ASCENDING
text
--> p1 text
<-- p2 text
FORM PRINT_REPORT_ASCENDING.
IF WRK_TABNAME = 'IT_HEADER'.
SORT IT_HEADER BY (WRK_FLDNAME).
PERFORM PRINT_TOP.
PERFORM PRINT_DETAILS.
ENDIF.
ENDFORM. " PRINT_REPORT_ASCENDING
*& Form PRINT_DETAILS
text
--> p1 text
<-- p2 text
WRK_AUSP1 width chged below from (7)to(9) by Nagaraj/MKRK 24.11.05
FORM PRINT_DETAILS.
SORT IT_HEADER BY MATNR.
IF SY-BATCH EQ 'X'.
PERFORM PRINT_TOP.
ENDIF.
IF REQ = 'X'.
LOOP AT IT_HEADER.
IF FLG_COLOR = 'X'.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
CLEAR FLG_COLOR.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
FLG_COLOR = 'X'.
ENDIF.
WRITE :/ SY-VLINE NO-GAP,
(18) IT_HEADER-MATNR COLOR COL_KEY NO-GAP,
SY-VLINE NO-GAP,
(40) IT_HEADER-MAKTX NO-GAP,
SY-VLINE NO-GAP,
(18) IT_HEADER-BISMT NO-GAP, "Thanikai-17.05.2002
SY-VLINE NO-GAP.
Code started by Thanikai on 16.08.2002
LOOP AT IT_DETAILS2.
CLEAR: TMP_STR, WRK_AUSP1.
IF IT_DETAILS2-ATNAM EQ 'CALIBRE'.
LOOP AT IT_DETAILS WHERE MATNR = IT_HEADER-MATNR
AND ATNAM = IT_DETAILS2-ATNAM
AND ZAEHL = IT_DETAILS2-ZAEHL.
TMP_STR = 'X'.
WRK_AUSP1 = IT_DETAILS-AUSP1.
EXIT.
ENDLOOP.
IF TMP_STR EQ 'X'.
WRITE : (9)WRK_AUSP1 NO-GAP, SY-VLINE NO-GAP.
ELSE.
WRITE : ' ', SY-VLINE NO-GAP.
ENDIF.
ELSE.
LOOP AT IT_DETAILS WHERE MATNR = IT_HEADER-MATNR
AND ATNAM = IT_DETAILS2-ATNAM.
TMP_STR = 'X'.
WRK_AUSP1 = IT_DETAILS-AUSP1.
EXIT.
ENDLOOP.
IF TMP_STR EQ 'X'.
WRITE : (9)WRK_AUSP1 NO-GAP, SY-VLINE NO-GAP.
ELSE.
WRITE : ' ', SY-VLINE NO-GAP.
ENDIF.
ENDIF.
ENDLOOP.
WRITE : (8) IT_HEADER-SCMNG NO-GAP, SY-VLINE NO-GAP.
IF SY-LINNO > 25.
IF SY-BATCH EQ 'X'.
NEW-PAGE.
PERFORM PRINT_TOP.
ENDIF.
ENDIF.
Code end by Thanikai on 16.08.2002..
ENDLOOP.
ELSEIF NREQ = 'X'.
LOOP AT IT_HEADER.
IF FLG_COLOR = 'X'.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
CLEAR FLG_COLOR.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
FLG_COLOR = 'X'.
ENDIF.
WRITE :/ SY-VLINE NO-GAP,
(18) IT_HEADER-MATNR COLOR COL_KEY NO-GAP,
SY-VLINE NO-GAP,
(18) IT_HEADER-BISMT NO-GAP, "Thanikai-17.05.2002
SY-VLINE NO-GAP.
Code started by Thanikai on 16.08.2002
LOOP AT IT_DETAILS2.
CLEAR: TMP_STR, WRK_AUSP1.
IF IT_DETAILS2-ATNAM EQ 'CALIBRE'.
LOOP AT IT_DETAILS WHERE MATNR = IT_HEADER-MATNR
AND ATNAM = IT_DETAILS2-ATNAM
AND ZAEHL = IT_DETAILS2-ZAEHL.
TMP_STR = 'X'.
WRK_AUSP1 = IT_DETAILS-AUSP1.
EXIT.
ENDLOOP.
IF TMP_STR EQ 'X'.
WRITE : (9)WRK_AUSP1 NO-GAP, SY-VLINE NO-GAP.
ELSE.
WRITE : ' ', SY-VLINE NO-GAP.
ENDIF.
ELSE.
LOOP AT IT_DETAILS WHERE MATNR = IT_HEADER-MATNR
AND ATNAM = IT_DETAILS2-ATNAM.
TMP_STR = 'X'.
WRK_AUSP1 = IT_DETAILS-AUSP1.
EXIT.
ENDLOOP.
IF TMP_STR EQ 'X'.
WRITE : (9)WRK_AUSP1 NO-GAP, SY-VLINE NO-GAP.
ELSE.
WRITE : ' ', SY-VLINE NO-GAP.
ENDIF.
ENDIF.
ENDLOOP.
WRITE : (8) IT_HEADER-SCMNG NO-GAP, SY-VLINE NO-GAP.
IF SY-LINNO > 25.
IF SY-BATCH EQ 'X'.
NEW-PAGE.
PERFORM PRINT_TOP.
ENDIF.
ENDIF.
Code end by Thanikai on 16.08.2002
ENDLOOP.
ENDIF.
ULINE.
ENDFORM. " PRINT_DETAILS
*& Form PRINT_REPORT_DESCENDING
text
--> p1 text
<-- p2 text
FORM PRINT_REPORT_DESCENDING.
IF WRK_TABNAME = 'IT_HEADER'.
SORT IT_HEADER BY (WRK_FLDNAME) DESCENDING.
PERFORM PRINT_TOP.
PERFORM PRINT_DETAILS.
ENDIF.
ENDFORM. " PRINT_REPORT_DESCENDING
*& Form PRINT_TOP
text
--> p1 text
<-- p2 text
IT_DETAILS2-ATNAM width chged below from 7 to 9. Nagaraj/MKRK 24.11.05
FORM PRINT_TOP.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
ULINE.
IF REQ = 'X'.
READ TABLE IT_HEADER INDEX 1.
WRITE :/ SY-VLINE NO-GAP,(17) 'Material No' ,SY-VLINE NO-GAP.
SET LEFT SCROLL-BOUNDARY.
WRITE :(39) ' Material Description', SY-VLINE NO-GAP,
(17) ' Old Matl. Number', SY-VLINE NO-GAP. "Thanikai-17.05.2002
Comments made by Thanikai on 16.08.2002
LOOP AT IT_DETAILS WHERE MATNR = IT_HEADER-MATNR.
LOOP AT IT_DETAILS2.
WRITE : (9) IT_DETAILS1-ATNAM NO-GAP,SY-VLINE NO-GAP.
WRITE : (9) IT_DETAILS2-ATNAM NO-GAP,SY-VLINE NO-GAP.
ENDLOOP.
WRITE : (8) 'Pkg.Unit' NO-GAP, SY-VLINE NO-GAP.
ELSEIF NREQ = 'X'.
READ TABLE IT_HEADER INDEX 1.
WRITE :/ SY-VLINE NO-GAP, (17) 'Material No' ,SY-VLINE NO-GAP,
(17) ' Old Matl. Number', SY-VLINE NO-GAP. "Thanikai-17.05.2002
Comments made by Thanikai on 16.08.2002
LOOP AT IT_DETAILS WHERE MATNR = IT_HEADER-MATNR.
LOOP AT IT_DETAILS2.
WRITE : (9) IT_DETAILS-ATNAM NO-GAP,SY-VLINE NO-GAP.
WRITE : (9) IT_DETAILS2-ATNAM NO-GAP,SY-VLINE NO-GAP.
ENDLOOP.
WRITE : (8) 'Pkg.Unit' NO-GAP, SY-VLINE NO-GAP.
ENDIF.
ULINE.
FORMAT RESET.
ENDFORM. " PRINT_TOP
*& Form PKG_DLVY_UNIT
text
--> p1 text
<-- p2 text
FORM PKG_DLVY_UNIT.
SELECT SINGLE KONP~KBETR INTO WRK_KBETR
FROM ( A916 INNER JOIN KONP
ON KONP~MANDT = SY-MANDT
AND KONPKNUMH = A916KNUMH
AND KONP~KOPOS = '01' ) CLIENT SPECIFIED
WHERE A916~MANDT = SY-MANDT
AND A916~KAPPL = 'V'
AND A916~KSCHL = 'PR00'
AND A916~VKORG = 'WTCH'
AND A916~VTWEG = '01'
AND A916~SPART = '01'
AND A916~MATNR = IT_MATNR-MATNR
AND A916~DATBI >= SY-DATUM
AND A916~DATAB <= SY-DATUM.
IF SY-SUBRC EQ 0.
SELECT SINGLE * FROM ZSAI_PARAM CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND PMFID = 'ZPKG_PRICE'
AND PMVL1 = '01'.
IF SY-SUBRC EQ 0.
IF WRK_KBETR BETWEEN 1 AND ZSAI_PARAM-PMVL2.
SELECT SINGLE * FROM MVKE CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND MATNR = IT_MATNR-MATNR
AND VKORG = 'WTCH'
AND VTWEG = '01'.
IF SY-SUBRC EQ 0.
IF MVKE-SCMNG GE 1.
IT_HEADER-SCMNG = MVKE-SCMNG.
ELSE.
In the absence of delivery unit for a material,
delivery unit is considered as one.
IT_HEADER-SCMNG = 1.
ENDIF.
ELSE.
IT_HEADER-SCMNG = 1.
ENDIF.
ELSE.
If the price for a material is either below 1 or above 2499, then
the delivery unit is considered as one.
IT_HEADER-SCMNG = 1.
ENDIF.
ELSE.
IT_HEADER-SCMNG = 1.
ENDIF.
ELSE.
In the absence of price for a material, delivery unit is
considered as one.
IT_HEADER-SCMNG = 1.
ENDIF.
CLEAR: WRK_KBETR.
ENDFORM. " PKG_DLVY_UNITThe first point would be to change the following:
LOOP AT IT_MARA.
SELECT SINGLE * FROM MAKT CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND MATNR = IT_MARA-MATNR
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
IT_MATNR-MATNR = IT_MARA-MATNR.
IT_MATNR-MAKTX = MAKT-MAKTX.
IT_MATNR-BISMT = IT_MARA-BISMT. "Thanikai-17.05.2002
ENDIF.
APPEND IT_MATNR.
CLEAR IT_MATNR.
ENDLOOP.
I would sort IT_MARA by matnr then select for all entries into new table IT_matnr and only read when you are actuallygoing to use it for your final table.
This however will not make much difference to your problem. I suggest you put more of the code into subroutines and look at the se30 output as tyo which subroutines are actually taking most of the time. Please post the results and the subroutines which take the longest. -
Issue in Sale order creation from program
Hi Friends
As per our project requirement we are creating sale order from ABAP Program.
We are adding all the line item values from some table and pushing it into final internal table.
After the loop statement we are adding one more material( Material X) in the final internal table through hard coding.
Its working fine in Dev/QA/SND,but when it comes to production its adding the material(material X) in multiple lines(only in some cases).But as per our logic it should come only once..
we are not able to replicate the same scenario in Dev/QA/SND.
So anybody have an idea about this kind of issue.Kindly let me know.
Thanks in Advance.
Thanks
GowrishankarActually I added like that only.
LOOP AT idoc_data WHERE segnam = c_e1edp19.
indx = sy-tabix.
ENDLOOP.
LOOP AT idoc_data WHERE segnam = c_e1edp01.
index = sy-tabix.
ENDLOOP.
READ TABLE idoc_data INDEX index.
IF sy-subrc = 0.
segnum = idoc_data-segnum.
wa_e1edp01 = idoc_data-sdata.
n_posex = wa_e1edp01-posex.
n_posex = n_posex + 10.
CLEAR: wa_e1edp01.
wa_e1edp01-posex = n_posex.
wa_e1edp01-menge = '1'.
wa_e1edp01-menee = 'EA'.
idoc_data-sdata = wa_e1edp01.
indx = indx + 1.
INSERT idoc_data INDEX indx.
ENDIF.
CLEAR: n_posex, n_config_id, n_inst_id.
READ TABLE idoc_data WITH KEY segnam = c_e1curef
psgnum = segnum.
IF sy-subrc = 0.
e1curef = idoc_data-sdata.
n_posex = e1curef-posex.
n_posex = n_posex + 10.
e1curef-posex = n_posex.
n_config_id = e1curef-config_id.
n_config_id = n_config_id + 1.
e1curef-config_id = n_config_id.
n_inst_id = e1curef-inst_id.
n_inst_id = n_inst_id + 1.
e1curef-inst_id = n_inst_id.
idoc_data-sdata = e1curef.
indx = indx + 1.
INSERT idoc_data INDEX indx.
ENDIF.
idoc_data-segnam = c_e1edp19.
wa_e1edp19-qualf = '002'.
wa_e1edp19-idtnr = c_sm.
idoc_data-sdata = wa_e1edp19.
indx = indx + 1.
INSERT idoc_data INDEX indx.
ENDIF.
ENDIF.
Its working in DEV/QA/SND part..
Maybe you are looking for
-
Unable to put new music onto my ipod nano
Please, please can someone help me. I am unable to load any new music onto my ipod. When I put the cd into my the computer drive a message comes up "newer version of quick time required. Quick time version 7.0.2. is installed, itunes requires quick t
-
Dreamweaver CS6 does not open on iMac OSX 10.7.5 after running update.
Updated Creative Suite CS5 to CS6 the other day. Installed on two computers (27" iMac i7 Oct 2009, and 2008 MacBook Pro 15"), everything worked fine. Ran the updates that Adobe Application Manager said were available. Worked fine on my laptop, but ke
-
Preview in Browser for PHP pages
I can't use the function preview in browser with my new updated php website. The feature worked on the html static website but does not work with the php site. How can I preview how the pages appear with other browsers sabren
-
How to recreate datafile in oracle 10g.
pls tell me how to recreate datafile in oracle 10g... what are situation to recreate datafile Edited by: 898085 on Nov 18, 2011 9:16 PM
-
OSX 10.6.8 new problem. 2 restarts no help. can find files by "open recent" on pages