‎2008 Aug 08 9:54 AM
Hi to all,
iam working on alv report which has the option as normal report.when iam trying to execute it in dev it's working fine.but when they ran in qa it's moving short dump?again i reviwed the code but every thing is fine.but iam not getting why is this happening?
iam using 4.7 and i don't have code inspector to check.?
in the short dump iam getting the curssor to be pointing to this perticular statement.
SELECT SUM( kwmeng ) INTO ldata_qty-demqty FROM vbap AS vbap
INNER JOIN vbak AS vbak ON vbapvbeln EQ vbakvbeln
INNER JOIN vbuk AS vbuk ON vbukvbeln EQ vbapvbeln
WHERE vbap~matnr EQ ldata_qty-matnr
AND vbak~auart EQ 'ZFD'
AND vbuk~gbstk NE 'C'.
could any one help me?
tahnk you,
Regards,
shahsi
‎2008 Aug 08 9:58 AM
Plz chnage ur code as per bdlow
SELECT SUM( kwmeng ) As kwmeng INTO ldata_qty-demqty
FROM vbap AS vbap
INNER JOIN vbak AS vbak ON vbapvbeln EQ vbakvbeln
INNER JOIN vbuk AS vbuk ON vbukvbeln EQ vbapvbeln
WHERE vbap~matnr EQ ldata_qty-matnr
AND vbak~auart EQ 'ZFD'
AND vbuk~gbstk NE 'C'
GROUP BY kwmeng.
rgds
rajesh
‎2008 Aug 08 10:02 AM
hi rajesh,
can i send the entire code so that can u check it and please do let me know if at all any changes...cause it's going to short dump in QA.
As per u r querry will it works fine in QA.
Regards,
shashi
‎2008 Aug 08 10:06 AM
Please tell us the short dump title and the text in section "error analysis".
‎2008 Aug 08 10:23 AM
HI,
It's giving me the text in short dump is:Runtime error-time_out.
and the ---> is placed in the select query which i mentioned earlier.
Regards,
shashi
‎2008 Aug 08 10:35 AM
Please include such important information in your initial post next time.
Use index table VAPMA in your select statement, that should cure the TIME_OUT symptom in QA, which has much more data than DEV obviously.
Thomas
‎2008 Aug 08 11:09 AM
HI,
That's correct but in my requirement i need get the status of the document which iam collecting from VBUK-GBSTK for this
is this VAMPA will work r not?
Please let me know how can i do further?
Regards,
shashi
‎2008 Aug 08 11:29 AM
hi to all,
iam sending the code below please do let me know any modifications required so that i can avoid the short dump issue in QA.In dev also its taking few minitus to give output.
regards,
shashi
REPORT zsr_rd01_orderstatus LINE-SIZE 730 MESSAGE-ID zsd_general.
INCLUDE <icon>.
INCLUDE <symbol>.
TYPE-POOLS: slis, kkblo.
TABLES: vbfa, vttk, vttp, vbak, likp, lips, vbap, ltdx, adrc, vbkd,
vbuk, vbup,kuwev,zscac_vsbed,caufv.
************************************************************************
* D A T A D E F I N I T I O N S *
************************************************************************
DATA: g_repid LIKE sy-repid.
DATA: g_variant LIKE disvariant.
DATA: fieldcat TYPE slis_t_fieldcat_alv.
DATA: gs_layout TYPE slis_layout_alv.
DATA: lc_display TYPE char2 VALUE '03'.
DATA: it_default_fieldcat_lit
TYPE kkblo_t_fieldcat WITH HEADER LINE.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: p_variant LIKE disvariant-variant,
l_print TYPE slis_print_alv,
lf_events TYPE slis_t_event,
l_page_count(5)
TYPE c VALUE '1',
l_datum LIKE syst-datum,
l_uzeit LIKE syst-uzeit,
l_linsz LIKE syst-linsz,
l_slset LIKE syst-slset,
l_repid LIKE sy-repid,
l_title LIKE syst-title,
lt_selopts LIKE rsparams OCCURS 0,
l_layout TYPE slis_layout_alv,
l_len TYPE i,
l_pos TYPE i,
lins TYPE i.
TYPES: quant(7) TYPE p,
amount(7) TYPE p DECIMALS 2.
DATA: BEGIN OF ldata OCCURS 0,
vkorg LIKE vbak-vkorg,
vbeln LIKE vbak-vbeln,
kunnr LIKE vbak-kunnr,
erdat4 LIKE vbak-erdat, "Apple file date
erzet4 LIKE vbak-erzet, "Apple file time
erdat LIKE vbak-erdat,
erzet2 LIKE vbak-erzet,
lifsk LIKE vbak-lifsk,
vbelv LIKE likp-vbeln,
erdat3 LIKE likp-erdat,
erzet3 LIKE likp-erzet,
vsbed LIKE likp-vsbed,
kunwe TYPE kunwe,
carrier LIKE tvsbt-vtext,
bstkd LIKE vbkd-bstkd,
bstkd_e LIKE vbkd-bstkd_e,
ihrez LIKE vbkd-ihrez,
wadat_ist LIKE likp-wadat_ist,
lifsk2 LIKE likp-lifsk,
knump LIKE likp-knump,
erzet LIKE vbfa-erzet,
status TYPE char8,
shpto TYPE vbpa-kunnr,
name1 LIKE adrc-name1,
name2 LIKE adrc-name2,
name3 LIKE adrc-name3,
street LIKE adrc-street,
str_suppl1 LIKE adrc-str_suppl1,
city1 LIKE adrc-city1,
region LIKE adrc-region,
post_code1 LIKE adrc-post_code1,
country LIKE adrc-country,
tel_number LIKE adrc-tel_number,
fax_number LIKE adrc-fax_number,
name1_re LIKE adrc-name1,
name2_re LIKE adrc-name2,
name3_re LIKE adrc-name3,
street_re LIKE adrc-street,
str_suppl1_re LIKE adrc-str_suppl1,
city1_re LIKE adrc-city1,
region_re LIKE adrc-region,
post_code1_re LIKE adrc-post_code1,
country_re LIKE adrc-country,
tel_number_re LIKE adrc-tel_number,
fax_number_re LIKE adrc-fax_number,
nambe LIKE komv-kwert,
inhalt LIKE vekp-inhalt,
filename LIKE vbak-zzfilename,
cmpnm LIKE vbak-zzbillto_name,
bname LIKE vbak-bname,
posnr LIKE vbap-posnr,
posex LIKE vbap-posex,
werks LIKE vbap-werks,
matnr LIKE vbap-matnr,
arktx LIKE vbap-arktx,
pstyv LIKE vbap-pstyv,
kwmeng TYPE p , "like vbap-kwmeng,
vmsta LIKE mvke-vmsta,
dismm LIKE marc-dismm,
matkl LIKE vbap-matkl,
mvgr1 LIKE vbap-mvgr1,
mvgr2 LIKE vbap-mvgr2,
mvgr3 LIKE vbap-mvgr3,
mvgr4 LIKE vbap-mvgr4,
mvgr5 LIKE vbap-mvgr5,
absta LIKE vbup-absta,
gbstk LIKE vbuk-gbstk,
abstk LIKE vbuk-abstk,
sammg LIKE vbsk-sammg,
sortf LIKE vbss-sortf,
ernam LIKE vbsk-ernam,
erdat_g LIKE vbsk-erdat,
uzeit_g LIKE vbsk-uzeit,
vbnum LIKE vbsk-vbnum,
vtext_g LIKE vbsk-vtext,
posnl LIKE lips-posnr,
kbetr LIKE konv-kbetr,
kwert LIKE konv-kwert,
submi LIKE vbak-submi,
venum LIKE vekp-venum,
currncy TYPE char3,
customamt TYPE char10,
dele TYPE char1, "Deletion Indicator
charg TYPE lips-charg, "Batch Number
sernr TYPE equi-sernr, "Serial Number
atwrt TYPE ausp-atwrt, " Manufacturer number
landx TYPE t005t-landx,
site TYPE char20,
incoter TYPE char25,
delivc TYPE char5,
backord TYPE char20,
comments TYPE char20,
sshpdt TYPE vbak-erdat,
labst TYPE p,
owner TYPE char20,
qtyres TYPE p,
demqty TYPE p,
buildqty TYPE p,
poqty TYPE ekpo-menge,
poquant TYPE p,
ordval TYPE konv-kwert,
ordst TYPE char10,
linest TYPE char10,
channel TYPE vbak-zzcustchannel,
onhnd TYPE p,
solto TYPE kunwe,
sold TYPE kna1-kunnr,
namecmp TYPE adrc-name3,
knumv TYPE konv-knumv,
END OF ldata.
DATA: ldatas LIKE TABLE OF ldata WITH HEADER LINE.
DATA : ldatal LIKE TABLE OF ldata WITH HEADER LINE.
DATA : ldata1 LIKE TABLE OF ldata WITH HEADER LINE.
DATA : ldata_qty LIKE TABLE OF ldata WITH HEADER LINE.
DATA :wa_data LIKE LINE OF ldata.
DATA : BEGIN OF lvbpa OCCURS 0,
vbeln LIKE vbpa-vbeln,
kunnr LIKE vbpa-kunnr,
END OF lvbpa.
DATA : lclobjdat LIKE STANDARD TABLE OF clobjdat WITH HEADER LINE.
CONSTANTS:
lf_formname_top_of_page
TYPE slis_formname
VALUE 'TOP_OF_PAGE',
lf_formname_top_of_coverpage
TYPE slis_formname
VALUE 'TOP_OF_COVERPAGE',
lf_formname_after_line_output
TYPE slis_formname
VALUE 'AFTER_LINE_OUTPUT',
lf_formname_before_line_output
TYPE slis_formname
VALUE 'BEFORE_LINE_OUTPUT',
lf_formname_top_of_list
TYPE slis_formname
VALUE 'TOP_OF_LIST'.
************************************************************************
* S E L E C T I O N S C R E E N *
************************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK prog WITH FRAME TITLE text-f01.
SELECT-OPTIONS so_vkorg FOR vbak-vkorg "Sales Organization
NO INTERVALS OBLIGATORY.
SELECT-OPTIONS so_erdat FOR vbak-erdat. "Order Creation Date
SELECT-OPTIONS so_kunnr FOR vbak-kunnr. "Sold to Party
SELECT-OPTIONS so_vbeln FOR vbak-vbeln "Sales Order Number
NO INTERVALS.
SELECT-OPTIONS so_bstkd FOR vbkd-bstkd "Customer PO
NO INTERVALS.
SELECT-OPTIONS so_bstke FOR vbkd-bstkd_e "Ship to PO
NO INTERVALS.
SELECT-OPTIONS so_ihrez FOR vbkd-ihrez "Sold to Reference
NO INTERVALS.
SELECT-OPTIONS so_kunwe FOR kuwev-kunnr "Ship tp party
NO INTERVALS .
PARAMETERS: p_bname LIKE vbak-bname, "Ship to party name
p_cmpnm LIKE vbak-zzbillto_name. "ship to party name3
SELECT-OPTIONS so_pstyv FOR vbap-pstyv.
SELECT-OPTIONS so_matnr FOR vbap-matnr.
SELECT-OPTIONS so_matkl FOR vbap-matkl.
SELECT-OPTIONS so_vsbed FOR vbak-vsbed.
SELECT-OPTIONS so_cntry FOR adrc-country.
SELECT-OPTIONS so_vblnl FOR likp-vbeln.
SELECT-OPTIONS so_erdtl FOR likp-erdat.
SELECT-OPTIONS so_wadat FOR likp-wadat.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN: BEGIN OF BLOCK direct
WITH FRAME TITLE text-f59.
PARAMETERS: falvl TYPE slis_vari. " default '/ZMTHSUMM'.
SELECTION-SCREEN: END OF BLOCK direct.
SELECTION-SCREEN: END OF BLOCK prog.
SELECTION-SCREEN BEGIN OF BLOCK alv WITH FRAME TITLE text-169.
PARAMETERS : p_alv AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK alv.
AT SELECTION-SCREEN
ON VALUE-REQUEST FOR falvl.
PERFORM f4_vari. " changing g_variant.
AT SELECTION-SCREEN ON BLOCK prog.
PERFORM validate_screen.
************************************************************************
TOP-OF-PAGE.
IF p_alv NE 'X'. " For a simple report
PERFORM classic_report.
ENDIF.
************************************************************************
************************************************************************
* S T A R T O F S E L E C T I O N *
************************************************************************
START-OF-SELECTION.
PERFORM get_data.
PERFORM process_data.
IF p_alv = 'X'. "For Alv format
PERFORM initialize_alv.
ENDIF.
************************************************************************
* E N D O F S E L E C T I O N *
************************************************************************
END-OF-SELECTION.
IF p_alv = 'X'. "Alv Format
PERFORM list_data.
ELSE .
PERFORM classic_rept_data. "Simple Report
ENDIF.
*
************************************************************************
* F O R M S *
************************************************************************
*&---------------------------------------------------------------------*
*& Form populate_fieldcat
*&---------------------------------------------------------------------*
FORM populate_fieldcat
USING t_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DEFINE addfield.
ls_fieldcat-tabname = &1.
ls_fieldcat-fieldname = &2.
ls_fieldcat-ref_fieldname = &3.
ls_fieldcat-ref_tabname = &4.
ls_fieldcat-reptext_ddic = &5.
ls_fieldcat-just = &6.
ls_fieldcat-seltext_l = &7.
ls_fieldcat-seltext_m = &8.
ls_fieldcat-seltext_s = &9.
ls_fieldcat-ddictxt = 'L'.
append ls_fieldcat to fieldcat.
clear ls_fieldcat.
END-OF-DEFINITION.
addfield 'LDATA' 'BSTKD' 'BSTKD' 'VBKD' ' ' 'L'
'McAfee Order No' 'McAfee Order No' 'McAfee Order No'.
addfield 'LDATA' 'VBELN' 'VBELN' 'VBAK' ' ' 'L'
'Arvato order Number' 'arvato Order number' 'arvato Order number'.
addfield 'LDATA' 'BSTKD_E' 'BSTKD_E' 'VBKD' ' ' 'L'
'Cust REF Number' 'Cust REF Number' 'Cust REF Number'.
addfield 'LDATA' 'SOLTO' 'KUNNR' 'VBAK' ' ' 'L'
'Customer Name' 'Customer Name' 'Customer Name'.
addfield 'LDATA' 'LANDX' 'LANDX' 'T005T' ' ' 'L'
'Country Sold' 'Country Sold' 'Country Sold'.
addfield 'LDATA' 'SITE' 'CHAR20' ' ' ' ' 'L'
'Ship From' 'Ship From' 'Ship From'.
IF ldata-delivc = 'XML'.
addfield 'LDATA' 'IHREZ' 'IHREZ' 'VBKD' ' ' 'L'
'Sold To' 'Sold To' 'Sold To'.
ELSE.
addfield 'LDATA' 'SHPTO' 'KUNWE' ' ' ' ' 'L'
'Sold To' 'Sold To' 'Sold To'.
ENDIF.
addfield 'LDATA' 'NAME1' 'NAME1' 'ADRC' ' ' 'L'
'Ship to Name' 'Shipto Name' 'Shipto Name'.
addfield 'LDATA' 'STR_SUPPL1' 'STR_SUPPL1' 'ADRC' ' ' 'L'
'Ship to Address1' 'Shipto Address1' 'Shipto Address1'.
addfield 'LDATA' 'STREET' 'STREET' 'ADRC' ' ' 'L'
'Ship to Address2' 'Shipto Address2' 'Shipto Address2'.
addfield 'LDATA' 'CITY1' 'CITY1' 'ADRC' ' ' 'L'
'Ship to City' 'Ship to City' 'Ship to City'.
addfield 'LDATA' 'REGION' 'REGION' 'ADRC' ' ' 'L'
'Ship to State' 'Ship to State' 'Ship to State'.
addfield 'LDATA' 'POST_CODE1' 'POST_CODE1' 'ADRC' ' ' 'L'
'Ship to ZIP' 'Ship to ZIP' 'Ship to ZIP'.
addfield 'LDATA' 'COUNTRY' 'COUNTRY' 'ADRC' ' ' 'L'
'Ship to Country' 'Ship to Country' 'Ship to Country' .
addfield 'LDATA' 'ERDAT' 'ERDAT' 'VBAK' ' ' 'L'
'Date Entered' 'Date Entered' 'Date Entered'.
addfield 'LDATA' 'SSHPDT' 'ERDAT' 'VBAK' ' ' 'L'
'Scheduled Ship Date' 'Scheduled Ship Date' 'Scheduled Ship Date'.
IF ldata-delivc = 'XML'.
addfield 'LDATA' 'POSEX' 'POSEX' 'VBAP' ' ' 'L'
'Line Number' 'Line Number' 'Line Number'.
ELSE.
addfield 'LDATA' 'POSNR' 'POSNR' 'VBAP' ' ' 'L'
'Line Number' 'Line Number' 'Line Number'.
ENDIF.
addfield 'LDATA' 'MATNR' 'MATNR' 'VBAP' ' ' 'L'
'McAfee SKU' 'McAfee SKU' 'McAfee SKU'.
addfield 'LDATA' 'KWMENG' 'KWMENG' 'VBAP' ' ' 'R'
'Order Qty' 'Order Quantity' 'Order Quantity'.
addfield 'LDATA' 'ONHND' ' ' ' ' ' ' 'R'
'On Hand Qty' 'On Hand Quantity' 'On Hand Quantity'.
addfield 'LDATA' 'OWNER' 'CHAR20' ' ' ' ' 'R'
'Client Owned Inv' 'Client Owned Inv' 'Client Owned Inv'.
addfield 'LDATA' 'QTYRES' ' ' ' ' ' ' 'R'
'Qty Reserved' 'Qty Reserved' 'Client Owned'.
addfield 'LDATA' 'DEMQTY' ' ' ' ' ' ' 'R'
'Demand Qty' 'Demand Quantity' 'Demand Quantity'.
addfield 'LDATA' 'BUILDQTY' ' ' ' ' ' ' 'R'
'Build Qty' 'Build Qty' 'Build Qty'.
addfield 'LDATA' 'POQUANT' ' ' ' ' ' ' 'R'
'PO Qty ' 'PO Qty' 'PO Qty'.
addfield 'LDATA' 'ORDVAL' 'VERPR' 'MBEW' ' ' 'R'
'Value' 'Value' 'Value'.
addfield 'LDATA' 'ORDST' 'CHAR10' ' ' ' ' 'R'
'Order Status' 'Order Status' 'Order Status'.
addfield 'LDATA' 'LINEST' 'CHAR10' ' ' ' ' 'R'
'Line Status ' 'Line Status' 'Line Status'.
addfield 'LDATA' 'CHANNEL' 'ZZCUSTCHANNEL' 'VBAK' ' ' 'R'
'Channel' 'Channel' 'Channel'.
addfield 'LDATA' 'MATKL' 'MATKL' 'VBAP' ' ' 'L'
'Business Unit' 'Business Unit' 'Business Unit'.
addfield 'LDATA' 'INCOTER' 'CHAR25' ' ' ' ' 'R'
'Inco Terms ' 'IncoTerms' 'Incoterm'.
addfield 'LDATA' 'DELIVC' 'CHAR5' ' ' ' ' 'L'
'Delivery Code' 'Delivery Code' 'Delivery Code'.
addfield 'LDATA' 'VSBED' 'VSBED' 'VBAK' ' ' 'L'
'Ship Code' 'Ship Code' 'Ship Code'.
addfield 'LDATA' 'CARRIER' ' ' ' ' ' ' 'L'
'Carrier Description' 'Carrier Description' 'Carrier Description'.
ENDFORM. " populate_fieldcat
*&---------------------------------------------------------------------*
*& Form auth_check
*&---------------------------------------------------------------------*
FORM auth_check.
ENDFORM. " auth_check
*&---------------------------------------------------------------------*
*& Form F4_VARI
*&---------------------------------------------------------------------*
FORM f4_vari.
DATA: i_variant LIKE disvariant,
e_variant LIKE disvariant.
DATA: a_save TYPE c VALUE 'A'.
i_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = i_variant
i_save = a_save
IMPORTING
es_variant = e_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE s205(0k).
ELSE.
falvl = e_variant-variant.
ENDIF.
ENDFORM. " F4_VARI
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data.
DATA: tmpstr TYPE char255,
l_nambe LIKE vekp-nambe,
lpos TYPE i,
old_vbeln LIKE vbak-vbeln,
old_matnr LIKE mvke-matnr,
old_werks LIKE marc-werks,
lvmsta LIKE mvke-vmsta,
ldismm LIKE marc-dismm,
ldatat LIKE TABLE OF ldata WITH HEADER LINE,
ltdname LIKE thead-tdname,
ltline LIKE TABLE OF tline WITH HEADER LINE.
DATA: BEGIN OF ltp OCCURS 0,
vbeln LIKE likp-vbeln,
knump LIKE likp-knump,
END OF ltp.
DATA: BEGIN OF ltkonv OCCURS 0,
knumv LIKE konv-knumv,
kposn LIKE konv-kposn,
kbetr LIKE konv-kbetr,
kwert LIKE konv-kwert,
END OF ltkonv.
DATA: lndx TYPE i.
RANGES: so_bname FOR vbak-bname,
so_cmpnm FOR vbak-zzbillto_name.
DATA: l_solto LIKE kna1-kunnr,
l_country LIKE adrc-country,
l_land1 LIKE t001w-land1,
l_regio LIKE t001w-regio,
l_inco1 LIKE likp-inco1,
l_inco2 LIKE likp-inco2,
l_sshpdt TYPE sy-datum,
l_weekday LIKE dtresr-weekday,
l_labst LIKE mard-labst,
l_repid TYPE sy-repid,
l_dele(5) TYPE c,
l_valfrom(40) TYPE c,
l_valueto(40) TYPE c,
l_region(40) TYPE c,
l_regto(40) TYPE c,
l_atwrt(40) TYPE c,
l_kunwe(5) TYPE c,
l_vsbed LIKE vbak-vsbed,
l_augru LIKE vbak-augru,
l_aug(5) TYPE c,
l_werks TYPE werks_d,
l_valtoaug(40) TYPE c.
DATA : l_buildquant LIKE plaf-gsmng,
l_poquant LIKE ekpo-menge.
DATA : l_matklmara LIKE mara-matkl.
DATA : l_names LIKE thead-tdname,
l_object LIKE thead-tdobject..
DATA : l_line1(20) TYPE c,
l_line2(20) TYPE c.
.
DATA : BEGIN OF lt_menge OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
menge LIKE ekpo-menge,
msmenge LIKE mseg-menge,
END OF lt_menge.
DATA : BEGIN OF lt_mseg OCCURS 0,
mblnr LIKE mseg-mblnr,
mjahr LIKE mseg-mjahr,
matnr LIKE mseg-matnr,
menge LIKE mseg-menge,
END OF lt_mseg.
DATA : BEGIN OF lt_mseg_102 OCCURS 0,
mblnr LIKE mseg-mblnr,
mjahr LIKE mseg-mjahr,
matnr LIKE mseg-matnr,
menge LIKE mseg-menge,
END OF lt_mseg_102.
DATA : l_menge_102 LIKE mseg-menge.
DATA : l_kwmeng1 TYPE p,
l_labst1 TYPE p,
l_qtyres1 TYPE p,
l_demqty TYPE p,
l_buildqty1 TYPE p,
l_poqty1 TYPE p,
l_ordval1 TYPE p,
l_buildqty TYPE p..
DATA: l_labst11 TYPE p.
DATA : BEGIN OF lt_demqty OCCURS 0,
vbeln LIKE vbak-vbeln,
auart LIKE vbak-auart,
kwmeng LIKE vbap-kwmeng,
gbstk LIKE vbuk-gbstk,
END OF lt_demqty.
DATA : BEGIN OF lt_buildqty OCCURS 0,
aufnr LIKE caufv-aufnr,
matnr LIKE caufv-plnbez,
gamng LIKE caufv-gamng,
wemng LIKE afpo-wemng,
END OF lt_buildqty.
DATA : BEGIN OF lt_konv OCCURS 0,
knumv LIKE konv-knumv,
kwert LIKE konv-kwert,
kschl LIKE konv-kschl,
END OF lt_konv.
DATA : lt_lines TYPE TABLE OF tline WITH HEADER LINE.
* Create Range for BNAME and ZZBILLTO_NAME
IF NOT p_bname IS INITIAL.
CONCATENATE p_bname '*' INTO tmpstr.
so_bname-sign = 'I'.
so_bname-option = 'CP'.
so_bname-low = tmpstr.
APPEND so_bname.
ENDIF.
IF NOT p_cmpnm IS INITIAL.
CONCATENATE p_cmpnm '*' INTO tmpstr.
so_cmpnm-sign = 'I'.
so_cmpnm-option = 'CP'.
so_cmpnm-low = tmpstr.
APPEND so_cmpnm.
ENDIF.
* Select Data
l_kunwe = 'KUNWE'.
*Ship to Party.
IF so_kunwe NE ' '.
SELECT vbeln kunnr FROM vbpa
INTO TABLE lvbpa
WHERE vbeln IN so_vbeln
AND kunnr IN so_kunwe
AND parvw EQ 'WE'.
ENDIF.
* Customer PO available
IF NOT so_bstkd[] IS INITIAL OR
NOT so_ihrez[] IS INITIAL.
*Filtering based on shipped to party
IF so_kunwe[] IS INITIAL.
SELECT DISTINCT vbak~vbeln vbak~vkorg vbak~bname vbak~zzbillto_name
vbak~erdat vbak~erzet vbak~zzfilename vbak~kunnr
vbak~lifsk vbak~submi vbak~augru vbak~vsbed vbak~zzcustchannel
vbak~knumv vbfa~vbeln vbkd~bstkd vbkd~bstkd_e
vbkd~ihrez vbuk~gbstk vbuk~abstk
INTO (ldata-vbeln, ldata-vkorg, ldata-bname, ldata-cmpnm,
ldata-erdat, ldata-erzet2, ldata-filename, ldata-kunnr,
ldata-knumv,ldata-lifsk, ldata-submi,l_augru,ldata-vsbed,ldata-channel,
ldata-vbelv, ldata-bstkd, ldata-bstkd_e,
ldata-ihrez, ldata-gbstk, ldata-abstk)
FROM vbkd
INNER JOIN vbak
ON vbak~vbeln = vbkd~vbeln
INNER JOIN vbap
ON vbap~vbeln = vbak~vbeln
LEFT OUTER JOIN vbfa
ON vbfa~vbelv = vbak~vbeln AND
vbfa~vbtyp_n = 'J'
INNER JOIN vbuk
ON vbuk~vbeln = vbak~vbeln
WHERE vbkd~bstkd_m IN so_bstkd AND
vbkd~ihrez IN so_ihrez AND
vbkd~bstkd_e IN so_bstke AND
vbkd~posnr EQ '000000' AND
vbak~vbeln IN so_vbeln AND
vbak~vkorg IN so_vkorg AND
vbak~bname IN so_bname AND
vbak~zzbillto_name IN so_cmpnm AND
vbak~erdat IN so_erdat AND
vbak~kunnr IN so_kunnr AND
vbak~vsbed IN so_vsbed AND
vbap~pstyv IN so_pstyv AND
vbap~matnr IN so_matnr.
* to get the plant
SELECT SINGLE werks FROM vbap INTO l_werks WHERE vbeln EQ ldata-vbeln.
DATA : l_valaugru(40) TYPE c.
l_valaugru = l_augru.
l_aug = 'AUGRU'.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = l_werks
i_repid = sy-repid
i_dele = l_aug
i_valuefrom = l_valaugru
IMPORTING
e_valueto = l_valtoaug.
IF sy-subrc = 0.
ldata-delivc = l_valtoaug.
ENDIF.
SELECT SINGLE scacd FROM zscac_vsbed INTO ldata-carrier WHERE vsbed EQ ldata-vsbed AND vkorg IN so_vkorg.
APPEND ldata.
ENDSELECT.
*Filter for ship to party
ELSEIF NOT so_kunwe[] IS INITIAL.
IF NOT lvbpa[] IS INITIAL.
SELECT DISTINCT vbak~vbeln vbak~vkorg vbak~bname vbak~zzbillto_name
vbak~erdat vbak~erzet vbak~zzfilename vbak~kunnr vbak~knumv
vbak~lifsk vbak~submi vbak~augru vbak~vsbed vbak~zzcustchannel
vbfa~vbeln vbkd~bstkd vbkd~bstkd_e
vbkd~ihrez vbuk~gbstk vbuk~abstk
INTO (ldata-vbeln, ldata-vkorg, ldata-bname, ldata-cmpnm,
ldata-erdat, ldata-erzet2, ldata-filename, ldata-kunnr,ldata-knumv,
ldata-lifsk, ldata-submi,l_augru,ldata-vsbed,ldata-channel,
ldata-vbelv, ldata-bstkd, ldata-bstkd_e,
ldata-ihrez, ldata-gbstk, ldata-abstk)
FROM vbkd
INNER JOIN vbak
ON vbak~vbeln = vbkd~vbeln
INNER JOIN vbap
ON vbap~vbeln = vbak~vbeln
LEFT OUTER JOIN vbfa
ON vbfa~vbelv = vbak~vbeln AND
vbfa~vbtyp_n = 'J'
INNER JOIN vbuk
ON vbuk~vbeln = vbak~vbeln
FOR ALL entries IN lvbpa
WHERE vbak~vbeln EQ lvbpa-vbeln
AND vbkd~bstkd_m IN so_bstkd AND
vbkd~ihrez IN so_ihrez AND
vbkd~bstkd_e IN so_bstke AND
vbkd~posnr EQ '000000' AND
vbak~vbeln IN so_vbeln AND
vbak~vkorg IN so_vkorg AND
vbak~bname IN so_bname AND
vbak~zzbillto_name IN so_cmpnm AND
vbak~erdat IN so_erdat AND
vbak~kunnr IN so_kunnr AND
vbak~vsbed IN so_vsbed AND
vbap~pstyv IN so_pstyv AND
vbap~matnr IN so_matnr.
SELECT SINGLE werks FROM vbap INTO l_werks WHERE vbeln EQ ldata-vbeln.
l_aug = 'AUGRU'.
l_valaugru = l_augru.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = l_werks
i_repid = sy-repid
i_dele = l_aug
i_valuefrom = l_valaugru
IMPORTING
e_valueto = l_valtoaug.
ldata-delivc = l_valtoaug.
*Carrier name
SELECT SINGLE scacd FROM zscac_vsbed INTO ldata-carrier WHERE vsbed EQ ldata-vsbed AND vkorg IN so_vkorg.
APPEND ldata.
ENDSELECT.
ENDIF.
ENDIF.
* Rest of the Sales Order information available
ELSEIF NOT so_vbeln[] IS INITIAL OR
NOT so_erdat[] IS INITIAL OR
NOT so_bname[] IS INITIAL OR
NOT so_ihrez[] IS INITIAL OR
NOT so_bstke[] IS INITIAL OR
NOT so_cmpnm[] IS INITIAL OR
NOT so_kunnr[] IS INITIAL.
*filter on ship to party
IF so_kunwe[] IS INITIAL.
SELECT DISTINCT vbak~vbeln vbak~vkorg vbak~bname vbak~zzbillto_name
vbak~erdat vbak~erzet vbak~zzfilename vbak~kunnr vbak~knumv
vbak~lifsk vbak~submi vbak~augru vbak~vsbed vbak~zzcustchannel
vbfa~vbeln vbkd~bstkd vbkd~bstkd_e
vbkd~ihrez vbuk~gbstk vbuk~abstk
INTO (ldata-vbeln, ldata-vkorg, ldata-bname, ldata-cmpnm,
ldata-erdat, ldata-erzet2, ldata-filename, ldata-kunnr,ldata-knumv,
ldata-lifsk, ldata-submi,l_augru,ldata-vsbed, ldata-channel,
ldata-vbelv, ldata-bstkd, ldata-bstkd_e,
ldata-ihrez, ldata-gbstk, ldata-abstk)
FROM vbak
INNER JOIN vbap
ON vbap~vbeln = vbak~vbeln
LEFT OUTER JOIN vbfa
ON vbfa~vbelv = vbak~vbeln AND
vbfa~vbtyp_n = 'J'
INNER JOIN vbkd
ON vbkd~vbeln = vbak~vbeln AND
vbkd~posnr = '000000'
INNER JOIN vbuk
ON vbuk~vbeln = vbak~vbeln
WHERE vbak~vbeln IN so_vbeln AND
vbak~vkorg IN so_vkorg AND
vbak~erdat IN so_erdat AND
vbak~bname IN so_bname AND
vbak~zzbillto_name IN so_cmpnm AND
vbak~kunnr IN so_kunnr AND
vbak~vsbed IN so_vsbed AND
vbkd~bstkd IN so_bstkd AND
vbkd~bstkd_e IN so_bstke AND
vbkd~ihrez IN so_ihrez AND
vbap~pstyv IN so_pstyv AND
vbap~matnr IN so_matnr.
SELECT SINGLE werks FROM vbap INTO l_werks WHERE vbeln EQ ldata-vbeln.
l_valaugru = l_augru.
l_aug = 'AUGRU'.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = l_werks
i_repid = sy-repid
i_dele = l_aug
i_valuefrom = l_valaugru
IMPORTING
e_valueto = l_valtoaug.
ldata-delivc = l_valtoaug.
SELECT SINGLE scacd FROM zscac_vsbed INTO ldata-carrier WHERE vsbed EQ ldata-vsbed AND vkorg IN so_vkorg.
APPEND ldata.
ENDSELECT.
ELSEIF NOT so_kunwe[] IS INITIAL.
IF NOT lvbpa[] IS INITIAL.
SELECT DISTINCT vbak~vbeln vbak~vkorg vbak~bname vbak~zzbillto_name
vbak~erdat vbak~erzet vbak~zzfilename vbak~kunnr vbak~knumv
vbak~lifsk vbak~submi vbak~augru vbak~vsbed vbak~zzcustchannel
vbfa~vbeln vbkd~bstkd vbkd~bstkd_e
vbkd~ihrez vbuk~gbstk vbuk~abstk
INTO (ldata-vbeln, ldata-vkorg, ldata-bname, ldata-cmpnm,
ldata-erdat, ldata-erzet2, ldata-filename, ldata-kunnr,ldata-knumv,
ldata-lifsk, ldata-submi,l_augru,ldata-vsbed,ldata-channel,
ldata-vbelv, ldata-bstkd, ldata-bstkd_e,
ldata-ihrez, ldata-gbstk, ldata-abstk)
FROM vbak
INNER JOIN vbap
ON vbap~vbeln = vbak~vbeln
LEFT OUTER JOIN vbfa
ON vbfa~vbelv = vbak~vbeln AND
vbfa~vbtyp_n = 'J'
INNER JOIN vbkd
ON vbkd~vbeln = vbak~vbeln AND
vbkd~posnr = '000000'
INNER JOIN vbuk
ON vbuk~vbeln = vbak~vbeln
FOR ALL entries IN lvbpa
WHERE vbak~vbeln EQ lvbpa-vbeln
AND vbak~vbeln IN so_vbeln AND
vbak~vkorg IN so_vkorg AND
vbak~erdat IN so_erdat AND
vbak~bname IN so_bname AND
vbak~zzbillto_name IN so_cmpnm AND
vbak~kunnr IN so_kunnr AND
vbak~vsbed IN so_vsbed AND
vbkd~bstkd IN so_bstkd AND
vbkd~bstkd_e IN so_bstke AND
vbkd~ihrez IN so_ihrez AND
vbap~pstyv IN so_pstyv AND
vbap~matnr IN so_matnr.
SELECT SINGLE werks FROM vbap INTO l_werks WHERE vbeln EQ ldata-vbeln.
l_valaugru = l_augru.
l_aug = 'AUGRU'.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = l_werks
i_repid = sy-repid
i_dele = l_aug
i_valuefrom = l_valaugru
IMPORTING
e_valueto = l_valtoaug.
ldata-delivc = l_valtoaug.
SELECT SINGLE scacd FROM zscac_vsbed INTO ldata-carrier WHERE vsbed EQ ldata-vsbed AND vkorg IN so_vkorg.
ENDSELECT.
ENDIF.
ENDIF.
ENDIF.
DESCRIBE TABLE ldata LINES lins.
LOOP AT ldata.
* populate file date and time
IF NOT ldata-submi IS INITIAL.
ldata-erdat4(2) = '20'.
ldata-erdat4+2(6) = ldata-submi(6).
ldata-erzet4 = ldata-submi+6(4).
ENDIF.
* Validate delivery number information
IF NOT ldata-vbelv IN so_vblnl.
ldata-dele = 'X'.
MODIFY ldata TRANSPORTING dele.
CONTINUE.
ENDIF.
* Ship to customer number/name
SELECT SINGLE a~kunnr b~name1 b~name2 b~name3
b~str_suppl1 b~street b~city1
b~region b~post_code1 b~country b~tel_number
b~fax_number
INTO (ldata-shpto,ldata-name1, ldata-name2, ldata-name3,
ldata-str_suppl1, ldata-street, ldata-city1,
ldata-region, ldata-post_code1, ldata-country,
ldata-tel_number, ldata-fax_number)
FROM vbpa AS a
LEFT OUTER JOIN
adrc AS b ON b~addrnumber = a~adrnr
WHERE vbeln = ldata-vbeln AND
posnr = '000000' AND
parvw = 'WE'. "Ship to Party
IF ldata-str_suppl1 EQ ' ' AND ldata-street NE ' '.
ldata-str_suppl1 = ldata-street.
ldata-street = ' '.
ENDIF.
IF ldata-name1 = ' ' AND ldata-name2 NE ' '.
ldata-name1 = ldata-name2.
ldata-name2 = ' '.
ELSEIF ldata-name1 EQ ' ' AND ldata-name2 = ' ' AND ldata-name3 NE ' '.
ldata-name1 = ldata-namecmp.
ldata-name3 = ' '.
ENDIF.
IF sy-subrc NE 0 OR NOT ldata-country IN so_cntry.
ldata-dele = 'X'.
MODIFY ldata TRANSPORTING dele.
CONTINUE.
ENDIF.
DATA : l_werksol TYPE werks_d,
l_valsol(40) TYPE c.
IF ldata-str_suppl1 EQ ' ' AND ldata-street NE ' '.
ldata-str_suppl1 = ldata-street.
ldata-street = ' '.
ENDIF.
DATA : l_valshp(40) TYPE c.
* Sold to customer number/name
SELECT SINGLE a~kunnr b~country
INTO (l_solto,l_country)
FROM vbpa AS a
LEFT OUTER JOIN
adrc AS b ON b~addrnumber = a~adrnr
WHERE vbeln = ldata-vbeln AND
posnr = '000000' AND
parvw = 'AG'. "Sold to Party
SELECT SINGLE landx FROM t005t INTO ldata-landx WHERE land1 = l_country AND spras EQ 'EN'.
SELECT SINGLE werks FROM vbap INTO l_werksol WHERE vbeln EQ ldata-vbeln.
ldata-sold = l_solto.
l_valsol = l_solto.
l_valshp = ldata-shpto.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = l_werksol
i_repid = sy-repid
i_dele = 'KUNWE'
i_valuefrom = l_valsol
IMPORTING
e_valueto = l_valsol.
ldata-solto = l_valsol.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = l_werksol
i_repid = sy-repid
i_dele = 'KUNWE'
i_valuefrom = l_valshp
IMPORTING
e_valueto = l_valshp.
ldata-shpto = l_valshp.
* Bill to customer name
SELECT SINGLE adrc~name1 adrc~name2 adrc~name3
adrc~street adrc~str_suppl1 adrc~city1
adrc~region adrc~post_code1 adrc~country
adrc~tel_number adrc~fax_number
INTO (ldata-name1_re, ldata-name2_re, ldata-name3_re,
ldata-str_suppl1_re,ldata-street_re , ldata-city1_re,
ldata-region_re, ldata-post_code1_re, ldata-country_re,
ldata-tel_number_re, ldata-fax_number_re)
FROM vbpa LEFT OUTER JOIN adrc
ON adrc~addrnumber = vbpa~adrnr
WHERE vbeln = ldata-vbeln AND
posnr = '000000' AND
parvw = 'RE'. "Bill to Party
*Incoterms
l_names = ldata-vbeln.
l_object = 'VBBK'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'Z007'
language = syst-langu
name = l_names
object = l_object
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc = 0.
READ TABLE lt_lines INDEX 1.
SPLIT lt_lines-tdline AT '~' INTO l_line1 l_inco1.
READ TABLE lt_lines INDEX 2.
SPLIT lt_lines-tdline AT '~' INTO l_line2 l_inco2.
CONCATENATE l_inco1 l_inco2 INTO ldata-incoter SEPARATED BY space.
CLEAR lt_lines.
ENDIF.
IF NOT ldata-vbelv IS INITIAL.
* delivery header info
SELECT SINGLE wadat_ist lifsk erdat erzet kunnr
knump
FROM likp
INTO (ldata-wadat_ist, ldata-lifsk2,
ldata-erdat3, ldata-erzet3, ldata-kunwe, ldata-knump)
WHERE vbeln EQ ldata-vbelv.
IF sy-subrc NE 0.
ENDIF.
* goods Issue time (the first one)
IF NOT ldata-wadat_ist IS INITIAL.
SELECT SINGLE erzet INTO ldata-erzet FROM vbfa
WHERE vbelv = ldata-vbelv AND
vbtyp_n = 'R' AND
bwart = '601'. "Goods Issue
IF sy-subrc NE 0.
ENDIF.
ENDIF.
* HU/Tracking Number
SELECT SINGLE inhalt nambe venum
INTO (ldata-inhalt, l_nambe, ldata-venum)
FROM vekp
WHERE vpobj EQ '01' AND
vpobjkey EQ ldata-vbelv AND
status NE '0060'.
IF sy-subrc EQ 0.
CATCH SYSTEM-EXCEPTIONS
arithmetic_errors = 1
conversion_errors = 2.
SEARCH l_nambe FOR ';'.
IF sy-subrc EQ 0.
lpos = sy-fdpos.
lpos = lpos + 5.
ldata-nambe = l_nambe+lpos.
ENDIF.
ENDCATCH.
ENDIF.
* Delivery Group Info
SELECT SINGLE vbss~sammg vbss~sortf
vbsk~ernam vbsk~erdat vbsk~uzeit
vbsk~vbnum vbsk~vtext
INTO (ldata-sammg, ldata-sortf,
ldata-ernam, ldata-erdat_g, ldata-uzeit_g,
ldata-vbnum, ldata-vtext_g)
FROM vbss
INNER JOIN vbsk
ON vbsk~sammg = vbss~sammg AND
vbsk~smart = 'K'
WHERE vbss~vbeln EQ ldata-vbelv AND
vbsk~smart EQ 'K'.
IF sy-subrc EQ 0.
ENDIF.
ENDIF.
* Validate/filter Delivery realted data
IF NOT ldata-wadat_ist IN so_wadat OR
NOT ldata-erdat3 IN so_erdtl OR
NOT ldata-vbelv IN so_vblnl.
ldata-dele = 'X'.
ENDIF.
* Fill Status
IF ldata-abstk EQ 'C'.
ldata-status = 'CANCEL'.
ELSE.
IF ldata-wadat_ist IS INITIAL.
ldata-status = 'OPEN'.
ELSE.
ldata-status = 'SHIPPED'.
ldata-backord = 'No Backorder'.
ENDIF.
ENDIF.
MODIFY ldata.
ENDLOOP.
DELETE ldata WHERE dele = 'X'.
* If Order is only partially delivered then create an extra entry in the
* status showing 'OPEN'
SORT ldata BY vbeln vbelv.
LOOP AT ldata WHERE gbstk NE 'C' AND NOT vbelv IS INITIAL.
IF old_vbeln NE ldata-vbeln.
old_vbeln = ldata-vbeln.
ldatat = ldata.
CLEAR: ldatat-vbelv, ldatat-wadat_ist, ldatat-vsbed,ldatat-erzet,
ldatat-inhalt, ldatat-nambe, ldatat-carrier, ldatat-sammg,
ldatat-erdat3, ldatat-erzet3, ldatat-lifsk2, ldatat-sortf,
ldatat-ernam, ldatat-erdat_g, ldatat-uzeit_g, ldatat-vbnum,
ldatat-vtext_g, ldata-kunwe.
ldatat-status = 'OPEN'.
APPEND ldatat.
ENDIF.
ENDLOOP.
* If Order is only partially rejected then create a REJECTED entry
SORT ldata BY vbeln vbelv.
CLEAR: old_vbeln.
LOOP AT ldata WHERE abstk EQ 'B' AND NOT vbelv IS INITIAL.
IF old_vbeln NE ldata-vbeln.
old_vbeln = ldata-vbeln.
ldatat = ldata.
CLEAR: ldatat-vbelv, ldatat-wadat_ist, ldatat-vsbed,ldatat-erzet,
ldatat-inhalt, ldatat-nambe, ldatat-carrier, ldatat-sammg,
ldatat-erdat3, ldatat-erzet3, ldatat-lifsk2, ldatat-sortf,
ldatat-ernam, ldatat-erdat_g, ldatat-uzeit_g, ldatat-vbnum,
ldatat-vtext_g, ldata-kunwe.
ldatat-status = 'CANCEL'.
APPEND ldatat.
ENDIF.
ENDLOOP.
* Add these additional lines
APPEND LINES OF ldatat TO ldata.
SORT ldata BY vbeln vbelv.
* Get Line Item info if requested
* IF cb_itemd EQ 'X'.
REFRESH ldatas.
LOOP AT ldata.
CLEAR ldatas.
MOVE ldata TO ldatas.
ldatas-ordst = 'NEW'.
ldatas-linest = 'NEW'.
IF NOT ldata-vbelv IS INITIAL.
ELSEIF ldata-status = 'OPEN'.
SELECT vbap~matnr vbap~kwmeng vbap~pstyv vbap~matkl
vbap~mvgr1 vbap~mvgr2 vbap~mvgr3
vbap~mvgr4 vbap~mvgr5 vbap~posnr
vbap~posex vbap~arktx vbap~werks
vbup~absta
INTO (ldatas-matnr, ldatas-kwmeng, ldatas-pstyv,
ldatas-matkl,
ldatas-mvgr1, ldatas-mvgr2, ldatas-mvgr3,
ldatas-mvgr4, ldatas-mvgr5, ldatas-posnr,
ldatas-posex, ldatas-arktx, ldatas-werks,
ldatas-absta)
FROM vbap
INNER JOIN vbup
ON vbup~vbeln = ldata-vbeln AND
vbup~posnr = vbap~posnr
WHERE vbap~vbeln EQ ldatas-vbeln AND
vbap~pstyv IN so_pstyv AND
vbap~matnr IN so_matnr AND
vbap~matkl IN so_matkl AND
vbup~gbsta NE 'C' AND
vbup~absta NE 'C' .
*Business unit
l_repid = sy-repid.
l_dele = 'MATKL'.
SELECT SINGLE matkl FROM mara INTO l_matklmara WHERE matnr EQ ldatas-matnr.
l_valfrom = l_matklmara.
*Business Unit from Zreportmap
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = ldatas-werks
i_repid = sy-repid
i_dele = 'MATKL'
i_valuefrom = l_valfrom
IMPORTING
e_valueto = l_valueto.
ldatas-matkl = l_valueto.
SELECT SINGLE labst FROM mard
INTO ldatas-onhnd "l_labst11
WHERE werks EQ ldatas-werks
AND matnr EQ ldatas-matnr
AND lgort EQ '0001'.
*Scheduled Ship Date
*For Hardware Business unit
IF l_valueto = 'HW' OR l_valueto = 'ACSRY'.
IF ldatas-kwmeng < ldatas-labst.
l_sshpdt = ldatas-erdat + 1.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = l_sshpdt
IMPORTING
weekday = l_weekday.
IF l_weekday EQ 'SATURDAY'.
l_sshpdt = l_sshpdt + 2.
ELSEIF l_weekday EQ 'SUNDAY'.
l_sshpdt = l_sshpdt + 1.
ENDIF.
ELSEIF ldatas-kwmeng > ldatas-labst AND ldatas-labst NE '0'.
l_sshpdt = ldatas-erdat + 9.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = l_sshpdt
IMPORTING
weekday = l_weekday.
IF l_weekday EQ 'SATURDAY' .
l_sshpdt = ldatas-erdat.
ELSEIF l_weekday EQ 'SUNDAY'.
l_sshpdt = l_sshpdt + 1.
ENDIF.
ELSEIF ldatas-labst = 0.
l_sshpdt = ldatas-erdat + 7.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = l_sshpdt
IMPORTING
weekday = l_weekday.
IF l_weekday EQ 'SATURDAY' .
l_sshpdt = ldatas-erdat + 2.
ELSEIF l_weekday EQ 'SUNDAY'.
l_sshpdt = l_sshpdt + 1.
ENDIF.
ENDIF.
*For Software Business Unit
ELSEIF l_valueto EQ 'RTL' OR l_valueto = 'ENT'.
IF ldatas-kwmeng < ldatas-labst.
l_sshpdt = ldatas-erdat .
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = l_sshpdt
IMPORTING
weekday = l_weekday.
IF l_weekday EQ 'SATURDAY'.
l_sshpdt = l_sshpdt + 2.
ELSEIF l_weekday EQ 'SUNDAY'.
l_sshpdt = l_sshpdt + 1.
ENDIF.
ELSEIF ldatas-kwmeng GE ldatas-labst AND ldatas-labst NE '0'.
ldatas-sshpdt = ldatas-erdat + 2.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = l_sshpdt
IMPORTING
weekday = l_weekday.
IF l_weekday EQ 'SATURDAY'.
l_sshpdt = l_sshpdt + 2.
ELSEIF l_weekday EQ 'SUNDAY'.
l_sshpdt = l_sshpdt + 1.
ENDIF.
ELSEIF ldatas-labst = 0.
ldatas-sshpdt = ldatas-erdat + 7.
l_sshpdt = ldatas-sshpdt.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = l_sshpdt
IMPORTING
weekday = l_weekday.
IF l_weekday EQ 'SATURDAY'.
l_sshpdt = l_sshpdt + 2.
ELSEIF l_weekday EQ 'SUNDAY'.
l_sshpdt = l_sshpdt + 1.
ENDIF.
ENDIF.
ENDIF.
ldatas-sshpdt = l_sshpdt.
APPEND ldatas.
CLEAR : l_solto,l_country ,l_land1,
l_regio,l_inco1 ,l_inco2,
l_sshpdt,l_weekday ,l_labst ,
l_dele, l_valfrom,
l_valueto,l_region,l_regto,
l_atwrt, l_kunwe, l_vsbed, l_augru,
l_aug ,l_werks ,l_valtoaug ,l_buildquant ,
l_poquant, l_names , l_object , l_line1,
l_line2 ,l_kwmeng1 ,l_labst1 ,l_qtyres1,
l_demqty, l_buildqty1, l_poqty1 ,l_ordval1 ,
l_buildqty, lt_lines,l_labst11.
ENDSELECT.
ELSEIF ldata-status = 'CANCEL'.
ENDIF.
ENDLOOP.
* Get the Material Supply Chain Status
* Get MRP Status
SORT ldatas[] BY werks matnr.
CLEAR: old_matnr, old_werks, lvmsta, ldismm.
LOOP AT ldatas.
IF old_matnr NE ldatas-matnr OR
old_werks NE ldatas-werks.
old_matnr = ldatas-matnr.
old_werks = ldatas-werks.
CLEAR: lvmsta, ldismm.
SELECT SINGLE vmsta FROM mvke INTO lvmsta
WHERE matnr EQ ldatas-matnr AND
vkorg IN so_vkorg.
SELECT SINGLE dismm FROM marc INTO ldismm
WHERE matnr EQ ldatas-matnr AND
werks EQ ldatas-werks.
ENDIF.
ldatas-vmsta = lvmsta.
ldatas-dismm = ldismm.
SELECT SINGLE
land1
regio
FROM t001w
INTO (l_land1,l_regio)
WHERE werks EQ ldatas-werks.
SELECT SINGLE bezei
FROM t005u
INTO ldatas-site
WHERE spras = sy-langu
AND land1 = l_land1
AND bland = l_regio.
l_region = l_regio.
CALL FUNCTION 'ZFM_CONVERT'
EXPORTING
i_werks = ldatas-werks
i_repid = sy-repid
i_dele = 'REGIO'
i_valuefrom = l_region
IMPORTING
e_valueto = l_regto.
ldatas-site = l_regto.
MODIFY ldatas TRANSPORTING vmsta dismm site ordst linest.
ENDLOOP.
ldata[] = ldatas[].
REFRESH ldatas.
* Get pricing info
ldata_qty[] = ldata[].
DELETE ADJACENT DUPLICATES FROM ldata_qty COMPARING matnr.
*To Get Demand Quantity PO Quantity Build Qty
LOOP AT ldata_qty.
*PO Quantity
SELECT ebeln ebelp matnr menge
FROM ekpo
INTO TABLE lt_menge WHERE matnr EQ ldata_qty-matnr
AND ekpo~loekz NE 'L'
AND ekpo~elikz NE 'X'
AND werks EQ ldata_qty-werks
AND lgort EQ '0001'.
DATA : l_ekmenge LIKE ekpo-menge,
l_msmenge LIKE mseg-menge.
IF NOT lt_menge[] IS INITIAL.
SELECT mblnr mjahr matnr menge FROM mseg INTO TABLE lt_mseg
FOR ALL ENTRIES IN lt_menge
WHERE bwart EQ '101'
AND matnr EQ lt_menge-matnr
AND ebeln EQ lt_menge-ebeln
AND ebelp EQ lt_menge-ebelp.
ENDIF.
LOOP AT lt_menge.
AT LAST.
SUM.
l_ekmenge = lt_menge-menge.
ENDAT.
ENDLOOP.
LOOP AT lt_mseg.
AT LAST .
SUM.
l_msmenge = lt_mseg-menge.
ENDAT.
ENDLOOP.
IF NOT lt_menge[] IS INITIAL.
SELECT mblnr mjahr matnr menge FROM mseg INTO TABLE lt_mseg_102
FOR ALL ENTRIES IN lt_menge
WHERE bwart EQ '102'
AND matnr EQ lt_menge-matnr
AND ebeln EQ lt_menge-ebeln
AND ebelp EQ lt_menge-ebelp.
ENDIF.
LOOP AT lt_mseg_102.
AT LAST.
SUM.
l_menge_102 = lt_mseg_102-menge.
ENDAT.
ENDLOOP.
ldata_qty-poquant = ( l_ekmenge - l_msmenge ) + l_menge_102.
MODIFY ldata_qty TRANSPORTING poquant ."ordval.
CLEAR : l_ekmenge,l_msmenge,lt_menge,
lt_menge[],lt_mseg,lt_mseg[],lt_mseg_102,lt_mseg_102[],l_menge_102.
*Demand Quantity
SELECT vbak~vbeln
vbak~auart
vbap~kwmeng
vbuk~gbstk
INTO TABLE lt_demqty FROM vbak AS vbak INNER JOIN vbap AS vbap
ON vbak~vbeln EQ vbap~vbeln INNER JOIN vbuk AS vbuk
ON vbak~vbeln EQ vbuk~vbeln
WHERE vbap~matnr EQ ldata_qty-matnr
AND vbak~auart EQ 'ZFD'
AND vbuk~gbstk NE 'C'.
IF sy-subrc = 0.
LOOP AT lt_demqty.
AT LAST.
SUM.
ldata_qty-demqty = lt_demqty-kwmeng.
MODIFY ldata_qty TRANSPORTING demqty.
ENDAT.
ENDLOOP.
ENDIF.
MODIFY ldata_qty TRANSPORTING demqty.
*Build Qty
SELECT SINGLE * FROM caufv WHERE plnbez EQ ldata_qty-matnr.
IF sy-subrc = 0.
SELECT caufv~aufnr caufv~plnbez
caufv~gamng afpo~wemng
INTO TABLE lt_buildqty
FROM caufv AS caufv
INNER JOIN afpo AS afpo
ON caufv~aufnr EQ afpo~aufnr
WHERE caufv~plnbez EQ ldata_qty-matnr
AND caufv~auart EQ 'PP01'
AND caufv~werks EQ ldata-werks
AND afpo~elikz NE 'X'
AND caufv~loekz NE 'X'.
LOOP AT lt_buildqty.
AT LAST.
SUM.
ldata_qty-buildqty = lt_buildqty-gamng - lt_buildqty-wemng.
MODIFY ldata_qty TRANSPORTING buildqty.
CLEAR :lt_buildqty,lt_buildqty[].
ENDAT.
ENDLOOP.
ELSE.
SELECT afpo~aufnr afpo~matnr
afpo~psmng afpo~wemng
INTO TABLE lt_buildqty
FROM afpo AS afpo
INNER JOIN aufk AS aufk
ON aufk~aufnr EQ afpo~aufnr
WHERE afpo~matnr EQ ldata_qty-matnr
AND aufk~auart EQ 'PP01'
AND aufk~werks EQ ldata_qty-werks
AND afpo~elikz NE 'X'.
ENDIF.
LOOP AT lt_buildqty.
AT LAST.
SUM.
ldata_qty-buildqty = lt_buildqty-gamng - lt_buildqty-wemng.
MODIFY ldata_qty TRANSPORTING buildqty.
CLEAR :lt_buildqty,lt_buildqty[].
ENDAT.
ENDLOOP.
ENDLOOP.
LOOP AT ldata.
SELECT knumv kwert kschl INTO TABLE lt_konv FROM konv
WHERE knumv EQ ldata-knumv
AND konv~kschl = 'ZTOL'.
IF sy-subrc = 0 .
LOOP AT lt_konv.
AT LAST.
SUM.
ldata-ordval = lt_konv-kwert.
ENDAT.
ENDLOOP.
ENDIF.
MODIFY ldata TRANSPORTING ordval.
READ TABLE ldata_qty WITH KEY matnr = ldata-matnr.
MOVE : ldata_qty-poquant TO ldata-poquant,
ldata_qty-demqty TO ldata-demqty,
ldata_qty-buildqty TO ldata-buildqty.
MODIFY ldata TRANSPORTING poquant demqty buildqty.
ENDLOOP.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
FORM process_data.
* Process Data
SORT ldata BY vbeln posnr.
DELETE ADJACENT DUPLICATES FROM ldata COMPARING vbeln bstkd_e vbelv posnr.
DELETE ldata WHERE status NE 'OPEN'.
ENDFORM. " process_data
*&---------------------------------------------------------------------*
*& Form initialize_alv
*&---------------------------------------------------------------------*
FORM initialize_alv.
* Initialize ALV Display/Print Parameters
* initialize report id variable
l_repid = sy-repid.
* initialize variables
l_linsz = syst-linsz.
l_datum = syst-datum.
l_uzeit = syst-uzeit.
* set report title.
PERFORM set_report_title.
* initialize fieldcatalog for ALV use
PERFORM populate_fieldcat USING fieldcat[].
* set display parameters
l_layout-reprep = 'X'.
l_layout-min_linesize = l_linsz.
l_layout-max_linesize = l_linsz.
l_layout-no_min_linesize = ' '.
l_layout-colwidth_optimize = 'X'.
* set print parameters
l_print-no_print_selinfos = 'X'.
l_print-no_print_listinfos = 'X'.
l_print-no_change_print_params = 'X'.
PERFORM eventtab_build USING lf_events[].
ENDFORM. " initialize_alv
*---------------------------------------------------------------------*
* FORM EVENTTAB_BUILD *
*---------------------------------------------------------------------*
FORM eventtab_build USING u_lf_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 = u_lf_events.
* TOP-OF-PAGE
READ TABLE u_lf_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE lf_formname_top_of_page TO ls_event-form.
MODIFY u_lf_events FROM ls_event INDEX sy-tabix.
ENDIF.
* TOP-OF-COVERPAGE
READ TABLE u_lf_events WITH KEY name = slis_ev_top_of_coverpage
INTO ls_event.
IF sy-subrc = 0.
MOVE lf_formname_top_of_coverpage TO ls_event-form.
MODIFY u_lf_events FROM ls_event INDEX sy-tabix.
ENDIF.
* AFTER_LINE_OUTPUT
READ TABLE u_lf_events WITH KEY name = slis_ev_after_line_output
INTO ls_event.
IF sy-subrc = 0.
MOVE lf_formname_after_line_output TO ls_event-form.
MODIFY u_lf_events FROM ls_event INDEX sy-tabix.
ENDIF.
* BEFORE_LINE_OUTPUT
READ TABLE u_lf_events WITH KEY name = slis_ev_before_line_output
INTO ls_event.
IF sy-subrc = 0.
MOVE lf_formname_before_line_output TO ls_event-form.
MODIFY u_lf_events FROM ls_event INDEX sy-tabix.
ENDIF.
* TOP_OF_LIST
READ TABLE u_lf_events WITH KEY name = slis_ev_top_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE lf_formname_top_of_list TO ls_event-form.
MODIFY u_lf_events FROM ls_event INDEX sy-tabix.
ENDIF.
ENDFORM. "EVENTTAB_BUILD
*---------------------------------------------------------------------*
* FORM TOP_OF_COVERPAGE *
*---------------------------------------------------------------------*
FORM top_of_coverpage.
l_page_count = 'cover'.
PERFORM top_of_page.
* write program
WRITE: text-s54.
WRITE AT 10 l_repid.
* write variant
IF NOT l_slset IS INITIAL.
NEW-LINE.
WRITE: text-s55.
WRITE AT 7 l_slset.
ENDIF.
* write select-options
SKIP 1.
PERFORM write_select_options.
ENDFORM. "TOP_OF_COVERPAGE
*---------------------------------------------------------------------*
* FORM WRITE_SELECT_OPTIONS *
*---------------------------------------------------------------------*
FORM write_select_options.
* Get Select Option Values
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = l_repid
TABLES
selection_table = lt_selopts.
* Write Select Option Values
CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
EXPORTING
report = l_repid
seltext = 'X'
newpage = ' '
screennr = ' '
TABLES
sel_tab = lt_selopts.
ENDFORM. "WRITE_SELECT_OPTIONS
*---------------------------------------------------------------------*
* FORM TOP_OF_LIST *
*---------------------------------------------------------------------*
FORM top_of_list.
l_page_count = 1.
ENDFORM. "TOP_OF_LIST
*---------------------------------------------------------------------*
* FORM BEFORE_LINE_OUTPUT *
*---------------------------------------------------------------------*
FORM before_line_output USING ls_lineinfo TYPE slis_lineinfo.
ENDFORM. "BEFORE_LINE_OUTPUT
*---------------------------------------------------------------------*
* FORM AFTER_LINE_OUTPUT *
*---------------------------------------------------------------------*
FORM after_line_output USING ls_lineinfo TYPE slis_lineinfo.
ENDFORM. "AFTER_LINE_OUTPUT
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
FORM top_of_page.
* write date
NEW-LINE.
WRITE: text-s52.
WRITE AT 7 syst-datum.
* write program title
l_len = STRLEN( l_title ).
l_pos = ( ( l_linsz / 2 ) - ( l_len / 2 ) ).
WRITE AT l_pos l_title.
* write page number
l_pos = l_linsz - 17.
WRITE AT l_pos text-s51.
ADD 5 TO l_pos.
WRITE AT l_pos l_page_count.
* write time
NEW-LINE.
WRITE: text-s53.
WRITE AT 7 syst-uzeit.
SKIP 1.
* set page counter
IF l_page_count NA '0123456789'.
l_page_count = 1.
ELSE.
ADD 1 TO l_page_count.
ENDIF.
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form list_data
*&---------------------------------------------------------------------*
FORM list_data.
g_variant-variant = falvl.
g_repid = sy-repid.
IF falvl NE 'NO_DISPLAY'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_grid_title = text-000
is_layout = l_layout
it_fieldcat = fieldcat[]
i_save = 'A'
is_variant = g_variant
is_print = l_print
TABLES
t_outtab = ldata
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDIF.
ENDFORM. " list_data
*&---------------------------------------------------------------------*
*& Form set_report_title
*&---------------------------------------------------------------------*
* Check if report exexuted with variant then use variant
* description as title, else use report descriptiion as title.
*----------------------------------------------------------------------*
FORM set_report_title.
DATA: lreport LIKE rsvar-report,
llangu LIKE sy-langu,
lvariant LIKE rsvar-variant,
lvtext LIKE varit-vtext.
l_title = syst-title.
IF NOT syst-slset IS INITIAL.
* get variant description
lreport = syst-repid.
llangu = sy-langu.
lvariant = syst-slset.
CALL FUNCTION 'RS_VARIANT_TEXT'
EXPORTING
curr_report = lreport
langu = llangu
variant = lvariant
IMPORTING
v_text = lvtext
EXCEPTIONS
no_text = 1
OTHERS = 2.
IF sy-subrc EQ 0 AND
NOT lvtext IS INITIAL.
l_title = lvtext.
ENDIF.
ENDIF.
ENDFORM. " set_report_title
*&---------------------------------------------------------------------*
*& Form get_status
*&---------------------------------------------------------------------*
*& Form validate_screen
*&---------------------------------------------------------------------*
FORM validate_screen.
IF so_bstkd[] IS INITIAL AND
so_ihrez[] IS INITIAL AND
so_vbeln[] IS INITIAL AND
so_erdat[] IS INITIAL.
MESSAGE e999 WITH 'Enter order creation date'.
ENDIF.
ENDFORM. " validate_screen
*&---------------------------------------------------------------------*
*& Form retreive_freight
*&---------------------------------------------------------------------*
FORM retreive_freight USING pnambe LIKE vekp-nambe.
DATA: lpos TYPE i,
llen TYPE i,
lstr TYPE i,
ltx1 TYPE char30,
ltx2 LIKE vekp-nambe.
CHECK NOT pnambe IS INITIAL.
ltx2 = pnambe.
CLEAR pnambe.
SEARCH ltx2 FOR 'USD'.
IF sy-subrc EQ 0.
lpos = sy-fdpos.
llen = STRLEN( ltx2 ).
lpos = lpos + 3 .
lstr = llen - lpos .
IF lstr > 0.
ltx1 = ltx2+lpos(lstr).
WRITE ltx1 TO pnambe.
SHIFT pnambe LEFT DELETING LEADING space.
ENDIF.
ENDIF.
ENDFORM. " retreive_freight
*&---------------------------------------------------------------------*
*& Form classic_report
*&---------------------------------------------------------------------*
FORM classic_report .
WRITE :/1 sy-vline,
2 'McAfee Order No',
22 sy-vline,
23 'Arvato Order No',
43 sy-vline,
44 'Customer REF Number',
64 sy-vline,
65 'Customer Name',
85 sy-vline,
86 'Country Sold',
106 sy-vline,
107 'Ship From',
127 sy-vline,
128 'Sold To',
148 sy-vline,
149 'Shipto Name',
169 sy-vline,
170 'Shipto Address1',
190 sy-vline,
191 'Shipto Address2',
211 sy-vline,
212 'Ship to City',
232 sy-vline,
233 'Ship to State',
253 sy-vline,
254 'Ship to ZIP',
274 sy-vline,
275 'Ship to Country',
295 sy-vline,
296 'Date Entered',
316 sy-vline,
317 'Scheduled Ship Date',
337 sy-vline ,
338 'Line Number',
358 sy-vline,
359 'McAfee SKU',
379 sy-vline,
380 'Order Quantity',
400 sy-vline,
401 'On Hand Quantity',
421 sy-vline,
422 'Client Owned Inv',
442 sy-vline,
443 'Qty Reserved',
463 sy-vline,
464 'Demand Quantity',
484 sy-vline,
485 'Build Qty',
505 sy-vline,
506 'PO Qty ',
526 sy-vline,
527 'Value',
547 sy-vline,
548 'Order Status',
568 sy-vline,
569 'Line Status ',
589 sy-vline,
590 'Channel',
610 sy-vline,
611 'Business Unit',
631 sy-vline,
632 'Incoterms',
652 sy-vline,
653 'Delivery Code',
673 sy-vline,
674 'Delivery Code',
696 sy-vline,
697 'Ship Code',
710 sy-vline,
711 'Carrier Description',
730 sy-vline.
ULINE.
ENDFORM. " classic_report
*&---------------------------------------------------------------------*
*& Form classic_rept_data
*&---------------------------------------------------------------------*
FORM classic_rept_data .
LOOP AT ldata.
WRITE :/"1 sy-vline,
ldata-bstkd UNDER 'McAfee Order No',
ldata-vbeln UNDER 'Arvato order Number',
ldata-bstkd_e UNDER 'Customer REF Number',
ldata-kunnr UNDER 'Customer Name',
ldata-landx UNDER 'Country Sold',
ldata-site UNDER 'Ship From',
ldata-solto UNDER 'Sold To',
ldata-name1 UNDER 'Shipto Name',
ldata-str_suppl1 UNDER 'Shipto Address1',
ldata-street UNDER 'Shipto Address2',
ldata-city1 UNDER 'Ship to City',
ldata-region UNDER 'Ship to State',
ldata-post_code1 UNDER 'Ship to ZIP',
ldata-country UNDER 'Ship to Country',
ldata-erdat UNDER 'Date Entered',
ldata-sshpdt UNDER 'Scheduled Ship Date',
ldata-posnr UNDER 'Line Number',
ldata-matnr UNDER 'McAfee SKU',
ldata-kwmeng UNDER 'Order Quantity',
ldata-onhnd UNDER 'On Hand Quantity',
ldata-owner UNDER 'Client Owned',
ldata-qtyres UNDER 'Qty Reserved',
ldata-demqty UNDER 'Demand Quantity',
ldata-buildqty UNDER 'Build Qty',
ldata-poquant UNDER 'PO Qty ',
ldata-ordval UNDER 'Value',
ldata-ordst UNDER 'Order Status',
ldata-linest UNDER 'Line Status ' ,
ldata-channel UNDER 'Channel',
ldata-matkl UNDER 'Business Unit',
ldata-incoter UNDER 'Incoterms ',
ldata-delivc UNDER 'Delivery Code',
ldata-vsbed UNDER 'Delivery Code',
ldata-carrier UNDER 'Ship Code'.
ENDLOOP.
ULINE.
ENDFORM. " classic_rept_data
Code Edited and Cut down by: Alvaro Tejada Galindo on Aug 8, 2008 5:34 PM
‎2008 Aug 08 12:01 PM
try something like this
SELECT SUM( kwmeng ) INTO wa_data-demqty
FROM vapma
JOIN vbap ON vapma~vbeln EQ vbap~vbeln AND vapma~posnr EQ vbap~posnr
JOIN vbak ON vbap~vbeln EQ vbak~vbeln
JOIN vbuk ON vbuk~vbeln EQ vbap~vbeln
WHERE vapma~matnr EQ ldata_qty-matnr
AND vbak~auart EQ 'ZFD'
AND vbuk~gbstk NE 'C'.
‎2008 Aug 08 10:46 PM
shashi:
There's no need to put the whole code in the post...Specially when it's that big...and more specially when half the code is made of comments...
Greetings,
Blag.
‎2008 Aug 08 10:12 AM
Hi,
Hi to all,
What do you read in the short dump?
Is ldata_qty-demqty compatible with vbap-kwmeng ?
Regards,
Wajid Hussain P.
‎2008 Aug 08 10:17 AM
HI,
In the version management, check wheteher all ur requests are released and transported to quality system.
‎2008 Aug 08 10:41 AM
Hi Shashi Kala,
This is because you do not much data in dev system while there is much more data in you QA.
Although your query seems to use most of the key fields, i think you cna remove SUM functionality, instead of that retrieve data from tables, loop on internal table and sum it logically.
Regards,
Mohaiyuddin
‎2008 Aug 08 11:39 AM
Hi,
Try the following SQL...
SELECT SUM( kwmeng ) INTO wa_data-demqty FROM vbap AS vbap
INNER JOIN vbak AS vbak ON vbapvbeln EQ vbakvbeln
INNER JOIN vbuk AS vbuk ON vbukvbeln EQ vbapvbeln
WHERE vbap~matnr EQ ldata_qty-matnr
AND vbak~auart EQ 'ZFD'
AND vbuk~gbstk NE 'C'.
( Bold one is the changed content )
Hope it helps.
Murthy
‎2008 Aug 08 11:54 AM
This problem seems to be because of data that you have in development and quality severs.
Quality genrally has a huge data and your select querry is taking too long to fetch the data. That's the reason you are getting dump with text <<<RUN TIME OUT>>>
This errors occurs when select query takes more time than expected.
Try to remove SUM from select query as it has already become complicated due to inner joins.
Get all data into an internal table, loop at internal table and then do SUM on the particular field.
Reds,
Ashish