Negative quantity of SO item
Dear Expert,
Can I use the negative quantity for SO items? And do the delivery with negative quantity to increase inventory?
I will reward you.
regards
Gang
Well
See if you are selling something in a Order how can you add upp returns in the same order i mean thats not correct logically speaking
You cant configure a single item category to do both the work ... please let me know more clear requirement and for return of a material LNN for Reteunable packaging material and if you have something like empties you can use TAZ..
Yeah your line item can have one with TAN & the other with REN but then i have never come across this situation neither i have simulated this senario .. may be you can test it ..( i would wonder how would delivery and billing documents respond to this ) my knowledge says it may not work
Hope this helps
Cheers
Similar Messages
-
Need negative quantity non-inventory items on Credit Memo
Version: (2007A)
Description of requirements: (Please provide a detailed description)
Our customer issues many invoices with a negative quantity line item for a miscellaneous non-inventory item. These non-inventory items are used to reduce the amount of the invoice regarding miscellaneous credits to their customers. These are not discounts.
When the customer wants to credit these invoices, they canu2019t create a Credit Memo based on the invoice because SAP wonu2019t allow this if there are line items with negative amounts.
When they create a credit memo not based on an invoice, they arenu2019t allowed to enter a negative quantity for a line item as they are for an Invoice. They are forced to create a credit memo not based on an invoice the inventory item line items and an invoice or Journal Entry for the negative quantity line item to debit back the miscellaneous line amount.
As an example:
Invoice line item one for inventory item: qty one, price 100,line total $100.00
Invoice line item two non-inventory item misc credit: quanity -1, price 10, total -$10.00
Invoice Total $90.00
In Order to provide the correct credit amount, they have to create a Credit Memo not based on an invoice for line item one, qty one, price 100 u2013 value -100 and an invoice for the non-inventory item for qty one, price 10 - value 10.00.
This creates a net credit for the customer of 90.00
This looks ridiculous to their customers when they see these transactions on their statements, creates extra work for the users and there is no link between the three documents.
By using inventory items for these miscellaneous credits, they can assign a sales revenue of their choice. They have multiple sales accounts and the GL posting is determined by the item group for the item. By assigning the desired item group to these non-inventory items, they can control which sales account is updated on their marketing documents when using these non-inventory items.
If they were to use the Freight items, they would need a separate freight setup entry for combination of item group and miscellaneous credit. Because they have so many Item Groups and types of credits, they would need a great many separate Freight Charges to choose from.
All of the above pertains to all of our customers. This customer has a custom add-on and their marketing documents are all created from custom objects. They hit a button on the custom sales contract screen and an invoice is created. When they hit another button on the screen, the selected invoice is credited. They have legally binding contracts for fixed quantities to be shipped, so we decrease the quantity shipped when creating an invoice and decrease the quantity shipped when a credit memo is created. The contract is fulfilled when the exact quantity contracted for has been shipped. Because the credit memo fails, we canu2019t update the custom objectu2019s remaining to be shipped, rendering it inaccurate from that time forward. (reducing the quantity shipped is part of the Credit Memo creation process).Creating Credit Memos and Invoices from the interface fixes the inventory count, customer balance, etc., but we have no way of fixing the sales contractu2019s quantity shipped & remaining to be shipped or linking the contracts to the documents created from the interface.
Business needs: (Please describe the impact on your business, if the functionality is not realized)
Examples: (Please describe a typical example, how the functionality should work.)
Credit Memos should allow negative quantities and line total amounts for non-inventory items, the same way that A/R Invoices do, so that credit memos can be based on invoices that have negative quantity non-inventory line items.
Current Workaround: (Please describe the workarounds you are using at the moment)
Please see above
Proposed solution: (Please suggest how the new functionality should work)
Credit Memos should allow negative quantities and line total amounts for non-inventory items, the same way that A/R Invoices do.Hi Sean......
System is behaving properly as per its logic. Infact it does same in all the previous or upcoming versions.
If you have Item Type GRPO for Non Inventory Item it does not create any accounting but you can see the same during AP invoice.
GRPO for such type is only optional. For further clarification you can discuss this with your CA what he suggests. But i suggest you to raise AP invoice also for getting Account effect. Just see doing this in test DB you get your answer......
Regards,
Rahul -
Allow negative quantity for items manage by batch
Hi All,
I am having this issue where all items are required to be managed by batch and yet stock is allow to go negative (with the Block negative quantity unchecked) due to customer requirement.
E.g. there are no batch to select when the item hits negative quantity.
Any idea if this is possible in SAP B1 and possible workaround.
Thank you in advance.
Lip SinHi Lip Sin,
You need to discuss and ask the same to your customer.
Your customer has to make choice between one of this two, because when there is possibility of negative stock, just imagine how the software can keep the integrity with batch nos. ?
You need to clearly ask your customer to choose any of this and still the customer insist, you can think to handle it using UDF for batch no, but then your customer will loose the control by batch.
BR
Samir Gandhi -
ML81N Negative Quantity Posting for Credit or Difference Adjustments.
ECC 5.0 - DIMP
This is a VERY, VERY common situation at nearly all companies where a credit or small difference may occur between the invoice amount and the SES. Reversing / canceling and reentering documents, along with all of the additional accounting documents created is not an appropriate option.
=========================
I have a situation with Service Entry Sheets where a vendor delivers services for a PO line item. There can be MANY service entries, and MANY invoices for a single PO Line item.
Invoices are posted against the open GR SES amount on the PO Line Item and not specifically to the service entry sheet. As a result there may be more than one invoice tied to a single service entry sheet. The reversal option would requie
When credits come in, or when vendor discounts are taken the SES amount does not match but there is a need to ensure that the SES amount matches the vendor credit amount (whether credit memo or discounts taken).
NUMEROUS SAP OSS Notes say that Negative Service Entry Sheet Amounts are possible, and in the first step I even get an SE042 warning message about the negative quantity. However, when I press ENTER to go past the warning I then get messgae SE396 as a hard error and the dialog box for the error has JUST an exit button causing the entire transaction to exit the process.
Has anyone ever worked successfully with negative service entry sheet quantities?
If so, what were your lessons learned?
Here are some of the notes I have reviewed, and the ability to do the negative SES quantity goes back to 4.6:
365648
375799
411262
455707
1068156
1166693Hi Bill,
If you try to save an SES with ONLY a negative quantity you will receive
the following error Value of specs. less than zero (function cannot be
performed) Message no. SE396.
You can enter negative VALUES based on the
following rules:
The service specifications contain lines with negative values.
Service lines with negative values are only allowed if the following
conditions are fulfilled:
The total value of the specifications is positive.
The total value of each account assignment is positive.
Please see other notes attached.
354903 Postings: Invoices for services
499575 FAQ: Invoice verification/goods receipt in service
1174830 FAQ: Invoice cancellation for services
Regards,
Edit -
Negative quantity in deliver field in production order - CO02
Hi All,
I am doing production confirmation and goods receipt for production order through back ground using standard BAPI.While doing GR for production order in background the following error occured.
System is throughing dump - Arithmatical logical conversion problem.when we analysed through ST22 we came to know that negative quantity appearing in field of delivered in production order.
Screen name.............. "SAPLCOKO1"
Screen number............ 0120
Screen field............. "CAUFVD-GWEMG"
As per standard, delivered field in production order is always in display mode only. So there will not be any chance for user to change the delivered field.
Pls guide me how to overcome the above issue and what is exact root cause for the above problem.
System is throwing error in change mode ( Co02) and display mode ( CO03 ) for the respective production order number
Thanks
P.SrinivasanHi,
This inconsistency can be solved with the following correction report. If you want to try by yourself, then implement it manually in transaction SE38 and execute in test mode first to check if the inconsistency is found. And obviously, in a TEST system first.
If you are NOT confident about it, I recommend you to submit a support message for SAP for further investigation since this is a database inconsistency.
Regards,
Marcelo
<pre>
*& Report ZPCON_076B *
*& This report checks goods receipt quantity (WEMNG) and value (WEWRT) *
*& of an order item for consistency with the corresponding material *
*& documents. In UPDATE mode, the quantity and the value calculated *
*& from the material documents will be written to database table AFPO. *
REPORT zpcon_076b LINE-SIZE 90.
INCLUDE lcokotyp.
TABLES: afpo.
SELECTION-SCREEN COMMENT /1(80) text1. "#EC NEEDED
SELECTION-SCREEN COMMENT /1(80) text2. "#EC NEEDED
SELECTION-SCREEN COMMENT /1(80) text3. "#EC NEEDED
SELECTION-SCREEN COMMENT /1(80) text4. "#EC NEEDED
SELECTION-SCREEN COMMENT /1(80) text5. "#EC NEEDED
SELECTION-SCREEN ULINE.
SELECTION-SCREEN COMMENT /1(80) texta. "#EC NEEDED
SELECT-OPTIONS r_aufnr FOR afpo-aufnr.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN BEGIN OF BLOCK block WITH FRAME TITLE title."#EC NEEDED
SELECTION-SCREEN COMMENT /1(72) texty. "#EC NEEDED
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME.
PARAMETERS: testmode RADIOBUTTON GROUP mode DEFAULT 'X'.
PARAMETERS: update RADIOBUTTON GROUP mode.
SELECTION-SCREEN END OF BLOCK block2.
SELECTION-SCREEN COMMENT /1(72) textz. "#EC NEEDED
SELECTION-SCREEN END OF BLOCK block.
DATA: BEGIN OF ls_afpo.
INCLUDE STRUCTURE afpo.
DATA: END OF ls_afpo.
DATA lt_afpo LIKE ls_afpo OCCURS 0.
DATA: BEGIN OF ls_mseg.
INCLUDE STRUCTURE mseg.
DATA: END OF ls_mseg.
DATA ls_mseg2 LIKE ls_mseg.
DATA lt_mseg LIKE ls_mseg OCCURS 0.
DATA ls_mkpf TYPE mkpf.
DATA l_initial_ltrmi TYPE co_ltrmi VALUE IS INITIAL.
DATA l_orders TYPE sytabix.
DATA l_entries TYPE sytabix.
DATA l_sum_wemng TYPE wemng.
DATA l_sum_wewrt TYPE wewrt.
DATA l_error TYPE xfeld.
INITIALIZATION.
text1 = 'This report checks goods receipt quantity (WEMNG) and'.
text2 = 'value (WEWRT) of an order item for consistency with the '.
text3 = 'corresponding material documents. In UPDATE mode, the'.
text4 = 'quantity and the value calculated from the material'.
text5 = 'documents will be written to database table AFPO.'.
texta = 'Please specify order numbers of orders to be processed.'.
texty = 'If TESTMODE is set, no database update will occur.'.
textz = 'Set radio button UPDATE for updating the database entries.'.
title = 'Mode'.
AT SELECTION-SCREEN.
orders specified?
IF r_aufnr IS INITIAL.
MESSAGE e889(co) WITH 'Please specify order numbers'.
ENDIF.
START-OF-SELECTION.
select order items
SELECT *
FROM afpo
INTO TABLE lt_afpo
WHERE aufnr IN r_aufnr
AND ( dauty = auftragstyp-fert
OR dauty = auftragstyp-netw
OR dauty = auftragstyp-inst
OR dauty = auftragstyp-rma
OR dauty = auftragstyp-bord ).
DESCRIBE TABLE lt_afpo LINES l_orders.
check order items
LOOP AT lt_afpo INTO ls_afpo.
REFRESH lt_mseg.
CLEAR l_sum_wemng.
CLEAR l_sum_wewrt.
CLEAR l_error.
SELECT *
FROM mseg
INTO TABLE lt_mseg
WHERE matnr = ls_afpo-matnr
AND werks = ls_afpo-pwerk
AND aufnr = ls_afpo-aufnr
AND aufps = ls_afpo-posnr
AND kzbew = 'F'
%_HINTS ORACLE 'rule'.
IF NOT sy-subrc IS INITIAL.
no goods movements --> nothing to do.
DELETE lt_afpo.
CONTINUE.
ENDIF.
LOOP AT lt_mseg INTO ls_mseg.
IF ls_mseg-shkzg ='S'.
inward movement
IF NOT ls_mseg-dmbtr IS INITIAL.
l_sum_wewrt = l_sum_wewrt + ls_mseg-dmbtr.
ENDIF.
IF NOT ls_mseg-bstmg IS INITIAL.
l_sum_wemng = l_sum_wemng + ls_mseg-bstmg.
ELSE.
IF ls_mseg-erfme = ls_afpo-amein.
l_sum_wemng = l_sum_wemng + ls_mseg-erfmg.
ELSE.
IF ls_mseg-meins = ls_afpo-amein.
l_sum_wemng = l_sum_wemng + ls_mseg-menge.
ELSE.
WRITE: 'ERROR - Order', ls_afpo-aufnr COLOR 6.
DELETE lt_afpo.
l_error = 'X'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
ls_mseg2 = ls_mseg.
ELSE.
outward movement
IF NOT ls_mseg-dmbtr IS INITIAL.
IF ls_mseg-dmbtr NE ls_mseg-bualt AND
NOT ls_mseg-bualt IS INITIAL.
l_sum_wewrt = l_sum_wewrt - ls_mseg-bualt.
ELSE.
l_sum_wewrt = l_sum_wewrt - ls_mseg-dmbtr.
ENDIF.
ENDIF.
IF NOT ls_mseg-bstmg IS INITIAL.
l_sum_wemng = l_sum_wemng - ls_mseg-bstmg.
ELSE.
IF ls_mseg-erfme = ls_afpo-amein.
l_sum_wemng = l_sum_wemng - ls_mseg-erfmg.
ELSE.
IF ls_mseg-meins = ls_afpo-amein.
l_sum_wemng = l_sum_wemng - ls_mseg-menge.
ELSE.
WRITE: 'ERROR - Order', ls_afpo-aufnr COLOR 6.
DELETE lt_afpo.
l_error = 'X'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP. "AT lt_mseg
only continue if no error in the calculation occurred
CHECK l_error IS INITIAL.
IF ls_afpo-wemng = l_sum_wemng AND
ls_afpo-wewrt = l_sum_wewrt.
values are correct, no update necessary
DELETE lt_afpo.
CONTINUE.
ENDIF.
FORMAT: COLOR 1.
WRITE: / 'Order', ls_afpo-aufnr, 'material', ls_afpo-matnr.
FORMAT: COLOR OFF.
WRITE: /3 'Order item data : quantity',
ls_afpo-wemng UNIT ls_afpo-amein, ls_afpo-amein, 'value',
ls_afpo-wewrt CURRENCY ls_mseg-waers, ls_mseg-waers.
WRITE: /3 'Material documents: quantity',
l_sum_wemng UNIT ls_afpo-amein, ls_afpo-amein, 'value',
l_sum_wewrt CURRENCY ls_mseg-waers, ls_mseg-waers.
FORMAT: COLOR 2.
WRITE: /3 'Material doc. BWART', 30 'stock qty UoM',
52 'entry qty UoM', 77 'value Curr'.
FORMAT: COLOR OFF.
LOOP AT lt_mseg INTO ls_mseg.
WRITE: /3 ls_mseg-mblnr, ls_mseg-zeile, ls_mseg-bwart,
ls_mseg-menge UNIT ls_mseg-meins, ls_mseg-meins,
ls_mseg-bstmg UNIT ls_mseg-bstme, ls_mseg-bstme,
ls_mseg-dmbtr CURRENCY ls_mseg-waers, ls_mseg-waers.
ENDLOOP.
IF NOT update IS INITIAL.
set delivery date
IF l_sum_wemng IS INITIAL.
initial delivery quantity --> initial delivery date
UPDATE afpo SET ltrmi = l_initial_ltrmi
WHERE aufnr = ls_afpo-aufnr
AND posnr = ls_afpo-posnr.
ELSE.
read posting date from last valid goods receipt
SELECT SINGLE * FROM mkpf
INTO ls_mkpf
WHERE mblnr = ls_mseg2-mblnr
AND mjahr = ls_mseg2-mjahr.
IF sy-subrc IS INITIAL.
UPDATE afpo SET ltrmi = ls_mkpf-budat
WHERE aufnr = ls_afpo-aufnr
AND posnr = ls_afpo-posnr.
ELSE.
leave LTRMI untouched
ENDIF.
ENDIF.
set quantity and value
UPDATE afpo SET wemng = l_sum_wemng
wewrt = l_sum_wewrt
WHERE aufnr = ls_afpo-aufnr
AND posnr = ls_afpo-posnr.
FORMAT: COLOR COL_POSITIVE.
WRITE: /3 'Order item data corrected from material documents.'.
FORMAT: COLOR OFF.
ENDIF.
ULINE.
ENDLOOP. "AT lt_afpo
WRITE: / 'Number of checked order items :', l_orders.
DESCRIBE TABLE lt_afpo LINES l_entries.
WRITE: / 'Number of inconsistent order items:', l_entries.
IF NOT update IS INITIAL AND
NOT l_entries IS INITIAL.
WRITE: / 'Inconsistencies were corrected from material documents.'
COLOR COL_POSITIVE.
ENDIF.
ULINE.
</pre>
Edited by: Wilian Segatto on Jan 25, 2011 12:27 PM -
Incorrect "Ordered" quantity in the item master data
Hello Experts,
I have a situation where there are two items we have found that show the incorrect ordered quantity in the item master data. This is in fact the ordered column and the items are not production items. One of the items is showing a negative quantity and the other is showing 50,000 LBs less than it should given the one open production order with NO GRPO documents linked. Please advise ASAP..
Thank you,
TaylorHi,
You need to check the detect query and the scenarios in the Note No. : 999124.
If the detect query of the Note returns result, you need to log a support ticket to get the database investigated.
Kind Regards,
Jitin
SAP Business One Forum Team -
How can negative quantity appears?
Hi guys,
I have trouble in production system. User reported me there was an odd line in item cost history that showing a discreate job transaction which could consumed zero onhand.
It causes there was negative quantity in line.
Allow negative balance always set to No (Unchecked) in Parameter Setting.
I attached the image of our item cost history.
Please give me an answer. Thank you so much.
Regards,
Contraseña LuzHi guys,
I looked at the transaction in material transaction. I think the problem causes by transaction_date that created earlier than creation_date. its make the line misorder.
SEGMENT1
TRANSACTION_QUANTITY
TRANSACTION_TYPE_NAME
TRANSACTION_DATE
CREATION_DATE
BM-200-1
774.48
WIP Completion
27-FEB-2014 23:07:47
27-FEB-2014 23:08:38
BM-200-1
-165.77
WIP Issue
27-FEB-2014 23:01:58
27-FEB-2014 23:09:21
BM-200-1
-213.21
WIP Issue
27-FEB-2014 14:11:44
27-FEB-2014 14:12:50
BM-200-1
-770.04
WIP Issue
27-FEB-2014 06:01:50
27-FEB-2014 06:06:46
BM-200-1
-332.19
WIP Issue
27-FEB-2014 05:51:11
27-FEB-2014 05:51:37
BM-200-1
990.86
WIP Completion
27-FEB-2014 01:16:54
27-FEB-2014 01:17:44
See two line on top of the table, the WIP Completion should be created before the WIP Issue.
I have created new discussion on Why Transaction Date Line Earlier Created than Creation Date and Make Wrong Sequence?
We here don't know how it can be happened.
Any suggestion guys?
Regards,
Contrasena Luz -
Hi All ,
As i know the By products as well as Co products are added in BOM with a negative Quantity .....rite . But is it compulsary that it should be -1 only.If yes Why ??
Regards
SarfrazHi Sarfaraz,
In case of CO-product material if your trying to maintain Component qty as +ve then you will find below error Massge.
Only negative quantities supported for co-product
Message no. 29088
Diagnosis
You have marked this item as a co-product. Such items are treated as material credit memos by costing, which reduces the manufacturing costs calculated.
System Response
Co-products are entered as a negative quantity.
Procedure
You did not enter a negative quantity.
Please enter a negative quantity.
Example: 100-
Regards,
Dhaval
Edited by: Dhaval Choksi on Jul 21, 2008 2:01 PM -
Negative quantity not allowed for Put Away Planned
Dear Experts,
I'm trying to activate the PDI document but the system show the error message: Negative quantity not allowed for Put Away Planned.
I was looking the document flow from the item 10 and I saw there is one task was created with quantity "1 box" and the same document was cancelled but the quantity "2 box" was cancelled. I believe because of this is happening the error.
All items from my HU is with the same problem, duplicate the quantity during canceling.
Somebody can give me advice how fix it.
I found a SAPNote but Note 1674037:Negative Put Away Planned quantity (PWP) due to "Store HUs" but I need a workaround to fix my actual PDI and finish the process.
Regards,
Alan MattosHi Petr,
I checked the transaction SMQ2 and I dont have anything stuck there. Then I tried to change de deliveryquantity but the field quantity isn't available to change. My PDI document already been the Goods Receipt Status "Completed". I try to reverse this document and the system show the message: Delivery is locked (Posting Not Possible). I believe its happening because the PDI isn't active.
Do you have other idea ???
Thank you a lot for your help. -
Delete Remain Open Quantity in PO Item
Hi SAP community,
My Order quantity in PO item is 100, and User have GR 90. Left with 10 units to be good receipt.
Now user what to cancel the 10 unit, so that they can close this PO
how can the user cancel the 10 unit remain open in po ?Hi,
You have 2 options -
1) If you want that this PO should not be considered for MRP run, then marks the Delivery complete indicator in item details level & save. In this case though the PO will not be considered for MRP, you will be able to post GRN.
2) If you do not want to post any GRN for this PO, then change the PO quantity to the quantity of actual GRN made. In this case the PO will not be considered for MRP as well as you will not be able to post GRN.
Regards,
Prashant -
Sales BOM its possible edit the quantity for child items in Sales Order
Hello friends, this is my issue
I need to use a Sales BOM but the problem is that the child items in any Document marketing, such as Sales Order, the quantity for that child items it´s possible to edit independant of the father item code, and I don´t want this because allows to users to change diferent quantity for child items versus the quantity of the father item code.
Thanks in advanceThanks Gordon yes I know even with this solution the problem is the with transaction notification is not possible determine that event to block, or if you know how or get some tip, please send me, because I analyze the requirement and I couldn´t develop.
Tks -
How to enable Negative Quantity in PSM/ASM of SAP PLM7
Hi Guru,
I got a request from my users that they want to use Negative Quantity in in PSM/ASM of SAP PLM7.
As we known, Negative Quantity is available in ERP via CS01/CS02, but i cannot maintain negative quantity in PSM or ASM. Does any one know how to maintain it? Thanks in advance.
BR
SimonSatish,
You have to set up the component as secondary output. When creating a BOM/Recipe in PLM, you can designate a component as a "secondary output." This type of component will allow negative quantities to be entered, just like you do in CS01 and CS02 for "by-products."
-Best Regards,
Oscar -
MIGO-GR Open Quantity in Excise Item is not allowing MIRO
Hello,
We are facing problem while posting MIRO.
There is open quantity in Excise Item Tab. This problem is occured as there was difference of 0.036 in Goods Receipt.
I haved checked my MIGO-GR it is showing 802.00 KG while in J1IS - Part 2 it is showing 801.964 KG there is open quantity.
Excise Part-2 entry is not completed and it is not allowing us to post MIRO for the Supplier Invoice against the Purchasr Order.
You are kindly requested to look in to this and suggest solution, how we can solve this problem.
Edited by: Vishal_Kadiya on Dec 24, 2011 9:27 AMhi
In J1iex change and post the balance qty and value for the same invoice and then do MIRO.
Kiran -
'BAPI_SALESORDER_CHANGE - Want to change the Quantity on Line Item in SO
Hi
I am facing a problem. The requirement is to change the Sales Order Item Quantity. I basically planned to update the quantity of Schedule Item which needs to be changed. When I run the below code, it works and says the Sales Order changed succesfully. However I get an express message saying the Database update failure. I don't get any sort of technical information.
Appreciate if you could help me finding the error.
Thanks
regards
girish
Note --> I am trying to change the Quantity for 2 line item in SO '56' to 40 Units.
REPORT ZBAPI_SALESORD_CHANGE.
data : zBAPISDHD type /AFS/BAPISDHD,
zORDER_HEADER_INX TYPE /AFS/BAPISDHDX,
zSALESDOCUMENT type BAPIVBELN-VBELN.
data : zORDER_ITEMS_IN like /AFS/BAPISDITM occurs 0 with header line,
zORDER_ITEM_INX like /AFS/BAPISDITMX occurs 0 with header line,
zORDER_SCHEDULES_IN like /AFS/BAPISDSCHD occurs 0 with header line,
ZSCHEDULE_LINESX LIKE /AFS/BAPISDSCHDX occurs 0 with header line,
zORDER_PARTNERS like BAPIPARNR occurs 0 with header line,
zRETURN like BAPIRET2 occurs 0 with header line,
so_no type BAPIVBELN-VBELN,
zPARTNERCHANGES like BAPIPARNRC occurs 0 with header line.
data : l_comp_qty like zORDER_ITEMS_IN-COMP_QUANT.
data : g_qty like /AFS/BAPISDSCHD-REQ_QTY.
g_qty = 40.
l_comp_qty = 40.
clear : zBAPISDHD.
so_no = '0000000056'.
zBAPISDHD-REFOBJTYPE = '/AFS/ORDER'.
zBAPISDHD-SALES_ORG = 'BP01'.
zBAPISDHD-DISTR_CHAN = '02'.
zBAPISDHD-DIVISION = '01'.
zBAPISDHD-PMNTTRMS = '0001'.
zORDER_HEADER_INX-UPDATEFLAG = 'U'.
zORDER_HEADER_INX-SALES_ORG = 'X'.
zORDER_HEADER_INX-DISTR_CHAN = 'X'.
zORDER_HEADER_INX-DIVISION = 'X'.
zORDER_HEADER_INX-PMNTTRMS = 'X'.
**********ITEM ***************************************
zORDER_ITEMS_IN-ITM_NUMBER = '00020'.
zORDER_ITEMS_IN-MATERIAL = 'F1202'.
zORDER_ITEMS_IN-PLANT = 'BP01'.
zORDER_ITEMS_IN-ITEM_CATEG = 'TAS'.
zORDER_ITEMS_IN-SHIP_POINT = 'BP01'.
zORDER_ITEMS_IN-COMP_QUANT = l_comp_qty.
zORDER_ITEMS_IN-TARGET_QTY = l_comp_qty.
zORDER_ITEMS_IN-TARGET_QU = 'ST'.
append zORDER_ITEMS_IN.
zORDER_ITEM_INX-ITM_NUMBER = '00020'.
zORDER_ITEM_INX-UPDATEFLAG = 'U'.
zORDER_ITEM_INX-MATERIAL = 'X'.
zORDER_ITEM_INX-PLANT = 'X'.
zORDER_ITEM_INX-ITEM_CATEG = 'X'.
zORDER_ITEM_INX-SHIP_POINT = 'X'.
zORDER_ITEM_INX-COMP_QUANT = 'X'.
zORDER_ITEM_INX-TARGET_QTY = 'X'.
zORDER_ITEM_INX-TARGET_QU = 'X'.
append zORDER_ITEM_INX.
*********SCHEDULE LINE******************************
refresh zORDER_SCHEDULES_IN.
clear zORDER_SCHEDULES_IN.
zORDER_SCHEDULES_IN-ITM_NUMBER = '000020'.
zORDER_SCHEDULES_IN-SCHED_LINE = '0001'.
zORDER_SCHEDULES_IN-REQ_DATE = '20070525'.
zORDER_SCHEDULES_IN-DATE_TYPE = '1'.
zORDER_SCHEDULES_IN-SCHED_TYPE = 'CS'.
zORDER_SCHEDULES_IN-GRID_VALUE = 'BLK2728'.
zORDER_SCHEDULES_IN-REQ_CATEGORY = '1DE'.
zORDER_SCHEDULES_IN-REFOBJTYPE = '/AFS/ORDER'.
zORDER_SCHEDULES_IN-REQ_QTY = g_qty.
append zORDER_SCHEDULES_IN.
refresh ZSCHEDULE_LINESX.
clear ZSCHEDULE_LINESX.
ZSCHEDULE_LINESX-ITM_NUMBER = '000020'.
ZSCHEDULE_LINESX-SCHED_LINE = '0001'.
ZSCHEDULE_LINESX-UPDATEFLAG = 'U'.
ZSCHEDULE_LINESX-REQ_DATE = 'X'.
ZSCHEDULE_LINESX-DATE_TYPE = 'X'.
ZSCHEDULE_LINESX-SCHED_TYPE = 'X'.
ZSCHEDULE_LINESX-GRID_VALUE = 'X'.
ZSCHEDULE_LINESX-REQ_CATEGORY = 'X'.
ZSCHEDULE_LINESX-REFOBJTYPE = 'X'.
ZSCHEDULE_LINESX-REQ_QTY = 'X'.
append ZSCHEDULE_LINESX.
CALL FUNCTION '/AFS/BAPI_SALESORD_CHANGE'
EXPORTING
SALESDOCUMENT = so_no
ORDER_HEADER_IN = zBAPISDHD
ORDER_HEADER_INX = zORDER_HEADER_INX
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
TABLES
RETURN = zRETURN
ORDER_ITEM_IN = zORDER_ITEMS_IN
ORDER_ITEM_INX = zORDER_ITEM_INX
ORDER_SCHEDULE_LINES = zORDER_SCHEDULES_IN
ORDER_SCHEDULE_LINESX = ZSCHEDULE_LINESX.
PARTNERS =
PARTNERCHANGES = zPARTNERCHANGES
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
*CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = so_no
ORDER_HEADER_IN = zBAPISDHD
ORDER_HEADER_INX = zORDER_HEADER_INX
TABLES
RETURN = zRETURN
ORDER_ITEM_IN = zORDER_ITEMS_IN
ORDER_ITEM_INX = zORDER_ITEM_INX
PARTNERS = zORDER_PARTNERS
PARTNERCHANGES = zPARTNERCHANGES
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
SCHEDULE_LINES = zORDER_SCHEDULES_IN
SCHEDULE_LINESX = ZSCHEDULE_LINESX.
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
data : s_BAPIRET2 like BAPIRET2.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
importing
return = s_bapiret2.Hi,
Refer this code: Marked in bold
Get Line Item Details which are to be deleted
The line items fetched but not matching with ALV data
are the one which are copied from Reference Order
and should be deleted from our Sales Order
PERFORM get_line_item_details.
To get all the uploaded data
i_upload_2[] = i_upload[].
This is to be executed only if the SALES ORDER
IS CREATED WITH REFERENCE & User has selected
the record in ALV for Order Creation
LOOP AT i_upload INTO wa_upload_1
WHERE chkbx = 'X'
AND vbeln NE space.
MOVE wa_upload_1 TO wa_upload.
Clear Work Area/Local variables & Internal tables
CLEAR : l_sales_no,
l_item_number,
wa_header_in,
wa_header_inx,
wa_curr,
l_currency,
l_count,
l_counter.
REFRESH : i_cond,
i_cond_inx,
i_sch_in,
i_sch_inx,
i_items_in,
i_items_inx,
i_return,
i_partner_inx.
AT NEW seqno.
Get the Sales Order Number for corresponding record
READ TABLE i_result_all INTO wa_result_all WITH KEY
ref_no = wa_upload-vbeln
seqno = wa_upload-seqno.
IF sy-subrc EQ 0.
IF NOT wa_result_all-vbeln IS INITIAL.
l_sales_no = wa_result_all-vbeln.
ENDIF.
ELSE.
CONTINUE.
ENDIF.
READ TABLE i_curr INTO wa_curr
WITH KEY vbeln = l_sales_no.
Header Data
CLEAR wa_header_in.
wa_header_in-sales_org = wa_upload-vkorg.
wa_header_in-distr_chan = wa_upload-vtweg.
wa_header_in-division = wa_upload-spart.
wa_header_in-ref_doc = wa_upload-vbeln.
wa_header_in-ref_doc_l = wa_upload-vbeln.
wa_header_in-purch_no_c = wa_upload-bstnk.
CLEAR : wa_header_inx.
wa_header_inx-updateflag = 'U'.
wa_header_inx-sales_org = 'X'.
wa_header_inx-distr_chan = 'X'.
wa_header_inx-division = 'X'.
wa_header_inx-purch_no_c = 'X'.
Check Business Object
CLEAR : l_bus_object.
IF wa_upload-auart = 'ZY01' OR
wa_upload-auart = 'ZY07' OR
wa_upload-auart = 'ZY08' OR
wa_upload-auart = 'ZY09' OR
wa_upload-auart = 'ZY18' OR
wa_upload-auart = 'ZY94' .
l_bus_object = 'BUS2032'.
ELSEIF
wa_upload-auart = 'ZY10' OR
wa_upload-auart = 'ZY11' OR
wa_upload-auart = 'ZY27' OR
wa_upload-auart = 'ZY28' OR
wa_upload-auart = 'ZY92' OR
wa_upload-auart = 'ZY93'.
l_bus_object = 'BUS2102'.
ELSEIF
wa_upload-auart = 'ZY16' OR
wa_upload-auart = 'ZY30'.
l_bus_object = 'BUS2094'.
ELSEIF
wa_upload-auart = 'ZY17' OR
wa_upload-auart = 'ZY31'.
l_bus_object = 'BUS2096'.
ELSEIF
wa_upload-auart = 'ZY06' OR
wa_upload-auart = 'ZY26'.
l_bus_object = 'BUS2032'.
ENDIF.
*Populate Ship-to-party
IF NOT wa_upload-scode IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_we.
wa_partner_inx-p_numb_new = wa_upload-scode.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Bill to Party
IF NOT wa_upload-bparty IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_re.
wa_partner_inx-p_numb_new = wa_upload-bparty.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Payer
IF NOT wa_upload-payer IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_rg.
wa_partner_inx-p_numb_new = wa_upload-payer.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Sales Rep
IF NOT wa_upload-salesrep IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_ys.
wa_partner_inx-p_numb_new = wa_upload-salesrep.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Check condition type & unit price
For the following Document Types,
Condition Type & Unit Price are mandatory
CLEAR : l_item_number,
wa_upload_2.
LOOP AT i_upload_2 INTO wa_upload_2
WHERE seqno = wa_upload-seqno
AND chkbx = 'X'.
CLEAR : wa_cond,
wa_result.
Get the POSNR
PERFORM conv_alpha_input USING wa_upload_2-matnr
CHANGING wa_upload_2-matnr.
CLEAR : wa_items.
READ TABLE i_items INTO wa_items
WITH KEY vbeln = l_sales_no
matnr = wa_upload_2-matnr.
Check condition types
IF wa_upload_2-auart = 'ZY16' OR
wa_upload_2-auart = 'ZY17' OR
wa_upload_2-auart = 'ZY30' OR
wa_upload_2-auart = 'ZY31'.
If error, then update the output table
IF wa_upload_2-kschl IS INITIAL OR
wa_upload_2-kbetr IS INITIAL.
CLEAR : wa_result_all.
READ TABLE i_result_all INTO wa_result_all WITH KEY
ref_no = wa_upload_2-vbeln
mat_no = wa_upload_2-matnr
kwmeng = wa_upload_2-kwmeng
charg = wa_upload_2-charg
seqno = wa_upload_2-seqno
vbeln = l_sales_no.
IF sy-subrc EQ 0.
wa_result_all-status = 'E'. " E
wa_result_all-remarks = text-007. " Condition Type & Unit
Price is mandatory
MODIFY i_result_all FROM wa_result_all INDEX sy-tabix.
ENDIF.
CLEAR : wa_result_all.
CONTINUE.
Else update the condition type & unit price
ELSE.
wa_cond-itm_number = wa_items-posnr. " ITEM NO.
wa_cond-cond_type = wa_upload_2-kschl. " CNDTION TYPE
wa_cond-cond_value = wa_upload_2-kbetr. " UNIT PRICE
wa_cond-currency = wa_curr-waerk. " Currency
APPEND wa_cond TO i_cond.
CLEAR : wa_cond,
wa_upload_2.
ENDIF.
ELSE.
For other document type, fill Condition type & Unit Price
wa_cond-itm_number = wa_items-posnr. " ITEM NO.
wa_cond-cond_type = wa_upload_2-kschl. " CNDTION TYPE
wa_cond-cond_value = wa_upload_2-kbetr. " UNIT PRICE
wa_cond-currency = wa_curr-waerk.
APPEND wa_cond TO i_cond.
CLEAR : wa_cond,
wa_upload_2.
ENDIF.
CLEAR : wa_cond_inx.
wa_cond_inx-itm_number = wa_items-posnr.
wa_cond_inx-cond_type = wa_upload_2-kschl.
wa_cond_inx-cond_value = 'X'.
wa_cond_inx-currency = 'X'.
APPEND wa_cond_inx TO i_cond_inx.
CLEAR : wa_upload_2.
ENDLOOP.
DELETE Item Data from VBAP which has no matching entires in ALV
if SAME Material occurs more than once in ALV for same key then
count the no. of times the material occurs
CLEAR : wa_upload_3,
l_counter.
l_counter = 0.
LOOP AT i_upload_2 INTO wa_upload_3
WHERE seqno = wa_upload-seqno
AND chkbx = 'X'
AND matnr = wa_upload-matnr.
l_counter = l_counter + 1.
CLEAR : wa_upload_3.
ENDLOOP.
PERFORM conv_alpha_input USING wa_upload-matnr
CHANGING wa_upload-matnr.
check the corresponding no. of line items
for the above material
CLEAR : l_count,
wa_items.
LOOP AT i_items INTO wa_items
WHERE matnr = wa_upload-matnr
AND vbeln = l_sales_no.
CLEAR : wa_items_in,
wa_items_inx.
IF l_count GE l_counter.
wa_items_in-itm_number = wa_items-posnr.
wa_items_in-material = wa_items-matnr.
APPEND wa_items_in TO i_items_in.
CLEAR wa_items_inx.
wa_items_inx-itm_number = wa_items-posnr.
wa_items_inx-updateflag = 'D'. " Delete Record
wa_items_inx-material = 'X'.
APPEND wa_items_inx TO i_items_inx.
ENDIF.
l_count = l_count + 1.
ENDLOOP.
Convert material nos. to 18 digit no.
REFRESH : i_upload_3.
CLEAR : wa_upload_3.
i_upload_3[] = i_upload_2[].
LOOP AT i_upload_3 INTO wa_upload_3
WHERE seqno = wa_upload-seqno
AND chkbx = c_x.
PERFORM conv_alpha_input USING wa_upload_3-matnr
CHANGING wa_upload_3-matnr.
MODIFY i_upload_3 FROM wa_upload_3.
CLEAR : wa_upload_3.
ENDLOOP.
Delete materials which are not in ALV but are in line items
for that sales order
CLEAR : wa_upload_3,
wa_items_in,
wa_items.
LOOP AT i_items INTO wa_items WHERE vbeln = l_sales_no.
PERFORM conv_alpha_input USING wa_items-matnr
CHANGING wa_items-matnr.
READ TABLE i_upload_3 INTO wa_upload_3
WITH KEY matnr = wa_items-matnr.
IF sy-subrc NE 0.
wa_items_in-itm_number = wa_items-posnr.
wa_items_in-material = wa_items-matnr.
APPEND wa_items_in TO i_items_in.
CLEAR wa_items_inx.
wa_items_inx-itm_number = wa_items-posnr.
wa_items_inx-updateflag = 'D'. " Delete Record
wa_items_inx-material = 'X'.
APPEND wa_items_inx TO i_items_inx.
ENDIF.
CLEAR : wa_items,
wa_items_in,
wa_items_inx,
wa_upload_3.
ENDLOOP.
UPDATE Item Data RECORDS
CLEAR : wa_upload_2,
wa_items_in,
wa_items,
wa_items_inx,
wa_sch_in,
wa_sch_inx,
l_item_number.
LOOP AT i_upload_2 INTO wa_upload_2 WHERE
seqno = wa_upload-seqno
AND chkbx = 'X'.
Read the Material no. from ALV & check whether the
corresponding material exists in VBAP, if YES, then
Update the line item data
PERFORM conv_alpha_input USING wa_upload_2-matnr
CHANGING wa_items_in-material.
POPULATE ITEM NO -- Update the record
If line item has same material twice,
then appropriate POSNR should be assigned
READ TABLE i_items INTO wa_items
WITH KEY vbeln = l_sales_no
matnr = wa_items_in-material.
IF sy-subrc EQ 0.
If Reference is not contract then the process to assign
POSNR is as follows :- Check the corresponding material
from ALV with data from ITEMS, the record which matches
the data is selected & POSNR is assigned to it
IF wa_upload_2-oreason NE 'C'.
CLEAR : wa_items_in1.
READ TABLE i_items_in INTO wa_items_in1
WITH KEY material = wa_items_in-material
itm_number = wa_items-posnr.
IF sy-subrc EQ 0.
CLEAR : wa_items1.
LOOP AT i_items INTO wa_items1
WHERE vbeln = l_sales_no
AND matnr = wa_items_in-material.
IF wa_items1-posnr GT wa_items-posnr.
wa_items-posnr = wa_items1-posnr.
CLEAR : wa_items_in1.
READ TABLE i_items_in INTO wa_items_in1
WITH KEY material = wa_items_in-material
itm_number = wa_items-posnr.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDIF.
CLEAR : wa_items1.
ENDLOOP.
ENDIF.
ELSE.
If Reference is CONTRACT then the process to assign
POSNR is different. Here if ALV has same material
twice & ITEMS has it once, then the second occurrence
of material of ALV is assigned a new POSNR
CLEAR : wa_items_in1,
l_insert.
READ TABLE i_items_in INTO wa_items_in1
WITH KEY material = wa_items_in-material
itm_number = wa_items-posnr.
IF sy-subrc EQ 0.
CLEAR : l_lines,
l_insert,
wa_items_in1.
DESCRIBE TABLE i_items_in LINES l_lines.
READ TABLE i_items_in INTO wa_items_in1 INDEX l_lines.
wa_items-posnr = wa_items_in1-itm_number + 10.
l_insert = 'X'.
CLEAR : wa_items_in1.
ENDIF.
ENDIF.
<b> wa_items_in-itm_number = wa_items-posnr.
wa_items_in-target_qty = wa_upload_2-kwmeng.
wa_items_in-target_qu = wa_items-zieme.
wa_items_in-store_loc = wa_upload_2-lgort.
wa_items_in-plant = wa_upload_2-werks.
wa_items_in-batch = wa_upload_2-charg.
wa_items_in-route = wa_upload_2-route.
wa_items_in-sales_unit = wa_upload_2-vrkme.
wa_items_in-short_text = wa_upload_2-maktx.
APPEND wa_items_in TO i_items_in.</b>
CLEAR wa_items_inx.
wa_items_inx-itm_number = wa_items-posnr.
IF l_insert EQ c_x.
wa_items_inx-updateflag = c_i. " Insert Record
ELSE.
wa_items_inx-updateflag = 'U'. " Update Record
ENDIF.
wa_items_inx-material = 'X'.
wa_items_inx-target_qty = 'X'.
wa_items_in-target_qu = 'X'.
wa_items_inx-store_loc = 'X'.
wa_items_inx-plant = 'X'.
wa_items_inx-batch = 'X'.
wa_items_inx-route = 'X'.
wa_items_inx-short_text = 'X'.
APPEND wa_items_inx TO i_items_inx.
ENDIF.
*Populate Ship-to-party
IF NOT wa_upload_2-scode IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_we.
wa_partner_inx-p_numb_new = wa_upload_2-scode.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Bill to Party
IF NOT wa_upload_2-bparty IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_re.
wa_partner_inx-p_numb_new = wa_upload_2-bparty.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Payer
IF NOT wa_upload_2-payer IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_rg.
wa_partner_inx-p_numb_new = wa_upload_2-payer.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Sales Rep
IF NOT wa_upload_2-salesrep IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_ys.
wa_partner_inx-p_numb_new = wa_upload_2-salesrep.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Populate schedule Line
CLEAR : l_datum,
wa_sch_in.
For following condition types, schedule lines not required
IF wa_upload_2-auart EQ 'ZY16' OR
wa_upload_2-auart EQ 'ZY17' OR
wa_upload_2-auart EQ 'ZY30' OR
wa_upload_2-auart EQ 'ZY31'.
ELSE.
wa_sch_in-itm_number = wa_items-posnr.
wa_sch_in-sched_line = '0001'.
wa_sch_in-req_qty = wa_upload_2-kwmeng.
IF NOT wa_upload_2-vdatu IS INITIAL.
REPLACE ALL OCCURRENCES OF '.' IN wa_upload_2-vdatu WITH ' '.
CONDENSE wa_upload_2-vdatu NO-GAPS.
CLEAR : l_datum.
l_datum = wa_upload_2-vdatu.
wa_sch_in-req_date = l_datum.
ENDIF.
APPEND wa_sch_in TO i_sch_in.
CLEAR wa_sch_inx.
wa_sch_inx-itm_number = wa_items-posnr.
wa_sch_inx-sched_line = '0001'.
IF wa_upload_2-oreason = 'C'.
wa_sch_inx-updateflag = c_i.
ELSE.
wa_sch_inx-updateflag = 'U'.
ENDIF.
wa_sch_inx-req_qty = 'X'.
wa_sch_inx-req_date = 'X'.
APPEND wa_sch_inx TO i_sch_inx.
ENDIF.
CLEAR : wa_upload_2,
wa_items_in,
wa_items,
wa_items_inx,
wa_sch_in,
wa_sch_inx.
ENDLOOP. "LOOP AT i_upload to wa_UPLOAD_2
Change Sales Order
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = l_sales_no
order_header_in = wa_header_in
order_header_inx = wa_header_inx
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
TABLES
return = i_return
order_item_in = i_items_in
order_item_inx = i_items_inx
partners = i_partner
partnerchanges = i_partner_inx
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
schedule_lines = i_sch_in
schedule_linesx = i_sch_inx
ORDER_TEXT =
ORDER_KEYS =
conditions_in = i_cond
conditions_inx = i_cond_inx
EXTENSIONIN =
COMMIT
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = ' '
IMPORTING
return = wa_commit.
WAIT UP TO 5 SECONDS.
Best regards,
Prashant -
Can a Purchase Order (PO) Be Created With Negative Quantity or Price?
The object is to have a negative line on a PO? Is this possible?
Hi,
Oracle Purchasing does not provide functionality to create a Purchase Order with a negative quantity or price.
Enhancement Request BUG 2457862 NEGATIVE QUANTITIES ON PO LINES has been logged to request this functionality.
Thanks
-Arif.
Maybe you are looking for
-
Since installed Firefox my emails from my yahoo will not print. There is not error message, nothing waiting to print. When I go to my AT&T emails they will still print. I will need to uninstall Firefox if you can't help me. Thanks. Pat
-
Server Response: 550 5.7.1 Unable to relay
SBS 2011 I have exchange 2010, Internally Outlook send/ Receive working fine-- Local Ip address. Owa Send/Receive working fine. But remote user can receive the Emails, But cant send the emails. Subject 'tes' Server Error: 550 Server Response: 550 5.7
-
CS5 Mac Vs PC? Any Difference?
Im currently running CS5 and Lightroom on a 2007 24inch imac but its really struggling now with my 50D and 5Dmk2 Raw files so im looking at upgrading Mac vs Pc to me isnt really an issue, ive always had both (mac desktops, windows laptops), purely as
-
guys, Does the import and export utilities come with the client install or do you have to install oracle database to be able to use import and export utilities. Thanks
-
InDesign 5.5 crashes when opening doc that contains InDesign doc links
Hi John ...does this keep you happy? Crash report is as follows: http://pastebin.com/u/gavalini