Inventory UOM intra-class conversions
Hi all. I need to know if I can view the on hand quantity in diferent UOM's (primary-secondary and all conversions configured by item)
thanks a lot
11.5.10
Edited by: omator on 11-feb-2010 9:02
UOM Conversions are standards. One does not define tolerances when defining standards.
For example 1 Dozen = 12 Nos, it does not make sense to define a conversion like 1 Dozen = 12 nos +/- 1 nos.
However you may define an item specific UOM Conversion, (which overrides the Standard UOM Conversion) that may define the conversion as, say 1 Dozen = 13 Nos for Item01.
But to take care of the tolerances as you put it,
assuming Dozen has been defined as the Primary UOM for an Item, you may ingeniously chose to receive the item in Nos (if Nos and Dozen belong to the same class).
Eg: if you want to use 1 Dozen = 11 Nos, receive the item in Nos instead of Dozen.
However, if you have a Secondary UOM defined for the Item, you may define a tolerance for the COnversion between Primary & Secondary UOM using the Deviation +ve & -ve fields in the Item Master.
Hope this clarifies, Revert if you have a specific scenario.
Similar Messages
-
Hello, I'm stuck into a very simple thing.
I've a class A, and a subclass B. Then I create an object that way:
A myObject = new B();
Then, what do I get from B?
I mean, do I get B methods? B attributes? Not B methods, but overwritten methods such as toString?
And what do I get from A?
I'm very confused.
Thank you.Lanselot wrote:
Hello, I'm stuck into a very simple thing.
I've a class A, and a subclass B. Then I create an object that way:
A myObject = new B();
Then, what do I get from B?an instance of B.
>
I mean, do I get B methods? B attributes? Yes, but to access them, you'll have to cast:
B myBObject = (B) myObject;If this is the case, it would be better just to write:
B myBObject = new B();and not bother with the variable of type A.
Not B methods, but overwritten methods such as toString?If B overrides methods, you get those overridden methods
And what do I get from A?Anything inherited from A. -
String to Library Class conversion
Hi guys, i'm having trouble coming up with a good way to
convert a string to class reference from the library without using
a lookup table in Actionscript 3.0
so say i'd loaded in some data from xml and i need to
generate a new instance of a "Box" from a linked extended Sprite in
the library.
without the string i'd just go var myBox = new Box();
but obviously i can't go var myBox = new "Box"() so i'm kind
of stuck without using a lookup table to convert the string passed
to the appropriate Class linkage.
Any help would be much appreciated,flash.utils.getDefinitionByName()
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#getDefi nitionByName() -
I updated Premiere Pro CC two hours ago and since then there is no more realtime playback of my MXF AVC-Intra Class100 1080p footage, which worked perfectly bevore. When paused it shows the current frame of the footage after about 10 seconds. Does anyone else have this problem or are there suggestions what I can do?
Thank you! DavidHi Vinay,
the reset of the preferences did the job! Thank you very much for your help! For everyone else having the same problem, press "ALT" while starting premiere to reset the preferences.
Thank you very much!!
Regards, David -
Hi Friends,
I'm new to Java card technology. I set the environment variable and the remaining properly. I'm using Windows XP platform And using Java 1.4 and Java card 2.1.2. When I run "build_samples.bat" after compiling the Java file successfully, when It tries to convert the class file into JCA or CAP it says an error "unsupported class file format of version 46.0". I don't what it means and how to rectify that?
Thank you for helping me.Use JDK 1.3 as stated in the Java Card Kit or use something like the options -target 1.1 -source 1.3 with the compiler.
-
XML to Java Class Conversion.
Hi all,
I need to convert a XML document to Java class.
Then create numerous objects of this class.
Convert the multiple objects single XML file
Im able to convert objects to XML..
But I need a way to convert XML document to Java class..
Any ways to do the same??
Thanks.1.Define an XML Schema for the XML document and compile the schema to Java classes.
2.Unmarshall the XML document with the Java classes. -
As BOR is being phased out is anyone aware of any tools around to convert some useful BOR's to Classes.
I think in general in workflow one should try and use classes and objects wherever possible rather than the older BOR method.
A lot of supplied SAP workflows however are still based on BOR so this area could become a bit of a minefield especially in CRM and similar type of processing.
As new projects come on stream I'd be interested to know how people are going to handle this topic.
Cheers
jimboThis doesn't address the topic. All of the above features can be done via OO classes --you can of course have multi-line objects and "virtual attributes" in a class.
A problem with BOR is that you can't easily call these from "Classical ABAP" programming so say you want all the partners of a sales order you normally have to code the functionality yourself using the relevant tables rather than try and get the attributes of a relevant BOR in your program.
However once you've defined say a SALES ORDER class then any ABAP can access the public attributes and methods of this class .
With the BOR it's OK via workflow but a "Normal ABAP" program has to do some fancy coding using the "SWO" or workflow macros and functions to access the attributes of the BOR.
Since these are internal SAP macros and could be deprecated at any time it's really not surprising that outside the Workflow environment BOR's are rarely used in standard ABAP programming.
BOR was a "stepping stone" used by SAP to implement some of the features of OO abap before OO abap became reasonably powerful itself.
Inheritance, encapsulation etc etc are all standard in OO -- not restricted to BOR's.
The trick is to ensure your new class has the functionality of the old BOR and use that wherever possible on new projects.
Like BOR if you extend methods and attributes you don't need to change any existing programs using the relevant classes.
I'm sure the next major upgrade of sap will implement many more business classes -- the old BOR could be retained by simply calling a Class of the same name having the same attributes and objects for legacy code and workflows.
For example here's some ABAP code to call a method which returns the Long Text of a Service notification BOR ZBUS2080 (delagated BOR BUS2080)
You can see it's quite a "Dogs Dinner".
Much more simply and easily done of course if you had a similar CLASS available. (call me=>) etc.
Program ZZREADBOR.
Sample program to execute a method of a business object
or return an attribute of a Business object
can be used in or outside of Workflows etc.
Use this as a model
Note on some definitions used in WF / Object
programming.
A container is a special type of "generalized"
parameter used in workflows for passing data
between steps.
You can use these in "Normal" programming
It's just a generalized structure for holding
data.
An Attribute in this context means a field e.g Short
text. The attribute can be a table (multi-lined)
as well.
The attribut is defined in the attribute list
of the business object
Use transaction SWO1 to see the list.
Operations on containers are done via
standard SAP Workflow macros
swc_function such as swc_create_object.
You must supply a key to instantiate the object
and the object name
(Instantiation means just supplying
the objects key --such as
in the case of a sales order the key would be
the sales order number).
Parameters
Enter Business object name e.g ZBUS2080
key of business object e.g sales doc nr etc.
Attribute you want if getting an attribute property
Method name if executing a method.
For retrieving attributes the data is returned
in field return.
For Methods a little extra work is required as follows:
For Methods you may need extra container
parameters such as
tables (swc_get_tabe container containerElement Itab)
To see what elements are needed have a look at the
Method code (transaction SWO1=== select
the business object(display) chose the method and then
select the program button
container parameters will be identified the code
by swc_set_element / table for export parameteres
swc_get_element / table for import parameters.
ensure you set your container(s) to persistent
this ensures the container exists throughout
the whole run and is available to sub programs
function modules, methods etc.
if you don't do this then the container only exists
in the program and disappears when you enter a function
module method etc etc.
Jim Hawthorne Nov 2005.
include <cntn01>. "SWC macros and WF container stuff
tables: tojtb, swotdv. "Bus Obj <====> program
Sample demo executes method getdetail
which retrieves long text etc from bus object ZBUS2080.
parameters: p_bus like tojtb-name default 'ZBUS2080',
p_key like swotobjid-objkey default '000300000153',
p_attrib like SWOTRA-ATTRIBUTE,
p_method(32) default 'GETDETAIL'.
constants: c_attrib value 'A',
c_method value 'M'.
data: BEGIN OF RETURN.
INCLUDE STRUCTURE SWOTRETURN.
DATA END OF RETURN.
data: BAPIRETURN LIKE BAPIRETURN.
data: l_invoke LIKE swotinvoke.
data: w_prog like tojtb-progname,
w_runname like tojtb-progname,
w_super like tojtb-parent,
w_type(1) type c.
swc_container container.
swc_container_to_persistent container.
data: object like swotrtime-object.
data: w_object like swotobjid.
if p_method = ' '.
w_type = c_method.
else.
w_type = c_method.
endif.
break-point 1. .
w_object-objkey = p_key.
w_object-objtype = p_bus.
get actual program name where method / attribute
exists.
If verb is not in the object type
then use the supertype.
select single progname parent into (w_prog, w_super)
from tojtb
where name eq p_bus.
select single * from swotdv
where objtype = p_bus
and verb = w_type.
case sy-subrc.
when 0.
w_runname = w_prog.
when 4.
select single progname parent into (w_prog, w_super)
from tojtb
where name eq w_super.
w_runname = w_prog.
endcase.
case p_method.
when ' '.
Method not entered so attribute required.
CALL FUNCTION 'SWO_PROPERTY_GET'
EXPORTING
OBJECT = w_object
ATTRIBUTE = p_attrib
CHANGING
VALUE = return.
EXCEPTIONS
ERROR_CREATE = 1
ERROR_INVOKE = 2
ERROR_CONTAINER = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
when others.
Method required.
1 ) Must instantiate the object first.
CALL FUNCTION 'SWO_CREATE'
EXPORTING
OBJTYPE = p_bus
OBJKEY = p_key
IMPORTING
OBJECT = object
RETURN = return.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Execute the method.
for swo invoke -- access type 'G' ====> get attribute
access type 'C' ====> execute a method
this function is executed internally.
in the perform (p_method) statement the sap kernel knows
that the program is actually a business object type of program
not a "Normal" abap so the perform gets handled a little
differently than the usual perform statement.
You cannot execute the BOR program via SE38.
set any input and output parameters
for your method.
You will have to code them here
swc_set_element container 'User' p_key.
l_invoke-object = object.
l_invoke-lobjtype = p_method.
l_invoke-verb = p_method.
l_invoke-objkey = p_key.
l_invoke-reftype = 'D'.
l_invoke-synchron = 'X'.
read comments above again to understand the difference
in how this statement works compared
to a normal perfom xxxx in program yyyy.
if you have more parameters such as container tables then add them
to the tables statement.
for example to get long text and other info from business object
ZBUS2080 (Service Notification)
data:
notifheader like bapi2080_nothdre,
notifhdtext like bapi2080_nothdtxte,
notlongtext like bapi2080_notfulltxte occurs 0,
notitem like bapi2080_notiteme occurs 0,
notifcaus like bapi2080_notcause occurs 0,
notifactv like bapi2080_notactve occurs 0,
notiftask like bapi2080_nottaske occurs 0,
notifpartnr like bapi2080_notpartnre occurs 0,
return2 like bapiret2 occurs 0.
swc_set_table container 'NotLongText' notlongtext.
swc_set_table container 'NotItem' notitem.
swc_set_table container 'NotifCaus' notifcaus.
swc_set_table container 'NotifActv' notifactv.
swc_set_table container 'NotifTask' notiftask.
swc_set_table container 'NotifPartnr' notifpartnr.
swc_set_table container 'Return2' return2.
perform (p_method) in program (w_runname) tables container
changing
l_invoke.
now retrieve your data back from the method.
if you have extra parameters add extra swc_get statements.
break-point 1.
swc_get_table container 'NotLongText' notlongtext.
swc_get_table container 'NotItem' notitem.
swc_get_table container 'NotifCaus' notifcaus.
swc_get_table container 'NotifActv' notifactv.
swc_get_table container 'NotifTask' notiftask.
swc_get_table container 'NotifPartnr' notifpartnr.
swc_get_table container 'Return' return2.
field-symbols: <g>.
loop at notlongtext assigning <g>.
write: / <g>.
endloop.
endcase.
break-point 3.
write: / 'done'.
Cheers
Jimbo -
Carrying out Physical inventory Specifying A Class items
Dear Team,
Is there any way to Specify the ABC Classification at the time of carrying out Physical inventory for WM.
Apperciate ur inputs.
Regards
ZulfikarNo there is no such option in SAP.
-
Alternative UOM wrong quantity conversion
While issuing the material qty 50 PCE its converts into 300.002 Kg, as it should be 300 Kg.
The alternative UOM is maintained as, 1PCE = 6 Kg.Can you provide more details about where you issuing it. If possible upload screenshots n paste the link here of mtl master (Alt. UoM page), then stock keeping unit, the goods issue posting etc. to get a better understanding.
-
API/package/procedure/function for updating physical attributes in Org/Mast
I need some kind of procedure or function for updating the weight, volume, and dimensions in the organization and master items forms. We have almost 350,000 items and I want to update them in batch. Is there an API of some kind for this? I would do a simple update but I want to make sure there's no additional logic necessary (other tables that are updated during the process of updating those fields, etc).
Thanks!here is for API's you need to check...
You can use Decimal & UOM Quantity API
These APIs are used to handle item decimal quantities:
Convert from one UOM to another
Validate quantities at input time
Validate quantities at display/output time
Quantity Comparison
Get UOM information
For your convenience, I am giving you the API as below:
/*===========================================================================+
| Copyright (c) 1999 Oracle Corporation |
| Redwood Shores, California, USA |
| All rights reserved. |
+===========================================================================*/
/*-----------------------------------------------------------------------+
|This package contains procedures relevent to item decimal quantity |
|processing. This package contains routines to: |
|(1)validate item quantities based on UOM and decimal precision rules |
|(2)validate whether the UOM controls and decimal precision rules |
| themselves are correct based on functionality planned. For reviewing|
| UOM and decimal quantity functional design details, please visit the|
| following URL: |
| "http//apps-us.oracle.com/inv/development/designs_120/ |
| decimal_precision/decimal_precision.html" |
|But here are a few basics to give background context: |
| |
| "Item Quantity" -- The item's quantity is described by the item |
| identifier, the unit of measure (e.g. grams, kilos, etc), and a |
| number value to indicate the amount in that unit of measure. |
| |
| "Unit of Measure" -- Units of measure belong to unit of measure |
| classes(e.g. weight, volume, length, etc). Each unit of measure class|
| has actual units of measure that belong to that class (e.g. the |
| weight class may have units of measures like, "grams", "kilos", etc).|
| |
| "UOM Conversion" --Users can set up conversion rates between UOMs in |
| them same UOM class, by defining conversions to the base UOM. These |
| are standard conversions. Item-level intra-class conversions may also|
| be defined. When doing intra-class conversions, item-level |
| intra-class conversions are used first if defined, and then standard |
| conversions are used. |
| Users can define inter-class conversions. Inter-class Conversions may|
| also be defined at the lot/sublot levels. For inter-class conversions|
| sublot, lot, and then item inter-class conversions will be used in |
| in order. If lot-lvel conversion is not defined, then item-level |
| conversion is used. A strict hierarchy is imposed. |
| |
| "TU" -- Trasactable Unit.A UOM may have a TU. This implies |
| that when transacting in this UOM, any item's quantities will be |
| forced to be integer multiples of this TU quantity. The TU may also |
| be declared at the item level. The TU quantity at the item level may |
| be different from the UOM level TU, and if defined, item level TU |
| takes precedance. |
| |
| "Decimal Precision"--Users have a choice of setting decimal precision|
| at the base UOM for each UOM class. All other UOMs in that class get |
| get their decimal precisions derived from the base UOM decimal |
| precision, the converison rate, and TUs, if they are |
| being used. |
| |
| |
| "Conversion Rate Tolerance" -- This is a tolerance that may be set |
| when conversion rate cannot be not strictly fixed. Example: |
| 1 Chicken = 2 pounds (plus or minus 0.7 pounds). This 0.7 pounds is |
| the conversion rate tolerance. Conversion rate tolerance is only |
| definable at inter-class UOM conversions, at item or lot/sublot level|
| |
| History |
| 04/08/99 Mansoor Jafri Created Package Spec |
| 04/26/99 Mansoor Jafri Updated with TU at 3 levels as |
| opposed to MTU at 2 and atomic at|
| UOM class level. |
| 04/29/99 Mansoor Jafri Updated document with lot/sublot |
| conversions. Also, removed |
| "atomic" as a separate control, |
| since this can |
| implemented as a TU at base UOM |
| level with an integer quantity. |
| 05/03/99 Mansoor Jafri Updated the package with sublot |
| level control. Also, changed name|
| of DTU to TU, so that it fits |
| better in the "process" market. |
| Also, conformed to BOI API stds. |
+-----------------------------------------------------------------------*/
SET VERIFY OFF
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
CREATE OR REPLACE PACKAGE inv_decimals_pub AS
/* $Header: INVDECPS.pls 118.3 99/05/03 18:12:27 mjafri noship $ */
/*--------------------------------------------------------------------------+
|Procedure validate_compare_quantities(..)
|Returns the quantity converted from the first UOM in the second UOM.
|If quantities in 2 UOMs are already available, then this procedure will
|compare and validate these quantities based on conversion rates
|and UOM and decimal qty controls. This procedure may be used to validate
|scenarios where quatities are entered in dual UOMs. We want to make sure
|quantities are valid based on conversion, TUs, and conversion
|rate tolerances.
|
|Procedure validate_and_compare(
|p_api_version_number IN NUMBER, -- version # of API
|p_init_msg_list IN VARCHAR2, -- whether to initialize list
|p_inventory_item_id IN NUMBER, -- inventory_item_id
|p_organization_id IN NUMBER, -- organization_id
|p_lot_control_code IN NUMBER, -- item's lot control code
|p_lot_number IN VARCHAR2, -- lot number
|p_sub_lot_control_code IN NUMBER, --sub lot control code
|p_sublot_number IN VARCHAR2, -- sublot number
|p_from_quantity IN NUMBER, -- qty in first UOM
|p_from_uom_code IN VARCHAR2, -- UOM of fisrt qty
|p_to_uom_code IN VARCHAR2, -- UOM of second qty
|p_to_quantity_to_check IN NUMBER, -- qty in second UOM
|x_resultant_to_quantity OUT NUMBER, -- calculated qty in second UOM
|x_comparison OUT NUMBER,--Possible values are 1,0,-1,-99
|x_msg_count OUT NUMBER, -- number of messages
|x_msg_data OUT VARCHAR2, -- populated,if msg count = 1
|x_return_status OUT VARCHAR2) -- return status
|
|Note: The comparisons are done in base UOM
| of the UOM class to which the first UOM belongs. x_comparison returns:
|-1 if from_quantity is less than to_quantity (A < B)
| 0 if from_quantity is equal to to_quantity (A = B)
| 1 if from_quantity is greater than to_quantity (A > B)
| -99 if the validations for the first/second quantity failed
| If the UOMs belong to different classes, then users can specify whether
| they want to use the effective interclass UOM conversion tolerance, say, T.
| CASE: p_use_interclass_tolerance = 1
| ------
| Q1 > Q2 if (Q1 - Q2) >= T
| Q1 = Q2 if ABS(Q1 - Q2) < T
| Q1 < Q2 if (Q1 - Q2 ) <= -T
|
|The output variable x_resultant_to_quantity will contain the converted
|quantity
|in the second UOM, using effective conversion rates.
|Usage: In a dual UOM scenario, this api will confirm whether quantities in
|the two UOMs are equal or not, based on x_comparison output variable.
+--------------------------------------------------------------------------*/
Procedure validate_compare_quantities(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2,
p_inventory_item_id IN NUMBER,
p_organization_id IN NUMBER,
p_lot_control_code IN NUMBER,
p_lot_number IN VARCHAR2,
p_sub_lot_control_code IN NUMBER,
p_sublot_number IN VARCHAR2,
p_from_quantity IN NUMBER,
p_from_uom_code IN VARCHAR2,
p_to_uom_code IN VARCHAR2,
p_to_quantity_to_check IN NUMBER,
x_resultant_to_quantity OUT NUMBER,
x_valid_conversion OUT NUMBER,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCHAR2);
/*--------------------------------------------------------------------------+
|Function convert_UOM(..) return NUMBER ;
|Returns the quantity converted from the first unit into the second unit.
|If conversion is not possible, return status is failure.
|Function convert(
|p_api_version_number IN NUMBER,
|p_init_msg_list IN VARCHAR2, -- whether to initialize list
|p_inventory_item_id IN NUMBER, -- inventory_item_id
|p_organization_id IN NUMBER, -- organization_id
|p_lot_control_code IN NUMBER, -- item's lot control code
|p_lot_number IN VARCHAR2, -- lot number
|p_sub_lot_control_code IN NUMBER,
|p_sublot_number IN VARCHAR2,
|p_from_quantity IN NUMBER, -- qty in first UOM
|p_from_uom_code IN VARCHAR2, -- UOM of fisrt qty
|p_to_uom_code IN VARCHAR2, -- UOM of second qty
|x_msg_count OUT NUMBER,
|x_msg_data OUT VARCHAR2,
|x_return_status OUT VARCHAR2)
| return NUMBER ;
|If there is an error, then -99 is returned.
|1) From_quantity must be an absolute value.
|2) From_quantity will be truncated to decimal precision in the from UOM, then
| converted to base UOM in the class,
|3) Then converted to base UOM of the
| to_UOM class,
|4) Then converted to the quantity in to_UOM,
|5) Then truncated to decimal precision of the to_UOM.
+--------------------------------------------------------------------------*/
Function convert_UOM(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_inventory_item_id IN NUMBER,
p_organization_id IN NUMBER,
p_lot_control_code IN NUMBER,
p_lot_number IN VARCHAR2,
p_sub_lot_control_code IN NUMBER,
p_sublot_number IN VARCHAR2,
p_from_quantity IN NUMBER,
p_from_uom_code IN VARCHAR2,
p_to_uom_code IN VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCHAR2) return NUMBER ;
/*--------------------------------------------------------------------------+
| get_uom_properties(..)
| This procedure is used to interrogate the UOM.
| It returns:
| (1) decimal precision at the UOM level
| (2) TU, if defined, at the UOM level
| (3) Atomicity, if defined for the class that this UOM belongs to
| If some of the controls are not defined, null values are returned.
| if the UOM is not found, the return status indicates this.
| Procedure get_uom_properties(
| p_api_version_number IN NUMBER,
| p_init_msg_list IN VARCHAR2,
| p_uom_code IN VARCHAR2,
| x_decimal_precision OUT NUMBER,
| x_uom_TU OUT NUMBER,
| x_uom_class OUT VARCHAR2,
| x_msg_count OUT NUMBER,
| x_msg_data OUT VARCHAR2,
| x_return_status OUT VARCAHR2);
+--------------------------------------------------------------------------*/
Procedure get_uom_properties(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_uom_code IN VARCHAR2,
x_decimal_precision OUT NUMBER,
x_uom_TU OUT NUMBER,
x_uom_class OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCAHR2);
/*-------------------------------------------------------------------------+
| get_item_uom_properties(..)
| This procedure returns a specific item's primary UOM, TU, and tolerance
| Procedure get_item_uom_properties(
| p_api_version_number IN NUMBER,
| p_init_msg_list IN VARCHAR2,
| p_inventory_item_id IN NUMBER,
| p_organization_id IN NUMBER,
| p_lot_control_code IN NUMBER, -- item's lot control code
| p_lot_number IN VARCHAR2,
| p_sub_lot_control_code IN NUMBER,
| p_sublot_number IN VARCHAR2,
| x_primary_uom_code OUT VARCHAR2,
| x_uom_class OUT VARCHAR2,
| x_decimal_precision OUT NUMBER,
| x_item_TU OUT NUMBER,
| x_uom_TU OUT NUMBER,
| x_effective_TU OUT NUMBER,
| x_msg_count OUT NUMBER,
| x_msg_data OUT VARCHAR2,
| x_return_status OUT VARCHAR2 );
| If the item is not a valid one, then this is reflected through the
| return status.
+-------------------------------------------------------------------------*/
Procedure get_item_uom_properties(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_inventory_item_id IN NUMBER,
p_organization_id IN NUMBER,
p_lot_control_code IN NUMBER,
p_lot_number IN VARCHAR2,
p_sub_lot_control_code IN NUMBER,
p_sublot_number IN VARCHAR2,
x_primary_uom_code OUT VARCHAR2,
x_uom_class OUT VARCHAR2,
x_decimal_precision OUT NUMBER,
x_item_TU OUT NUMBER,
x_class_TU OUT NUMBER,
x_uom_TU OUT NUMBER,
x_effective_TU OUT NUMBER,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCHAR2 );
/*-------------------------------------------------------------------------+
| Procedure compare_quantities(..)
| Procedure compare_quantities(
| p_api_version_number IN NUMBER,
| p_init_msg_list IN VARCHAR2,
| p_inventory_item_id IN NUMBER,
| p_organization_id IN NUMBER,
| p_lot_control_code IN NUMBER,
| p_lot_number IN VARCHAR2,
| p_sub_lot_control_code IN NUMBER,
| p_sublot_number IN VARCHAR2,
| p_fisrt_qauantity IN NUMBER,
| p_first_uom IN VARCHAR2,
| p_second_quantity IN NUMBER,
| p_second_uom IN VARCHAR2,
| p_use_interclass_tolerance IN VARCHAR2, -- Yes = 1, 2 = No
| x_comaprison_result OUT NUMBER,
| x_msg_count OUT NUMBER,
| x_msg_data OUT VARCHAR2,
| x_return_status OUT VARCHAR2);
|
| This procedure compares the quantities A and B and returns result in the
| output variable x_comparison_result. The comparisons are done in base UOM
| of the UOM class to which the first UOM belongs:
|-1 if quantity A is less than quantity B (A < B)
| 0 if quantity A is equal to quantity B (A = B)
| 1 if quantity A is greater than quantity B (A > B)
| If the UOMs belong to different classes, then users can specify whether
| they want to use interclass UOM conversion tolerance, say, T.
| CASE: p_use_interclass_tolerance = 1
| ------
| Q1 > Q2 if (Q1 - Q2) >= T
| Q1 = Q2 if ABS(Q1 - Q2) < T
| Q1 < Q2 if (Q1 - Q2 ) <= -T
+------------------------------------------------------------------------*/
Procedure compare_quantities(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_inventory_item_id IN NUMBER,
p_organization_id IN NUMBER,
p_lot_control_code IN NUMBER,
p_lot_number IN VARCAHR2,
p_sub_lot_control_code IN NUMBER,
p_sublot_number IN VARCHAR2,
p_fisrt_qauantity IN NUMBER,
p_first_uom IN VARCHAR2,
p_second_quantity IN NUMBER,
p_second_uom IN VARCHAR2,
p_use_interclass_tolerance IN VARCHAR2,
x_comaprison_result OUT NUMBER,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCHAR2);
/*-----------------------------------------------------------------------+
| Procedure Validate_Quantity(
| p_api_version_number IN NUMBER,
| p_init_msg_list IN VARCHAR2,
| p_inventory_item_id IN NUMBER,
| p_organization_id IN NUMBER,
| p_lot_control_code IN NUMBER,
| p_lot_number IN VARCHAR2,
| p_sub_lot_control_code IN NUMBER,
| p_sublot_number IN VARCHAR2,
| p_input_quantity IN NUMBER,
| p_UOM_code IN VARCHAR2,
| x_msg_count OUT NUMBER,
| x_msg_data OUT VARCHAR2,
| x_return_status OUT VARCHAR2);
|
| Validates and returns the quantity in this manner (the caller does not need
| to adjust the result):
| 0. Truncate to and validate decimal precision
| 1. Validate quantity with respect to TU controls.
+-------------------------------------------------------------------------*/
Procedure Validate_Quantity(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_inventory_item_id IN NUMBER,
p_organization_id IN NUMBER,
p_lot_control_code IN NUMBER,
p_lot_number IN VARCAHR2,
p_sub_lot_control_code IN NUMBER,
p_sublot_number IN VARCHAR2,
p_input_quantity IN NUMBER,
p_UOM_code IN VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCHAR2);
/*------------------------------------------------------------------------+
| Function Truncate_Quantity(
| p_api_version_number IN NUMBER,
| p_init_msg_list IN VARCHAR2,
| p_inventory_item_id IN NUMBER,
| p_organization_id IN NUMBER,
| p_lot_control_code IN NUMBER,
| p_lot_number IN VARCHAR2,
| p_sub_lot_control_code IN NUMBER,
| p_sublot_number IN VARCHAR2,
| p_input_quantity IN NUMBER,
| p_UOM_code IN VARCHAR2,
| x_msg_count OUT NUMBER,
| x_msg_data OUT VARCHAR2,
| x_return_status OUT VARCHAR2) return NUMBER;
|
| Truncates the quantity to decimal precision of the UOM.
| In case of error conditions, -99 is returned.
+------------------------------------------------------------------------*/
Function Truncate_Quantity(
p_api_version_number IN NUMBER,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_inventory_item_id IN NUMBER,
p_organization_id IN NUMBER,
p_lot_control_code IN NUMBER,
p_lot_number IN VARCHAR2,
p_sub_lot_control_code IN NUMBER,
p_sublot_number IN VARCHAR2,
p_input_quantity IN NUMBER,
p_UOM_code IN VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
x_return_status OUT VARCHAR2) return NUMBER;
* show errors package INV_DECIMALS_PUB
* SELECT to_date('SQLERROR') FROM user_errors
* WHERE name = 'INV_DECIMALS_PUB'
* AND type = 'PACKAGE';
commit;
exit; -
Folks .... I am on an enhancement assignment. Looking at the setups I found that there is no UOM class called 'Weight'. There is UOM class called Mass. This is being used as 'Weight'. Everyone feels its wrong and its time to change.
When EBS was implemented 3 years ago by folks who really did not know the difference between Mass & Weight. (As an example a Balloon has Mass but no Weight)
Is there a script available where i can update 'Mass' to 'Weight' ? Or do i need to reach out to Oracle Support for this ?
I really do not want to create a new class Weight as that will entail closing/opening of POs, new Items (as some items have UOM from class Mass as P-UOM), UOM conversions to be defined, etc.
Thanks in Advance.You can use both OO and classic approach. The later is easier to achieve, simply use FM RH_UPDATE_INFTY .
Regards
Marcin -
Hi
Please suggest me how to map it in SAP.
As required Material to be issued in diffrent conversion factor in which it has been recieved in Kgs and could be issued in mtrs.Hi Raman,
There are 3 UoM in B1. Sales, Purchasing, Inventory. If you brought in in Kg and wanted to issue it on meter, then you should set the Inventory UoM to Meter, Puchasing UoM to Kg and concertion ratio in the purchasing data on how many meter per kg (item per puchasing UoM). By this way, you should set the price list per meter.
Or you can create another item code for item in meter. Good issue item in kg, convert it by creating Goods Receipt for item in meter. Both document should be on the same value (total item cost). Then issue the item in meter as you mention.
Cheers -
Discrete Manufacturer going up in 11i in a multi-org
environment. Require
some creative thinking that I have been unable to come up with!
We have an
item X-XXXX that requires one UOM in one org and another UOM in
a different
org. The tricky part is that the UOM's are in different classes.
So I
haven't been able to utilize inter-class conversions. Any
thoughts?Hi Abhijit,
Unfortunatley this cannot be achieved in 11i.
only OPM 11i has the feature of primary and secondary UOM's and also in R12 this can be achieved in various modules.
for more information, refer:
http://appsfromrajiv.wordpress.com/2011/07/14/dual-unit-of-measure-new-functionality-of-r12-for-discrete-inventory/
Thanks
-Arif. -
Dear Expert ,
Please provide solution for this scenario .as follows
One of my customer need dual inventory system for the same item . And the condition are below
* Granites Manufacturing company
* They want to maintain serial number for individual slap wise ( all the slap not equal length * Height * width )
* Invoice should be in CBM (Cubic Meters ) only ( 1590.34 * 10000)
With the above condition if we maintain the inventory UOM is CBM then we can't able enter serial number. For example ...
Example-1
Item - A Serial Numbered Item and UOM in CBM
Now i am going to add Good receipt (test scenario) for Item - A ,qty 1590.34 CBM while adding the document it will show "Cannot select serial numbers; fractional quantity exists in row 1" like this error. so we can't able to maintain serial number
Example - 2
the same item we are maintaining the UOM as "nos" there is no problem with serial number . But while booking the invoice we can't able to book per CBM or SF (squre meter ) UOM it should be number only. same case we can't able to calculate the price according to the CBM .
""If u need any additional information let me know""
Please provide any solution for the process.
Thank you
Sudhir.JHi Sudhir,
Let me restate what I think your question is to see if I have the right understanding. Your customer manufactures slabs of granite and they would like to be able to identify each slab individually, and to be able to transact in terms of Cubic Meters and/or Sqare Meters and/or "NOS" (I assume that means "numbers" or "units"?). This is complicated by the fact that each slab has different dimensions. Is that basically it? If so it sounds like a perfect opportunity to use batch specific UOMs. With that functionality you can set up each slab as a batch and then define batch specific UOMs for each batch to account for the different dimensions.
Here is an article that I think does a good job of explaining how the functionality works:
Batch Specific UOM Inventory Management: Stock Keeping with Dynamic Conversion Factor http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a021e088-3428-2d10-799d-a69349248f10?quicklink=index&overridelayout=true
I hope this helps.
Dave -
Maintaining variable conversion weight by LOT-wise
The client is in Textile business where the Cotton is purchased in KGS and stored/issued in BALES.
Business Need: The conversion factor of a Bale of cotton cannot be fixed, since it is a natural commodity and the wieght may vary from Bale to Bale.
Item Code: FV-00001
Item Desc: Cotton Fibre
UOM (Pri): KGS
UOM (Sec): BALES
Conversion: Inter-class conversion factor: 1 Bale = 10 KGs
Deviation: +/- 10%
Purchasing UOM: KGS
Issuance UOM: BALES
Required calculation of Balance on Hand in Pri/Sec UOM:
+ FV-00001 LOT-1 1000kg 100Bales 1000Kg 100B
+ FV-00001 LOT-2 1080kg 100Bales 2080Kg 200B
- FV-00001 LOT-1 800kg 80Bales 1280Kg 120B
- FV-00001 LOT-2 756kg 70Bales 524Kg 50B
- FV-00001 LOT-1 200kg 20Bales 324Kg 30B
- FV-00001 LOT-2 324kg 30Bales 0Kg 0B
Whereas the Oracle is calculating as:
+ FV-00001 LOT-1 1000kg 100Bales 1000Kg 100B
+ FV-00001 LOT-2 1080kg 100Bales 2080Kg 200B
- FV-00001 LOT-1 800kg 80Bales 1280Kg 120B
- FV-00001 LOT-2 700kg 70Bales 580Kg 50B
- FV-00001 LOT-1 200kg 20Bales 380Kg 30B
- FV-00001 LOT-2 300kg 30Bales 80Kg 0B
At the time of Issuance the system is picking the Standard Conversion rate instead of the Actual conversion factor by Lot.Hi,
I could not try this thing as I do not have any 10g set up at the moment, but hope this works. I am assuming that you are using Oracle DB at the moment.
1. Create an initialization block that initializes the variable XX_PROD_LINE.
2. Create another variable that can store the length of this variable.
3. Create another initialization block that fires a query like
select length(:XX_PROD_LINE) from dual
4. Set this initialization block to execute only after the initialization block in step1 (You can use initialization block precedence for this). This step ensures that the length of the variable is calculated only after it has been initialized.
5. Now you can use this variable in your reports.
Hope this helps.
Thank you,
Dhar
Maybe you are looking for
-
Using QuickTime Player's 'Save for Web' feature in iWeb
I'm using iWeb (3.0.3) to create a site. I've also used the QuickTime Player (10) feature "Save for Web" command to save optimized versions (for iPhone and desktop) of a clip I'm using in my site. I want to keep the nice features of the QT Save for W
-
Icloud storage plan upgrade & pricing.
I currently have the $20 icloud storage plan. If I upgrade to $40 plan will I be charged $60 or will I only be asked to make up the balance of $20?
-
I have a newer tablet and need to re-download Captivate 7. I deactivated the license on my old laptop, but it will be a miracle if I can actually find as link on Adobe's site to download the Captivate 7. Anyone have any link to the actual version 7
-
Video sent as MMS, not as a iMessage (send as sms option is disabled)
Hi, everything works great on my iPhone 4S 64GB iOS6. By the way, today I tried to send a videoclip thru iMessage to another iPhone 4S with iOS6, I was connected at my WiFi, the iPhone displayed the error "iMessage not sent, retry please" or somethin
-
ORA-01000 maximum open cursors exceeded - help!
Hi, I need some help with resolving ORA-01000 maximum cursors exceeded issue.I know this issue has been discussed before. I know this is caused because of not closing the resultset and statement, connection objects at the right place. Can anyone guid