ATG10.1 - Unable to confirm an order with Order Discount type promotion
Hi,
I have created a promotion in ATG10.1. The promotion is an Order Discount type and i have configured a %off on the offer. Starting ATG10 we need to choose a template for configuring the promotion and then apply the rules and offer on it. I chose the Advanced condition and offer template and configured the rules and the offer.
Our requirement is to access the discountType property of the promotion applied on the order in a processor that gets executed in the processOrder pipeline. We have additional business logic in the processor depending on the discountType offered in the promotion. When we try to access the property we get an illegal argument exception. This is because the promotion that is being created is of super-type Order Discount whereas the discountType property is at the sub-type level.
We are accessing the property as below.
List<PricingAdjustment> pricingAdjustments = pOrder.getPriceInfo().getAdjustments();
for (PricingAdjustment pricingAdjustment : pricingAdjustments) {
RepositoryItem promotion = pricingAdjustment.getPricingModel();
String discountType = promotion.getPropertyValue("discountType");
Exception:
java.lang.IllegalArgumentException: Attempt to get a property value named discountType from item-descriptor type Order Discount
Any pointers or suggestions to fix this error would be helpful.
Thanks,
Srikanth
Yes, you are correct that discountType is defined at sub-type level. But if there is an entry in sub-type level, there is also an entry in the main "promotion" item-descriptor. PricingModel is nothing but main promotion repository item.
From the promotion ( pricingModel) repositoryItem, get the type ( type is a property defined at super level which says if this item is of type order discount, item dsicount or shipping discount. This type is not discountType ). Once you get the type value, call catalogRepository for that sub-type of promotion to get sub-type's repository item which contains the actual discountType.
From ATG 10 onwards, merchandising UI changed completely and sub types are not present. Templates are just for merchandising UI. But that should not effect your piece of code in the pipeline processors in processOrder pipeline chain. If you look at my above pseudo code, im getting the type, then querying catalog repository to get the sub-type repository item and then getting the discountType.
-karthik
Similar Messages
-
Unable to confirm transfer order due to error message "enter a storage unit
Hi guys:
I am unable to confirm transfer order due to error message popping up and saying "enter a storage unit", and I tried to search it in whole thread in the forum,it was suggestion to pick up destination storage unit via ls24, but I did went to ls24 and trying to click that line(transfer order) but unable to find the storage unit, so is there another way to fix it?Hi Allen...
Pls check if your Storage Type is SU Active. If yes, then system will create a storage unit according to the setting done for the storage unit management, perhaps in your case you are confirmin TO for the putaway.
Pls confirm and revert
Regards
Shiva -
Auomatic TO creation and confirmation from PCN with 321 MVT type
Dear Friends,
I am facing following WM issue, Kindly go through it and reply me with your valuable solution.
In my plant QM is active, so while receiving goods against any Purchase Order (MVT TYPE 101), all my stock goes to quality. After UD check, 99% material move to unrestrictd stock (321 mvt.type) and 1% used for quality (331 mvt. type).
For an example if I have received 1000 kg material (which initially goes to quality), after UD 995 kg material come to unrestricted stock and 5 kg used for quality check.
In my existing system for material document with mvt. type 321, one PCN is generated in the background, and using LT05 we make TO from PCN and confirm it.
But is it posible to create the TO and confirm from the PCN (Mvt. 321) in the backgroung itself, i mean to say that while my QM user is doing UD, material document with mvt 321, one PCN and TO will be generated and TO will be confirmd in the background itself.
I don't want to use LT05 separetely to make TO from PCN.
Please reply me soon.You need to make the config settings here in ur system.
SPRO > Logistics execution > WM > Interfaces > Inventory Management > Activate Automatic TO Creation
Assign the relevent setting to movement types...
Hope thsi helps
Thanks & regards
AHP -
How to verify the order discounted by promotion or coupon
Customer has placed some order then how can we confirm that placed order has been discounted by promotion(item level,order level) or by the coupon code.
As mentioned in previous post by krish k , you can easily check in ACC , Purchases and Payment -- Order -- find with order id.
Or you could query against database, using simple sql like this (dont want to complicate with joins)
- get Order Id for the Order.
- select * from dcspp_order where order_id=10000; (OrderID)
- get PriceInfo value from above result (lets say you got 'ai1234' )
- then select * from dcspp_amount_info where amount_info_id='ai1234';
- select * from dcspp_order_price where amount_info_id='ai1234';
For adjustments
select * from dcspp_amtinfo_adj where amount_info_id='ai1234'; (get adjustment id from this result, lets say you got 'pa1234' , this will return list if you got multiple adjustment )
select * from dcspp_price_adjust where adjustment_id='pa1234';
Similarly you could do for item pricing , tax and ship.
Thanks,
Samdani
Please mark Correct/Helpful for answering your question if it is. -
Unable to confirm process orders
Hi,
I am getting an error - No open operations requiring confirmations exist for the order.
In the control key, I have selected 2 (confirmation required) in the confirmations indicator.
In the confirmation parameters, I have + confirmable operations checkbox ticked.
Are there any settings I have missed? I appreciate your help.Hi
Please go and check operation
u have to add operation in order
do u have recipe for material in order
Please tell me if u face any problem
please reward points
Sunil -
Unable to set a variable with value of type number from SelectOneChoice
Hi,
I am getting javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: argument type mismatch error in the below situation
I have a select list <af:selectOneChoice value="#{bindings.vwCompanyName.inputValue}">
<f:selectItems value="#{bindings.vwCompanyName.items}"/>
</af:selectOneChoice>
and on clicking Search button I pass this value in the actionlistener <af:setActionListener from="#{bindings.Company}"
to="#{AgrmtSrch.company}"/>
where AgrmtSrch is my java reference
In the pageDef file, I have <variableIterator id="variables">
<variable Name="Company" Type="java.lang.Integer"/>
</variableIterator>
<list id="vwCompanyName" IterBinding="variables"
StaticList="false" ListOperMode="0" ListIter="vwCompanyIterator"
NullValueFlag="1" NullValueId="vwCompanyName_null">
<AttrNames>
<Item Value="Company"/>
</AttrNames>
<ListAttrNames>
<Item Value="Compcd"/>
</ListAttrNames>
<ListDisplayAttrNames>
<Item Value="ShortName"/>
</ListDisplayAttrNames>
</list>
In my Java file I have taken company of type Number(jbo), since the actual company code in DB is in Number. When I select any value and click search, i get the above error.
I tried changing to <variable Name="Company" Type="java.lang.string"/> in the page def. But then when i select the unselected value in the list I get null pointer exception. How can i handle this.
PLease help.
ThanksHi I am serious. This issue is occuring. Please can someone try it out and see if its occuring for you too.
I have no solution for this. I am using JDeveloper 10.1.3 and my project is ADF BC JSF
Test case: Have 2 to 3 selectOneChoice in a search page. All three should be populated by view objects. Let Vo_1 and Vo_2 have the key values as 1 and vo_3 can have key value as string. Each selectOneChoice should have "Include labelled Item" in "No Selection Item' in edit binding.
First select a value on any one of the dropdowns such that the query returns no results. Now the The other dropdowns will still be default labelled item and the one that was selected is still set so. Now when I select an option in any other dropdown and search, it gives the below error
500 Internal Server Error
javax.faces.el.EvaluationException: java.lang.NullPointerException at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:190) at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143) at oracle.adf.view.faces.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:55) at oracle.adf.view.faces.component.UIXComponentBase.getProperty(UIXComponentBase.java:1021) at oracle.adf.view.faces.component.UIXValue.getValue(UIXValue.java:56) at oracle.adf.view.faces.component.UIXEditableValue.validate(UIXEditableValue.java:212) at oracle.adf.view.faces.component.UIXEditableValue._executeValidate(UIXEditableValue.java:522) at oracle.adf.view.faces.component.UIXEditableValue.processValidators(UIXEditableValue.java:302) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXForm.processValidators(UIXForm.java:59) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855) at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839) at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:932) at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:362) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123) at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:620) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:215) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239) at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34) at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:595)Caused by: java.lang.NullPointerException at oracle.jbo.domain.TypeFactory.getInstance(TypeFactory.java:85) at oracle.jbo.uicli.binding.JUCtrlListBinding.matchTargetWithLov(JUCtrlListBinding.java:868) at oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(JUCtrlListBinding.java:1106) at oracle.jbo.uicli.binding.JUCtrlListBinding.setValueAt(JUCtrlListBinding.java:1725) at oracle.jbo.uicli.binding.JUCtrlListBinding.updateValuesFromRow(JUCtrlListBinding.java:1338) at oracle.jbo.uicli.binding.JUCtrlListBinding.getSelectedIndex(JUCtrlListBinding.java:702) at oracle.jbo.uicli.binding.JUCtrlListBinding.getInputValue(JUCtrlListBinding.java:1799) at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.getInputValue(FacesCtrlListBinding.java:73) at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGet(JUCtrlValueBinding.java:1691) at oracle.jbo.uicli.binding.JUCtrlListBinding.internalGet(JUCtrlListBinding.java:1972) at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.internalGet(FacesCtrlListBinding.java:89) at oracle.adf.model.binding.DCControlBinding.get(DCControlBinding.java:649) at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:79) at oracle.adfinternal.view.faces.model.FacesPropertyResolver.getValue(FacesPropertyResolver.java:92) at com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:187) at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:171) at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263) at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160) -
hi gurus
I created production order of 5 nos for one material. Here 2 are scrap and 3 are yield. but when I am trying to do final confirmation. System saying that under delivery is not allowed.( We set that configuration to show error). ie system is not not considering scrap quantity
How I have to make sure it is confirmed.
Thanks in advance
kalyanHi Kalyan,
Check your confirmation parameters settings in IMG. IN that setting in underdelivery allowance check you can define either error or warning.
Alternately you can also maintain underdelivery tolerance in Material Master Work Scheduling view or itself in Goods Receipt tab in Production Order.
These setting will help you to confirm the order with underdelivery.
Regards,
Sachin -
Hi Gurus,
We are unable to confirm the Transfer orders for deliveries . If we are trying to confirm the transfer order we
getting the following error message " Message no. L3858 Material quantity in source HU is not sufficient for TO item".
I have created a HU before confirming the TO and after creating the HU, i am getting the above error.
Please kindly help us in this regard.
Regards,
tc.Hi Sekkhar,
Just to share the solution in the comunity.
The problem in your case was that the HU records had a batch number maintained on the VEPO (HU Item level) record while the LQUA (Quant table) record doesn't. In MM also there is no batch value maintained. The VEPO record should be updated to remove the CHARG value. The material is not batch managed.
Then SAP repaired the data in order to allow the operation.
Please close this message as per the solution was provided and information were shared.
Best Regards,
Christian Rosa -
I tried to order a book on iphoto but got the following message from Apple : "the file contains text with drop shadows. As a result Apple is unable to process your order" Does anyone know what this means and how to fix it? Thanks!!
Hello Katiebell62
Check out the troubleshooting steps to try and resolve your issue with purchasing a book through iPhoto.
iPhoto: Difficulty submitting a book, card, or calendar order
http://support.apple.com/kb/TS2516
Thanks for using Apple Support Communities.
Regards,
-Norm G. -
Exit to confirm transfer order with a storage unit number
hi guys,
I want to confirm transfer order with a storage unit number from LT06 transaction, somebody know a user exit? .. actuallly i am using MWMTO004 (EXIT_SAPLL03A_005) but it doesn´t confirm the transfer order, How can i solve it? give me suggestions.
Thanks in advance.
Marisol.
Edited by: Marisol on Apr 28, 2010 7:40 PMI solved the problem myself.
Thanks. -
Confirming an order with a by-product
Am having a problem, If l confirm an order without a by-product an inspection lot is generated automatically and its post to inspection stock for Quality inspection, but the moment l try to confirm an order of the same product with a by-product it is posted to unrestricted-use stock but the material have 04 as its inspection lot origins in the material master. What can l do to post to inspection stock for this material with and without by-product.
Thanks a lot
I really agree with our solution because I also suspect that the problem can be valuation type 531 because for the other products am using 261, above all they all activate for Quality management in the material master data, but now the problem is am now not sure o the menu path so if the menu path is correct maybe l donu2019t know what am suppose to check for. So can you help me out if the manu path that am using is not correct. Spro>QM>Q inspection>inspection lot creation>inspection for goods mvt.
Thanks once again -
I am unable to close the order ...system hown this error messgae please any one guide me in this issue
Unprocessed future change recs for order 1002655 prevent del. flag/completion
Message no. CO688
Diagnosis
There are still future change records or error records to be processed from the confirmation for the confirmation processes in order 1002655. Possible confirmation processes are:
Automatic goods receipt
Backflushing
Calculation of actual costs
Data transfer to HR
System Response
You are not meant to set the deletion flag/'completed' status for orders with future change records that have not been processed.
Procedure
You should process the open future change records using
Predefined confimration process or
The CORUPROC program, by dispatching it in Customizing in a background job (dispatch background jobs: dispatching processes).
Check if incorrect goods movements or incorrect actual cost calculations exist for the order, and reprocess these if necessary:
Reprocessing incorrect goods movements
Reprocessing incorrect actual cost calculations
Regards
GSDSesidhar gollu,
Well try to reprocess your order by using T-code COFC which will reprocess the future records. Try this and then ping me any questions if u have.
Regards,
Madhu.G -
CO11N-in operation w/o material unable to find that material with 101 mvmt
Dear PP Gurus N Experts,
I have three operations in Routing, where all the material is consumed at First operation i.e. on second & third operation there is no MATERIAL CONSUMPTION.
So, I have assigned the material on operation one. Here my all operations have Control Key PP01
Now, my issue is: Material stock should update only at the confirmation of Third Operation. But when we go for confirmation of third operation (CO11N), we are unable to find that material with 101 movement at Goods Movement Screen.
We tried to enter the material manually also but we get a message: Goods receipt items can not be entered.
Why. Please help.
With thanks,
DSCDear Bhupendra,
What do you want to Say. Please read my original question: where I have mentioned-
I have three operations in Routing.
Where all the material is consumed at First operation i.e. on second & third operation there is no MATERIAL CONSUMPTION.
So, I have assigned the material on operation one. Here my all operations i.e. (0010, 0020 and 0030) have Control Key PP01.
For Control Key PP01, Auto Goods Movement Indicator is Checked in OP67.
Now, When I go for order confirmation for final (i.e. 0030) operation, here Order Material (say PMP1230) should appear with 101 Movement or as receiving material
Which is not happening. In other words I am not getting any material.
If I try to enter the material manually, get a message: Goods receipt items can not be entered.
With thanks,
DSC -
Schedule line getting confirmed when Ordered Quanity is greater than stock.
Hi Sap Gurus,
We have an issue in one of the sales scenario.
In one of the sales orders the ordered quanity is purposely maintained greater than the stock at respective storage location(batch managed).
In this case the schedule line should not get confirmed and it should not allow delivery document creation.
But in the sales order the schedule lines are geeting confirmed and even the delivery document is getting created with picking request completion.
Could you please help to understand :
1. why the schedule lines are getting confirmed when ordered quantity > Inventory?
2. How do I stop delivery document creaton in this scenario?
Looking for a quick response.
Thanks in advance,
BhaskarHello Bhaskar,
Is Availability Check in your system considering Replenishment Lead time, if yes, then this is possible.
Check this IMG Link:
IMG - Sales and Distribution - Basic Functions - Availability Check and Transfer of Requirements - Availability Check with ATP Logic or Against Planning - Carry Out Control For Availability Check
Here check the RLT settings.
Also check settings under In/Outward Movements, where things like include Purchase Order can lead to confirmation of stock in Sales Order, despite physical inventory being present.
Hope this helps,
Thanks,
Jignesh Mehta -
Partial Pick Confirming Sales Order
Hi Folks,
I have a requirement where I have to Pick Confirm and Ship confirm Sales Order through API.
1. When the quantites to be picked are same as quantity ordered the code seems to work just fine.
But suppose in my example my quantity in SO line is 50 and I want to partially Ship confirm the lines lets say 20 quantites.
then which API i need to use?
The approach I am following is while pick confirming I am passing 20 quantites only and the ship confirming it.
I researched and found that we can use the following API to update shipping attributes 'WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes' but when I run it (I tried before and after Pick confirm) the API runs fine but no changes are getting affected and the code Pick confirms all the quantity.
Could some please help me with this.
Please find the codes for pick confirm and updating shipping attributes
Pick confirm code
DECLARE
lv_order_num number := 700145812;
vMoveOrderLineId NUMBER;
p_pick_conf_qty NUMBER;
pStatus VARCHAR2(100);
pMsgData VARCHAR2(4000);
v_movehdr_rec INV_MOVE_ORDER_PUB.TROHDR_REC_TYPE;
v_movehdr_val_rec INV_MOVE_ORDER_PUB.TROHDR_VAL_REC_TYPE;
v_moveln_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_tbl_p INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_zero_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_zero_tbl_p INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_tbl_d INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_tbl_o INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_val_tbl INV_MOVE_ORDER_PUB.TROLIN_VAL_TBL_TYPE;
v_mold_tbl INV_MO_LINE_DETAIL_UTIL.G_MMTT_TBL_TYPE;
v_mold_tbl_p INV_MO_LINE_DETAIL_UTIL.G_MMTT_TBL_TYPE;
l_mold_tbl INV_MO_LINE_DETAIL_UTIL.G_MMTT_TBL_TYPE;
l_moveln_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
l_trolin_rec INV_MOVE_ORDER_PUB.TROLIN_REC_TYPE;
l_trolin_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
l_return_status VARCHAR2(240);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_move_hdr_id NUMBER;
l_move_order_no NUMBER := 0;
v_return_values VARCHAR2(2000) := FND_API.G_TRUE;
v_move_hdr_rec INV_MOVE_ORDER_PUB.TROHDR_REC_TYPE;
v_move_hdr_val_rec INV_MOVE_ORDER_PUB.TROHDR_VAL_REC_TYPE;
v_api_pick_confirm NUMBER;
cv_fail VARCHAR2(100) := 'Fail';
cv_success VARCHAR2(100) := 'Success';
g_user_id number;
g_resp_id number;
g_resp_appl_id number;
p_user_name varchar2(100) := 'SYSADMIN';
p_resp_name varchar2(100) := 'Order Management Super User';
p_mo_apps varchar2(100) := 'ONT';
CURSOR c_mmtt_recs(vMoveOrderLineId NUMBER) IS
SELECT transaction_header_id,
transaction_temp_id,
source_code,
source_line_id,
transaction_mode,
lock_flag,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
request_id,
program_application_id,
program_id,
program_update_date,
inventory_item_id,
revision,
organization_id,
subinventory_code,
locator_id,
transaction_quantity,
primary_quantity,
transaction_uom,
transaction_cost,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
transaction_source_id,
transaction_source_name,
transaction_date,
acct_period_id,
distribution_account_id,
transaction_reference,
requisition_line_id,
requisition_distribution_id,
reason_id,
lot_number,
lot_expiration_date,
serial_number,
receiving_document,
demand_id,
rcv_transaction_id,
move_transaction_id,
completion_transaction_id,
wip_entity_type,
schedule_id,
repetitive_line_id,
employee_code,
primary_switch,
schedule_update_code,
setup_teardown_code,
item_ordering,
negative_req_flag,
operation_seq_num,
picking_line_id,
trx_source_line_id,
trx_source_delivery_id,
physical_adjustment_id,
cycle_count_id,
rma_line_id,
customer_ship_id,
currency_code,
currency_conversion_rate,
currency_conversion_type,
currency_conversion_date,
ussgl_transaction_code,
vendor_lot_number,
encumbrance_account,
encumbrance_amount,
ship_to_location,
shipment_number,
transfer_cost,
transportation_cost,
transportation_account,
freight_code,
containers,
waybill_airbill,
expected_arrival_date,
transfer_subinventory,
transfer_organization,
transfer_to_location,
new_average_cost,
value_change,
percentage_change,
material_allocation_temp_id,
demand_source_header_id,
demand_source_line,
demand_source_delivery,
item_segments,
item_description,
item_trx_enabled_flag,
item_location_control_code,
item_restrict_subinv_code,
item_restrict_locators_code,
item_revision_qty_control_code,
item_primary_uom_code,
item_uom_class,
item_shelf_life_code,
item_shelf_life_days,
item_lot_control_code,
item_serial_control_code,
item_inventory_asset_flag,
allowed_units_lookup_code,
department_id,
department_code,
wip_supply_type,
supply_subinventory,
supply_locator_id,
valid_subinventory_flag,
valid_locator_flag,
locator_segments,
current_locator_control_code,
number_of_lots_entered,
wip_commit_flag,
next_lot_number,
lot_alpha_prefix,
next_serial_number,
serial_alpha_prefix,
shippable_flag,
posting_flag,
required_flag,
process_flag,
error_code,
error_explanation,
attribute_category,
attribute1,
attribute2,
attribute3,
attribute4,
attribute5,
attribute6,
attribute7,
attribute8,
attribute9,
attribute10,
attribute11,
attribute12,
attribute13,
attribute14,
attribute15,
movement_id,
reservation_quantity,
shipped_quantity,
transaction_line_number,
task_id,
to_task_id,
source_task_id,
project_id,
source_project_id,
pa_expenditure_org_id,
to_project_id,
expenditure_type,
final_completion_flag,
transfer_percentage,
transaction_sequence_id,
material_account,
material_overhead_account,
resource_account,
outside_processing_account,
overhead_account,
flow_schedule,
cost_group_id,
demand_class,
qa_collection_id,
kanban_card_id,
overcompletion_transaction_id,
overcompletion_primary_qty,
overcompletion_transaction_qty,
end_item_unit_number,
scheduled_payback_date,
line_type_code,
parent_transaction_temp_id,
put_away_strategy_id,
put_away_rule_id,
pick_strategy_id,
pick_rule_id,
common_bom_seq_id,
common_routing_seq_id,
cost_type_id,
org_cost_group_id,
move_order_line_id,
task_group_id,
pick_slip_number,
reservation_id,
transaction_status,
transfer_cost_group_id,
lpn_id,
transfer_lpn_id,
pick_slip_date,
content_lpn_id
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE move_order_line_id = vMoveOrderLineId;
l_moveln_fidx NUMBER;
l_moveln_lidx NUMBER;
n_mvln_cntr NUMBER;
l_Index NUMBER := 1;
v_records_in_mmtt NUMBER := 0;
REC C_MMTT_RECS%ROWTYPE;
BEGIN
select user_id
into g_user_id
from fnd_user
where user_name = p_user_name;
select responsibility_id, application_id
into g_resp_id, g_resp_appl_id
from apps.fnd_responsibility_vl
where responsibility_name = p_resp_name;
Apps.FND_Global.Apps_Initialize(g_user_id, g_resp_id, g_resp_appl_id);
MO_GLOBAL.INIT(p_mo_apps);
for mol in (select wda.delivery_id,
wda.delivery_detail_id,
wda.parent_delivery_detail_id,
wdd.source_code,
wdd.inventory_item_id,
wdd.organization_id,
wdd.ship_from_location_id,
wdd.ship_to_location_id,
wdd.requested_quantity,
wdd.requested_quantity_uom,
wdd.move_order_line_id,
wdd.org_id,
mtrl.quantity,
mtrl.quantity_delivered
from wsh_delivery_details wdd,
wsh_delivery_assignments wda,
oe_order_lines_all ol,
oe_order_headers_all oh,
mtl_txn_request_lines mtrl,
mtl_txn_request_headers mtrh
where wdd.source_line_id = ol.line_id
and wdd.delivery_detail_id = wda.delivery_detail_id
and ol.header_id = oh.header_id
and wdd.move_order_line_id = mtrl.line_id(+)
and mtrl.header_id = mtrh.header_id(+)
and oh.order_number = lv_order_num) loop
vMoveOrderLineId := mol.move_order_line_id;
p_pick_conf_qty := mol.quantity - nvl(mol.quantity_delivered,0);
SELECT COUNT(move_order_line_id)
INTO v_records_in_mmtt
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE move_order_line_id = vMoveOrderLineId;
IF v_records_in_mmtt > 1 THEN
pStatus := cv_fail;
pMsgData := 'Wrong number of records in MMTT for the MOVE_ORDER_LINE_ID : ' ||
vMoveOrderLineId;
DBMS_OUTPUT.PUT_LINE('Multiple records in MMTT for move_order_line_id = ' ||
vMoveOrderLineId);
v_api_pick_confirm := 0;
GOTO end_of_pkcnf;
ELSIF v_records_in_mmtt = 0 THEN
--means that the delivery is already pick confirmed
pStatus := cv_success;
DBMS_OUTPUT.PUT_LINE('No records in MMTT for move_order_line_id = ' ||
vMoveOrderLineId ||
' hence it is already pick confirmed');
v_api_pick_confirm := 0;
GOTO end_of_pkcnf;
END IF;
SELECT mtrh.header_id, mtrh.request_number
INTO l_move_hdr_id, l_move_order_no
FROM mtl_txn_request_headers mtrh, mtl_txn_request_lines mtrl
WHERE mtrh.header_id = mtrl.header_id
AND mtrl.line_id = vMoveOrderLineId;
DBMS_OUTPUT.PUT_LINE('Obtained MTRH.HEADER_ID = ' || l_move_hdr_id ||
' MTRH.REQUEST_NUMBER = ' || l_move_order_no ||
' for move_order_line_id = ' || vMoveOrderLineId);
INV_MOVE_ORDER_PUB.GET_MOVE_ORDER(p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_return_values => v_return_values,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_header_id => l_move_hdr_id,
p_header => l_move_order_no,
x_trohdr_rec => v_move_hdr_rec,
x_trohdr_val_rec => v_move_hdr_val_rec,
x_trolin_tbl => v_moveln_tbl,
x_trolin_val_tbl => v_moveln_val_tbl);
COMMIT;
DBMS_OUTPUT.PUT_LINE('Return status of INV_MOVE_ORDER_PUB.GET_MOVE_ORDER = ' ||
l_return_status);
IF l_return_status != FND_API.G_RET_STS_SUCCESS THEN
pStatus := cv_fail;
pMsgData := 'Failed to get move order inv_move_order_pub.get_move_order for MOVE_ORDER_LINE_ID : ' ||
vMoveOrderLineId;
GOTO end_of_pkcnf;
END IF;
OPEN c_mmtt_recs(vMoveOrderLineId);
FETCH c_mmtt_recs
INTO rec;
CLOSE c_mmtt_recs;
v_mold_tbl(1).transaction_header_id := rec.transaction_header_id;
v_mold_tbl(1).transaction_temp_id := rec.transaction_temp_id;
v_mold_tbl(1).source_code := rec.source_code;
v_mold_tbl(1).source_line_id := rec.source_line_id;
v_mold_tbl(1).transaction_mode := rec.transaction_mode;
v_mold_tbl(1).lock_flag := rec.lock_flag;
v_mold_tbl(1).last_update_date := rec.last_update_date;
v_mold_tbl(1).last_updated_by := rec.last_updated_by;
v_mold_tbl(1).creation_date := rec.creation_date;
v_mold_tbl(1).created_by := rec.created_by;
v_mold_tbl(1).last_update_login := rec.last_update_login;
v_mold_tbl(1).request_id := rec.request_id;
v_mold_tbl(1).program_application_id := rec.program_application_id;
v_mold_tbl(1).program_id := rec.program_id;
v_mold_tbl(1).program_update_date := rec.program_update_date;
v_mold_tbl(1).inventory_item_id := rec.inventory_item_id;
v_mold_tbl(1).revision := rec.revision;
v_mold_tbl(1).organization_id := rec.organization_id;
v_mold_tbl(1).subinventory_code := rec.subinventory_code;
v_mold_tbl(1).locator_id := rec.locator_id;
v_mold_tbl(1).transaction_quantity := rec.transaction_quantity;
v_mold_tbl(1).primary_quantity := rec.primary_quantity;
v_mold_tbl(1).transaction_uom := rec.transaction_uom;
v_mold_tbl(1).transaction_cost := rec.transaction_cost;
v_mold_tbl(1).transaction_type_id := rec.transaction_type_id;
v_mold_tbl(1).transaction_action_id := rec.transaction_action_id;
v_mold_tbl(1).transaction_source_type_id := rec.transaction_source_type_id;
v_mold_tbl(1).transaction_source_id := rec.transaction_source_id;
v_mold_tbl(1).transaction_source_name := rec.transaction_source_name;
v_mold_tbl(1).transaction_date := rec.transaction_date;
v_mold_tbl(1).acct_period_id := rec.acct_period_id;
v_mold_tbl(1).distribution_account_id := rec.distribution_account_id;
v_mold_tbl(1).transaction_reference := rec.transaction_reference;
v_mold_tbl(1).requisition_line_id := rec.requisition_line_id;
v_mold_tbl(1).requisition_distribution_id := rec.requisition_distribution_id;
v_mold_tbl(1).reason_id := rec.reason_id;
v_mold_tbl(1).lot_number := rec.lot_number;
v_mold_tbl(1).lot_expiration_date := rec.lot_expiration_date;
v_mold_tbl(1).serial_number := rec.serial_number;
v_mold_tbl(1).receiving_document := rec.receiving_document;
v_mold_tbl(1).demand_id := rec.demand_id;
v_mold_tbl(1).rcv_transaction_id := rec.rcv_transaction_id;
v_mold_tbl(1).move_transaction_id := rec.move_transaction_id;
v_mold_tbl(1).completion_transaction_id := rec.completion_transaction_id;
v_mold_tbl(1).wip_entity_type := rec.wip_entity_type;
v_mold_tbl(1).schedule_id := rec.schedule_id;
v_mold_tbl(1).repetitive_line_id := rec.repetitive_line_id;
v_mold_tbl(1).employee_code := rec.employee_code;
v_mold_tbl(1).primary_switch := rec.primary_switch;
v_mold_tbl(1).schedule_update_code := rec.schedule_update_code;
v_mold_tbl(1).setup_teardown_code := rec.setup_teardown_code;
v_mold_tbl(1).item_ordering := rec.item_ordering;
v_mold_tbl(1).negative_req_flag := rec.negative_req_flag;
v_mold_tbl(1).operation_seq_num := rec.operation_seq_num;
v_mold_tbl(1).picking_line_id := rec.picking_line_id;
v_mold_tbl(1).trx_source_line_id := rec.trx_source_line_id;
v_mold_tbl(1).trx_source_delivery_id := rec.trx_source_delivery_id;
v_mold_tbl(1).physical_adjustment_id := rec.physical_adjustment_id;
v_mold_tbl(1).cycle_count_id := rec.cycle_count_id;
v_mold_tbl(1).rma_line_id := rec.rma_line_id;
v_mold_tbl(1).customer_ship_id := rec.customer_ship_id;
v_mold_tbl(1).currency_code := rec.currency_code;
v_mold_tbl(1).currency_conversion_rate := rec.currency_conversion_rate;
v_mold_tbl(1).currency_conversion_type := rec.currency_conversion_type;
v_mold_tbl(1).currency_conversion_date := rec.currency_conversion_date;
v_mold_tbl(1).ussgl_transaction_code := rec.ussgl_transaction_code;
v_mold_tbl(1).vendor_lot_number := rec.vendor_lot_number;
v_mold_tbl(1).encumbrance_account := rec.encumbrance_account;
v_mold_tbl(1).encumbrance_amount := rec.encumbrance_amount;
v_mold_tbl(1).ship_to_location := rec.ship_to_location;
v_mold_tbl(1).shipment_number := rec.shipment_number;
v_mold_tbl(1).transfer_cost := rec.transfer_cost;
v_mold_tbl(1).transportation_cost := rec.transportation_cost;
v_mold_tbl(1).transportation_account := rec.transportation_account;
v_mold_tbl(1).freight_code := rec.freight_code;
v_mold_tbl(1).containers := rec.containers;
v_mold_tbl(1).waybill_airbill := rec.waybill_airbill;
v_mold_tbl(1).expected_arrival_date := rec.expected_arrival_date;
v_mold_tbl(1).transfer_subinventory := rec.transfer_subinventory;
v_mold_tbl(1).transfer_organization := rec.transfer_organization;
v_mold_tbl(1).transfer_to_location := rec.transfer_to_location;
v_mold_tbl(1).new_average_cost := rec.new_average_cost;
v_mold_tbl(1).value_change := rec.value_change;
v_mold_tbl(1).percentage_change := rec.percentage_change;
v_mold_tbl(1).material_allocation_temp_id := rec.material_allocation_temp_id;
v_mold_tbl(1).demand_source_header_id := rec.demand_source_header_id;
v_mold_tbl(1).demand_source_line := rec.demand_source_line;
v_mold_tbl(1).demand_source_delivery := rec.demand_source_delivery;
v_mold_tbl(1).item_segments := rec.item_segments;
v_mold_tbl(1).item_description := rec.item_description;
v_mold_tbl(1).item_trx_enabled_flag := rec.item_trx_enabled_flag;
v_mold_tbl(1).item_location_control_code := rec.item_location_control_code;
v_mold_tbl(1).item_restrict_subinv_code := rec.item_restrict_subinv_code;
v_mold_tbl(1).item_restrict_locators_code := rec.item_restrict_locators_code;
v_mold_tbl(1).item_revision_qty_control_code := rec.item_revision_qty_control_code;
v_mold_tbl(1).item_primary_uom_code := rec.item_primary_uom_code;
v_mold_tbl(1).item_uom_class := rec.item_uom_class;
v_mold_tbl(1).item_shelf_life_code := rec.item_shelf_life_code;
v_mold_tbl(1).item_shelf_life_days := rec.item_shelf_life_days;
v_mold_tbl(1).item_lot_control_code := rec.item_lot_control_code;
v_mold_tbl(1).item_serial_control_code := rec.item_serial_control_code;
v_mold_tbl(1).item_inventory_asset_flag := rec.item_inventory_asset_flag;
v_mold_tbl(1).allowed_units_lookup_code := rec.allowed_units_lookup_code;
v_mold_tbl(1).department_id := rec.department_id;
v_mold_tbl(1).department_code := rec.department_code;
v_mold_tbl(1).wip_supply_type := rec.wip_supply_type;
v_mold_tbl(1).supply_subinventory := rec.supply_subinventory;
v_mold_tbl(1).supply_locator_id := rec.supply_locator_id;
v_mold_tbl(1).valid_subinventory_flag := rec.valid_subinventory_flag;
v_mold_tbl(1).valid_locator_flag := rec.valid_locator_flag;
v_mold_tbl(1).locator_segments := rec.locator_segments;
v_mold_tbl(1).current_locator_control_code := rec.current_locator_control_code;
v_mold_tbl(1).number_of_lots_entered := rec.number_of_lots_entered;
v_mold_tbl(1).wip_commit_flag := rec.wip_commit_flag;
v_mold_tbl(1).next_lot_number := rec.next_lot_number;
v_mold_tbl(1).lot_alpha_prefix := rec.lot_alpha_prefix;
v_mold_tbl(1).next_serial_number := rec.next_serial_number;
v_mold_tbl(1).serial_alpha_prefix := rec.serial_alpha_prefix;
v_mold_tbl(1).shippable_flag := rec.shippable_flag;
v_mold_tbl(1).posting_flag := rec.posting_flag;
v_mold_tbl(1).required_flag := rec.required_flag;
v_mold_tbl(1).process_flag := rec.process_flag;
v_mold_tbl(1).error_code := rec.error_code;
v_mold_tbl(1).error_explanation := rec.error_explanation;
v_mold_tbl(1).attribute_category := rec.attribute_category;
v_mold_tbl(1).attribute1 := rec.attribute1;
v_mold_tbl(1).attribute2 := rec.attribute2;
v_mold_tbl(1).attribute3 := rec.attribute3;
v_mold_tbl(1).attribute4 := rec.attribute4;
v_mold_tbl(1).attribute5 := rec.attribute5;
v_mold_tbl(1).attribute6 := rec.attribute6;
v_mold_tbl(1).attribute7 := rec.attribute7;
v_mold_tbl(1).attribute8 := rec.attribute8;
v_mold_tbl(1).attribute9 := rec.attribute9;
v_mold_tbl(1).attribute10 := rec.attribute10;
v_mold_tbl(1).attribute11 := rec.attribute11;
v_mold_tbl(1).attribute12 := rec.attribute12;
v_mold_tbl(1).attribute13 := rec.attribute13;
v_mold_tbl(1).attribute14 := rec.attribute14;
v_mold_tbl(1).attribute15 := rec.attribute15;
v_mold_tbl(1).movement_id := rec.movement_id;
v_mold_tbl(1).reservation_quantity := rec.reservation_quantity;
v_mold_tbl(1).shipped_quantity := rec.shipped_quantity;
v_mold_tbl(1).transaction_line_number := rec.transaction_line_number;
v_mold_tbl(1).task_id := rec.task_id;
v_mold_tbl(1).to_task_id := rec.to_task_id;
v_mold_tbl(1).source_task_id := rec.source_task_id;
v_mold_tbl(1).project_id := rec.project_id;
v_mold_tbl(1).source_project_id := rec.source_project_id;
v_mold_tbl(1).pa_expenditure_org_id := rec.pa_expenditure_org_id;
v_mold_tbl(1).to_project_id := rec.to_project_id;
v_mold_tbl(1).expenditure_type := rec.expenditure_type;
v_mold_tbl(1).final_completion_flag := rec.final_completion_flag;
v_mold_tbl(1).transfer_percentage := rec.transfer_percentage;
v_mold_tbl(1).transaction_sequence_id := rec.transaction_sequence_id;
v_mold_tbl(1).material_account := rec.material_account;
v_mold_tbl(1).material_overhead_account := rec.material_overhead_account;
v_mold_tbl(1).resource_account := rec.resource_account;
v_mold_tbl(1).outside_processing_account := rec.outside_processing_account;
v_mold_tbl(1).overhead_account := rec.overhead_account;
v_mold_tbl(1).flow_schedule := rec.flow_schedule;
v_mold_tbl(1).cost_group_id := rec.cost_group_id;
v_mold_tbl(1).demand_class := rec.demand_class;
v_mold_tbl(1).qa_collection_id := rec.qa_collection_id;
v_mold_tbl(1).kanban_card_id := rec.kanban_card_id;
v_mold_tbl(1).overcompletion_transaction_id := rec.overcompletion_transaction_id;
v_mold_tbl(1).overcompletion_primary_qty := rec.overcompletion_primary_qty;
v_mold_tbl(1).overcompletion_transaction_qty := rec.overcompletion_transaction_qty;
v_mold_tbl(1).end_item_unit_number := rec.end_item_unit_number;
v_mold_tbl(1).scheduled_payback_date := rec.scheduled_payback_date;
v_mold_tbl(1).line_type_code := rec.line_type_code;
v_mold_tbl(1).parent_transaction_temp_id := rec.parent_transaction_temp_id;
v_mold_tbl(1).put_away_strategy_id := rec.put_away_strategy_id;
v_mold_tbl(1).put_away_rule_id := rec.put_away_rule_id;
v_mold_tbl(1).pick_strategy_id := rec.pick_strategy_id;
v_mold_tbl(1).pick_rule_id := rec.pick_rule_id;
v_mold_tbl(1).common_bom_seq_id := rec.common_bom_seq_id;
v_mold_tbl(1).common_routing_seq_id := rec.common_routing_seq_id;
v_mold_tbl(1).cost_type_id := rec.cost_type_id;
v_mold_tbl(1).org_cost_group_id := rec.org_cost_group_id;
v_mold_tbl(1).move_order_line_id := rec.move_order_line_id;
v_mold_tbl(1).task_group_id := rec.task_group_id;
v_mold_tbl(1).pick_slip_number := rec.pick_slip_number;
v_mold_tbl(1).reservation_id := rec.reservation_id;
v_mold_tbl(1).transaction_status := rec.transaction_status;
v_mold_tbl(1).transfer_cost_group_id := rec.transfer_cost_group_id;
v_mold_tbl(1).lpn_id := rec.lpn_id;
v_mold_tbl(1).transfer_lpn_id := rec.transfer_lpn_id;
v_mold_tbl(1).pick_slip_date := rec.pick_slip_date;
v_mold_tbl(1).content_lpn_id := rec.content_lpn_id;
v_mold_tbl(1).transaction_quantity := p_pick_conf_qty;
v_mold_tbl(1).primary_quantity := p_pick_conf_qty;
v_mold_tbl(1).shipped_quantity := p_pick_conf_qty;
INV_PICK_WAVE_PICK_CONFIRM_PUB.PICK_CONFIRM(p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_FALSE,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_move_order_type => 3 -- PickWave - Order
p_transaction_mode => 1 -- 1:On-Line, 2:Concurrent, 3:Background
p_trolin_tbl => v_moveln_tbl_d,
p_mold_tbl => v_mold_tbl,
x_mmtt_tbl => v_mold_tbl,
x_trolin_tbl => v_moveln_tbl_o,
p_transaction_date => SYSDATE);
COMMIT;
DBMS_OUTPUT.PUT_LINE('Return status of INV_PICK_WAVE_PICK_CONFIRM_PUB.PICK_CONFIRM = ' ||
l_return_status);
IF l_return_status != FND_API.G_RET_STS_SUCCESS THEN
pStatus := cv_fail;
pMsgData := 'Failed to pick confirm move order inv_pick_wave_pick_confirm_pub.pick_confirm for MOVE_ORDER_LINE_ID : ' ||
vMoveOrderLineId;
GOTO end_of_pkcnf;
END IF;
v_api_pick_confirm := 1;
dbms_output.put_line('Status of the Pick Confirm is : ' ||
l_return_status);
<<end_of_pkcnf>>
NULL;
end loop;
END;
Updating Shipping attributes
DECLARE
--Standard Parameters.
p_api_version NUMBER;
init_msg_list VARCHAR2(30);
p_commit VARCHAR2(30);
--Parameters for WSH_DELIVERY_DETAILS_PUB.update_shipping_attributes.
source_code VARCHAR2(15);
changed_attributes WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType;
--out parameters
x_return_status VARCHAR2(10);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
x_msg_details VARCHAR2(3000);
x_msg_summary VARCHAR2(3000);
-- Handle exceptions
vApiErrorException EXCEPTION;
BEGIN
-- Initialize return status
x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
-- Call this procedure to initialize applications parameters
FND_GLOBAL.APPS_INITIALIZE(user_id => 0,
resp_id => 21623,
resp_appl_id => 660);
source_code := 'OE';
changed_attributes(1).delivery_detail_id := 9317811; -- delivery_detail_id
changed_attributes(1).shipped_quantity := 0; -- quantity to update
changed_attributes(1).cycle_count_quantity := 30;
--Call to WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes.
WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes(p_api_version_number => 1.0,
p_init_msg_list => init_msg_list,
p_commit => p_commit,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_changed_attributes => changed_attributes,
p_source_code => source_code);
commit;
IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
RAISE vApiErrorException;
ELSE
dbms_output.put_line('The shipped quantity is updated with ' ||
changed_attributes(1)
.shipped_quantity || ' for the delivery detail ' ||
changed_attributes(1).delivery_detail_id);
END IF;
EXCEPTION
WHEN vApiErrorException THEN
WSH_UTIL_CORE.get_messages('Y',
x_msg_summary,
x_msg_details,
x_msg_count);
IF x_msg_count > 1 THEN
x_msg_data := x_msg_summary || x_msg_details;
DBMS_OUTPUT.PUT_LINE('Message Data : ' || x_msg_data);
ELSE
x_msg_data := x_msg_summary;
DBMS_OUTPUT.PUT_LINE('Message Data : ' || x_msg_data);
END IF;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Unexpected Error: ' || SQLERRM);
END;
ThanksHi,
Goto VTFL.Select you valid combination.
Click on item.Select yout item category there.Goto details.
Select the Pos/neg quantity field as "+".
Maintain the billing quantity as "A".
Maintain VBRK/VBRP as "001".
Save.
Goto VOV7 and select your item category.Details.
Select completion rule as "B" and billing relevance as "F".
Save.
Pls go through the follwing threads that are posted by me earlier.
[Invoice split|Re: Invoice split]
[Splitiing of invoice|Re: Invoice split]
Regards,
Krishna.
Maybe you are looking for
-
Music wont start on my iPhone 4S
Hello everyone, I've got a problem. It's very simpel. When i press the play button on my iPhone, it wont do anything.. Its an iPhone 4S on 5.0.1. I have tried several ways to delete my music on iTunes and 'rematch' it once again with the cloud, so to
-
my bluetooth says 'Not Available' how do i get it to work again. I have restarted the computer several times and have replaced the batteries in both the keyboard and mouse and yet it still is not working! please help
-
Which carrier is available for GUAM to use for the iPad 2?
I wanted to know which carrier is best for me to use on Guam for the iPad 2?
-
FW: Who is FORTE for ? Who would benefit from FORTE?
Hi- You made some good points in your recent posting. I like Forte' but also see advantages to using other tools based on specific requirements. See my responses below. From: [email protected][SMTP:[email protected]] Sent: Monday, August 12, 1996 1
-
Annotating a protected PDF with comments allowed - how?
Hello I have a protected PDF that you can't copy from but which you commenting is allowed in. I can comment (add sticky notes and highlight) with no problem in Adobe Reader on a PC but in the Adobe Reader for iPad App the annotation features are stil