Open Order value for Customer in Credit Master
Hi All,
For ABC customer, if I check for Credit master(F.35), credit management(FD33) & Sales Summary, the Open order value(sales Value) is 10, 30,000.00 EUR.
If I calculate adding
Back orders - 83681.98
Open orders - 196763.43
Open Contract - 9,669.79
Open Delivers u2013 9,245.23
Receivables - 37,938.77.
Total will be 3, 37, 299.20
Please any one can tell where I can find the difference value(mean which tcode or report).
Thanks & Regards
Sunil
Hi,
Check with transaction code VKM1 or VKM4 or FCV3. The columns will show the details.
Regards
Similar Messages
-
Incorrect Sales order value was updated in credit Master data(FD32 in open
Hi All
User created a sales order with 10 lineitems and Net value&total value is same for this sales order - 4010 Dollers,but when we check in Report(RVKRED88)the same order value is displaying as 7,8912 Dollers instead of 4010 Dollers and same amount(7,8912 dollers)is updated in open sales order value in credit master data(FD32) for that peritculer customer code,now credit percentage showing 430%, due to this reason the user is unable to release a new sales order for this customer code.
Already we run the credit re-organization program - RVKRED77 to correct value in credit master data(FD32) for this customer code but still it was not updated in FD32 and the report RVKRED88
because of this user's are unable to release the next sales order due to this problem for this particular customer,i would highly appriciate if i get a solution.
Thanks & Regards
Nagesh,ParuchuriHi
Check whether you have entered the credit control area to that customer in XD02.
Use the Update group 000012
o Sales order
- Increases open order value from delivery-relevant schedule lines
o Delivery
- Reduces open order value from delivery-relevant schedule lines
- Increases open delivery value
o Billing document
Reduces open delivery value
Increases open billing document value
Financial accounting document
Reduces open billing document value
regards
Edited by: Prashanth on Jun 10, 2009 2:52 PM -
Open sales order value for credit check need to be changed (S066)
Hi all,
I need to change open sales order value which is already there in S066 table.
Previously we had used open order value for credit check. Open order values are already updated in the S066 table.
Now we dont want to consider open order value for credit check (which is already included in the credit exposure field in FD32).
When we create sales order system is taking old open order value for credit. Now i have changed not to update open order value for credit check. Now its not updating open order value. But my issue is how to change existing or (previous) open order value for credit?
Can i change S066 table data directly to '0'. Is it advisable to chage open order value directly from this table?
Please advise me.
Regards,
Babu
Edited by: babs on May 19, 2010 4:26 PMHi Babs,
If you doesn't want to reflect the open order value in the structure for this order value ,If the order is not processed kindly delete the line items and the order. Then save the document. Then try to see the structure S066.. This will be modified.
If you want to modify the value then follow the below process.
Otherwise delete the line item in the order and change the pricing date and the document date. Re enter the line item again so that it will take it up the new changes.
I hope it will help.
Regards,
SK -
Open order value and credit limit used are -ve
Hi,
We are running into the problem where there is a negative open order value and orders are bypassing credit hold.
The values are incorrect in the open order value and in the credit limit used. These both show as negative values, which is bad.
We have made settings in OVA8 correctly. Is there any other setting should be made in order to block the open order value and credit limit used ????
Thanks in advance. Appreciate if it is replied immediately.
SankarHello,
Please take the help of the SD consultant in this regard. Because open orders means there are many like invoiced and not yet delivered. And the credit limit is also part of the SD to check.
Please check in the T.code FD32 to find out the credit limit detials of the customer.
If helpful pls assign points.
Rams -
Open order value showing in VA05 not matching .
Hi Guru ,
In VA05 open order value in not matching with open order value in FD33 in cretit master .
Please provide input .
Edited by: Ravi Deolalikar on Jun 16, 2010 5:24 PM1/ Check your credit control area settings
2/ Check your sales order config, if it works for one sales order type and not the other compare the two/ -
To exclude Open Order Value in Credit exposure for Delivery credit Block
Dear All,
I have assigned the credit Limit block at the Delivery Level.
For the credit Exposure, i have removed the ticked for Open Sales Orders.
But when i created sales Order, that open order value get added to the exposure. I want to have only the Open Delivery values and other pending Invoices.
Is there any option for me to avoid the open sales Order value get updated in the Credit Exposure.
Thank U,
UwanthiHi,
Remove Sales document type from 'Assign Sales Documents and Delivery Documents' node and assign only delivery credit group.
Check configuration in OVA8 for both the credit groups.
In FD32 if sales value is already added as open items and exposure is updated, try using a new customer to test your requirement or reset the customer.
Regards,
Amit -
Table and Field for Open Order Quantity for a Customer and Material
Hi
I created two sales orders 3 and 5 quantities, and delivered 1 qty in the second order.
when I checked the table VBBE or VA05, I am able to see 3 and 4 qantities open.
but I want to see the total 7 as open order qty, i.e, 3+4=7
because both the orders are placed by the same customer and same material
can u please tell me in which table exactly the total open order quantity for a customer and total open order quantity for a material is stored
Madhu
Edited by: madhubabu rao on Jul 1, 2008 1:49 PMHI,
U can get the information in VA05 as there are columns like confirmed quantity and order quantty and status. U can use summation button (add upto values) to get required information.
Thx,
Pramod -
Retrive open order and open delivery value x custome
Hi,
how can i obtain a list of open order value and open delivery value per customer?
10x
byeCheck the following code which give details of pending orders & values and it can be modified as per ur requirement.
REPORT ZPEND_ORDER no standard page heading line-size 255.
*& Purpose : Details of Sale order having pending deliveries *
*& ( For Rake order handling ) *
tables : vbak, vbap, likp, lips, kna1, vbuk, vbpa, vepvg, vbfa, vbup.
data : pend_qty like vbap-kwmeng,
dlv_qty like vbap-kwmeng,
ord_qty like vbap-kwmeng.
data: begin of itab_vbak occurs 0,
vbeln like vbak-vbeln, "sales order no
audat like vbak-audat, " created date
auart like vbak-auart, " Sales Document Type
vkorg like vbak-vkorg, "Sales Organization
vtweg like vbak-vtweg, " distribution channel
spart like vbak-spart, " Division
vkgrp like vbak-vkgrp, " Sales group
vkbur like vbak-vkbur, " Sales office
kunnr like vbak-kunnr, " sold to party
kunag like vbak-kunnr, " ship to party
cust like vbak-kunnr, " sold to party
ship like kna1-name1, " ship to party
city like kna1-ort01, " ship to party location
deliv like likp-vbeln, " delivery
matnr like vbap-matnr,
arktx like vbap-arktx, " mat description
kwmeng like vbap-kwmeng,
kbmeng like vbap-kbmeng,
fkrel like vbap-matnr,
vstel like vbap-vstel,
route like vbap-route,
chln_no like likp-xabln,
grn_no like likp-bolnr,
truck_no like likp-traid,
dlv_dt like vbfa-erdat, "dlvy date
ord_qty like vbap-kwmeng,
dlvd_qty like vbap-kwmeng,
pend_qty like vbap-kwmeng,
kzwi5 like vbap-kzwi5,
posnr like vbap-posnr,
end of itab_vbak.
data posnr like vbap-posnr.
*FOR ALV DISPLAY
type-pools: slis.
constants: formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
*Data Decelararion for alv display
data: i_fieldtab type slis_t_fieldcat_alv,
i_heading type slis_t_listheader,
i_layout type slis_layout_alv,
i_sort type slis_t_sortinfo_alv,
i_print type slis_print_alv,
i_events type slis_t_event,
i_repname like sy-repid,
f2code like sy-ucomm value '&ETA',
i_save(1) type c,
i_exit(1) type c,
i_variant like disvariant,
h_text(50).
start-of-selection.
selection-screen skip 1.
selection-screen begin of block v1 with frame title text-001.
selection-screen skip 1.
select-options:
ord_no for vepvg-vbeln,
audat for vbak-audat obligatory,
matnr for vbap-matnr,
spart for vbap-spart obligatory,
vstel for vepvg-vstel obligatory,
sale_org for vbak-vkorg obligatory,
sale_off for vbak-vkbur.
selection-screen skip 1.
check box for ALV display
parameters p_alv as checkbox.
selection-screen end of block v1.
selection-screen skip 1.
data: ftab(72) occurs 5 with header line.
refresh ftab.
ftab = 'VBELN'. append ftab.
refresh itab_vbak.
initialization.
i_repname = sy-repid.
start-of-selection.
select vbeln audat vkorg vtweg spart vkbur kunnr from vbak
into
(itab_vbak-vbeln, itab_vbak-audat,
vbak-vkorg, vbak-vtweg, vbak-spart,
itab_vbak-vkbur, itab_vbak-kunnr)
where vbeln in ord_no
and audat in audat
and vbtyp = 'C'
and vkorg in sale_org
and spart in spart
and vkbur in sale_off.
if sy-subrc = 0.
select posnr kwmeng kbmeng matnr arktx "added for mat description
fkrel vstel route kzwi5 spart
from vbap into corresponding fields of itab_vbak
where vbeln = itab_vbak-vbeln .
check ( itab_vbak-fkrel = 'A' or "Delivery-related billing document
itab_vbak-fkrel = 'D' ) "Relevant for pro forma
and itab_vbak-vstel in vstel
and itab_vbak-matnr in matnr
and itab_vbak-spart in spart.
select single * from vbup where vbeln = itab_vbak-vbeln
and posnr = itab_vbak-posnr.
check vbup-gbsta ne 'C'.
dlv_qty = 0.
select single kunnr from vbpa into itab_vbak-kunnr
where vbeln = itab_vbak-vbeln
and parvw = 'WE'.
select single name1 ort01 from kna1 into
(itab_vbak-cust, itab_vbak-city)
where kunnr = itab_vbak-kunnr.
in case of partially processed sale order get delivery details
clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
itab_vbak-grn_no, itab_vbak-truck_no.
if vbup-gbsta eq 'B'. "partially processed
dlv_qty = 0.
get details from delivery
select vbfavbeln vbfarfmng vbfavbtyp_n vbfaerdat
into (vbfa-vbeln, vbfa-rfmng, vbfa-vbtyp_n, vbfa-erdat)
from vbfa
where vbelv = itab_vbak-vbeln
and posnv = itab_vbak-posnr.
check vbfa-vbtyp_n = 'J'.
clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
itab_vbak-grn_no, itab_vbak-truck_no.
select single erdat xabln bolnr traid kunag
into (itab_vbak-dlv_dt, itab_vbak-chln_no, itab_vbak-grn_no,
itab_vbak-truck_no, itab_vbak-kunag)
from likp
where vbeln = vbfa-vbeln.
if sy-subrc = 0.
dlv_qty = dlv_qty + vbfa-rfmng.
itab_vbak-dlv_dt = vbfa-erdat.
itab_vbak-dlvd_qty = dlv_qty.
itab_vbak-deliv = vbfa-vbeln.
endif.
append itab_vbak.
endselect.
elseif vbup-gbsta eq 'A'.
for unprocessed sale order
ship to party details
itab_vbak-kunag = itab_vbak-kunnr.
itab_vbak-ship = itab_vbak-cust.
append itab_vbak.
endif.
endselect.
endif.
clear itab_vbak.
endselect.
loop at itab_vbak.
clear with change in document / item no
on change of itab_vbak-vbeln or itab_vbak-posnr.
clear: dlv_qty,ord_qty,pend_qty.
endon.
at new posnr.
In case full qty not delivered
if itab_vbak-kwmeng > itab_vbak-dlvd_qty.
select single vbpa~kunnr into vbpa-kunnr
from vbpa
where vbeln = itab_vbak-vbeln
and posnr = itab_vbak-posnr
and parvw = 'WE'.
if sy-subrc eq 0.
itab_vbak-kunag = vbpa-kunnr.
select single name1 ort01 from kna1 into
(itab_vbak-ship, itab_vbak-city)
where kunnr = itab_vbak-kunag.
if sy-subrc ne 0.
select single vbpa~kunnr into vbpa-kunnr
from vbpa
where vbeln = itab_vbak-vbeln
and parvw = 'WE'.
itab_vbak-kunag = vbpa-kunnr.
if sy-subrc ne 0 and p_alv ne 'X'.
write :/ 'vbpadetls' , itab_vbak-vbeln, itab_vbak-posnr, itab_vbak-vbeln.
endif.
endif.
endif.
endif.
itab_vbak-ord_qty = itab_vbak-kwmeng.
Delivered Qty & Pending qty
dlv_qty = dlv_qty + itab_vbak-dlvd_qty.
itab_vbak-pend_qty = itab_vbak-kwmeng - dlv_qty.
modify itab_vbak transporting kunag ship city dlvd_qty ord_qty pend_qty .
endat.
endloop.
end-of-selection.
sort itab_vbak by vbeln posnr audat kunnr matnr.
if p_alv ne 'X'.
loop at itab_vbak.
select single kna1name1 kna1ort01
into
(kna1-name1, kna1-ort01)
from kna1
where kunnr = itab_vbak-kunnr.
pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
format color col_normal.
write : /01(10) itab_vbak-vbeln,
12(10) itab_vbak-audat,
24(8) itab_vbak-kunag no-zero,
34(6) itab_vbak-posnr no-zero,
42(10) itab_vbak-matnr no-zero,
54(15) itab_vbak-arktx,
72(25) itab_vbak-ship,
100(15) itab_vbak-city,
118(8) itab_vbak-ord_qty,
128(10) itab_vbak-route,
140(10) itab_vbak-dlv_dt,
152(10) itab_vbak-dlvd_qty,
164(10) itab_vbak-chln_no,
176(10) itab_vbak-grn_no,
188(10) itab_vbak-truck_no,
200(10) itab_vbak-pend_qty,
218(15) itab_vbak-kzwi5 left-justified.
format reset.
at end of audat.
sum.
pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
format color col_background.
write: /118(8) itab_vbak-ord_qty,
152(10) itab_vbak-dlvd_qty,
200(10) pend_qty,
218 itab_vbak-kzwi5 left-justified.
format reset.
endat.
at last.
sum.
pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
format color col_total.
write : /5 'Grand Total : '.
write: /118(8) itab_vbak-ord_qty,
152(10) itab_vbak-dlvd_qty,
200(10) pend_qty,
218 itab_vbak-kzwi5 left-justified.
format reset.
endat.
endloop.
else.
for ALV Display
i_repname = sy-repid.
perform fieldcat using i_fieldtab[].
perform eventtab using i_events[].
perform comment using i_heading[].
perform call_alv.
perform build_layout using i_layout.
endif.
top-of-page.
if p_alv ne 'X'.
format color col_heading.
write: /01 'Ord No',
12 'Ord Date',
24 'Sold to Party',
34 'Item No',
42 'Mat No',
54 'Mat Descp',
72 'Ship to Party',
100 'City',
118 'Qty',
128 'Route',
140 'Dlv Date',
152 'Dlv Qty',
164 'Challan No',
176 'GRN No',
188 'Truck No',
200 'Pend Qty',
218 'Total Value'.
format reset.
endif.
*& Form fieldcat
text
-->P_I_FIELDTAB[] text
form fieldcat using p_fieldtab type slis_t_fieldcat_alv.
data: l_fieldcat type slis_fieldcat_alv.
clear l_fieldcat.
l_fieldcat-tabname = 'ITAB_VBAK'.
l_fieldcat-fix_column = 'X'.
l_fieldcat-no_out = ' '.
l_fieldcat-fieldname = 'VKBUR'.
l_fieldcat-outputlen = 6.
l_fieldcat-seltext_l = 'Sales Office'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'VSTEL'.
l_fieldcat-outputlen = 5.
l_fieldcat-seltext_l = 'Shipping Point'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'VBELN'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Order No.'.
l_fieldcat-no_zero = 'X'.
l_fieldcat-hotspot = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'AUDAT'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Doc Date'.
l_fieldcat-hotspot = ''.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'POSNR'.
l_fieldcat-outputlen = 5.
l_fieldcat-seltext_l = 'Item'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'MATNR'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Material No'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'ARKTX'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Mat. Description'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'KUNNR'.
l_fieldcat-outputlen = 8.
l_fieldcat-seltext_l = 'Sold to Party'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'CUST'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Sold to Party Descp.'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'KUNAG'.
l_fieldcat-outputlen = 8.
l_fieldcat-seltext_l = 'Ship to Party'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'SHIP'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Ship to Party Descp'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'CITY'.
l_fieldcat-outputlen = 13.
l_fieldcat-seltext_l = 'City'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'DELIV'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Delivery No.'.
l_fieldcat-no_zero = 'X'.
l_fieldcat-hotspot = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'ORD_QTY'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Qty'.
l_fieldcat-no_zero = ' '.
l_fieldcat-hotspot = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'ROUTE'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Route'.
l_fieldcat-no_zero = 'X'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'DLV_DT'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Delivered date'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'DLVD_QTY'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Delivered Qty'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'CHLN_NO'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'Challan No'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'GRN_NO'.
l_fieldcat-outputlen = 15.
l_fieldcat-seltext_l = 'GR Number'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'TRUCK_NO'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Truck No'.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'PEND_QTY'.
l_fieldcat-outputlen = 10.
l_fieldcat-seltext_l = 'Pending Qty'.
l_fieldcat-no_zero = ' '.
append l_fieldcat to p_fieldtab.
l_fieldcat-fieldname = 'KZWI5'.
l_fieldcat-outputlen = 13.
l_fieldcat-seltext_l = 'Value'.
append l_fieldcat to p_fieldtab.
clear l_fieldcat.
endform. " FIELDCAT
*& Form EVENTTAB
text
-->P_I_EVENTS[] text
form eventtab using p_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 = p_events.
read table p_events with key name = slis_ev_top_of_page
into ls_event.
if sy-subrc = 0.
move formname_top_of_page to ls_event-form.
append ls_event to p_events.
endif.
endform. " EVENTTAB
*& Form BUILD_LAYOUT
text
-->P_LAYOUT text
form build_layout using p_layout type slis_layout_alv.
p_layout-f2code = f2code.
p_layout-zebra = 'X'.
p_layout-detail_popup = 'X'.
endform. " BUILD_LAYOUT
*& Form COMMENT
text
-->P_I_HEADING[] text
form comment using p_i_heading type slis_t_listheader.
data: hline type slis_listheader,
text(60) type c,
sep(20) type c.
clear: hline, text.
hline-typ = 'H'.
write : 'Pending Sale Order Details' to hline-info.
append hline to i_heading.
endform. " COMMENT
*& Form TOP_OF_PAGE
text
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_heading
i_logo = 'ALV_REPORT'.
endform. " TOP_OF_PAGE
*& Form call_alv
text
--> p1 text
<-- p2 text
form call_alv .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_interface_check = ' '
i_buffer_active = ' '
i_callback_program = i_repname
i_callback_pf_status_set = ' '
i_callback_user_command = 'FRM_ALV_USER_COMMAND'
i_structure_name = 'ITAB_VBAK'
i_background_id = ' '
is_layout = i_layout
it_fieldcat = i_fieldtab
it_sort = i_sort[]
i_default = 'X'
i_save = 'A'
is_variant = i_variant
it_events = i_events[]
is_print = i_print
tables
t_outtab = itab_vbak.
if sy-subrc <> 0.
write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
endif.
endform. " call_alv
*& Form frm_alv_user_command
text
-->UCOMM text
-->SELFIELD text
form frm_alv_user_command using ucomm like sy-ucomm
selfield type slis_selfield.
case ucomm.
when '&IC1'.
if selfield-tabname = 'ITAB_VBAK'.
if selfield-fieldname = 'VBELN'.
read table itab_vbak index selfield-tabindex.
if sy-subrc = 0.
set parameter id 'AUN' field itab_vbak-vbeln.
call transaction 'VA03' and skip first screen.
endif.
elseif selfield-fieldname = 'DELIV'.
read table itab_vbak index selfield-tabindex.
if sy-subrc = 0.
set parameter id 'VL' field itab_vbak-deliv.
call transaction 'VL03N' and skip first screen.
endif.
endif.
endif.
endcase.
endform. "frm_alv_user_command -
Contract value not updated in open order value of credit management
My requirement is i have created the contract and activated the credit management by assigning credit group to contract document type, In item category the credit is active and in pricing subtotal is also assigned .
But when i create the contract , the open order value is not updated .
i do not want the credit to be active at order level.
Dear guru's
please let me know where i am going wrong
thanks in advancehi,
open sales orders value not updating currectly in sales value of CM
http://wiki.sdn.sap.com/wiki/display/ERPLO/CreditmangementIn+SD-FI
i think you have to run a report which is under the link number 1.
regards,
balajia -
How to get the open order quantity for a material
Hi All,
We need to get the open order quantity for materials. At present we are using the following logic...
SELECT VBAKVBELN VBAPPOSNR VBAP~KWMENG
INTO TABLE IT_VBAP
FROM VBAP
INNER JOIN VBAK ON VBAKVBELN = VBAPVBELN
INNER JOIN VAPMA ON VAPMAVBELN = VBAPVBELN
AND VAPMAPOSNR = VBAPPOSNR
INNER JOIN VBUP ON VBUPVBELN = VBAPVBELN
AND VBUPPOSNR = VBAPPOSNR
WHERE VAPMA~MATNR = IT_OUTPUT-MATNR
AND VAPMA~WERKS = IT_OUTPUT-WERKS
AND VBAK~AUART IN S_AUART
AND VBUP~GBSTA NE 'C'.
But the Query takes quite a long time as it does a full range scan on all the tables. Is there any way the query can be improved, may be by creating an index etc? Or is there anyother way by which i can get the required data?
Any input is appreciated.
Regards
Brain.This could help.
*& Report: zsdvr055 date written: 03/24/00 *
*& Author: Brian Huntley last update: 03/24/00 *
*& Program Title: Open Order Report *
*& Description: This report will create a list of sales documents *
*& that are open (contain at least one item that is not shipped). *
*& The report will sort by ship-to customer name and by sales *
*& document number. *
*& Tables: *
*& Files: *
*& Transactions: *
*& Changes: *
REPORT ZSDVR055 LINE-SIZE 255.
TABLES: VBPA,
VBAP,
VBUP,
VBAK,
VBKD,
KNA1,
VBEP,
VBFA,
LIKP,
LIPS,
EKET,
T171T.
define hashed table for selected ship-to and sold-to SO's
TYPES: BEGIN OF TVBPA_TYPE,
VBELN LIKE VBPA-VBELN, "sales document
POSNR LIKE VBPA-POSNR, "item number
PARVW LIKE VBPA-PARVW, "partner function
KUNNR LIKE VBPA-KUNNR, "customer number
END OF TVBPA_TYPE.
DATA: TVBPA TYPE HASHED TABLE OF TVBPA_TYPE
WITH UNIQUE KEY VBELN POSNR PARVW WITH HEADER LINE.
define internal table for all selected SO's
DATA: BEGIN OF ITAB0 OCCURS 0,
VBELN LIKE VBPA-VBELN, "sales document
END OF ITAB0.
define internal table for all selected SO items
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAP-VBELN, "document number
POSNR LIKE VBAP-POSNR, "item number
MATNR LIKE VBAP-MATNR, "material
ARKTX LIKE VBAP-ARKTX, "description
PSTYV LIKE VBAP-PSTYV, "item category
KDMAT LIKE VBAP-KDMAT, "customer material
NETWR LIKE VBAP-NETWR, "net value
WAERK LIKE VBAP-WAERK, "currency
KWMENG LIKE VBAP-KWMENG, "quantity
ERDAT LIKE VBAP-ERDAT, "entry date
NETPR LIKE VBAP-NETPR, "net price
KPEIN LIKE VBAP-KPEIN, "pricing unit
PRCTR LIKE VBAP-PRCTR, "profit center
ERNAM LIKE VBAK-ERNAM, "entered by
AUART LIKE VBAK-AUART, "order type
VKORG LIKE VBAK-VKORG, "sales organization
VTWEG LIKE VBAK-VTWEG, "distribution channel
VDATU LIKE VBAK-VDATU, "requested date (header)
BNAME LIKE VBAK-BNAME, "name of orderer
KUNNR LIKE VBAK-KUNNR, "sold-to customer
BZIRK LIKE VBKD-BZIRK, "sales district
KURSK LIKE VBKD-KURSK, "conversion rate
BSTKD LIKE VBKD-BSTKD, "customer PO
LFGSA LIKE VBUP-LFGSA, "overall delivery status
FKSAA LIKE VBUP-FKSAA, "overall billing status
KUNWE LIKE VBPA-KUNNR, "ship-to customer
NAME1 LIKE KNA1-NAME1, "ship-to customer name
ORT01 LIKE KNA1-ORT01, "ship-to address
REGIO LIKE KNA1-REGIO, "ship-to region (state)
LAND1 LIKE KNA1-LAND1, "ship-to country
END OF ITAB.
create internal table for open orders
DATA: BEGIN OF ITAB1 OCCURS 0,
KUNNR LIKE VBAK-KUNNR, "sold-to customer
KUNWE LIKE VBPA-KUNNR, "ship-to customer
VBELN LIKE VBAP-VBELN, "document number
POSNR LIKE VBAP-POSNR, "item number
ZDATE1 LIKE VBEP-EDATU, "requested date
ZDATE2 LIKE VBEP-EDATU, "scheduled date (confirm)
ZDATE3 LIKE VBEP-EDATU, "committed date
ZQTY1 LIKE VBAP-KWMENG, "qty ordered
ZQTY2 LIKE VBEP-BMENG, "backlog qty
ZEXTD LIKE VBAP-NETWR, "backlog net value
ZDESC(30) TYPE C, "backlog description
END OF ITAB1.
define internal table for SO schedule lines
DATA: BEGIN OF ITAB2A OCCURS 0,
WADAT LIKE VBEP-WADAT, "planned goods issue date
VBELN LIKE VBAP-VBELN, "document number
POSNR LIKE VBAP-POSNR, "item number
WMENG LIKE VBEP-WMENG, "qty ordered
BMENG LIKE VBEP-BMENG, "qty confirmed
END OF ITAB2A.
define internal table for SO item request dates
DATA: BEGIN OF ITAB2B OCCURS 0,
EDATU LIKE VBEP-EDATU, "delivery date
VBELN LIKE VBAP-VBELN, "document number
POSNR LIKE VBAP-POSNR, "item number
WMENG LIKE VBEP-WMENG, "qty ordered
END OF ITAB2B.
define internal table for SO item commit dates
DATA: BEGIN OF ITAB2C OCCURS 0,
EDATU LIKE VBEP-EDATU, "delivery date
VBELN LIKE VBAP-VBELN, "document number
POSNR LIKE VBAP-POSNR, "item number
ROMS1 LIKE VBEP-WMENG, "committed qty
END OF ITAB2C.
define internal table for SO item deliveries
DATA: BEGIN OF ITAB3 OCCURS 0,
VGBEL LIKE LIPS-VGBEL, "sales document
VGPOS LIKE LIPS-VGPOS, "sales document item
VBELN LIKE LIKP-VBELN, "delivery number
POSNR LIKE LIPS-POSNR, "delivery item number
WADAT LIKE LIKP-WADAT, "planned GI date
WADAT_IST LIKE LIKP-WADAT_IST, "actual GI date
LFIMG LIKE LIPS-LFIMG, "actual qty delivered
ERDAT LIKE LIKP-ERDAT, "date created
ERZET LIKE LIKP-ERZET, "time created
END OF ITAB3.
define internal table for SO item / delivery cross reference
DATA: BEGIN OF ITAB4 OCCURS 0,
VBELV LIKE VBFA-VBELV, "sales document
POSNV LIKE VBFA-POSNV, "sales document item
VBELN LIKE VBFA-VBELN, "delivery number
POSNN LIKE VBFA-POSNN, "delivery item
VBTYP_N LIKE VBFA-VBTYP_N, "document category
RFMNG LIKE VBFA-RFMNG, "qty delivered
PLMIN LIKE VBFA-PLMIN, "plus/minus flag
END OF ITAB4.
define local variables
DATA: ORDR_QTY LIKE VBEP-WMENG, "order qty
CONF_QTY LIKE VBEP-BMENG, "confirmed qty
NOCONF_QTY LIKE VBEP-BMENG, "qty not confirmed
DELV_QTY LIKE VBEP-WMENG, "qty delivered
NODELV_QTY LIKE VBEP-WMENG, "qty not delivered
REMAIN_QTY LIKE VBEP-WMENG, "qty remain to get conf date
REQ_DATE LIKE VBEP-EDATU, "request date
COM_DATE LIKE VBEP-EDATU, "committed date
DELV_QTY1 LIKE VBEP-WMENG, "preceding delivery qty
REMAIN_QTY1 LIKE VBEP-WMENG, "qty remain to get reqest date
REMAIN_QTY2 LIKE VBEP-WMENG, "qty remain to get commit date
THIRD_QTY LIKE VBEP-WMENG, "3rd party no PO qty
SO_STOCK LIKE MSKA-KALAB, "sales order stock
ZPRICE LIKE VBAP-NETPR, "unit price USD
ADRS1(40) TYPE C, "concatenated city and region
ADRS2(45) TYPE C, "city, region and country
ADRS3(80) TYPE C, "name, city, rgn, ctry
ZCNTR TYPE I. "counter
define select options
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VKORG FOR VBAK-VKORG DEFAULT '1000',
S_VTWEG FOR VBAK-VTWEG DEFAULT '10' NO-DISPLAY,
S_SPART FOR VBAK-SPART DEFAULT '00' NO-DISPLAY,
S_KUNNR FOR VBPA-KUNNR MATCHCODE OBJECT DEBI,
S_KUNWE FOR VBPA-KUNNR MATCHCODE OBJECT DEBI.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS:
S_BZIRK FOR VBKD-BZIRK,
S_PRCTR FOR VBAP-PRCTR,
S_MATNR FOR VBAP-MATNR MATCHCODE OBJECT MAT1,
S_ERNAM FOR VBAK-ERNAM,
S_ERDAT FOR VBAP-ERDAT.
SELECTION-SCREEN END OF BLOCK BLK1.
AT SELECTION-SCREEN.
IF S_KUNNR IS INITIAL AND S_KUNWE IS INITIAL.
MESSAGE E005(ZM) WITH TEXT-100.
ENDIF.
MAIN PROGRAM
INITIALIZATION.
INCLUDE ZSYHEADR.
START-OF-SELECTION.
PERFORM 100_GET_SO_ITEMS.
PERFORM 200_GET_NO_DELIVERY.
PERFORM 300_GET_NO_GOODS_ISSUE.
PERFORM 400_GET_PARTIAL_DELIVERY.
PERFORM 500_GET_THIRD_PARTY.
PERFORM 900_CREATE_LIST.
FORM 100_GET_SO_ITEMS
FORM 100_GET_SO_ITEMS.
get SO's for selected ship-to and sold-to customers
REFRESH TVBPA.
IF NOT S_KUNNR IS INITIAL.
SELECT VBELN POSNR PARVW KUNNR
FROM VBPA INTO TABLE TVBPA
WHERE KUNNR IN S_KUNNR AND PARVW = 'AG' AND VBELN < '0080000000'.
ENDIF.
IF NOT S_KUNWE IS INITIAL.
SELECT VBELN POSNR PARVW KUNNR
FROM VBPA APPENDING TABLE TVBPA
WHERE KUNNR IN S_KUNWE AND PARVW = 'WE' AND VBELN < '0080000000'.
ENDIF.
DESCRIBE TABLE TVBPA LINES ZCNTR.
IF ZCNTR = 0.
WRITE: /1 'No data found for selection'.
STOP.
ENDIF.
eliminate duplicate SO's
LOOP AT TVBPA.
CLEAR ITAB0.
MOVE TVBPA-VBELN TO ITAB0-VBELN.
APPEND ITAB0.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM ITAB0.
get SO detail
SELECT VBAP~VBELN VBAP~POSNR VBAP~MATNR VBAP~ARKTX VBAP~PSTYV
VBAP~KDMAT VBAP~NETWR VBAP~WAERK VBAP~KWMENG VBAP~ERDAT
VBAP~NETPR VBAP~KPEIN VBAP~PRCTR VBAK~ERNAM VBAK~AUART
VBAK~VKORG VBAK~VTWEG VBAK~VDATU VBAK~BNAME VBAK~KUNNR
VBKD~BZIRK VBKD~KURSK VBKD~BSTKD VBUP~LFGSA VBUP~FKSAA
FROM VBAP INNER JOIN VBUP ON VBUP~VBELN = VBAP~VBELN AND
VBUP~POSNR = VBAP~POSNR
INNER JOIN VBKD ON VBKD~VBELN = VBAP~VBELN AND
VBKD~POSNR = VBAP~POSNR
INNER JOIN VBAK ON VBAK~VBELN = VBAP~VBELN
INTO TABLE ITAB FOR ALL ENTRIES IN ITAB0
WHERE VBAP~VBELN = ITAB0-VBELN AND VBAP~MATNR IN S_MATNR AND
VBAP~ERDAT IN S_ERDAT AND VBAP~PRCTR IN S_PRCTR AND
VBAP~ABGRU = SPACE AND VBKD~BZIRK IN S_BZIRK AND
VBAK~VKORG IN S_VKORG AND VBAK~VTWEG IN S_VTWEG AND
VBAK~SPART IN S_SPART AND VBAK~KUNNR IN S_KUNNR AND
VBAK~ERNAM IN S_ERNAM.
IF SY-SUBRC <> 0.
WRITE: /1 'No data found for selection'.
STOP.
ENDIF.
loop thru SO items
LOOP AT ITAB.
get ship-to customer
IF NOT S_KUNWE IS INITIAL.
CLEAR TVBPA.
READ TABLE TVBPA WITH TABLE KEY VBELN = ITAB-VBELN
POSNR = ITAB-POSNR PARVW = 'WE'.
IF SY-SUBRC <> 0.
READ TABLE TVBPA WITH TABLE KEY VBELN = ITAB-VBELN
POSNR = '000000' PARVW = 'WE'.
ENDIF.
MOVE TVBPA-KUNNR TO ITAB-KUNWE.
ELSE.
CLEAR ITAB-KUNWE.
SELECT SINGLE KUNNR FROM VBPA INTO ITAB-KUNWE
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
PARVW = 'WE'.
IF SY-SUBRC <> 0.
SELECT SINGLE KUNNR FROM VBPA INTO ITAB-KUNWE
WHERE VBELN = ITAB-VBELN AND POSNR = '000000' AND
PARVW = 'WE'.
ENDIF.
ENDIF.
IF NOT ITAB-KUNWE IN S_KUNWE.
DELETE ITAB.
CONTINUE.
ENDIF.
get ship-to customer address info
SELECT SINGLE NAME1 ORT01 REGIO LAND1 FROM KNA1
INTO (ITAB-NAME1, ITAB-ORT01, ITAB-REGIO, ITAB-LAND1)
WHERE KUNNR = ITAB-KUNWE.
MODIFY ITAB.
ENDLOOP.
SORT ITAB BY VBELN POSNR.
ENDFORM.
FORM 200_GET_NO_DELIVERY
get detail for SO items w/ no deliveries for order document types
(ZZOR, ZZC1, ZZCO, ZZRP, ZZRW, KE, KR, ZCHP, ZPSO, ZZNC)
FORM 200_GET_NO_DELIVERY.
LOOP AT ITAB WHERE AUART = 'ZZOR' OR AUART = 'ZZC1' OR
AUART = 'ZZCO' OR AUART = 'ZZRP' OR AUART = 'ZZRW' OR
AUART = 'KE' OR AUART = 'KR' OR AUART = 'ZCHP' OR
AUART = 'ZPSO' OR AUART = 'ZZNC'.
select if delivery status = A (not delivered)
IF ITAB-LFGSA = 'A'.
assign values to detail fields
CLEAR ITAB1.
ITAB1-KUNNR = ITAB-KUNNR.
ITAB1-KUNWE = ITAB-KUNWE.
ITAB1-VBELN = ITAB-VBELN.
ITAB1-POSNR = ITAB-POSNR.
IF ITAB-KURSK = 0.
ITAB-KURSK = 1.
ENDIF.
IF ITAB-KPEIN = 0.
ITAB-KPEIN = 1.
ENDIF.
select schedule lines for SO item and write to internal table itab2a
SELECT WADAT VBELN POSNR WMENG BMENG
FROM VBEP INTO TABLE ITAB2A
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR.
select sched lines w/request date and write to internal table itab2b
SELECT EDATU VBELN POSNR WMENG
FROM VBEP INTO TABLE ITAB2B
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
WMENG <> 0.
select sched lines w/commit date and write to internal table itab2c
SELECT EDATU VBELN POSNR ROMS1
FROM VBEP INTO TABLE ITAB2C
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
ROMS1 <> 0.
SORT ITAB2A BY WADAT.
SORT ITAB2B BY EDATU.
SORT ITAB2C BY EDATU.
ORDR_QTY = 0.
CONF_QTY = 0.
NOCONF_QTY = 0.
calculate the unconfirmed qty for a SO item
LOOP AT ITAB2A.
CONF_QTY = CONF_QTY + ITAB2A-BMENG.
ORDR_QTY = ORDR_QTY + ITAB2A-WMENG.
ENDLOOP.
NOCONF_QTY = ORDR_QTY - CONF_QTY.
LOOP AT ITAB2A WHERE BMENG <> 0.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING ITAB2A-BMENG REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING ITAB2A-BMENG COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = ITAB2A-WADAT.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = ITAB2A-BMENG.
ITAB1-ZDESC = 'no delivery, confirmed'.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
if order type is consignment return (KR), reverse sign
IF ITAB-AUART = 'KR'.
ITAB1-ZQTY1 = ITAB1-ZQTY1 * -1.
ITAB1-ZQTY2 = ITAB1-ZQTY2 * -1.
ITAB1-ZEXTD = ITAB1-ZEXTD * -1.
ENDIF.
APPEND ITAB1.
ENDLOOP.
get request date for SO item
IF NOCONF_QTY <> 0.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING NOCONF_QTY REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING NOCONF_QTY COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = '99991231'.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = NOCONF_QTY.
ITAB1-ZDESC = 'no delivery, not confirmed'.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
if order type is consignment return (KR), reverse sign
IF ITAB-AUART = 'KR'.
ITAB1-ZQTY1 = ITAB1-ZQTY1 * -1.
ITAB1-ZQTY2 = ITAB1-ZQTY2 * -1.
ITAB1-ZEXTD = ITAB1-ZEXTD * -1.
ENDIF.
APPEND ITAB1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
FORM 300_GET_NO_GOODS_ISSUE
get detail for SO items w/deliveries and no goods issue for
doc types (ZZOR, ZZC1, ZZCO, ZZRP, ZZRW, KE, KR, ZCHP, ZPSO, ZZNC)
FORM 300_GET_NO_GOODS_ISSUE.
get detail for deliveries w/no goods issue
SELECT VBELN WADAT WADAT_IST ERDAT ERZET
FROM LIKP INTO (LIKP-VBELN, LIKP-WADAT, LIKP-WADAT_IST,
LIKP-ERDAT, LIKP-ERZET)
WHERE WADAT_IST = 0.
select if actual qty delivered <> 0
CLEAR LIPS.
SELECT POSNR VGBEL VGPOS LFIMG
FROM LIPS INTO (LIPS-POSNR, LIPS-VGBEL, LIPS-VGPOS, LIPS-LFIMG)
WHERE VBELN = LIKP-VBELN AND LFIMG <> 0.
select if goods movement status on delivery = A (no goods issue)
CLEAR VBUP.
SELECT SINGLE WBSTA FROM VBUP INTO VBUP-WBSTA
WHERE VBELN = LIKP-VBELN AND POSNR = LIPS-POSNR.
IF VBUP-WBSTA = 'A'.
CLEAR ITAB3.
ITAB3-VGBEL = LIPS-VGBEL.
ITAB3-VGPOS = LIPS-VGPOS.
ITAB3-VBELN = LIKP-VBELN.
ITAB3-POSNR = LIPS-POSNR.
ITAB3-WADAT = LIKP-WADAT.
ITAB3-WADAT_IST = LIKP-WADAT_IST.
ITAB3-LFIMG = LIPS-LFIMG.
ITAB3-ERDAT = LIKP-ERDAT.
ITAB3-ERZET = LIKP-ERZET.
APPEND ITAB3.
ENDIF.
ENDSELECT.
ENDSELECT.
SORT ITAB3 BY VGBEL VGPOS VBELN POSNR.
loop thru deliveries w/no goods issue and get SO item detail
LOOP AT ITAB3.
CLEAR ITAB.
READ TABLE ITAB WITH KEY VBELN = ITAB3-VGBEL POSNR = ITAB3-VGPOS.
IF SY-SUBRC <> 0.
IF ITAB-AUART = 'ZZOR' OR ITAB-AUART = 'ZZC1' OR
ITAB-AUART = 'ZZCO' OR ITAB-AUART = 'ZZRP' OR
ITAB-AUART = 'ZZRW' OR ITAB-AUART = 'KE' OR
ITAB-AUART = 'KR' OR ITAB-AUART = 'ZCHP' OR
ITAB-AUART = 'ZPSO' OR ITAB-AUART = 'ZZNC'.
assign values to detail fields
CLEAR ITAB1.
ITAB1-KUNNR = ITAB-KUNNR.
ITAB1-KUNWE = ITAB-KUNWE.
ITAB1-VBELN = ITAB-VBELN.
ITAB1-POSNR = ITAB-POSNR.
IF ITAB-KURSK = 0.
ITAB-KURSK = 1.
ENDIF.
IF ITAB-KPEIN = 0.
ITAB-KPEIN = 1.
ENDIF.
select delivery qty for SO item and write to internal table
SELECT VBELV POSNV VBELN POSNN VBTYP_N RFMNG PLMIN
FROM VBFA INTO TABLE ITAB4
WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR AND
( VBTYP_N = 'J' OR VBTYP_N = 'T' ).
calculate total delivery qty for SO item
DELV_QTY = 0.
DELV_QTY1 = 0.
LOOP AT ITAB4.
IF ITAB4-VBTYP_N = 'J' OR ( ITAB4-VBTYP_N = 'T' AND
ITAB-AUART = 'KR').
IF ITAB4-PLMIN = '-'.
ITAB4-RFMNG = ITAB4-RFMNG * -1.
ENDIF.
determine if delivery for SO item precedes delivery w/no goods
issue (to determine request date and qty)
CLEAR LIKP.
SELECT SINGLE ERDAT ERZET
FROM LIKP INTO (LIKP-ERDAT, LIKP-ERZET)
WHERE VBELN = ITAB4-VBELN.
IF LIKP-ERDAT < ITAB3-ERDAT OR ( LIKP-ERDAT = ITAB3-ERDAT
AND LIKP-ERZET < ITAB3-ERZET ).
DELV_QTY1 = DELV_QTY1 + ITAB4-RFMNG.
ENDIF.
DELV_QTY = DELV_QTY + ITAB4-RFMNG.
ENDIF.
ENDLOOP.
get request dates for SO item
REFRESH ITAB2B.
SELECT EDATU VBELN POSNR WMENG
FROM VBEP INTO TABLE ITAB2B
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
WMENG <> 0.
select sched lines w/commit date and write to itab2c
REFRESH ITAB2C.
SELECT EDATU VBELN POSNR ROMS1
FROM VBEP INTO TABLE ITAB2C
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
ROMS1 <> 0.
SORT ITAB2B BY EDATU.
SORT ITAB2C BY EDATU.
loop thru request dates and delete request date entries for
quantity(s) for preceding deliveries
REMAIN_QTY1 = DELV_QTY1.
LOOP AT ITAB2B.
IF ITAB2B-WMENG > REMAIN_QTY1.
ITAB2B-WMENG = ITAB2B-WMENG - REMAIN_QTY1.
MODIFY ITAB2B.
EXIT.
ELSEIF ITAB2B-WMENG = REMAIN_QTY1.
DELETE ITAB2B.
EXIT.
ELSE.
REMAIN_QTY1 = REMAIN_QTY1 - ITAB2B-WMENG.
DELETE ITAB2B.
ENDIF.
ENDLOOP.
loop thru commit dates and delete commit date entries for
quantity(s) for preceding deliveries
REMAIN_QTY2 = DELV_QTY1.
LOOP AT ITAB2C.
IF ITAB2C-ROMS1 > REMAIN_QTY2.
ITAB2C-ROMS1 = ITAB2C-ROMS1 - REMAIN_QTY2.
MODIFY ITAB2C.
EXIT.
ELSEIF ITAB2C-ROMS1 = REMAIN_QTY2.
DELETE ITAB2C.
EXIT.
ELSE.
REMAIN_QTY2 = REMAIN_QTY2 - ITAB2C-ROMS1.
DELETE ITAB2C.
ENDIF.
ENDLOOP.
if planned goods issue date is 0, put qty in non-confirmed
get request date for SO item
IF ITAB3-WADAT <> 0.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING ITAB3-LFIMG REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING ITAB3-LFIMG COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = ITAB3-WADAT.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = ITAB3-LFIMG.
ITAB1-ZDESC = 'delivery, no goods issue'.
ELSE.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING ITAB3-LFIMG REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING ITAB3-LFIMG COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = '99991231'.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = ITAB3-LFIMG.
ITAB1-ZDESC = 'delivery, no goods issue date'.
ENDIF.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
if order type is consignment return (KR), reverse sign
IF ITAB-AUART = 'KR'.
ITAB1-ZQTY1 = ITAB1-ZQTY1 * -1.
ITAB1-ZQTY2 = ITAB1-ZQTY2 * -1.
ITAB1-ZEXTD = ITAB1-ZEXTD * -1.
ENDIF.
APPEND ITAB1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
FORM 400_GET_PARTIAL_DELIVERY
get detail for SO items w/partial deliveries for document types
(ZZOR, ZZC1, ZZCO, ZZRP, ZZRW, KE, KR, ZCHP, ZPSO, ZZNC)
FORM 400_GET_PARTIAL_DELIVERY.
process SO items for selected order types
LOOP AT ITAB WHERE AUART = 'ZZOR' OR AUART = 'ZZC1' OR
AUART = 'ZZCO' OR AUART = 'ZZRP' OR AUART = 'ZZRW' OR
AUART = 'KE' OR AUART = 'KR' OR AUART = 'ZCHP' OR
AUART = 'ZPSO' OR AUART = 'ZZNC'.
select if delivery status = B (partially delivered)
IF ITAB-LFGSA = 'B'.
assign values to detail fields
CLEAR ITAB1.
ITAB1-KUNNR = ITAB-KUNNR.
ITAB1-KUNWE = ITAB-KUNWE.
ITAB1-VBELN = ITAB-VBELN.
ITAB1-POSNR = ITAB-POSNR.
IF ITAB-KURSK = 0.
ITAB-KURSK = 1.
ENDIF.
IF ITAB-KPEIN = 0.
ITAB-KPEIN = 1.
ENDIF.
select delivery qty for SO item and write to internal table
SELECT VBELV POSNV VBELN POSNN VBTYP_N RFMNG PLMIN
FROM VBFA INTO TABLE ITAB4
WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR AND
( VBTYP_N = 'J' OR VBTYP_N = 'T' ).
calculate total delivery qty for SO item
DELV_QTY = 0.
LOOP AT ITAB4.
IF ITAB4-VBTYP_N = 'J' OR ( ITAB4-VBTYP_N = 'T' AND
ITAB-AUART = 'KR').
IF ITAB4-PLMIN = '-'.
ITAB4-RFMNG = ITAB4-RFMNG * -1.
ENDIF.
DELV_QTY = DELV_QTY + ITAB4-RFMNG.
ENDIF.
ENDLOOP.
select schedule lines for SO item and write to internal table
REFRESH ITAB2A.
SELECT WADAT VBELN POSNR WMENG BMENG
FROM VBEP INTO TABLE ITAB2A
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR.
get request dates from schedule line table
REFRESH ITAB2B.
SELECT EDATU VBELN POSNR WMENG
FROM VBEP INTO TABLE ITAB2B
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
WMENG <> 0.
get commit dates from schedule line table
REFRESH ITAB2C.
SELECT EDATU VBELN POSNR ROMS1
FROM VBEP INTO TABLE ITAB2C
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
ROMS1 <> 0.
SORT ITAB2B BY EDATU.
SORT ITAB2C BY EDATU.
SORT ITAB2A BY WADAT.
loop thru request dates and delete request date entries for
quantity(s) already delivered
REMAIN_QTY1 = DELV_QTY.
LOOP AT ITAB2B.
IF ITAB2B-WMENG > REMAIN_QTY1.
ITAB2B-WMENG = ITAB2B-WMENG - REMAIN_QTY1.
MODIFY ITAB2B.
EXIT.
ELSEIF ITAB2B-WMENG = REMAIN_QTY1.
DELETE ITAB2B.
EXIT.
ELSE.
REMAIN_QTY1 = REMAIN_QTY1 - ITAB2B-WMENG.
DELETE ITAB2B.
ENDIF.
ENDLOOP.
loop thru commit dates and delete request date entries for
quantity(s) already delivered
REMAIN_QTY2 = DELV_QTY.
LOOP AT ITAB2C.
IF ITAB2C-ROMS1 > REMAIN_QTY2.
ITAB2C-ROMS1 = ITAB2C-ROMS1 - REMAIN_QTY2.
MODIFY ITAB2C.
EXIT.
ELSEIF ITAB2C-ROMS1 = REMAIN_QTY2.
DELETE ITAB2C.
EXIT.
ELSE.
REMAIN_QTY2 = REMAIN_QTY2 - ITAB2C-ROMS1.
DELETE ITAB2C.
ENDIF.
ENDLOOP.
ORDR_QTY = 0.
CONF_QTY = 0.
NOCONF_QTY = 0.
calculate the unconfirmed qty for SO item
LOOP AT ITAB2A.
ORDR_QTY = ORDR_QTY + ITAB2A-WMENG.
CONF_QTY = CONF_QTY + ITAB2A-BMENG.
ENDLOOP.
NOCONF_QTY = ORDR_QTY - CONF_QTY.
NODELV_QTY = ORDR_QTY - DELV_QTY.
loop thru schedule lines and process entries with no related
delivery(s)
REMAIN_QTY = DELV_QTY.
LOOP AT ITAB2A.
IF ITAB2A-BMENG <> 0.
IF ITAB2A-BMENG <= REMAIN_QTY.
REMAIN_QTY = REMAIN_QTY - ITAB2A-BMENG.
ELSE.
ITAB2A-BMENG = ITAB2A-BMENG - REMAIN_QTY.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING ITAB2A-BMENG REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING ITAB2A-BMENG COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = ITAB2A-WADAT.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = ITAB2A-BMENG.
ITAB1-ZDESC = 'partial delivery'.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
if order type is consignment return (KR), reverse sign
IF ITAB-AUART = 'KR'.
ITAB1-ZQTY1 = ITAB1-ZQTY1 * -1.
ITAB1-ZQTY2 = ITAB1-ZQTY2 * -1.
ITAB1-ZEXTD = ITAB1-ZEXTD * -1.
ENDIF.
APPEND ITAB1.
REMAIN_QTY = 0.
ENDIF.
ENDIF.
ENDLOOP.
if total unconfirmed >= total not delivered, qty is unconfirmed
IF NOCONF_QTY >= NODELV_QTY.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING NODELV_QTY REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING NODELV_QTY COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = '99991231'.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = NODELV_QTY.
ITAB1-ZDESC = 'partial delv, not confirmed'.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
if order type is consignment return (KR), reverse sign
IF ITAB-AUART = 'KR'.
ITAB1-ZQTY1 = ITAB1-ZQTY1 * -1.
ITAB1-ZQTY2 = ITAB1-ZQTY2 * -1.
ITAB1-ZEXTD = ITAB1-ZEXTD * -1.
ENDIF.
APPEND ITAB1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
FORM 500_GET_THIRD_PARTY
get detail for third party SO items
FORM 500_GET_THIRD_PARTY.
process SO items for selected order types
LOOP AT ITAB WHERE PSTYV = 'TAS' AND ( AUART = 'ZZOR' OR
AUART = 'ZZC1' OR AUART = 'ZZCO' OR AUART = 'ZZRP' OR
AUART = 'ZZRW' OR AUART = 'KE' OR AUART = 'KR' OR
AUART = 'ZCHP' OR AUART = 'ZPSO' OR AUART = 'ZZNC' ).
select if billing status <> C (billed)
IF ITAB-FKSAA <> 'C'.
assign values to detail fields
CLEAR ITAB1.
ITAB1-KUNNR = ITAB-KUNNR.
ITAB1-KUNWE = ITAB-KUNWE.
ITAB1-VBELN = ITAB-VBELN.
ITAB1-POSNR = ITAB-POSNR.
IF ITAB-KURSK = 0.
ITAB-KURSK = 1.
ENDIF.
IF ITAB-KPEIN = 0.
ITAB-KPEIN = 1.
ENDIF.
get request dates from schedule line table
REFRESH ITAB2B.
SELECT EDATU VBELN POSNR WMENG
FROM VBEP INTO TABLE ITAB2B
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
WMENG <> 0.
get commit dates from schedule line table
REFRESH ITAB2C.
SELECT EDATU VBELN POSNR ROMS1
FROM VBEP INTO TABLE ITAB2C
WHERE VBELN = ITAB-VBELN AND POSNR = ITAB-POSNR AND
ROMS1 <> 0.
SORT ITAB2B BY EDATU.
SORT ITAB2C BY EDATU.
get PO number(s) for SO item and write to internal table
REFRESH ITAB4.
SELECT VBELV POSNV VBELN POSNN VBTYP_N RFMNG PLMIN
FROM VBFA INTO TABLE ITAB4
WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR AND
VBTYP_N = 'V' AND RFMNG <> 0.
calculate total delivery qty for PO item
DELV_QTY = 0.
LOOP AT ITAB4.
IF ITAB4-PLMIN = '-'.
ITAB4-RFMNG = ITAB4-RFMNG * -1.
ENDIF.
DELV_QTY = DELV_QTY + ITAB4-RFMNG.
ENDLOOP.
loop thru PO's for SO item
LOOP AT ITAB4.
select delivery lines for PO item
SELECT EINDT EBELN EBELP MENGE FROM EKET
INTO (EKET-EINDT, EKET-EBELN, EKET-EBELP, EKET-MENGE)
WHERE EBELN = ITAB4-VBELN AND EBELP = ITAB4-POSNN.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING EKET-MENGE REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING EKET-MENGE COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = EKET-EINDT.
ITAB1-ZDATE3 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = EKET-MENGE.
ITAB1-ZDESC = '3rd party item'.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
APPEND ITAB1.
ENDSELECT.
ENDLOOP.
if total delivery qty < order qty, put remaining in non-confirmed
IF DELV_QTY < ITAB-KWMENG.
THIRD_QTY = ITAB-KWMENG - DELV_QTY.
PERFORM GET_REQUEST_DATE TABLES ITAB2B
USING THIRD_QTY REQ_DATE.
PERFORM GET_COMMIT_DATE TABLES ITAB2C
USING THIRD_QTY COM_DATE.
ITAB1-ZDATE1 = REQ_DATE.
ITAB1-ZDATE2 = '99991231'.
ITAB1-ZDATE2 = COM_DATE.
ITAB1-ZQTY1 = ITAB-KWMENG.
ITAB1-ZQTY2 = THIRD_QTY.
ITAB1-ZDESC = '3rd party item, no PO'.
calculate net value for backlog qty
ZPRICE = ( ITAB-NETPR / ITAB-KPEIN ) * ITAB-KURSK.
ITAB1-ZEXTD = ITAB1-ZQTY2 * ZPRICE.
APPEND ITAB1.
CONTINUE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
FORM 900_CREATE_LIST
process open business detail and create list
FORM 900_CREATE_LIST.
if internal table is empty, write message and exit
DESCRIBE TABLE ITAB1 LINES ZCNTR.
IF ZCNTR = 0.
WRITE: / 'No Data Found for Selection'.
STOP.
ENDIF.
SORT ITAB1 BY KUNNR KUNWE VBELN POSNR.
loop thru sorted table and create list
LOOP AT ITAB1.
IF ITAB1-ZDATE1 = SPACE.
ITAB1-ZDATE1 = '99991231'.
ENDIF.
IF ITAB1-ZDATE3 = SPACE.
ITAB1-ZDATE3 = '99991231'.
ENDIF.
get SO item detail
CLEAR ITAB.
READ TABLE ITAB WITH KEY VBELN = ITAB1-VBELN
POSNR = ITAB1-POSNR BINARY SEARCH.
print sold-to and ship-to customer header info
AT NEW KUNWE.
CLEAR KNA1.
SELECT SINGLE NAME1 FROM KNA1 INTO KNA1-NAME1
WHERE KUNNR = ITAB1-KUNNR.
CONCATENATE ITAB-ORT01 ITAB-REGIO INTO ADRS1 SEPARATED BY ', '.
CONCATENATE ADRS1 ITAB-LAND1 INTO ADRS2 SEPARATED BY ' '.
CONCATENATE ITAB-NAME1 ADRS2 INTO ADRS3 SEPARATED BY ' '.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE: /1 'Sold-to:', 10 ITAB1-KUNNR, 18 KNA1-NAME1,
56 'Ship-to:', 65 ITAB1-KUNWE, 73 ADRS3.
FORMAT RESET.
SKIP.
ENDAT.
print out backlog detail
CLEAR T171T.
SELECT SINGLE BZTXT FROM T171T INTO T171T-BZTXT
WHERE SPRAS = SY-LANGU AND BZIRK = ITAB-BZIRK.
WRITE: /1 ITAB1-VBELN,
13(6) ITAB1-POSNR NO-ZERO,
21 ITAB-MATNR,
41 ITAB-ARKTX,
83 ITAB1-ZDATE1,
95 ITAB1-ZDATE3,
107 ITAB1-ZDATE2,
119 ITAB-ERNAM,
129 ITAB-BZIRK, 135 T171T-BZTXT,
157(20) ITAB-BSTKD,
179(12) ITAB1-ZQTY1 DECIMALS 0,
193(12) ITAB1-ZQTY2 DECIMALS 0,
207(16) ITAB1-ZEXTD DECIMALS 2,
225 ITAB1-ZDESC.
AT END OF VBELN.
SKIP.
ENDAT.
print footing at ship-to customer
AT END OF KUNWE.
SUM.
ULINE: /193(12), 207(16).
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE: /1 'Total: Sold-to:', 18 ITAB1-KUNNR,
25 '/', 27 'Ship-to:', 36 ITAB1-KUNWE,
193(12) ITAB1-ZQTY2 DECIMALS 0,
207(16) ITAB1-ZEXTD DECIMALS 2.
FORMAT RESET.
SKIP 2.
ENDAT.
AT LAST.
SUM.
ULINE: /193(12), 207(16).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE: /1 'Report Total:',
193(12) ITAB1-ZQTY2 DECIMALS 0,
207(16) ITAB1-ZEXTD DECIMALS 2.
FORMAT RESET.
ENDAT.
ENDLOOP.
ENDFORM.
FORM GET_REQUEST_DATE
subroutine to get request date for SO item
FORM GET_REQUEST_DATE TABLES FTAB STRUCTURE ITAB2B
USING CONF_QTY REQ_DATE.
DATA: REMAIN LIKE VBEP-WMENG, "qty remaining
CNTR TYPE I, "loop counter
TAB_INDEX TYPE I. "table index
initialize
REMAIN = 0.
REQ_DATE = SPACE.
get first request date from table
TAB_INDEX = 1.
READ TABLE FTAB INDEX TAB_INDEX.
if request date not found, set request date to blank
IF SY-SUBRC <> 0.
REQ_DATE = SPACE.
EXIT.
ELSE.
REQ_DATE = FTAB-EDATU.
ENDIF.
calculate quantity remaining for request date
REMAIN = FTAB-WMENG - CONF_QTY.
if qty remaining > 0, update request date with qty remaining
IF REMAIN > 0.
FTAB-WMENG = REMAIN.
MODIFY FTAB INDEX TAB_INDEX.
if qty remaining = 0, delete request date (so next request
date will be used for next confirmed qty)
ELSEIF REMAIN = 0.
DELETE FTAB INDEX TAB_INDEX.
if qty remaining < 0, find next request date and update
ELSE.
CNTR = 0.
WHILE REMAIN < 0 OR CNTR < 10.
DELETE FTAB INDEX TAB_INDEX.
TAB_INDEX = TAB_INDEX + 1.
READ TABLE FTAB INDEX TAB_INDEX.
REMAIN = REMAIN + FTAB-WMENG.
CNTR = CNTR + 1.
ENDWHILE.
IF REMAIN = 0.
DELETE FTAB INDEX TAB_INDEX.
ELSEIF REMAIN > 0.
FTAB-WMENG = REMAIN.
MODIFY FTAB INDEX TAB_INDEX.
ENDIF.
ENDIF.
ENDFORM.
FORM GET_COMMIT_DATE
subroutine to get commit date for SO item
FORM GET_COMMIT_DATE TABLES CTAB STRUCTURE ITAB2C
USING CONF_QTY COM_DATE.
DATA: REMAIN LIKE VBEP-WMENG, "qty remaining
CNTR TYPE I, "loop counter
TAB_INDEX TYPE I. "table index
initialize
REMAIN = 0.
COM_DATE = SPACE.
get first commit date from table
TAB_INDEX = 1.
READ TABLE CTAB INDEX TAB_INDEX.
if request date not found, set request date to blank
IF SY-SUBRC <> 0.
COM_DATE = SPACE.
EXIT.
ELSE.
COM_DATE = CTAB-EDATU.
ENDIF.
calculate quantity remaining for request date
REMAIN = CTAB-ROMS1 - CONF_QTY.
if qty remaining > 0, update request date with qty remaining
IF REMAIN > 0.
CTAB-ROMS1 = REMAIN.
MODIFY CTAB INDEX TAB_INDEX.
if qty remaining = 0, delete request date (so next request
date will be used for next confirmed qty)
ELSEIF REMAIN = 0.
DELETE CTAB INDEX TAB_INDEX.
if qty remaining < 0, find next request date and update
ELSE.
CNTR = 0.
WHILE REMAIN < 0 OR CNTR < 10.
DELETE CTAB INDEX TAB_INDEX.
TAB_INDEX = TAB_INDEX + 1.
READ TABLE CTAB INDEX TAB_INDEX.
REMAIN = REMAIN + CTAB-ROMS1.
CNTR = CNTR + 1.
ENDWHILE.
IF REMAIN = 0.
DELETE CTAB INDEX TAB_INDEX.
ELSEIF REMAIN > 0.
CTAB-ROMS1 = REMAIN.
MODIFY CTAB INDEX TAB_INDEX.
ENDIF.
ENDIF.
ENDFORM.
END-OF-REPORT. -
Open order value not updated in F.35
Hi
While using item category Tas ( Third party item ) in Sale order, it is not updated in open order value at F.35.
please give your suggestions. thanks.
Regards,
Tirumal.R1/ Check your credit control area settings
2/ Check your sales order config, if it works for one sales order type and not the other compare the two/ -
Open order value not cleared Message: ORB 015
Hi All,
I have checked and searched for solution before poting this discussion, but not found anything relelvant to my problem.
While closing Project in CJ20N, I am getting an error message as -
Open order value not cleared
Message: ORB 015
It seems issue with incoming orders (sales orders), so I have run CJA1, and in output it is showing Processed object count as 1 but no detail log available for this.
Also in Settlement nothing is appearing to settle.
One thing I observed that one of the sales order linked with Project is rejected.
Can somebody assist me in resolving this issue?
Thank You,
Swapnil KharulHi Swapnil,
There are 2 things you can check here..
1) Is this the first time you are trying to settle incoming orders for the said Project/WBS? I mean did you ever run CJA1/CJA2 and CJ88 post that for this project? You can check this in KE24 report. Check if you find any entries for record type I. If there are any it means settlement of incoming orders is being done.
2) For the said WBS hit Ctrl+F3 and check if there is a settlement rule maintained for Incoming Orders. On the settlement rule screen you will see a button "Incoming Orders". Click on that see if a rule is maintained.
Regards,
Gokul -
Open Order Quantity for open sales orders
Is there a standard SAP Report that gives the open order quantity for every open sales order. "Open" is defined as any order quantity that has not shipped. Delivery creation is not the same as shipment. VA05 Report does not contain enough information to calculate the open order quantity for an ERP-based backlog report.
Try VA05 schedule lines standar variant...include status fields and both ordered qty and confirmed qty. In SAP standard system order status, status A means open orders fully (Nothing shipped, everything opened). Status B means in process orders (Partially processed - shipped). Status C means complete orders (Nothing opened). As there is no delivered qty in VA05, you need to download to excel the file and calculate the difference between both qty fields for each A and B status. That is a way to get the missing qty to be delivered or open qty as you stated.
Hope it helps.
Jorge Fernandez -
Is ther a FM to get the open order qty for a particular material &salesorg?
Hi experts,
I have requirement to find the open order qty for a given sales org (plant will be even better ) and material in my report. I do not want to use the standard tables as i need to fetch all records without any time restriction.So it is takin a lot of time.
I know i can find it in va05 but i want to know if ther is some standard function module which can serve this purpose.
Kindly help.
regards
AshwinThanks for the reply,
Can you kindly elaborate what i need to pass to the function module ?
What do I have to pass in the tables LVBMTV and LSELTAB ?
In which field will i get the open quantity for the material and salesorg ?
Kindly help,
Regards
Ashwin -
FM or logic to retrieve Open order quantity for below parameter
Hi Gurus,
I have a typical requirement for development of 1 function module and below are the details for it:
I want to have the open order quantity for materials by entering ship-to-party and sales organisation.
Can i get list of all the materials when are open with the quantity of that materials which are yet to be delivered. And I have only ship-to-party and sales organisation as input parameter.
I would prefer if standard function module is available or I would also like to have some code or logic to ful fill the above requirement.
Please reply me fast as I am in urgent requirement of this.
If you are not clear in requirement then please let me know.
Regards,
SagarHi,
I specifically want the Function module and in VA05 i do not getting the actual open order quantity for material.
Eample: If i do partial delivery then VA05 shows the total order quantity and not actual open quantity. So could let me know how I get the above detial.
Regards,
Sagar
Maybe you are looking for
-
HT204053 i dont have the icloud icon in my system preference on my mac. what do i do?
i am trying to find my pics and photo stream on my icloud on my mac and there is no icon for pictures, i have all of iphones and ipads backed up to the cloud but there isn't a picture icon showing they have been uploaded. I go into system preferences
-
H8-1280t: Hook up the desktop with 2 monitors
Hi, I have the h8-1280t, with HDMI and DVI output; and VGA port. Currently, I have my monitor hooked up thru the VGA port. I am trying to hook up my desktop to my AV receiver (thru HDMI), so that I can stream movies thru the AV reciever to my TV.
-
Import pictures and videos from my SONY dcr-sx44
I'm trying to import pictures from my SONY DCR-SX44 camcorder but when I plug the camera into the MacBook (as instructed in owner's manual), nothing happens. I'm supposed to see an import screen on the computer, but nothing. Is there some software
-
Dear All... working on SCM 5.0..SNP Created Planning Area & Planning Book...Copied frm stad PA 9ASNP02 In interactive Demand planning...selection....while loading the data..following error occurs??? "Conflict identified between selection and key figu
-
How to create a cluster on existing table
how to create a cluster on existing table