2013 May 22 9:57 AM
Hi all,
Im developing a report "loading list" in which im declaring constant values for the field called ESI.
In the output im able to get those values, but for the schedule lines im not getting those values.
For schedule lines it shows "0". how can i display for all the lines.
Thanks in advance.
Rgds,
Sam.
2013 May 22 10:23 AM
2013 May 22 10:30 AM
Hi Samuel,
This is a like a basic question.Check from declaration to out put.You will come know where it went wrong.It is difficult for anybody if you ask a question from raw.
Regards,
Madhu.
2013 May 22 1:18 PM
2013 May 22 1:27 PM
Impossible to answer a question like this. You need to supply more details or source code.
2013 May 23 5:48 AM
report ZLOADING.
*tables:
TABLES: vbak, vbap, vbuk, vbup, VBEP, AEOI,AENR, ZOSRGTN.
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME title text001.
select-OPTIONS saleord for vbak-vbeln.
select-OPTIONS custmr for vbak-kunnr.
select-OPTIONS partno for vbap-matnr.
SELECT-options Ostatus for vbup-GBSTA.
SELECT-options status for vbup-lfSTA.
PARAMETER Plant TYPE vbak-vkorg DEFAULT 'SGTN'.
SELECTION-SCREEN END OF BLOCK 2.
TYPE-POOLS: SLIS.
types:
begin of osr1,
POSEX TYPE VBAP-POSEX,
AENNR TYPE AEOI-AENNR,
REVLV TYPE AEOI-REVLV,
REVLV1 TYPE AEOI-REVLV,
SALE_ORDER_NO type vbap-vbeln,
SALE_ORDER_DATE type vbak-audat,
ORDER_TYPE TYPE VBAK-AUART,
LINE_ITEM type vbap-posnr,
SLNO TYPE VBEP-ETENR,
CUSTOMER type vbak-kunnr,
PLANT type vbap-werks,
WO_NO(20) type C,
PO_NO type vbak-bstnk,
PO_DATE type vbak-bstdk,
PO_LINE_ITEM(4) type c,
PART_NO type vbap-matnr,
REV(10) type c,
DESCRIPTION type tline-tdline,
MAINGRP TYPE MARA-SPART,
SUBGRP type MARA-ZZMAT_SUBGRP,
XTYPE type MARA-ZZMAT_TYPE,
MODEL type MARA-ZZMAT_MODEL,
XSIZE type MARA-GROES,
TRIM type MARA-ZZMAT_TRIM,
ENDCON TYPE MARA-ZZMAT_ENDCON,
XTEMP TYPE MARA-ZZMAT_TEMP,
PRES TYPE MARA-ZZMAT_PRES,
PRDSPEC TYPE MARA-ZZMAT_PRDSPEC,
PERFREQ TYPE MARA-ZZMAT_PERFREQ,
GRP2 TYPE MARA-ZZMAT_GRP2,
SHIPMENT_MODE(20) type c,
ORDER_QTY type P, " DECimals 3,
sl_ORDER_QTY type P, " DECimals 3,
PO_STATUS(20) type c,
O_status(20) type c,
FMC_EX_WORKS_DAT type d,
FMC_EX_WORKS_MON(50) type c,
GTN_AGREED_DATE type D,
GTN_AGREED_MONTH(50) type c,
QTY_OPEN type P, " DECimals 3,
sl_qty_open type p,
NEW_PRICE type P DECimals 2,
UNIT_PRICE type P DECimals 2,
TOTAL_XY type P DECimals 2,
TOTAL_PRICE type p DECimals 2,
REV_COMMIT_DATE type d,
REV_COMMIT_MONTH1(50) type c,
REVISION(10) type c,
STATUS(20) type c,
DELAY_DAYS(4) type n,
DELAY_REASON(200) type c,
* ASSY_PLAN_DATE type D,
reason_4_rej type vbap-abgru,
org type vbak-vkorg,
DN_STREAM_REMARK type char255,
UP_STREAM_REMARK type char255,
SHIPPING_REMARKS type Char255,
GEN_REMARKS(40) type C,
FMC_REMARKS type char255,
HILITE(4) type C,
NO_DAYS TYPE N,
FC_qty type n,
NF_qty type n,
FC_val type P DECIMALS 2,
NF_val type P DECIMALS 2,
week type n,
FCNF(5) type c,
esi TYPE P,
esitotal type p,
ZZMAT_SUBGRP TYPE mara-ZZMAT_SUBGRP,
end of osr1.
types:
BEGIN OF shiprem ,
vbeln type vbrp-vbeln,
fkdat TYPE vbrk-fkdat,
fklmg TYPE vbrp-fklmg,
qty(8) type n,
vbtyp type vbfa-vbtyp_N,
fksto type vbrk-fksto,
matnr type vbrp-matnr,
invcount type i,
END OF shiprem.
data:
t_shprem TYPE TABLE OF shiprem,
wa_shprem TYPE shiprem,
XMATNR(18) TYPE C,
fmcdate(35) TYPE c,
fmcdt type d,
i_xtline type TABLE OF tline,
wa_xtline TYPE tline,
xname like THEAD-TDNAME,
int TYPE i,
cs TYPE i,
op_qty type p.
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code,
output(8) TYPE c,
xs_o_no type zosrgtn-s_o_no,
xline_item type zosrgtn-line_item,
QTY_DIFF(8) TYPE N,
lncnt type i.
DATA:
IT_OSR type table of osr1,
ITab_OSR type table of osr1,
wa_osr type osr1,
wa_osr2 type osr1,
it_osr1 type table OF zosrGTN,
wa_osr1 TYPE zosrGTN.
DATA:
i_fieldcat TYPE slis_t_fieldcat_alv,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
data:
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_EXIT_CAUSED_BY_CALLER,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
G_REPID LIKE SY-REPID,
commitdatediff TYPE i,
QTYDIFF TYPE I,
* partno type TABLE OF vbeln,
wapart type vbeln,
waline type posnr,
waslno type vbep-etenr,
agreed type d.
*
DATA:
GT_EVENTS TYPE SLIS_T_EVENT,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
ls_sort TYPE slis_sortinfo_alv ,
IT_SORT TYPE slis_t_sortinfo_alv ,
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
DATA: GS_VARIANT LIKE DISVARIANT,
G_SAVE.
DATA XS(20) TYPE C.
G_REPID = SY-REPID.
gs_layout-info_fieldname = 'HILITE'.
PERFORM LAYOUT_INIT USING GS_LAYOUT.
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
GS_VARIANT-REPORT = G_REPID.
G_SAVE = 'A'.
START-OF-SELECTION.
PERFORM f_read_data.
END-OF-SELECTION.
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
perform fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
i_buffer_active = 'X'
I_CALLBACK_PROGRAM = G_REPID
I_STRUCTURE_NAME = 'GRSTAT'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IS_VARIANT = GS_VARIANT
* IT_SORT = IT_SORT
IT_EVENTS = GT_EVENTS[]
I_SAVE = 'A'
IMPORTING
E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = GS_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_OSR
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
data lv_ucomm type sy-ucomm.
lv_ucomm = sy-ucomm.
CASE lv_ucomm.
WHEN '&DATA_SAVE'.
PERFORM OSRUPDATE.
endcase.
endform.
FORM f_read_data.
DATA: str1 TYPE string,
str2 TYPE string,
str3 TYPE string,
textx TYPE string,
itab TYPE TABLE OF string,
wa type string, slen type i, cc TYPE i, kk TYPE i,
invdate TYPE d,
invqty TYPE P DECIMALS 3,
xmatnr(70) type c,
xwerks type werks.
select VBAP~vbeln VBAP~posnr VBAP~POSEX VBAK~AUART
into (wa_osr-sale_order_no, wa_osr-line_item, WA_OSR-POSEX, WA_OSR-ORDER_TYPE)
from VBAP INNER JOIN VBAK
ON VBAP~VBELN = VBAK~VBELN
WHERE vbap~vbeln in saleord
and vbap~matnr in partno
and vbak~kunnr in custmr
and VBAK~AUART = 'ZORE'.
* where LFSTA <> 'c'.
* and
APPEND wa_osr to IT_OSR.
endselect.
*
clear it_osr1.
select * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no in saleord.
append wa_osr1 to it_osr1.
xmatnr = wa_osr1-wo_no.
endselect.
loop at IT_OSR into wa_osr.
CLEAR WA_OSR1.
xs_o_no = wa_osr-sale_order_no .
shift xs_o_no LEFT DELETING LEADING '0'.
CONCATENATE xs_o_no wa_osr-line_item into xmatnr.
select single * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no = XS_O_NO
and line_item = wa_osr-LINE_ITEM
and s_l_no eq '000000'
OR s_l_no is NULL.
wa_osr-wo_no = wa_osr1-wo_no.
wa_osr-SHIPMENT_MODE = wa_osr1-SHP_MODE.
wa_osr-PO_STATUS = wa_osr1-PO_STAT.
wa_osr-FMC_EX_WORKS_DAT = wa_osr1-FMC_DATE.
wa_osr-FMC_EX_WORKS_MON = wa_osr1-FMC_MONTH.
wa_osr-GTN_AGREED_DATE = wa_osr1-GTN_DATE.
wa_osr-GTN_AGREED_MONTH = wa_osr1-GTN_MONTH.
wa_osr-REV_COMMIT_DATE = wa_osr1-REV_COM_DAT.
wa_osr-REV_COMMIT_MONTH1 = WA_OSR1-REV_COMMIT_MONTH.
wa_osr-REVISION = wa_osr1-REVISION.
wa_osr-DELAY_DAYS = wa_osr1-DELAY_DAYS.
wa_osr-DELAY_REASON = wa_osr1-DELAY_REASON.
wa_osr-DN_STREAM_REMARK = wa_osr1-DN_STR_REM.
wa_osr-UP_STREAM_REMARK = wa_osr1-UP_STR_REM.
wa_osr-GEN_REMARKS = wa_osr1-GEN_REM.
WA_OSR-FC_QTY = WA_OSR1-fc_QUAN.
WA_OSR-NF_QTY = WA_OSR1-NF_QUAN.
wa_osr-esi = wa_osr1-esi_fig.
wa_osr-esitotal = wa_osr1-esi_tot.
select SINGLE NETPR NETWR INTO (WA_OSR-UNIT_PRICE, WA_OSR-TOTAL_PRICE)
FROM VBAP WHERE VBELN = WA_OSR-SALE_ORDER_NO AND POSNR = WA_OSR-LINE_ITEM.
IF SY-SUBRC <> 0.
WA_OSR-UNIT_PRICE = WA_OSR1-UNIT_PRICE.
WA_OSR-TOTAL_PRICE = WA_OSR1-XTOTAL.
WA_OSR-FC_VAL = WA_OSR1-FC_VALUE.
WA_OSR-NF_VAL = WA_OSR1-NF_VALUE.
WA_OSR-esitotal = WA_OSR1-esi_tot.
ENDIF.
select single abgru
into (wa_osr-reason_4_rej)
from vbap
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
select single vkorg
into (wa_osr-org)
from vbak
where vbeln = wa_osr-sale_order_no.
select single lfsta gbsta
into (wa_osr-po_status, wa_osr-o_status)
from vbup
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-LINE_ITEM.
select single audat kunnr bstnk bstdk
into (wa_osr-sale_order_date , wa_osr-customer , wa_osr-po_no , wa_osr-po_date)
from vbak
where vbeln = wa_osr-sale_order_no.
* and audat in S_O_Date.
select SINGLE matnr werks kwmeng " lsmeng
into (wa_osr-part_no , wa_osr-plant , wa_osr-order_qty) " , wa_osr-qty_open)
from vbap
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
* ***********
xmatnr+0(18) = wa_osr-part_no.
xmatnr+18(4) = 'SGTN'.
xmatnr+22(2) = 'EX'.
xname = xmatnr.
CLEAR I_XTLINE.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = '0001'
LANGUAGE = 'E'
NAME = XNAME
OBJECT = 'MVKE'
TABLES
LINES = i_XTLINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6.
LOOP AT i_XTLINE into wa_xtline where tdline <> ' '.
CONCATENATE wa_osr-description WA_xtline-TDLINE into wa_osr-description.
endloop.
if wa_osr-description is initial.
wa_osr-description = '***** SALES TEXT NOT MAINTAINED'.
ENDIF.
select single ZZMAT_TYPE ZZMAT_MODEL GROES ZZMAT_TRIM ZZMAT_GRP2 ZZMAT_SUBGRP
INTO (WA_OSR-XTYPE, WA_OSR-MODEL, WA_OSR-XSIZE, WA_OSR-TRIM, WA_OSR-GRP2, WA_OSR-SUBGRP)
FROM MARA
WHERE MATNR = WA_OSR-PART_NO.
select single ZZMAT_ENDCON ZZMAT_TEMP ZZMAT_PRES ZZMAT_PRDSPEC ZZMAT_PERFREQ SPART
INTO (WA_OSR-ENDCON, WA_OSR-XTEMP, WA_OSR-PRES, WA_OSR-PRDSPEC, WA_OSR-PERFREQ, WA_OSR-MAINGRP)
FROM MARA
WHERE MATNR = WA_OSR-PART_NO.
SELECT SINGLE ETENR
INTO (WA_OSR-SLNO)
FROM VBEP
WHERE VBELN = WA_OSR-SALE_ORDER_NO
AND POSNR = WA_OSR-LINE_ITEM.
select max( revlv ) max( aennr )
from aeoi
into (wa_osr-revlv1, wa_osr-aennr)
where objkt = wa_osr-part_no.
if wa_osr-revlv = ' '.
wa_osr-revlv = wa_osr-revlv1.
endif.
SELECT single EDATU
INTO (WA_OSR-REV_COMMIT_DATE)
FROM VBEP
WHERE VBELN = WA_OSR-SALE_ORDER_NO
AND POSNR = WA_OSR-LINE_ITEM
and etenr = WA_OSR-SLNO.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = wa_osr-gtn_agreed_date
importing
output = wa_osr-gtn_agreed_month.
wa_osr-gtn_agreed_month = wa_osr-gtn_agreed_month+3(8).
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
INPUT = wa_osr-REV_COMMIT_DATE
IMPORTING
OUTPUT = wa_osr-REV_COMMIT_MONTH1.
wa_osr-REV_COMMIT_MONTH1 = wa_osr-REV_COMMIT_MONTH1+3(8).
FMCDT = wa_osr-FMC_EX_WORKS_DAT.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = fmcdt
importing
output = wa_osr-fmc_ex_works_mon.
wa_osr-fmc_ex_works_mon = wa_osr-fmc_ex_works_mon+3(8).
* ZOSRGTN-GEN_REM = WA_OSR-GEN_REMARKS.
clear t_shprem.
*
SELECT vbrp~vbeln vbrp~fklmg vbrp~matnr
into (wa_shprem-vbeln , wa_shprem-fklmg, wa_shprem-matnr)
from vbrp INNER JOIN vbrk on vbrp~vbeln = vbrk~vbeln
where vbrp~aubel = wa_osr-sale_order_no
and vbrp~aupos = wa_osr-line_item
and vbrp~PSTYV ne 'HUPM' " PACKING MATERIAL
and vbrp~fklmg <> 0.
* and vbrk~fksto ne 'X'.
APPEND wa_shprem to t_shprem.
*
ENDSELECT.
clear invqty.
clear wa_osr-shipping_remarks.
cc = 1.
loop at t_shprem into wa_shprem. " where vbtyp eq 'J'.
select single fkdat fksto
into (wa_shprem-fkdat,wa_shprem-fksto)
from vbrk
where vbeln = wa_shprem-vbeln.
wa_shprem-qty = wa_shprem-fklmg .
if wa_shprem-fksto = 'X'.
invqty = invqty - wa_shprem-qty.
else.
invqty = invqty + wa_shprem-qty.
endif.
shift wa_shprem-qty LEFT DELETING LEADING '0'.
shift wa_shprem-vbeln LEFT DELETING LEADING '0'.
write wa_shprem-fkdat DD/MM/YY to invdate.
if wa_shprem-fksto ne 'X'.
if cc = 1.
CONCATENATE wa_osr-shipping_remarks wa_shprem-vbeln ' / ' invdate ' / ' wa_shprem-qty into wa_osr-shipping_remarks.
else.
CONCATENATE wa_osr-shipping_remarks ' -- ' wa_shprem-vbeln ' / ' invdate ' / ' wa_shprem-qty into wa_osr-shipping_remarks.
endif.
cc = cc + 1.
endif.
endloop .
textx = wa_osr-part_no.
SPLIT textx AT '-' INTO: TABLE itab.
loop at itab into wa.
endloop.
slen = sy-tfill.
cc = 1.
str1 = '' .
loop at itab into wa.
if cc = 1.
str1 = wa.
else.
CONCATENATE str1 '-' wa into str1.
endif.
kk = slen - 1.
cc = cc + 1.
endloop.
wa_osr-qty_open = wa_osr-order_qty - invqty.
wa_osr-fc_val = WA_OSR-UNIT_PRICE * wa_osr-fc_qty.
wa_osr-nf_val = WA_OSR-UNIT_PRICE * wa_osr-nf_qty.
**case wa_osr-slno.
**
** when 0.
** write 'do nothing'.
** when others.
**
** Case WA_OSR-SUBGRP.
** when 'GV ASSY' OR 'KIT ASSY'.
**
** case WA_OSR-XSIZE+0(1).
** when 0001.
** wa_osr-esi = 77.
** wa_osr2-esi = 77.
** when 0002.
** wa_osr-esi = 65.
** wa_osr2-esi = 65.
** when 0003.
** wa_osr-esi = 104.
** wa_osr2-esi = 104.
** when 0004.
** wa_osr-esi = 125.
** wa_osr2-esi = 125.
** endcase.
**
**
** WHEN 'GATE'.
**
** case WA_OSR-XSIZE+0(1).
** when 0002.
** wa_osr2-esi = 33.
** wa_osr-esi = 33.
** when 0003.
** wa_osr2-esi = 64.
** wa_osr-esi = 64.
** when 0004.
** wa_osr2-esi = 81.
** wa_osr-esi = 81.
** endcase.
**
** WHEN 'SEAT'.
**
** case WA_OSR-XSIZE+0(1).
** when 0002.
** wa_osr2-esi = 16.
**
** when 0003.
** wa_osr2-esi = 20.
**
** when 0004.
** wa_osr2-esi = 22.
**
** endcase.
** when OTHERS.
** wa_osr2-esi = 99.
** wa_osr-esi = 99.
** Endcase.
**
** ENDCASE.
*MODIFY IT_OSR FROM WA_OSR.
if wa_osr-rev_commit_date is not initial.
if wa_osr-gtn_agreed_date is not INITIAL.
wa_osr-delay_days = wa_osr-REV_COMMIT_DATE - wa_osr-gtn_agreed_date.
IF wa_osr-delay_days <= 0.
wa_osr-status = 'ON SCHEDULE'.
ELSEIF wa_osr-delay_days > 0.
if wa_osr-delay_days <= 365.
wa_osr-status = 'DELAY'.
endif.
ENDIF.
if wa_osr-REV_COMMIT_DATE < wa_osr-gtn_agreed_date.
wa_osr-status = 'ON SCHEDULE'.
wa_osr-delay_days = 0.
endif.
else.
wa_osr-delay_days = '0'.
endif.
else.
wa_osr-delay_days = '0'.
endif.
if wa_osr-delay_days > '365'.
wa_osr-delay_days = '0'.
endif.
QTYDIFF = WA_OSR-ORDER_QTY - WA_OSR-QTY_OPEN.
IF WA_OSR-PO_STATUS = 'A'.
WA_OSR-PO_STATUS = 'NOT DELIVERED'.
ELSEIF WA_OSR-PO_STATUS = 'B'.
WA_OSR-PO_STATUS = 'PARTIALLY DELIVERED'.
ELSEIF WA_OSR-PO_STATUS = 'C'.
WA_OSR-PO_STATUS = 'COMPLETED'.
ENDIF.
IF wa_osr-o_status = 'A'.
WA_OSR-o_status = 'OPEN'.
ELSEIF wa_osr-o_status = 'B'.
WA_OSR-o_status = 'PARTIALLY COMPLETED'.
ELSEIF wa_osr-o_status = 'C'.
WA_OSR-o_status = 'CLOSED'.
ENDIF.
Case WA_OSR-SUBGRP.
when 'GV ASSY' OR 'KIT ASSY'.
case WA_OSR-XSIZE+0(1).
when 0001.
wa_osr-esi = 77.
wa_osr2-esi = 77.
when 0002.
wa_osr-esi = 65.
wa_osr2-esi = 65.
when 0003.
wa_osr-esi = 104.
wa_osr2-esi = 104.
when 0004.
wa_osr-esi = 125.
wa_osr2-esi = 125.
endcase.
WHEN 'GATE'.
case WA_OSR-XSIZE+0(1).
when 0002.
wa_osr2-esi = 33.
wa_osr-esi = 33.
when 0003.
wa_osr2-esi = 64.
wa_osr-esi = 64.
when 0004.
wa_osr2-esi = 81.
wa_osr-esi = 81.
endcase.
WHEN 'SEAT'.
case WA_OSR-XSIZE+0(1).
when 0002.
wa_osr2-esi = 16.
when 0003.
wa_osr2-esi = 20.
when 0004.
wa_osr2-esi = 22.
endcase.
when OTHERS.
wa_osr2-esi = 99.
wa_osr-esi = 99.
Endcase.
***********************************************
select single count(*)
into (lncnt) from vbep
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
wa_osr2 = wa_osr.
if lncnt > 1.
invqty = wa_osr-qty_open.
if wa_osr-slno = 1.
select vbeln posnr etenr wmeng edatu
into (wa_osr2-sale_order_no, wa_osr2-line_item, wa_osr2-slno, wa_osr2-sl_order_qty,
wa_osr2-REV_COMMIT_DATE)
from vbep
WHERE vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item
order by vbeln posnr etenr DESCENDING .
select max( revlv ) max( aennr )
from aeoi
into (wa_osr-revlv, wa_osr-aennr)
where objkt = wa_osr-part_no.
if invqty > wa_osr2-sl_order_qty.
op_qty = wa_osr2-sl_order_qty.
invqty = invqty - wa_osr2-sl_order_qty.
elseif invqty ne 0.
op_qty = invqty.
invqty = 0.
else.
op_qty = 0.
endif.
* wa_osr-slno = '0'.
wa_osr2-qty_open = 0.
wa_osr2-order_qty = 0.
wa_osr2-sl_qty_open = op_qty.
wa_osr2-hilite = 'C311'.
* WA_OSR2-UNIT_PRICE = 0.
* WA_OSR2-TOTAL_PRICE = WA_OSR2-UNIT_PRICE * wa_osr2-SL_order_qty.
WA_OSR2-TOTAL_PRICE = 0.
WA_OSR2-UNIT_PRICE = 0.
APPEND wa_osr2 to ITab_OSR.
endselect.
endif.
wa_osr-hilite = 'C221'.
*ELSE.
* wa_osr-slno = '0'.
endif.
***********************************************
wa_osr-slno = 0.
TRANSLATE wa_osr-po_staTus TO UPPER CASE.
shift wa_osr-sale_order_no LEFT DELETING LEADING '0'.
* wa_osr2-esitotal = wa_osr2-esi * wa_osr2-sl_qty_open.
MODIFY IT_OSR FROM WA_OSR.
endloop.
loop at itab_osr into wa_osr2.
clear wa_osr1.
* CONCATENATE '00' wa_osr2-slno into wa_osr2-slno.
shift WA_OSR2-SALE_ORDER_NO LEFT DELETING LEADING '0'.
select single * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no = WA_OSR2-SALE_ORDER_NO
and line_item = WA_OSR2-LINE_ITEM
and s_l_no eq WA_OSR2-SLNO.
wa_osr2-GTN_AGREED_DATE = wa_osr1-GTN_DATE.
FMCDT = wa_osr2-GTN_AGREED_DATE.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = fmcdt
importing
output = wa_osr2-GTN_AGREED_MONTH.
wa_osr2-GTN_AGREED_MONTH = wa_osr2-GTN_AGREED_MONTH+3(8).
wa_osr2-GTN_AGREED_MONTH = wa_osr1-GTN_MONTH.
wa_osr2-REV_COMMIT_DATE = wa_osr1-REV_COM_DAT.
wa_osr2-rev_commit_month1 = wa_osr1-rev_commit_month.
wa_osr2-REVlv = wa_osr1-REVision.
** wa_osr2-REVISION = wa_osr1-REVISION.
wa_osr2-DELAY_DAYS = wa_osr1-DELAY_DAYS.
wa_osr2-DELAY_REASON = wa_osr1-DELAY_REASON.
wa_osr2-DN_STREAM_REMARK = wa_osr1-DN_STR_REM.
wa_osr2-UP_STREAM_REMARK = wa_osr1-UP_STR_REM.
wa_osr2-GEN_REMARKS = wa_osr1-GEN_REM.
wa_osr2-SHIPPING_REMARKS = ' '.
WA_OSR2-FC_QTY = WA_OSR1-FC_QUAN.
WA_OSR2-NF_QTY = WA_OSR1-NF_QUAN.
wa_osr2-esi = wa_osr1-esi_fig.
wa_osr2-esitotal = wa_osr1-esi_tot.
wa_osr-esi = wa_osr1-esi_fig.
wa_osr-esitotal = wa_osr1-esi_tot.
wa_osr2-fc_val = WA_OSR-UNIT_PRICE * wa_osr2-fc_qty.
wa_osr2-nf_val = WA_OSR-UNIT_PRICE * wa_osr2-nf_qty.
wa_osr2-esitotal = wa_osr2-esi * wa_osr2-sl_qty_open.
wa_osr-esitotal = wa_osr2-esi * wa_osr-sl_qty_open.
APPEND wa_osr2 to it_osr.
endloop.
delete IT_OSR where customer+0(3) ne 'FMC'.
IF PLANT IS NOT INITIAL .
delete IT_OSR where ORG <> PLANT.
ENDIF.
IF WA_OSR-REASON_4_REJ IS NOT INITIAL.
STATUS = 'C'.
ENDIF.
*
if status-low = 'A' and status-hiGH = 'B'.
delete IT_OSR where po_status EQ 'COMPLETED'.
ELSEif status-low = 'A' and status-hiGH = 'C'.
* delete IT_OSR where po_status EQ 'PARTIALLY DELIVERED'.
ELSEif status-low = 'B' and status-hiGH = 'C'.
delete IT_OSR where po_status EQ 'NOT DELIVERED'.
ELSEif status-low = 'A'.
delete IT_OSR where po_status ne 'NOT DELIVERED'.
ELSEif status-low = 'B'.
delete IT_OSR where po_status ne 'PARTIALLY DELIVERED'.
ELSEif status-low = 'C'.
delete IT_OSR where po_status ne 'COMPLETED'.
ENDIF.
if Ostatus-low = 'A' and Ostatus-hiGH = 'B'.
delete IT_OSR where o_status EQ 'CLOSED'.
ELSEif Ostatus-low = 'A' and Ostatus-hiGH = 'C'.
* delete IT_OSR where o_status EQ 'PARTIALLY COMPLETED'.
ELSEif Ostatus-low = 'B' and Ostatus-hiGH = 'C'.
delete IT_OSR where o_status EQ 'OPEN'.
ELSEif Ostatus-low = 'A'.
delete IT_OSR where o_status ne 'OPEN'.
ELSEif Ostatus-low = 'B'.
delete IT_OSR where o_status ne 'PARTIALLY COMPLETED'.
ELSEif Ostatus-low = 'C'.
delete IT_OSR where o_status ne 'CLOSED'.
ENDIF.
delete it_osr where PART_NO IS INITIAL.
loop at it_osr into wa_osr.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
INPUT = wa_osr-REV_COMMIT_DATE
IMPORTING
OUTPUT = wa_osr-REV_COMMIT_MONTH1.
wa_osr-REV_COMMIT_MONTH1 = wa_osr-REV_COMMIT_MONTH1+3(8).
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = wa_osr-gtn_agreed_date
importing
output = wa_osr-gtn_agreed_month.
wa_osr-gtn_agreed_month = wa_osr-gtn_agreed_month+3(8).
MODIFY it_osr from wa_osr.
clear wa_osr.
ENDLOOP.
sort it_osr ASCENDING by sale_order_no line_item ASCENDING slno ASCENDING.
*ENDIF.
ENDFORM.
FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
RS_LAYOUT-DETAIL_POPUP = space.
ENDFORM.
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM.
"
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
"
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER, fromdate TYPE d, todate type d, linfo type string.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'LOADING SHEET.'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
* CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = linfo .
APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM.
form fieldcat.
wa_fieldcat-fieldname = 'CUSTOMER' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'CUSTOMER' .
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PLANT' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '6' .
wa_fieldcat-SELTEXT_M = 'PLANT' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WO_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
wa_fieldcat-SELTEXT_M = 'W.O.No.' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
***
wa_fieldcat-fieldname = 'PO_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'P.O.No.'.
wa_fieldcat-outputlen = '13'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
*
wa_fieldcat-fieldname = 'PO_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'P.O.DATE' .
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SALE_ORDER_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SALE ORDER No.' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-EMPHASIZE = 'C100'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SALE_ORDER_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'S.O DATE' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
WA_FIELDCAT-JUST = 'R'.
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LINE_ITEM' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '4' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-SELTEXT_M = 'LINE ITEM' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SLNO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '4' .
wa_fieldcat-JUST = 'R' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-SELTEXT_M = 'S.L.NO' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ORDER_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ORDER QTY.' .
WA_FIELDCAT-EMPHASIZE = 'C511'.
wa_fieldcat-outputlen = '6' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'OPEN QTY'.
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C511'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_ORDER_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SL.ORDER QTY.' .
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
* wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
* wa_fieldcat-tabname = 'IT_OSR' .
* wa_fieldcat-SELTEXT_M = 'SL OPEN QTY' .
* wa_fieldcat-outputlen = '6' .
* WA_FIELDCAT-EMPHASIZE = 'C211'.
* APPEND wa_fieldcat to i_fieldcat.
* clear wa_fieldcat.
wa_fieldcat-fieldname = 'PART_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '15' .
wa_fieldcat-SELTEXT_M = 'PART No.' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'REVLV1' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV' .
WA_FIELDCAT-EMPHASIZE = 'X'.
wa_fieldcat-outputlen = '4' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'POSEX' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'CUSTOMER PO REV' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-MGR'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
* WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'DESCRIPTION' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '35' .
wa_fieldcat-SELTEXT_M = 'DESCRIPTION' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MAINGRP' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'DIVISION' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'XTYPE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
wa_fieldcat-SELTEXT_M = 'TYPE' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MODEL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'MODEL' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
**
wa_fieldcat-fieldname = 'XSIZE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SIZE' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TRIM' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'TRIM' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GRP2' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'GROUP' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SUBGRP' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'SUB GRP' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ENDCON' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'END CONN' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PRES' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PRES RATING' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PRDSPEC' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PSL' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PERFREQ' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PERF REQ' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
***************
wa_fieldcat-fieldname = 'SHIPMENT_MODE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SHIPMENT MODE' .
wa_fieldcat-outputlen = '6' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PO_STATUS' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'DELIVERY STATUS ' .
wa_fieldcat-outputlen = '20' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'O_STATUS' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'OVERALL STATUS ' .
wa_fieldcat-outputlen = '15' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FMC_EX_WORKS_DAT' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FMC-EX-WORKS-DATE' .
wa_fieldcat-outputlen = '10' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FMC_EX_WORKS_MON' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FMC-EX-WORKS-MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GTN_AGREED_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'GTN AGREED DATE' .
wa_fieldcat-outputlen = '10' .
if sy-uname = 'SD-EXEC' OR sy-uname = 'DEVELOPER' OR sy-uname = 'ABAPUSER' .
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
* WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GTN_AGREED_MONTH' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'GTN AGREED MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
if sy-uname = 'SD-EXEC'
OR sy-uname = 'SD-MGR'
OR sy-uname = 'FMC-USER'
OR sy-uname = 'VP-USER'
OR sy-uname = 'GM-USER'
OR sy-uname = 'DGM-USER'
OR sy-uname = 'HO-SD-MGR'
OR sy-uname = 'HO-FI-MGR'
OR sy-uname = 'PM-USER'
OR sy-uname = 'DEVELOPER'
OR sy-uname = 'ABAPUSER'.
wa_fieldcat-fieldname = 'UNIT_PRICE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'UNIT PRICE' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTAL_PRICE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'TOTAL PRICE' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
ENDIF.
wa_fieldcat-fieldname = 'REV_COMMIT_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV.COMMIT.DATE' .
wa_fieldcat-outputlen = '10' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'REV_COMMIT_MONTH1' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV COMMIT MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ESI' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ESI' .
wa_fieldcat-outputlen = '16' .
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SL OPEN QTY' .
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ESITOTAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ESI TOTAL' .
wa_fieldcat-outputlen = '16' .
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FCNF' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC/NF' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
WA_fieldcat-edit = 'X'.
WA_FIELDCAT-INPUT = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FC_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC QTY' .
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EMPHASIZE = 'C211'.
WA_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NF_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'NF QTY' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FC_VAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC VALUE' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NF_VAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'NF VALUE' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
endform.
FORM OSRUPDATE.
LOOP AT IT_OSR INTO WA_OSR.
ZOSRGTN-S_O_NO = WA_OSR-SALE_ORDER_NO.
ZOSRGTN-LINE_ITEM = WA_OSR-LINE_ITEM.
ZOSRGTN-S_L_NO = WA_OSR-slno.
ZOSRGTN-WO_NO = WA_OSR-WO_NO.
ZOSRGTN-SHP_MODE = WA_OSR-SHIPMENT_MODE.
ZOSRGTN-PO_STAT = WA_OSR-PO_STATUS.
ZOSRGTN-FMC_DATE = WA_OSR-FMC_EX_WORKS_DAT.
ZOSRGTN-FMC_MONTH = WA_OSR-FMC_EX_WORKS_MON.
ZOSRGTN-GTN_DATE = WA_OSR-GTN_AGREED_DATE.
ZOSRGTN-GTN_MONTH = WA_OSR-GTN_AGREED_MONTH.
ZOSRGTN-REV_COM_DAT = WA_OSR-REV_COMMIT_DATE.
ZOSRGTN-REV_COMMIT_MONTH = WA_OSR-REV_COMMIT_MONTH1.
ZOSRGTN-REVISION = WA_OSR-REVISION.
ZOSRGTN-DELAY_DAYS = WA_OSR-DELAY_DAYS.
ZOSRGTN-DELAY_REASON = WA_OSR-DELAY_REASON.
ZOSRGTN-DN_STR_REM = WA_OSR-DN_STREAM_REMARK.
ZOSRGTN-UP_STR_REM = WA_OSR-UP_STREAM_REMARK.
ZOSRGTN-GEN_REM = WA_OSR-GEN_REMARKS.
ZOSRGTN-FC_QUAN = wa_OSR-FC_QTY.
ZOSRGTN-NF_QUAN = wa_OSR-NF_QTY.
ZOSRGTN-FC_VALUE = wa_OSR-FC_VAL.
ZOSRGTN-NF_VALUE = wa_OSR-NF_VAL.
zosrgtn-esi_fig = wa_osr-esi.
zosrgtn-esi_tot = wa_osr-esitotal.
zosrgtn-xsize = wa_osr-xsize.
MODIFY it_osr from wa_osr.
clear wa_osr.
select SINGLE s_o_no line_item from zosrgtn INTO (WA_OSR1-S_O_NO, WA_OSR1-LINE_ITEM)
WHERE s_o_no = WA_OSR-SALE_ORDER_NO
and line_item = WA_OSR-LINE_ITEM
and s_l_no = wa_osr-slno.
if sy-subrc <> 0.
INSERT INTO ZOSRGTN VALUES ZOSRGTN.
else.
UPDATE ZOSRGTN .
ENDIF.
ENDLOOP.
ENDFORM.
Note: Case statement is where i populate the data and got stuck up.
2013 May 23 5:48 AM
report ZLOADING.
*tables:
TABLES: vbak, vbap, vbuk, vbup, VBEP, AEOI,AENR, ZOSRGTN.
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME title text001.
select-OPTIONS saleord for vbak-vbeln.
select-OPTIONS custmr for vbak-kunnr.
select-OPTIONS partno for vbap-matnr.
SELECT-options Ostatus for vbup-GBSTA.
SELECT-options status for vbup-lfSTA.
PARAMETER Plant TYPE vbak-vkorg DEFAULT 'SGTN'.
SELECTION-SCREEN END OF BLOCK 2.
TYPE-POOLS: SLIS.
types:
begin of osr1,
POSEX TYPE VBAP-POSEX,
AENNR TYPE AEOI-AENNR,
REVLV TYPE AEOI-REVLV,
REVLV1 TYPE AEOI-REVLV,
SALE_ORDER_NO type vbap-vbeln,
SALE_ORDER_DATE type vbak-audat,
ORDER_TYPE TYPE VBAK-AUART,
LINE_ITEM type vbap-posnr,
SLNO TYPE VBEP-ETENR,
CUSTOMER type vbak-kunnr,
PLANT type vbap-werks,
WO_NO(20) type C,
PO_NO type vbak-bstnk,
PO_DATE type vbak-bstdk,
PO_LINE_ITEM(4) type c,
PART_NO type vbap-matnr,
REV(10) type c,
DESCRIPTION type tline-tdline,
MAINGRP TYPE MARA-SPART,
SUBGRP type MARA-ZZMAT_SUBGRP,
XTYPE type MARA-ZZMAT_TYPE,
MODEL type MARA-ZZMAT_MODEL,
XSIZE type MARA-GROES,
TRIM type MARA-ZZMAT_TRIM,
ENDCON TYPE MARA-ZZMAT_ENDCON,
XTEMP TYPE MARA-ZZMAT_TEMP,
PRES TYPE MARA-ZZMAT_PRES,
PRDSPEC TYPE MARA-ZZMAT_PRDSPEC,
PERFREQ TYPE MARA-ZZMAT_PERFREQ,
GRP2 TYPE MARA-ZZMAT_GRP2,
SHIPMENT_MODE(20) type c,
ORDER_QTY type P, " DECimals 3,
sl_ORDER_QTY type P, " DECimals 3,
PO_STATUS(20) type c,
O_status(20) type c,
FMC_EX_WORKS_DAT type d,
FMC_EX_WORKS_MON(50) type c,
GTN_AGREED_DATE type D,
GTN_AGREED_MONTH(50) type c,
QTY_OPEN type P, " DECimals 3,
sl_qty_open type p,
NEW_PRICE type P DECimals 2,
UNIT_PRICE type P DECimals 2,
TOTAL_XY type P DECimals 2,
TOTAL_PRICE type p DECimals 2,
REV_COMMIT_DATE type d,
REV_COMMIT_MONTH1(50) type c,
REVISION(10) type c,
STATUS(20) type c,
DELAY_DAYS(4) type n,
DELAY_REASON(200) type c,
* ASSY_PLAN_DATE type D,
reason_4_rej type vbap-abgru,
org type vbak-vkorg,
DN_STREAM_REMARK type char255,
UP_STREAM_REMARK type char255,
SHIPPING_REMARKS type Char255,
GEN_REMARKS(40) type C,
FMC_REMARKS type char255,
HILITE(4) type C,
NO_DAYS TYPE N,
FC_qty type n,
NF_qty type n,
FC_val type P DECIMALS 2,
NF_val type P DECIMALS 2,
week type n,
FCNF(5) type c,
esi TYPE P,
esitotal type p,
ZZMAT_SUBGRP TYPE mara-ZZMAT_SUBGRP,
end of osr1.
types:
BEGIN OF shiprem ,
vbeln type vbrp-vbeln,
fkdat TYPE vbrk-fkdat,
fklmg TYPE vbrp-fklmg,
qty(8) type n,
vbtyp type vbfa-vbtyp_N,
fksto type vbrk-fksto,
matnr type vbrp-matnr,
invcount type i,
END OF shiprem.
data:
t_shprem TYPE TABLE OF shiprem,
wa_shprem TYPE shiprem,
XMATNR(18) TYPE C,
fmcdate(35) TYPE c,
fmcdt type d,
i_xtline type TABLE OF tline,
wa_xtline TYPE tline,
xname like THEAD-TDNAME,
int TYPE i,
cs TYPE i,
op_qty type p.
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code,
output(8) TYPE c,
xs_o_no type zosrgtn-s_o_no,
xline_item type zosrgtn-line_item,
QTY_DIFF(8) TYPE N,
lncnt type i.
DATA:
IT_OSR type table of osr1,
ITab_OSR type table of osr1,
wa_osr type osr1,
wa_osr2 type osr1,
it_osr1 type table OF zosrGTN,
wa_osr1 TYPE zosrGTN.
DATA:
i_fieldcat TYPE slis_t_fieldcat_alv,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
data:
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_EXIT_CAUSED_BY_CALLER,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
G_REPID LIKE SY-REPID,
commitdatediff TYPE i,
QTYDIFF TYPE I,
* partno type TABLE OF vbeln,
wapart type vbeln,
waline type posnr,
waslno type vbep-etenr,
agreed type d.
*
DATA:
GT_EVENTS TYPE SLIS_T_EVENT,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
ls_sort TYPE slis_sortinfo_alv ,
IT_SORT TYPE slis_t_sortinfo_alv ,
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
DATA: GS_VARIANT LIKE DISVARIANT,
G_SAVE.
DATA XS(20) TYPE C.
G_REPID = SY-REPID.
gs_layout-info_fieldname = 'HILITE'.
PERFORM LAYOUT_INIT USING GS_LAYOUT.
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
GS_VARIANT-REPORT = G_REPID.
G_SAVE = 'A'.
START-OF-SELECTION.
PERFORM f_read_data.
END-OF-SELECTION.
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
perform fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
i_buffer_active = 'X'
I_CALLBACK_PROGRAM = G_REPID
I_STRUCTURE_NAME = 'GRSTAT'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IS_VARIANT = GS_VARIANT
* IT_SORT = IT_SORT
IT_EVENTS = GT_EVENTS[]
I_SAVE = 'A'
IMPORTING
E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = GS_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_OSR
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
data lv_ucomm type sy-ucomm.
lv_ucomm = sy-ucomm.
CASE lv_ucomm.
WHEN '&DATA_SAVE'.
PERFORM OSRUPDATE.
endcase.
endform.
FORM f_read_data.
DATA: str1 TYPE string,
str2 TYPE string,
str3 TYPE string,
textx TYPE string,
itab TYPE TABLE OF string,
wa type string, slen type i, cc TYPE i, kk TYPE i,
invdate TYPE d,
invqty TYPE P DECIMALS 3,
xmatnr(70) type c,
xwerks type werks.
select VBAP~vbeln VBAP~posnr VBAP~POSEX VBAK~AUART
into (wa_osr-sale_order_no, wa_osr-line_item, WA_OSR-POSEX, WA_OSR-ORDER_TYPE)
from VBAP INNER JOIN VBAK
ON VBAP~VBELN = VBAK~VBELN
WHERE vbap~vbeln in saleord
and vbap~matnr in partno
and vbak~kunnr in custmr
and VBAK~AUART = 'ZORE'.
* where LFSTA <> 'c'.
* and
APPEND wa_osr to IT_OSR.
endselect.
*
clear it_osr1.
select * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no in saleord.
append wa_osr1 to it_osr1.
xmatnr = wa_osr1-wo_no.
endselect.
loop at IT_OSR into wa_osr.
CLEAR WA_OSR1.
xs_o_no = wa_osr-sale_order_no .
shift xs_o_no LEFT DELETING LEADING '0'.
CONCATENATE xs_o_no wa_osr-line_item into xmatnr.
select single * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no = XS_O_NO
and line_item = wa_osr-LINE_ITEM
and s_l_no eq '000000'
OR s_l_no is NULL.
wa_osr-wo_no = wa_osr1-wo_no.
wa_osr-SHIPMENT_MODE = wa_osr1-SHP_MODE.
wa_osr-PO_STATUS = wa_osr1-PO_STAT.
wa_osr-FMC_EX_WORKS_DAT = wa_osr1-FMC_DATE.
wa_osr-FMC_EX_WORKS_MON = wa_osr1-FMC_MONTH.
wa_osr-GTN_AGREED_DATE = wa_osr1-GTN_DATE.
wa_osr-GTN_AGREED_MONTH = wa_osr1-GTN_MONTH.
wa_osr-REV_COMMIT_DATE = wa_osr1-REV_COM_DAT.
wa_osr-REV_COMMIT_MONTH1 = WA_OSR1-REV_COMMIT_MONTH.
wa_osr-REVISION = wa_osr1-REVISION.
wa_osr-DELAY_DAYS = wa_osr1-DELAY_DAYS.
wa_osr-DELAY_REASON = wa_osr1-DELAY_REASON.
wa_osr-DN_STREAM_REMARK = wa_osr1-DN_STR_REM.
wa_osr-UP_STREAM_REMARK = wa_osr1-UP_STR_REM.
wa_osr-GEN_REMARKS = wa_osr1-GEN_REM.
WA_OSR-FC_QTY = WA_OSR1-fc_QUAN.
WA_OSR-NF_QTY = WA_OSR1-NF_QUAN.
wa_osr-esi = wa_osr1-esi_fig.
wa_osr-esitotal = wa_osr1-esi_tot.
select SINGLE NETPR NETWR INTO (WA_OSR-UNIT_PRICE, WA_OSR-TOTAL_PRICE)
FROM VBAP WHERE VBELN = WA_OSR-SALE_ORDER_NO AND POSNR = WA_OSR-LINE_ITEM.
IF SY-SUBRC <> 0.
WA_OSR-UNIT_PRICE = WA_OSR1-UNIT_PRICE.
WA_OSR-TOTAL_PRICE = WA_OSR1-XTOTAL.
WA_OSR-FC_VAL = WA_OSR1-FC_VALUE.
WA_OSR-NF_VAL = WA_OSR1-NF_VALUE.
WA_OSR-esitotal = WA_OSR1-esi_tot.
ENDIF.
select single abgru
into (wa_osr-reason_4_rej)
from vbap
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
select single vkorg
into (wa_osr-org)
from vbak
where vbeln = wa_osr-sale_order_no.
select single lfsta gbsta
into (wa_osr-po_status, wa_osr-o_status)
from vbup
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-LINE_ITEM.
select single audat kunnr bstnk bstdk
into (wa_osr-sale_order_date , wa_osr-customer , wa_osr-po_no , wa_osr-po_date)
from vbak
where vbeln = wa_osr-sale_order_no.
* and audat in S_O_Date.
select SINGLE matnr werks kwmeng " lsmeng
into (wa_osr-part_no , wa_osr-plant , wa_osr-order_qty) " , wa_osr-qty_open)
from vbap
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
* ***********
xmatnr+0(18) = wa_osr-part_no.
xmatnr+18(4) = 'SGTN'.
xmatnr+22(2) = 'EX'.
xname = xmatnr.
CLEAR I_XTLINE.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = '0001'
LANGUAGE = 'E'
NAME = XNAME
OBJECT = 'MVKE'
TABLES
LINES = i_XTLINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6.
LOOP AT i_XTLINE into wa_xtline where tdline <> ' '.
CONCATENATE wa_osr-description WA_xtline-TDLINE into wa_osr-description.
endloop.
if wa_osr-description is initial.
wa_osr-description = '***** SALES TEXT NOT MAINTAINED'.
ENDIF.
select single ZZMAT_TYPE ZZMAT_MODEL GROES ZZMAT_TRIM ZZMAT_GRP2 ZZMAT_SUBGRP
INTO (WA_OSR-XTYPE, WA_OSR-MODEL, WA_OSR-XSIZE, WA_OSR-TRIM, WA_OSR-GRP2, WA_OSR-SUBGRP)
FROM MARA
WHERE MATNR = WA_OSR-PART_NO.
select single ZZMAT_ENDCON ZZMAT_TEMP ZZMAT_PRES ZZMAT_PRDSPEC ZZMAT_PERFREQ SPART
INTO (WA_OSR-ENDCON, WA_OSR-XTEMP, WA_OSR-PRES, WA_OSR-PRDSPEC, WA_OSR-PERFREQ, WA_OSR-MAINGRP)
FROM MARA
WHERE MATNR = WA_OSR-PART_NO.
SELECT SINGLE ETENR
INTO (WA_OSR-SLNO)
FROM VBEP
WHERE VBELN = WA_OSR-SALE_ORDER_NO
AND POSNR = WA_OSR-LINE_ITEM.
select max( revlv ) max( aennr )
from aeoi
into (wa_osr-revlv1, wa_osr-aennr)
where objkt = wa_osr-part_no.
if wa_osr-revlv = ' '.
wa_osr-revlv = wa_osr-revlv1.
endif.
SELECT single EDATU
INTO (WA_OSR-REV_COMMIT_DATE)
FROM VBEP
WHERE VBELN = WA_OSR-SALE_ORDER_NO
AND POSNR = WA_OSR-LINE_ITEM
and etenr = WA_OSR-SLNO.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = wa_osr-gtn_agreed_date
importing
output = wa_osr-gtn_agreed_month.
wa_osr-gtn_agreed_month = wa_osr-gtn_agreed_month+3(8).
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
INPUT = wa_osr-REV_COMMIT_DATE
IMPORTING
OUTPUT = wa_osr-REV_COMMIT_MONTH1.
wa_osr-REV_COMMIT_MONTH1 = wa_osr-REV_COMMIT_MONTH1+3(8).
FMCDT = wa_osr-FMC_EX_WORKS_DAT.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = fmcdt
importing
output = wa_osr-fmc_ex_works_mon.
wa_osr-fmc_ex_works_mon = wa_osr-fmc_ex_works_mon+3(8).
* ZOSRGTN-GEN_REM = WA_OSR-GEN_REMARKS.
clear t_shprem.
*
SELECT vbrp~vbeln vbrp~fklmg vbrp~matnr
into (wa_shprem-vbeln , wa_shprem-fklmg, wa_shprem-matnr)
from vbrp INNER JOIN vbrk on vbrp~vbeln = vbrk~vbeln
where vbrp~aubel = wa_osr-sale_order_no
and vbrp~aupos = wa_osr-line_item
and vbrp~PSTYV ne 'HUPM' " PACKING MATERIAL
and vbrp~fklmg <> 0.
* and vbrk~fksto ne 'X'.
APPEND wa_shprem to t_shprem.
*
ENDSELECT.
clear invqty.
clear wa_osr-shipping_remarks.
cc = 1.
loop at t_shprem into wa_shprem. " where vbtyp eq 'J'.
select single fkdat fksto
into (wa_shprem-fkdat,wa_shprem-fksto)
from vbrk
where vbeln = wa_shprem-vbeln.
wa_shprem-qty = wa_shprem-fklmg .
if wa_shprem-fksto = 'X'.
invqty = invqty - wa_shprem-qty.
else.
invqty = invqty + wa_shprem-qty.
endif.
shift wa_shprem-qty LEFT DELETING LEADING '0'.
shift wa_shprem-vbeln LEFT DELETING LEADING '0'.
write wa_shprem-fkdat DD/MM/YY to invdate.
if wa_shprem-fksto ne 'X'.
if cc = 1.
CONCATENATE wa_osr-shipping_remarks wa_shprem-vbeln ' / ' invdate ' / ' wa_shprem-qty into wa_osr-shipping_remarks.
else.
CONCATENATE wa_osr-shipping_remarks ' -- ' wa_shprem-vbeln ' / ' invdate ' / ' wa_shprem-qty into wa_osr-shipping_remarks.
endif.
cc = cc + 1.
endif.
endloop .
textx = wa_osr-part_no.
SPLIT textx AT '-' INTO: TABLE itab.
loop at itab into wa.
endloop.
slen = sy-tfill.
cc = 1.
str1 = '' .
loop at itab into wa.
if cc = 1.
str1 = wa.
else.
CONCATENATE str1 '-' wa into str1.
endif.
kk = slen - 1.
cc = cc + 1.
endloop.
wa_osr-qty_open = wa_osr-order_qty - invqty.
wa_osr-fc_val = WA_OSR-UNIT_PRICE * wa_osr-fc_qty.
wa_osr-nf_val = WA_OSR-UNIT_PRICE * wa_osr-nf_qty.
**case wa_osr-slno.
**
** when 0.
** write 'do nothing'.
** when others.
**
** Case WA_OSR-SUBGRP.
** when 'GV ASSY' OR 'KIT ASSY'.
**
** case WA_OSR-XSIZE+0(1).
** when 0001.
** wa_osr-esi = 77.
** wa_osr2-esi = 77.
** when 0002.
** wa_osr-esi = 65.
** wa_osr2-esi = 65.
** when 0003.
** wa_osr-esi = 104.
** wa_osr2-esi = 104.
** when 0004.
** wa_osr-esi = 125.
** wa_osr2-esi = 125.
** endcase.
**
**
** WHEN 'GATE'.
**
** case WA_OSR-XSIZE+0(1).
** when 0002.
** wa_osr2-esi = 33.
** wa_osr-esi = 33.
** when 0003.
** wa_osr2-esi = 64.
** wa_osr-esi = 64.
** when 0004.
** wa_osr2-esi = 81.
** wa_osr-esi = 81.
** endcase.
**
** WHEN 'SEAT'.
**
** case WA_OSR-XSIZE+0(1).
** when 0002.
** wa_osr2-esi = 16.
**
** when 0003.
** wa_osr2-esi = 20.
**
** when 0004.
** wa_osr2-esi = 22.
**
** endcase.
** when OTHERS.
** wa_osr2-esi = 99.
** wa_osr-esi = 99.
** Endcase.
**
** ENDCASE.
*MODIFY IT_OSR FROM WA_OSR.
if wa_osr-rev_commit_date is not initial.
if wa_osr-gtn_agreed_date is not INITIAL.
wa_osr-delay_days = wa_osr-REV_COMMIT_DATE - wa_osr-gtn_agreed_date.
IF wa_osr-delay_days <= 0.
wa_osr-status = 'ON SCHEDULE'.
ELSEIF wa_osr-delay_days > 0.
if wa_osr-delay_days <= 365.
wa_osr-status = 'DELAY'.
endif.
ENDIF.
if wa_osr-REV_COMMIT_DATE < wa_osr-gtn_agreed_date.
wa_osr-status = 'ON SCHEDULE'.
wa_osr-delay_days = 0.
endif.
else.
wa_osr-delay_days = '0'.
endif.
else.
wa_osr-delay_days = '0'.
endif.
if wa_osr-delay_days > '365'.
wa_osr-delay_days = '0'.
endif.
QTYDIFF = WA_OSR-ORDER_QTY - WA_OSR-QTY_OPEN.
IF WA_OSR-PO_STATUS = 'A'.
WA_OSR-PO_STATUS = 'NOT DELIVERED'.
ELSEIF WA_OSR-PO_STATUS = 'B'.
WA_OSR-PO_STATUS = 'PARTIALLY DELIVERED'.
ELSEIF WA_OSR-PO_STATUS = 'C'.
WA_OSR-PO_STATUS = 'COMPLETED'.
ENDIF.
IF wa_osr-o_status = 'A'.
WA_OSR-o_status = 'OPEN'.
ELSEIF wa_osr-o_status = 'B'.
WA_OSR-o_status = 'PARTIALLY COMPLETED'.
ELSEIF wa_osr-o_status = 'C'.
WA_OSR-o_status = 'CLOSED'.
ENDIF.
Case WA_OSR-SUBGRP.
when 'GV ASSY' OR 'KIT ASSY'.
case WA_OSR-XSIZE+0(1).
when 0001.
wa_osr-esi = 77.
wa_osr2-esi = 77.
when 0002.
wa_osr-esi = 65.
wa_osr2-esi = 65.
when 0003.
wa_osr-esi = 104.
wa_osr2-esi = 104.
when 0004.
wa_osr-esi = 125.
wa_osr2-esi = 125.
endcase.
WHEN 'GATE'.
case WA_OSR-XSIZE+0(1).
when 0002.
wa_osr2-esi = 33.
wa_osr-esi = 33.
when 0003.
wa_osr2-esi = 64.
wa_osr-esi = 64.
when 0004.
wa_osr2-esi = 81.
wa_osr-esi = 81.
endcase.
WHEN 'SEAT'.
case WA_OSR-XSIZE+0(1).
when 0002.
wa_osr2-esi = 16.
when 0003.
wa_osr2-esi = 20.
when 0004.
wa_osr2-esi = 22.
endcase.
when OTHERS.
wa_osr2-esi = 99.
wa_osr-esi = 99.
Endcase.
***********************************************
select single count(*)
into (lncnt) from vbep
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
wa_osr2 = wa_osr.
if lncnt > 1.
invqty = wa_osr-qty_open.
if wa_osr-slno = 1.
select vbeln posnr etenr wmeng edatu
into (wa_osr2-sale_order_no, wa_osr2-line_item, wa_osr2-slno, wa_osr2-sl_order_qty,
wa_osr2-REV_COMMIT_DATE)
from vbep
WHERE vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item
order by vbeln posnr etenr DESCENDING .
select max( revlv ) max( aennr )
from aeoi
into (wa_osr-revlv, wa_osr-aennr)
where objkt = wa_osr-part_no.
if invqty > wa_osr2-sl_order_qty.
op_qty = wa_osr2-sl_order_qty.
invqty = invqty - wa_osr2-sl_order_qty.
elseif invqty ne 0.
op_qty = invqty.
invqty = 0.
else.
op_qty = 0.
endif.
* wa_osr-slno = '0'.
wa_osr2-qty_open = 0.
wa_osr2-order_qty = 0.
wa_osr2-sl_qty_open = op_qty.
wa_osr2-hilite = 'C311'.
* WA_OSR2-UNIT_PRICE = 0.
* WA_OSR2-TOTAL_PRICE = WA_OSR2-UNIT_PRICE * wa_osr2-SL_order_qty.
WA_OSR2-TOTAL_PRICE = 0.
WA_OSR2-UNIT_PRICE = 0.
APPEND wa_osr2 to ITab_OSR.
endselect.
endif.
wa_osr-hilite = 'C221'.
*ELSE.
* wa_osr-slno = '0'.
endif.
***********************************************
wa_osr-slno = 0.
TRANSLATE wa_osr-po_staTus TO UPPER CASE.
shift wa_osr-sale_order_no LEFT DELETING LEADING '0'.
* wa_osr2-esitotal = wa_osr2-esi * wa_osr2-sl_qty_open.
MODIFY IT_OSR FROM WA_OSR.
endloop.
loop at itab_osr into wa_osr2.
clear wa_osr1.
* CONCATENATE '00' wa_osr2-slno into wa_osr2-slno.
shift WA_OSR2-SALE_ORDER_NO LEFT DELETING LEADING '0'.
select single * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no = WA_OSR2-SALE_ORDER_NO
and line_item = WA_OSR2-LINE_ITEM
and s_l_no eq WA_OSR2-SLNO.
wa_osr2-GTN_AGREED_DATE = wa_osr1-GTN_DATE.
FMCDT = wa_osr2-GTN_AGREED_DATE.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = fmcdt
importing
output = wa_osr2-GTN_AGREED_MONTH.
wa_osr2-GTN_AGREED_MONTH = wa_osr2-GTN_AGREED_MONTH+3(8).
wa_osr2-GTN_AGREED_MONTH = wa_osr1-GTN_MONTH.
wa_osr2-REV_COMMIT_DATE = wa_osr1-REV_COM_DAT.
wa_osr2-rev_commit_month1 = wa_osr1-rev_commit_month.
wa_osr2-REVlv = wa_osr1-REVision.
** wa_osr2-REVISION = wa_osr1-REVISION.
wa_osr2-DELAY_DAYS = wa_osr1-DELAY_DAYS.
wa_osr2-DELAY_REASON = wa_osr1-DELAY_REASON.
wa_osr2-DN_STREAM_REMARK = wa_osr1-DN_STR_REM.
wa_osr2-UP_STREAM_REMARK = wa_osr1-UP_STR_REM.
wa_osr2-GEN_REMARKS = wa_osr1-GEN_REM.
wa_osr2-SHIPPING_REMARKS = ' '.
WA_OSR2-FC_QTY = WA_OSR1-FC_QUAN.
WA_OSR2-NF_QTY = WA_OSR1-NF_QUAN.
wa_osr2-esi = wa_osr1-esi_fig.
wa_osr2-esitotal = wa_osr1-esi_tot.
wa_osr-esi = wa_osr1-esi_fig.
wa_osr-esitotal = wa_osr1-esi_tot.
wa_osr2-fc_val = WA_OSR-UNIT_PRICE * wa_osr2-fc_qty.
wa_osr2-nf_val = WA_OSR-UNIT_PRICE * wa_osr2-nf_qty.
wa_osr2-esitotal = wa_osr2-esi * wa_osr2-sl_qty_open.
wa_osr-esitotal = wa_osr2-esi * wa_osr-sl_qty_open.
APPEND wa_osr2 to it_osr.
endloop.
delete IT_OSR where customer+0(3) ne 'FMC'.
IF PLANT IS NOT INITIAL .
delete IT_OSR where ORG <> PLANT.
ENDIF.
IF WA_OSR-REASON_4_REJ IS NOT INITIAL.
STATUS = 'C'.
ENDIF.
*
if status-low = 'A' and status-hiGH = 'B'.
delete IT_OSR where po_status EQ 'COMPLETED'.
ELSEif status-low = 'A' and status-hiGH = 'C'.
* delete IT_OSR where po_status EQ 'PARTIALLY DELIVERED'.
ELSEif status-low = 'B' and status-hiGH = 'C'.
delete IT_OSR where po_status EQ 'NOT DELIVERED'.
ELSEif status-low = 'A'.
delete IT_OSR where po_status ne 'NOT DELIVERED'.
ELSEif status-low = 'B'.
delete IT_OSR where po_status ne 'PARTIALLY DELIVERED'.
ELSEif status-low = 'C'.
delete IT_OSR where po_status ne 'COMPLETED'.
ENDIF.
if Ostatus-low = 'A' and Ostatus-hiGH = 'B'.
delete IT_OSR where o_status EQ 'CLOSED'.
ELSEif Ostatus-low = 'A' and Ostatus-hiGH = 'C'.
* delete IT_OSR where o_status EQ 'PARTIALLY COMPLETED'.
ELSEif Ostatus-low = 'B' and Ostatus-hiGH = 'C'.
delete IT_OSR where o_status EQ 'OPEN'.
ELSEif Ostatus-low = 'A'.
delete IT_OSR where o_status ne 'OPEN'.
ELSEif Ostatus-low = 'B'.
delete IT_OSR where o_status ne 'PARTIALLY COMPLETED'.
ELSEif Ostatus-low = 'C'.
delete IT_OSR where o_status ne 'CLOSED'.
ENDIF.
delete it_osr where PART_NO IS INITIAL.
loop at it_osr into wa_osr.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
INPUT = wa_osr-REV_COMMIT_DATE
IMPORTING
OUTPUT = wa_osr-REV_COMMIT_MONTH1.
wa_osr-REV_COMMIT_MONTH1 = wa_osr-REV_COMMIT_MONTH1+3(8).
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = wa_osr-gtn_agreed_date
importing
output = wa_osr-gtn_agreed_month.
wa_osr-gtn_agreed_month = wa_osr-gtn_agreed_month+3(8).
MODIFY it_osr from wa_osr.
clear wa_osr.
ENDLOOP.
sort it_osr ASCENDING by sale_order_no line_item ASCENDING slno ASCENDING.
*ENDIF.
ENDFORM.
FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
RS_LAYOUT-DETAIL_POPUP = space.
ENDFORM.
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM.
"
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
"
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER, fromdate TYPE d, todate type d, linfo type string.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'LOADING SHEET.'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
* CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = linfo .
APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM.
form fieldcat.
wa_fieldcat-fieldname = 'CUSTOMER' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'CUSTOMER' .
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PLANT' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '6' .
wa_fieldcat-SELTEXT_M = 'PLANT' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WO_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
wa_fieldcat-SELTEXT_M = 'W.O.No.' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
***
wa_fieldcat-fieldname = 'PO_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'P.O.No.'.
wa_fieldcat-outputlen = '13'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
*
wa_fieldcat-fieldname = 'PO_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'P.O.DATE' .
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SALE_ORDER_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SALE ORDER No.' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-EMPHASIZE = 'C100'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SALE_ORDER_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'S.O DATE' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
WA_FIELDCAT-JUST = 'R'.
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LINE_ITEM' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '4' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-SELTEXT_M = 'LINE ITEM' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SLNO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '4' .
wa_fieldcat-JUST = 'R' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-SELTEXT_M = 'S.L.NO' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ORDER_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ORDER QTY.' .
WA_FIELDCAT-EMPHASIZE = 'C511'.
wa_fieldcat-outputlen = '6' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'OPEN QTY'.
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C511'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_ORDER_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SL.ORDER QTY.' .
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
* wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
* wa_fieldcat-tabname = 'IT_OSR' .
* wa_fieldcat-SELTEXT_M = 'SL OPEN QTY' .
* wa_fieldcat-outputlen = '6' .
* WA_FIELDCAT-EMPHASIZE = 'C211'.
* APPEND wa_fieldcat to i_fieldcat.
* clear wa_fieldcat.
wa_fieldcat-fieldname = 'PART_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '15' .
wa_fieldcat-SELTEXT_M = 'PART No.' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'REVLV1' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV' .
WA_FIELDCAT-EMPHASIZE = 'X'.
wa_fieldcat-outputlen = '4' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'POSEX' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'CUSTOMER PO REV' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-MGR'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
* WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'DESCRIPTION' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '35' .
wa_fieldcat-SELTEXT_M = 'DESCRIPTION' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MAINGRP' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'DIVISION' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'XTYPE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
wa_fieldcat-SELTEXT_M = 'TYPE' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MODEL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'MODEL' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
**
wa_fieldcat-fieldname = 'XSIZE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SIZE' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TRIM' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'TRIM' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GRP2' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'GROUP' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SUBGRP' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'SUB GRP' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ENDCON' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'END CONN' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PRES' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PRES RATING' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PRDSPEC' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PSL' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PERFREQ' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PERF REQ' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
***************
wa_fieldcat-fieldname = 'SHIPMENT_MODE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SHIPMENT MODE' .
wa_fieldcat-outputlen = '6' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PO_STATUS' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'DELIVERY STATUS ' .
wa_fieldcat-outputlen = '20' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'O_STATUS' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'OVERALL STATUS ' .
wa_fieldcat-outputlen = '15' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FMC_EX_WORKS_DAT' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FMC-EX-WORKS-DATE' .
wa_fieldcat-outputlen = '10' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FMC_EX_WORKS_MON' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FMC-EX-WORKS-MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GTN_AGREED_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'GTN AGREED DATE' .
wa_fieldcat-outputlen = '10' .
if sy-uname = 'SD-EXEC' OR sy-uname = 'DEVELOPER' OR sy-uname = 'ABAPUSER' .
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
* WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GTN_AGREED_MONTH' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'GTN AGREED MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
if sy-uname = 'SD-EXEC'
OR sy-uname = 'SD-MGR'
OR sy-uname = 'FMC-USER'
OR sy-uname = 'VP-USER'
OR sy-uname = 'GM-USER'
OR sy-uname = 'DGM-USER'
OR sy-uname = 'HO-SD-MGR'
OR sy-uname = 'HO-FI-MGR'
OR sy-uname = 'PM-USER'
OR sy-uname = 'DEVELOPER'
OR sy-uname = 'ABAPUSER'.
wa_fieldcat-fieldname = 'UNIT_PRICE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'UNIT PRICE' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTAL_PRICE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'TOTAL PRICE' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
ENDIF.
wa_fieldcat-fieldname = 'REV_COMMIT_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV.COMMIT.DATE' .
wa_fieldcat-outputlen = '10' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'REV_COMMIT_MONTH1' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV COMMIT MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ESI' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ESI' .
wa_fieldcat-outputlen = '16' .
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SL OPEN QTY' .
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ESITOTAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ESI TOTAL' .
wa_fieldcat-outputlen = '16' .
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FCNF' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC/NF' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
WA_fieldcat-edit = 'X'.
WA_FIELDCAT-INPUT = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FC_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC QTY' .
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EMPHASIZE = 'C211'.
WA_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NF_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'NF QTY' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FC_VAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC VALUE' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NF_VAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'NF VALUE' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
endform.
FORM OSRUPDATE.
LOOP AT IT_OSR INTO WA_OSR.
ZOSRGTN-S_O_NO = WA_OSR-SALE_ORDER_NO.
ZOSRGTN-LINE_ITEM = WA_OSR-LINE_ITEM.
ZOSRGTN-S_L_NO = WA_OSR-slno.
ZOSRGTN-WO_NO = WA_OSR-WO_NO.
ZOSRGTN-SHP_MODE = WA_OSR-SHIPMENT_MODE.
ZOSRGTN-PO_STAT = WA_OSR-PO_STATUS.
ZOSRGTN-FMC_DATE = WA_OSR-FMC_EX_WORKS_DAT.
ZOSRGTN-FMC_MONTH = WA_OSR-FMC_EX_WORKS_MON.
ZOSRGTN-GTN_DATE = WA_OSR-GTN_AGREED_DATE.
ZOSRGTN-GTN_MONTH = WA_OSR-GTN_AGREED_MONTH.
ZOSRGTN-REV_COM_DAT = WA_OSR-REV_COMMIT_DATE.
ZOSRGTN-REV_COMMIT_MONTH = WA_OSR-REV_COMMIT_MONTH1.
ZOSRGTN-REVISION = WA_OSR-REVISION.
ZOSRGTN-DELAY_DAYS = WA_OSR-DELAY_DAYS.
ZOSRGTN-DELAY_REASON = WA_OSR-DELAY_REASON.
ZOSRGTN-DN_STR_REM = WA_OSR-DN_STREAM_REMARK.
ZOSRGTN-UP_STR_REM = WA_OSR-UP_STREAM_REMARK.
ZOSRGTN-GEN_REM = WA_OSR-GEN_REMARKS.
ZOSRGTN-FC_QUAN = wa_OSR-FC_QTY.
ZOSRGTN-NF_QUAN = wa_OSR-NF_QTY.
ZOSRGTN-FC_VALUE = wa_OSR-FC_VAL.
ZOSRGTN-NF_VALUE = wa_OSR-NF_VAL.
zosrgtn-esi_fig = wa_osr-esi.
zosrgtn-esi_tot = wa_osr-esitotal.
zosrgtn-xsize = wa_osr-xsize.
MODIFY it_osr from wa_osr.
clear wa_osr.
select SINGLE s_o_no line_item from zosrgtn INTO (WA_OSR1-S_O_NO, WA_OSR1-LINE_ITEM)
WHERE s_o_no = WA_OSR-SALE_ORDER_NO
and line_item = WA_OSR-LINE_ITEM
and s_l_no = wa_osr-slno.
if sy-subrc <> 0.
INSERT INTO ZOSRGTN VALUES ZOSRGTN.
else.
UPDATE ZOSRGTN .
ENDIF.
ENDLOOP.
ENDFORM.
Note: Case statement is where i populate the data and got stuck up.
2013 May 23 5:48 AM
report ZLOADING.
*tables:
TABLES: vbak, vbap, vbuk, vbup, VBEP, AEOI,AENR, ZOSRGTN.
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME title text001.
select-OPTIONS saleord for vbak-vbeln.
select-OPTIONS custmr for vbak-kunnr.
select-OPTIONS partno for vbap-matnr.
SELECT-options Ostatus for vbup-GBSTA.
SELECT-options status for vbup-lfSTA.
PARAMETER Plant TYPE vbak-vkorg DEFAULT 'SGTN'.
SELECTION-SCREEN END OF BLOCK 2.
TYPE-POOLS: SLIS.
types:
begin of osr1,
POSEX TYPE VBAP-POSEX,
AENNR TYPE AEOI-AENNR,
REVLV TYPE AEOI-REVLV,
REVLV1 TYPE AEOI-REVLV,
SALE_ORDER_NO type vbap-vbeln,
SALE_ORDER_DATE type vbak-audat,
ORDER_TYPE TYPE VBAK-AUART,
LINE_ITEM type vbap-posnr,
SLNO TYPE VBEP-ETENR,
CUSTOMER type vbak-kunnr,
PLANT type vbap-werks,
WO_NO(20) type C,
PO_NO type vbak-bstnk,
PO_DATE type vbak-bstdk,
PO_LINE_ITEM(4) type c,
PART_NO type vbap-matnr,
REV(10) type c,
DESCRIPTION type tline-tdline,
MAINGRP TYPE MARA-SPART,
SUBGRP type MARA-ZZMAT_SUBGRP,
XTYPE type MARA-ZZMAT_TYPE,
MODEL type MARA-ZZMAT_MODEL,
XSIZE type MARA-GROES,
TRIM type MARA-ZZMAT_TRIM,
ENDCON TYPE MARA-ZZMAT_ENDCON,
XTEMP TYPE MARA-ZZMAT_TEMP,
PRES TYPE MARA-ZZMAT_PRES,
PRDSPEC TYPE MARA-ZZMAT_PRDSPEC,
PERFREQ TYPE MARA-ZZMAT_PERFREQ,
GRP2 TYPE MARA-ZZMAT_GRP2,
SHIPMENT_MODE(20) type c,
ORDER_QTY type P, " DECimals 3,
sl_ORDER_QTY type P, " DECimals 3,
PO_STATUS(20) type c,
O_status(20) type c,
FMC_EX_WORKS_DAT type d,
FMC_EX_WORKS_MON(50) type c,
GTN_AGREED_DATE type D,
GTN_AGREED_MONTH(50) type c,
QTY_OPEN type P, " DECimals 3,
sl_qty_open type p,
NEW_PRICE type P DECimals 2,
UNIT_PRICE type P DECimals 2,
TOTAL_XY type P DECimals 2,
TOTAL_PRICE type p DECimals 2,
REV_COMMIT_DATE type d,
REV_COMMIT_MONTH1(50) type c,
REVISION(10) type c,
STATUS(20) type c,
DELAY_DAYS(4) type n,
DELAY_REASON(200) type c,
* ASSY_PLAN_DATE type D,
reason_4_rej type vbap-abgru,
org type vbak-vkorg,
DN_STREAM_REMARK type char255,
UP_STREAM_REMARK type char255,
SHIPPING_REMARKS type Char255,
GEN_REMARKS(40) type C,
FMC_REMARKS type char255,
HILITE(4) type C,
NO_DAYS TYPE N,
FC_qty type n,
NF_qty type n,
FC_val type P DECIMALS 2,
NF_val type P DECIMALS 2,
week type n,
FCNF(5) type c,
esi TYPE P,
esitotal type p,
ZZMAT_SUBGRP TYPE mara-ZZMAT_SUBGRP,
end of osr1.
types:
BEGIN OF shiprem ,
vbeln type vbrp-vbeln,
fkdat TYPE vbrk-fkdat,
fklmg TYPE vbrp-fklmg,
qty(8) type n,
vbtyp type vbfa-vbtyp_N,
fksto type vbrk-fksto,
matnr type vbrp-matnr,
invcount type i,
END OF shiprem.
data:
t_shprem TYPE TABLE OF shiprem,
wa_shprem TYPE shiprem,
XMATNR(18) TYPE C,
fmcdate(35) TYPE c,
fmcdt type d,
i_xtline type TABLE OF tline,
wa_xtline TYPE tline,
xname like THEAD-TDNAME,
int TYPE i,
cs TYPE i,
op_qty type p.
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code,
output(8) TYPE c,
xs_o_no type zosrgtn-s_o_no,
xline_item type zosrgtn-line_item,
QTY_DIFF(8) TYPE N,
lncnt type i.
DATA:
IT_OSR type table of osr1,
ITab_OSR type table of osr1,
wa_osr type osr1,
wa_osr2 type osr1,
it_osr1 type table OF zosrGTN,
wa_osr1 TYPE zosrGTN.
DATA:
i_fieldcat TYPE slis_t_fieldcat_alv,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
data:
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_EXIT_CAUSED_BY_CALLER,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
G_REPID LIKE SY-REPID,
commitdatediff TYPE i,
QTYDIFF TYPE I,
* partno type TABLE OF vbeln,
wapart type vbeln,
waline type posnr,
waslno type vbep-etenr,
agreed type d.
*
DATA:
GT_EVENTS TYPE SLIS_T_EVENT,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
ls_sort TYPE slis_sortinfo_alv ,
IT_SORT TYPE slis_t_sortinfo_alv ,
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
DATA: GS_VARIANT LIKE DISVARIANT,
G_SAVE.
DATA XS(20) TYPE C.
G_REPID = SY-REPID.
gs_layout-info_fieldname = 'HILITE'.
PERFORM LAYOUT_INIT USING GS_LAYOUT.
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
GS_VARIANT-REPORT = G_REPID.
G_SAVE = 'A'.
START-OF-SELECTION.
PERFORM f_read_data.
END-OF-SELECTION.
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
perform fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
i_buffer_active = 'X'
I_CALLBACK_PROGRAM = G_REPID
I_STRUCTURE_NAME = 'GRSTAT'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IS_VARIANT = GS_VARIANT
* IT_SORT = IT_SORT
IT_EVENTS = GT_EVENTS[]
I_SAVE = 'A'
IMPORTING
E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = GS_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_OSR
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
data lv_ucomm type sy-ucomm.
lv_ucomm = sy-ucomm.
CASE lv_ucomm.
WHEN '&DATA_SAVE'.
PERFORM OSRUPDATE.
endcase.
endform.
FORM f_read_data.
DATA: str1 TYPE string,
str2 TYPE string,
str3 TYPE string,
textx TYPE string,
itab TYPE TABLE OF string,
wa type string, slen type i, cc TYPE i, kk TYPE i,
invdate TYPE d,
invqty TYPE P DECIMALS 3,
xmatnr(70) type c,
xwerks type werks.
select VBAP~vbeln VBAP~posnr VBAP~POSEX VBAK~AUART
into (wa_osr-sale_order_no, wa_osr-line_item, WA_OSR-POSEX, WA_OSR-ORDER_TYPE)
from VBAP INNER JOIN VBAK
ON VBAP~VBELN = VBAK~VBELN
WHERE vbap~vbeln in saleord
and vbap~matnr in partno
and vbak~kunnr in custmr
and VBAK~AUART = 'ZORE'.
* where LFSTA <> 'c'.
* and
APPEND wa_osr to IT_OSR.
endselect.
*
clear it_osr1.
select * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no in saleord.
append wa_osr1 to it_osr1.
xmatnr = wa_osr1-wo_no.
endselect.
loop at IT_OSR into wa_osr.
CLEAR WA_OSR1.
xs_o_no = wa_osr-sale_order_no .
shift xs_o_no LEFT DELETING LEADING '0'.
CONCATENATE xs_o_no wa_osr-line_item into xmatnr.
select single * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no = XS_O_NO
and line_item = wa_osr-LINE_ITEM
and s_l_no eq '000000'
OR s_l_no is NULL.
wa_osr-wo_no = wa_osr1-wo_no.
wa_osr-SHIPMENT_MODE = wa_osr1-SHP_MODE.
wa_osr-PO_STATUS = wa_osr1-PO_STAT.
wa_osr-FMC_EX_WORKS_DAT = wa_osr1-FMC_DATE.
wa_osr-FMC_EX_WORKS_MON = wa_osr1-FMC_MONTH.
wa_osr-GTN_AGREED_DATE = wa_osr1-GTN_DATE.
wa_osr-GTN_AGREED_MONTH = wa_osr1-GTN_MONTH.
wa_osr-REV_COMMIT_DATE = wa_osr1-REV_COM_DAT.
wa_osr-REV_COMMIT_MONTH1 = WA_OSR1-REV_COMMIT_MONTH.
wa_osr-REVISION = wa_osr1-REVISION.
wa_osr-DELAY_DAYS = wa_osr1-DELAY_DAYS.
wa_osr-DELAY_REASON = wa_osr1-DELAY_REASON.
wa_osr-DN_STREAM_REMARK = wa_osr1-DN_STR_REM.
wa_osr-UP_STREAM_REMARK = wa_osr1-UP_STR_REM.
wa_osr-GEN_REMARKS = wa_osr1-GEN_REM.
WA_OSR-FC_QTY = WA_OSR1-fc_QUAN.
WA_OSR-NF_QTY = WA_OSR1-NF_QUAN.
wa_osr-esi = wa_osr1-esi_fig.
wa_osr-esitotal = wa_osr1-esi_tot.
select SINGLE NETPR NETWR INTO (WA_OSR-UNIT_PRICE, WA_OSR-TOTAL_PRICE)
FROM VBAP WHERE VBELN = WA_OSR-SALE_ORDER_NO AND POSNR = WA_OSR-LINE_ITEM.
IF SY-SUBRC <> 0.
WA_OSR-UNIT_PRICE = WA_OSR1-UNIT_PRICE.
WA_OSR-TOTAL_PRICE = WA_OSR1-XTOTAL.
WA_OSR-FC_VAL = WA_OSR1-FC_VALUE.
WA_OSR-NF_VAL = WA_OSR1-NF_VALUE.
WA_OSR-esitotal = WA_OSR1-esi_tot.
ENDIF.
select single abgru
into (wa_osr-reason_4_rej)
from vbap
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
select single vkorg
into (wa_osr-org)
from vbak
where vbeln = wa_osr-sale_order_no.
select single lfsta gbsta
into (wa_osr-po_status, wa_osr-o_status)
from vbup
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-LINE_ITEM.
select single audat kunnr bstnk bstdk
into (wa_osr-sale_order_date , wa_osr-customer , wa_osr-po_no , wa_osr-po_date)
from vbak
where vbeln = wa_osr-sale_order_no.
* and audat in S_O_Date.
select SINGLE matnr werks kwmeng " lsmeng
into (wa_osr-part_no , wa_osr-plant , wa_osr-order_qty) " , wa_osr-qty_open)
from vbap
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
* ***********
xmatnr+0(18) = wa_osr-part_no.
xmatnr+18(4) = 'SGTN'.
xmatnr+22(2) = 'EX'.
xname = xmatnr.
CLEAR I_XTLINE.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = '0001'
LANGUAGE = 'E'
NAME = XNAME
OBJECT = 'MVKE'
TABLES
LINES = i_XTLINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6.
LOOP AT i_XTLINE into wa_xtline where tdline <> ' '.
CONCATENATE wa_osr-description WA_xtline-TDLINE into wa_osr-description.
endloop.
if wa_osr-description is initial.
wa_osr-description = '***** SALES TEXT NOT MAINTAINED'.
ENDIF.
select single ZZMAT_TYPE ZZMAT_MODEL GROES ZZMAT_TRIM ZZMAT_GRP2 ZZMAT_SUBGRP
INTO (WA_OSR-XTYPE, WA_OSR-MODEL, WA_OSR-XSIZE, WA_OSR-TRIM, WA_OSR-GRP2, WA_OSR-SUBGRP)
FROM MARA
WHERE MATNR = WA_OSR-PART_NO.
select single ZZMAT_ENDCON ZZMAT_TEMP ZZMAT_PRES ZZMAT_PRDSPEC ZZMAT_PERFREQ SPART
INTO (WA_OSR-ENDCON, WA_OSR-XTEMP, WA_OSR-PRES, WA_OSR-PRDSPEC, WA_OSR-PERFREQ, WA_OSR-MAINGRP)
FROM MARA
WHERE MATNR = WA_OSR-PART_NO.
SELECT SINGLE ETENR
INTO (WA_OSR-SLNO)
FROM VBEP
WHERE VBELN = WA_OSR-SALE_ORDER_NO
AND POSNR = WA_OSR-LINE_ITEM.
select max( revlv ) max( aennr )
from aeoi
into (wa_osr-revlv1, wa_osr-aennr)
where objkt = wa_osr-part_no.
if wa_osr-revlv = ' '.
wa_osr-revlv = wa_osr-revlv1.
endif.
SELECT single EDATU
INTO (WA_OSR-REV_COMMIT_DATE)
FROM VBEP
WHERE VBELN = WA_OSR-SALE_ORDER_NO
AND POSNR = WA_OSR-LINE_ITEM
and etenr = WA_OSR-SLNO.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = wa_osr-gtn_agreed_date
importing
output = wa_osr-gtn_agreed_month.
wa_osr-gtn_agreed_month = wa_osr-gtn_agreed_month+3(8).
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
INPUT = wa_osr-REV_COMMIT_DATE
IMPORTING
OUTPUT = wa_osr-REV_COMMIT_MONTH1.
wa_osr-REV_COMMIT_MONTH1 = wa_osr-REV_COMMIT_MONTH1+3(8).
FMCDT = wa_osr-FMC_EX_WORKS_DAT.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = fmcdt
importing
output = wa_osr-fmc_ex_works_mon.
wa_osr-fmc_ex_works_mon = wa_osr-fmc_ex_works_mon+3(8).
* ZOSRGTN-GEN_REM = WA_OSR-GEN_REMARKS.
clear t_shprem.
*
SELECT vbrp~vbeln vbrp~fklmg vbrp~matnr
into (wa_shprem-vbeln , wa_shprem-fklmg, wa_shprem-matnr)
from vbrp INNER JOIN vbrk on vbrp~vbeln = vbrk~vbeln
where vbrp~aubel = wa_osr-sale_order_no
and vbrp~aupos = wa_osr-line_item
and vbrp~PSTYV ne 'HUPM' " PACKING MATERIAL
and vbrp~fklmg <> 0.
* and vbrk~fksto ne 'X'.
APPEND wa_shprem to t_shprem.
*
ENDSELECT.
clear invqty.
clear wa_osr-shipping_remarks.
cc = 1.
loop at t_shprem into wa_shprem. " where vbtyp eq 'J'.
select single fkdat fksto
into (wa_shprem-fkdat,wa_shprem-fksto)
from vbrk
where vbeln = wa_shprem-vbeln.
wa_shprem-qty = wa_shprem-fklmg .
if wa_shprem-fksto = 'X'.
invqty = invqty - wa_shprem-qty.
else.
invqty = invqty + wa_shprem-qty.
endif.
shift wa_shprem-qty LEFT DELETING LEADING '0'.
shift wa_shprem-vbeln LEFT DELETING LEADING '0'.
write wa_shprem-fkdat DD/MM/YY to invdate.
if wa_shprem-fksto ne 'X'.
if cc = 1.
CONCATENATE wa_osr-shipping_remarks wa_shprem-vbeln ' / ' invdate ' / ' wa_shprem-qty into wa_osr-shipping_remarks.
else.
CONCATENATE wa_osr-shipping_remarks ' -- ' wa_shprem-vbeln ' / ' invdate ' / ' wa_shprem-qty into wa_osr-shipping_remarks.
endif.
cc = cc + 1.
endif.
endloop .
textx = wa_osr-part_no.
SPLIT textx AT '-' INTO: TABLE itab.
loop at itab into wa.
endloop.
slen = sy-tfill.
cc = 1.
str1 = '' .
loop at itab into wa.
if cc = 1.
str1 = wa.
else.
CONCATENATE str1 '-' wa into str1.
endif.
kk = slen - 1.
cc = cc + 1.
endloop.
wa_osr-qty_open = wa_osr-order_qty - invqty.
wa_osr-fc_val = WA_OSR-UNIT_PRICE * wa_osr-fc_qty.
wa_osr-nf_val = WA_OSR-UNIT_PRICE * wa_osr-nf_qty.
**case wa_osr-slno.
**
** when 0.
** write 'do nothing'.
** when others.
**
** Case WA_OSR-SUBGRP.
** when 'GV ASSY' OR 'KIT ASSY'.
**
** case WA_OSR-XSIZE+0(1).
** when 0001.
** wa_osr-esi = 77.
** wa_osr2-esi = 77.
** when 0002.
** wa_osr-esi = 65.
** wa_osr2-esi = 65.
** when 0003.
** wa_osr-esi = 104.
** wa_osr2-esi = 104.
** when 0004.
** wa_osr-esi = 125.
** wa_osr2-esi = 125.
** endcase.
**
**
** WHEN 'GATE'.
**
** case WA_OSR-XSIZE+0(1).
** when 0002.
** wa_osr2-esi = 33.
** wa_osr-esi = 33.
** when 0003.
** wa_osr2-esi = 64.
** wa_osr-esi = 64.
** when 0004.
** wa_osr2-esi = 81.
** wa_osr-esi = 81.
** endcase.
**
** WHEN 'SEAT'.
**
** case WA_OSR-XSIZE+0(1).
** when 0002.
** wa_osr2-esi = 16.
**
** when 0003.
** wa_osr2-esi = 20.
**
** when 0004.
** wa_osr2-esi = 22.
**
** endcase.
** when OTHERS.
** wa_osr2-esi = 99.
** wa_osr-esi = 99.
** Endcase.
**
** ENDCASE.
*MODIFY IT_OSR FROM WA_OSR.
if wa_osr-rev_commit_date is not initial.
if wa_osr-gtn_agreed_date is not INITIAL.
wa_osr-delay_days = wa_osr-REV_COMMIT_DATE - wa_osr-gtn_agreed_date.
IF wa_osr-delay_days <= 0.
wa_osr-status = 'ON SCHEDULE'.
ELSEIF wa_osr-delay_days > 0.
if wa_osr-delay_days <= 365.
wa_osr-status = 'DELAY'.
endif.
ENDIF.
if wa_osr-REV_COMMIT_DATE < wa_osr-gtn_agreed_date.
wa_osr-status = 'ON SCHEDULE'.
wa_osr-delay_days = 0.
endif.
else.
wa_osr-delay_days = '0'.
endif.
else.
wa_osr-delay_days = '0'.
endif.
if wa_osr-delay_days > '365'.
wa_osr-delay_days = '0'.
endif.
QTYDIFF = WA_OSR-ORDER_QTY - WA_OSR-QTY_OPEN.
IF WA_OSR-PO_STATUS = 'A'.
WA_OSR-PO_STATUS = 'NOT DELIVERED'.
ELSEIF WA_OSR-PO_STATUS = 'B'.
WA_OSR-PO_STATUS = 'PARTIALLY DELIVERED'.
ELSEIF WA_OSR-PO_STATUS = 'C'.
WA_OSR-PO_STATUS = 'COMPLETED'.
ENDIF.
IF wa_osr-o_status = 'A'.
WA_OSR-o_status = 'OPEN'.
ELSEIF wa_osr-o_status = 'B'.
WA_OSR-o_status = 'PARTIALLY COMPLETED'.
ELSEIF wa_osr-o_status = 'C'.
WA_OSR-o_status = 'CLOSED'.
ENDIF.
Case WA_OSR-SUBGRP.
when 'GV ASSY' OR 'KIT ASSY'.
case WA_OSR-XSIZE+0(1).
when 0001.
wa_osr-esi = 77.
wa_osr2-esi = 77.
when 0002.
wa_osr-esi = 65.
wa_osr2-esi = 65.
when 0003.
wa_osr-esi = 104.
wa_osr2-esi = 104.
when 0004.
wa_osr-esi = 125.
wa_osr2-esi = 125.
endcase.
WHEN 'GATE'.
case WA_OSR-XSIZE+0(1).
when 0002.
wa_osr2-esi = 33.
wa_osr-esi = 33.
when 0003.
wa_osr2-esi = 64.
wa_osr-esi = 64.
when 0004.
wa_osr2-esi = 81.
wa_osr-esi = 81.
endcase.
WHEN 'SEAT'.
case WA_OSR-XSIZE+0(1).
when 0002.
wa_osr2-esi = 16.
when 0003.
wa_osr2-esi = 20.
when 0004.
wa_osr2-esi = 22.
endcase.
when OTHERS.
wa_osr2-esi = 99.
wa_osr-esi = 99.
Endcase.
***********************************************
select single count(*)
into (lncnt) from vbep
where vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item.
wa_osr2 = wa_osr.
if lncnt > 1.
invqty = wa_osr-qty_open.
if wa_osr-slno = 1.
select vbeln posnr etenr wmeng edatu
into (wa_osr2-sale_order_no, wa_osr2-line_item, wa_osr2-slno, wa_osr2-sl_order_qty,
wa_osr2-REV_COMMIT_DATE)
from vbep
WHERE vbeln = wa_osr-sale_order_no
and posnr = wa_osr-line_item
order by vbeln posnr etenr DESCENDING .
select max( revlv ) max( aennr )
from aeoi
into (wa_osr-revlv, wa_osr-aennr)
where objkt = wa_osr-part_no.
if invqty > wa_osr2-sl_order_qty.
op_qty = wa_osr2-sl_order_qty.
invqty = invqty - wa_osr2-sl_order_qty.
elseif invqty ne 0.
op_qty = invqty.
invqty = 0.
else.
op_qty = 0.
endif.
* wa_osr-slno = '0'.
wa_osr2-qty_open = 0.
wa_osr2-order_qty = 0.
wa_osr2-sl_qty_open = op_qty.
wa_osr2-hilite = 'C311'.
* WA_OSR2-UNIT_PRICE = 0.
* WA_OSR2-TOTAL_PRICE = WA_OSR2-UNIT_PRICE * wa_osr2-SL_order_qty.
WA_OSR2-TOTAL_PRICE = 0.
WA_OSR2-UNIT_PRICE = 0.
APPEND wa_osr2 to ITab_OSR.
endselect.
endif.
wa_osr-hilite = 'C221'.
*ELSE.
* wa_osr-slno = '0'.
endif.
***********************************************
wa_osr-slno = 0.
TRANSLATE wa_osr-po_staTus TO UPPER CASE.
shift wa_osr-sale_order_no LEFT DELETING LEADING '0'.
* wa_osr2-esitotal = wa_osr2-esi * wa_osr2-sl_qty_open.
MODIFY IT_OSR FROM WA_OSR.
endloop.
loop at itab_osr into wa_osr2.
clear wa_osr1.
* CONCATENATE '00' wa_osr2-slno into wa_osr2-slno.
shift WA_OSR2-SALE_ORDER_NO LEFT DELETING LEADING '0'.
select single * from zosrgtn into CORRESPONDING FIELDS OF wa_osr1
where s_o_no = WA_OSR2-SALE_ORDER_NO
and line_item = WA_OSR2-LINE_ITEM
and s_l_no eq WA_OSR2-SLNO.
wa_osr2-GTN_AGREED_DATE = wa_osr1-GTN_DATE.
FMCDT = wa_osr2-GTN_AGREED_DATE.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = fmcdt
importing
output = wa_osr2-GTN_AGREED_MONTH.
wa_osr2-GTN_AGREED_MONTH = wa_osr2-GTN_AGREED_MONTH+3(8).
wa_osr2-GTN_AGREED_MONTH = wa_osr1-GTN_MONTH.
wa_osr2-REV_COMMIT_DATE = wa_osr1-REV_COM_DAT.
wa_osr2-rev_commit_month1 = wa_osr1-rev_commit_month.
wa_osr2-REVlv = wa_osr1-REVision.
** wa_osr2-REVISION = wa_osr1-REVISION.
wa_osr2-DELAY_DAYS = wa_osr1-DELAY_DAYS.
wa_osr2-DELAY_REASON = wa_osr1-DELAY_REASON.
wa_osr2-DN_STREAM_REMARK = wa_osr1-DN_STR_REM.
wa_osr2-UP_STREAM_REMARK = wa_osr1-UP_STR_REM.
wa_osr2-GEN_REMARKS = wa_osr1-GEN_REM.
wa_osr2-SHIPPING_REMARKS = ' '.
WA_OSR2-FC_QTY = WA_OSR1-FC_QUAN.
WA_OSR2-NF_QTY = WA_OSR1-NF_QUAN.
wa_osr2-esi = wa_osr1-esi_fig.
wa_osr2-esitotal = wa_osr1-esi_tot.
wa_osr-esi = wa_osr1-esi_fig.
wa_osr-esitotal = wa_osr1-esi_tot.
wa_osr2-fc_val = WA_OSR-UNIT_PRICE * wa_osr2-fc_qty.
wa_osr2-nf_val = WA_OSR-UNIT_PRICE * wa_osr2-nf_qty.
wa_osr2-esitotal = wa_osr2-esi * wa_osr2-sl_qty_open.
wa_osr-esitotal = wa_osr2-esi * wa_osr-sl_qty_open.
APPEND wa_osr2 to it_osr.
endloop.
delete IT_OSR where customer+0(3) ne 'FMC'.
IF PLANT IS NOT INITIAL .
delete IT_OSR where ORG <> PLANT.
ENDIF.
IF WA_OSR-REASON_4_REJ IS NOT INITIAL.
STATUS = 'C'.
ENDIF.
*
if status-low = 'A' and status-hiGH = 'B'.
delete IT_OSR where po_status EQ 'COMPLETED'.
ELSEif status-low = 'A' and status-hiGH = 'C'.
* delete IT_OSR where po_status EQ 'PARTIALLY DELIVERED'.
ELSEif status-low = 'B' and status-hiGH = 'C'.
delete IT_OSR where po_status EQ 'NOT DELIVERED'.
ELSEif status-low = 'A'.
delete IT_OSR where po_status ne 'NOT DELIVERED'.
ELSEif status-low = 'B'.
delete IT_OSR where po_status ne 'PARTIALLY DELIVERED'.
ELSEif status-low = 'C'.
delete IT_OSR where po_status ne 'COMPLETED'.
ENDIF.
if Ostatus-low = 'A' and Ostatus-hiGH = 'B'.
delete IT_OSR where o_status EQ 'CLOSED'.
ELSEif Ostatus-low = 'A' and Ostatus-hiGH = 'C'.
* delete IT_OSR where o_status EQ 'PARTIALLY COMPLETED'.
ELSEif Ostatus-low = 'B' and Ostatus-hiGH = 'C'.
delete IT_OSR where o_status EQ 'OPEN'.
ELSEif Ostatus-low = 'A'.
delete IT_OSR where o_status ne 'OPEN'.
ELSEif Ostatus-low = 'B'.
delete IT_OSR where o_status ne 'PARTIALLY COMPLETED'.
ELSEif Ostatus-low = 'C'.
delete IT_OSR where o_status ne 'CLOSED'.
ENDIF.
delete it_osr where PART_NO IS INITIAL.
loop at it_osr into wa_osr.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
INPUT = wa_osr-REV_COMMIT_DATE
IMPORTING
OUTPUT = wa_osr-REV_COMMIT_MONTH1.
wa_osr-REV_COMMIT_MONTH1 = wa_osr-REV_COMMIT_MONTH1+3(8).
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
exporting
input = wa_osr-gtn_agreed_date
importing
output = wa_osr-gtn_agreed_month.
wa_osr-gtn_agreed_month = wa_osr-gtn_agreed_month+3(8).
MODIFY it_osr from wa_osr.
clear wa_osr.
ENDLOOP.
sort it_osr ASCENDING by sale_order_no line_item ASCENDING slno ASCENDING.
*ENDIF.
ENDFORM.
FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
RS_LAYOUT-DETAIL_POPUP = space.
ENDFORM.
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM.
"
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
"
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER, fromdate TYPE d, todate type d, linfo type string.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'LOADING SHEET.'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
* CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = linfo .
APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM.
form fieldcat.
wa_fieldcat-fieldname = 'CUSTOMER' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'CUSTOMER' .
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PLANT' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '6' .
wa_fieldcat-SELTEXT_M = 'PLANT' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WO_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
wa_fieldcat-SELTEXT_M = 'W.O.No.' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
***
wa_fieldcat-fieldname = 'PO_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'P.O.No.'.
wa_fieldcat-outputlen = '13'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
*
wa_fieldcat-fieldname = 'PO_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'P.O.DATE' .
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SALE_ORDER_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SALE ORDER No.' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-EMPHASIZE = 'C100'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SALE_ORDER_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'S.O DATE' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
WA_FIELDCAT-JUST = 'R'.
wa_fieldcat-outputlen = '10' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'LINE_ITEM' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '4' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-SELTEXT_M = 'LINE ITEM' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SLNO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '4' .
wa_fieldcat-JUST = 'R' .
WA_FIELDCAT-EMPHASIZE = 'C100'.
wa_fieldcat-SELTEXT_M = 'S.L.NO' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ORDER_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ORDER QTY.' .
WA_FIELDCAT-EMPHASIZE = 'C511'.
wa_fieldcat-outputlen = '6' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'OPEN QTY'.
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C511'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_ORDER_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SL.ORDER QTY.' .
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
* wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
* wa_fieldcat-tabname = 'IT_OSR' .
* wa_fieldcat-SELTEXT_M = 'SL OPEN QTY' .
* wa_fieldcat-outputlen = '6' .
* WA_FIELDCAT-EMPHASIZE = 'C211'.
* APPEND wa_fieldcat to i_fieldcat.
* clear wa_fieldcat.
wa_fieldcat-fieldname = 'PART_NO' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '15' .
wa_fieldcat-SELTEXT_M = 'PART No.' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'REVLV1' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV' .
WA_FIELDCAT-EMPHASIZE = 'X'.
wa_fieldcat-outputlen = '4' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'POSEX' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'CUSTOMER PO REV' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-MGR'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
* WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'DESCRIPTION' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '35' .
wa_fieldcat-SELTEXT_M = 'DESCRIPTION' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MAINGRP' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'DIVISION' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'XTYPE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
wa_fieldcat-SELTEXT_M = 'TYPE' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MODEL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'MODEL' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
**
wa_fieldcat-fieldname = 'XSIZE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SIZE' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TRIM' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'TRIM' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GRP2' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'GROUP' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SUBGRP' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'SUB GRP' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ENDCON' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'END CONN' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PRES' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PRES RATING' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PRDSPEC' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PSL' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PERFREQ' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-outputlen = '8' .
WA_FIELDCAT-EMPHASIZE = 'C411'.
wa_fieldcat-SELTEXT_M = 'PERF REQ' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
***************
wa_fieldcat-fieldname = 'SHIPMENT_MODE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SHIPMENT MODE' .
wa_fieldcat-outputlen = '6' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PO_STATUS' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'DELIVERY STATUS ' .
wa_fieldcat-outputlen = '20' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'O_STATUS' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'OVERALL STATUS ' .
wa_fieldcat-outputlen = '15' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FMC_EX_WORKS_DAT' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FMC-EX-WORKS-DATE' .
wa_fieldcat-outputlen = '10' .
if sy-uname <> 'FMC-USER'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FMC_EX_WORKS_MON' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FMC-EX-WORKS-MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GTN_AGREED_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'GTN AGREED DATE' .
wa_fieldcat-outputlen = '10' .
if sy-uname = 'SD-EXEC' OR sy-uname = 'DEVELOPER' OR sy-uname = 'ABAPUSER' .
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
* WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'GTN_AGREED_MONTH' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'GTN AGREED MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
if sy-uname = 'SD-EXEC'
OR sy-uname = 'SD-MGR'
OR sy-uname = 'FMC-USER'
OR sy-uname = 'VP-USER'
OR sy-uname = 'GM-USER'
OR sy-uname = 'DGM-USER'
OR sy-uname = 'HO-SD-MGR'
OR sy-uname = 'HO-FI-MGR'
OR sy-uname = 'PM-USER'
OR sy-uname = 'DEVELOPER'
OR sy-uname = 'ABAPUSER'.
wa_fieldcat-fieldname = 'UNIT_PRICE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'UNIT PRICE' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TOTAL_PRICE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'TOTAL PRICE' .
WA_FIELDCAT-EMPHASIZE = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
ENDIF.
wa_fieldcat-fieldname = 'REV_COMMIT_DATE' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV.COMMIT.DATE' .
wa_fieldcat-outputlen = '10' .
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'REV_COMMIT_MONTH1' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'REV COMMIT MONTH' .
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-EMPHASIZE = 'C411'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ESI' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ESI' .
wa_fieldcat-outputlen = '16' .
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'SL_QTY_OPEN' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'SL OPEN QTY' .
wa_fieldcat-outputlen = '6' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ESITOTAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'ESI TOTAL' .
wa_fieldcat-outputlen = '16' .
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FCNF' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC/NF' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
WA_fieldcat-edit = 'X'.
WA_FIELDCAT-INPUT = 'X'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FC_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC QTY' .
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-EMPHASIZE = 'C211'.
WA_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NF_QTY' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'NF QTY' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
if sy-uname = 'SD-EXEC' OR SY-UNAME = 'DEVELOPER'.
WA_FIELDCAT-INPUT = 'X'.
WA_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'FC_VAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'FC VALUE' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NF_VAL' .
wa_fieldcat-tabname = 'IT_OSR' .
wa_fieldcat-SELTEXT_M = 'NF VALUE' .
WA_FIELDCAT-EMPHASIZE = 'C211'.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
APPEND wa_fieldcat to i_fieldcat.
clear wa_fieldcat.
endform.
FORM OSRUPDATE.
LOOP AT IT_OSR INTO WA_OSR.
ZOSRGTN-S_O_NO = WA_OSR-SALE_ORDER_NO.
ZOSRGTN-LINE_ITEM = WA_OSR-LINE_ITEM.
ZOSRGTN-S_L_NO = WA_OSR-slno.
ZOSRGTN-WO_NO = WA_OSR-WO_NO.
ZOSRGTN-SHP_MODE = WA_OSR-SHIPMENT_MODE.
ZOSRGTN-PO_STAT = WA_OSR-PO_STATUS.
ZOSRGTN-FMC_DATE = WA_OSR-FMC_EX_WORKS_DAT.
ZOSRGTN-FMC_MONTH = WA_OSR-FMC_EX_WORKS_MON.
ZOSRGTN-GTN_DATE = WA_OSR-GTN_AGREED_DATE.
ZOSRGTN-GTN_MONTH = WA_OSR-GTN_AGREED_MONTH.
ZOSRGTN-REV_COM_DAT = WA_OSR-REV_COMMIT_DATE.
ZOSRGTN-REV_COMMIT_MONTH = WA_OSR-REV_COMMIT_MONTH1.
ZOSRGTN-REVISION = WA_OSR-REVISION.
ZOSRGTN-DELAY_DAYS = WA_OSR-DELAY_DAYS.
ZOSRGTN-DELAY_REASON = WA_OSR-DELAY_REASON.
ZOSRGTN-DN_STR_REM = WA_OSR-DN_STREAM_REMARK.
ZOSRGTN-UP_STR_REM = WA_OSR-UP_STREAM_REMARK.
ZOSRGTN-GEN_REM = WA_OSR-GEN_REMARKS.
ZOSRGTN-FC_QUAN = wa_OSR-FC_QTY.
ZOSRGTN-NF_QUAN = wa_OSR-NF_QTY.
ZOSRGTN-FC_VALUE = wa_OSR-FC_VAL.
ZOSRGTN-NF_VALUE = wa_OSR-NF_VAL.
zosrgtn-esi_fig = wa_osr-esi.
zosrgtn-esi_tot = wa_osr-esitotal.
zosrgtn-xsize = wa_osr-xsize.
MODIFY it_osr from wa_osr.
clear wa_osr.
select SINGLE s_o_no line_item from zosrgtn INTO (WA_OSR1-S_O_NO, WA_OSR1-LINE_ITEM)
WHERE s_o_no = WA_OSR-SALE_ORDER_NO
and line_item = WA_OSR-LINE_ITEM
and s_l_no = wa_osr-slno.
if sy-subrc <> 0.
INSERT INTO ZOSRGTN VALUES ZOSRGTN.
else.
UPDATE ZOSRGTN .
ENDIF.
ENDLOOP.
ENDFORM.
Note: Case statement is where i populate the data and got stuck up.
2013 May 23 7:00 AM
Instead of code
select SINGLE s_o_no line_item from zosrgtn INTO (WA_OSR1-S_O_NO, WA_OSR1-LINE_ITEM)
WHERE s_o_no = WA_OSR-SALE_ORDER_NO
and line_item = WA_OSR-LINE_ITEM
and s_l_no = wa_osr-slno.
if sy-subrc <> 0.
INSERT INTO ZOSRGTN VALUES ZOSRGTN.
else.
UPDATE ZOSRGTN .
use:: modify ZOSRGTN from it_osr.
2013 May 22 1:42 PM
Maybe a good or a very basic question, difficult to decide and to respond more..
"read the data correctly from database" could be an answer, did I guess ?
Regards,
Raymond
2013 May 22 2:25 PM
Hi Samuel,
Please paste the code and which will help us in comprehending the issue.
Regards,
Ankit.