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

  • Class conversion

    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()

  • Since last Premiere Pro CC Update no more MXF AVC-Intra Class 100 Playback. Any suggestions?

    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! David

    Hi 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

  • Class conversion error

    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.

  • BOR to Classes conversion

    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
    jimbo

    This 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
    Zulfikar

    No 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;

  • Update UOM Class Name

    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

  • Item uom Conversion factor

    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

  • UOM in 11i

    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.

  • Need Help in SAP Multiple  UOM

    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.J

    Hi 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?

  • Need to download captivate 7

    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