PR物料KFF弹出LOV - WHERE条件重写

Posted ORACLE EBS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PR物料KFF弹出LOV - WHERE条件重写相关的知识,希望对你有一定的参考价值。

image

image

image

image

PROCEDURE event (event_name VARCHAR2)
IS
--
-- This procedure allows you to execute your code at specific events
-- including:
--
--    ZOOM
--    WHEN-NEW-FORM-INSTANCE
--    WHEN-NEW-BLOCK-INSTANCE
--    WHEN-NEW-RECORD-INSTANCE
--    WHEN-NEW-ITEM-INSTANCE
--    WHEN-VALIDATE-RECORD
--
-- Additionally, product-specific events will be passed via this
-- interface (see the Applications Technical Reference manuals for
-- a list of events that are available).
--
-- By default this routine must perform \'null;\'.
--
-- Oracle Corporation reserves the right to change the events
-- available through this interface at any time.
--
/* Sample code:

  form_name      varchar2(30) := name_in(\'system.current_form\');
  block_name     varchar2(30) := name_in(\'system.cursor_block\');
  param_to_pass1 varchar2(255);
  param_to_pass2 varchar2(255);
begin
  -- Zoom event opens a new session of a form and
  -- passes parameter values to the new session.  The parameters
  -- already exist in the form being opened.
  if (event_name = \'ZOOM\') then
    if (form_name = \'DEMXXEOR\' and block_name = \'ORDERS\') then
      param_to_pass1 := name_in(\'ORDERS.order_id\');
      param_to_pass2 := name_in(\'ORDERS.customer_name\');
      fnd_function.execute(FUNCTION_NAME=>\'DEM_DEMXXEOR\',
                           OPEN_FLAG=>\'Y\',
                           SESSION_FLAG=>\'Y\',
                           OTHER_PARAMS=>\'ORDER_ID="\'||param_to_pass1||
                             \'" CUSTOMER_NAME="\'||param_to_pass2||\'"\');
      -- all the extra single and double quotes account for
      -- any spaces that might be in the passed values
    end if;

  -- This is an example of a product-specific event.  Note that as
  -- of Prod 15, this event doesn\'t exist.
  elsif (event_name = \'OE_LINES_PRICING\') then
    get_custom_pricing(\'ORDERS.item_id\', \'ORDERS.price\');

  -- This is an example of enforcing a company-specific business
  -- rule, in this case, that all vendor names must be uppercase.
  elsif (event_name = \'WHEN-VALIDATE-RECORD\') then
    if (form_name = \'APXVENDR\') then
      if (block_name = \'VENDOR\') then
        copy(upper(name_in(\'VENDOR.NAME\')), \'VENDOR.NAME\');
      end if;
    end if;
  else
    null;
  end if;
end event;
*/
--
-- Real code starts here
--
BEGIN
   IF     event_name = \'WHEN-NEW-ITEM-INSTANCE\'
      AND NAME_IN (\'system.cursor_item\') = \'LINES.ITEM_NUMBER\'
   THEN
      FND_KEY_FLEX.UPDATE_DEFINITION (
         BLOCK          => \'LINES\',
         FIELD          => \'ITEM_NUMBER\',
         WHERE_CLAUSE   => \'1 = 1
         AND MTL_SYSTEM_ITEMS_VL.ENABLED_FLAG = \'\'Y\'\'
         AND TO_DATE ( SYSDATE, \'\'YYYY/MM/DD HH24:MI:SS\'\') BETWEEN NVL (
                                                                 TRUNC (
                                                                    MTL_SYSTEM_ITEMS_VL.START_DATE_ACTIVE),
                                                                 TO_DATE (
                                                                    SYSDATE,
                                                                    \'\'YYYY/MM/DD HH24:MI:SS\'\'))
                                                          AND NVL (
                                                                 TRUNC (
                                                                    MTL_SYSTEM_ITEMS_VL.END_DATE_ACTIVE),
                                                                 TO_DATE (
                                                                    SYSDATE,
                                                                    \'\'YYYY/MM/DD HH24:MI:SS\'\'))
         AND MTL_SYSTEM_ITEMS_VL.SEGMENT1 LIKE :LINES.ITEM_NUMBER || \'\'%\'\'
         AND MTL_SYSTEM_ITEMS_VL.ORGANIZATION_ID = (SELECT OD.ORGANIZATION_ID FROM ORG_ORGANIZATION_DEFINITIONS OD WHERE OD.ORGANIZATION_CODE <> \'\'MST\'\' AND OD.OPERATING_UNIT = :PO_REQ_HDR.ORG_ID)
         AND (    (   PURCHASING_ENABLED_FLAG = \'\'Y\'\'
                   OR NVL (INTERNAL_ORDER_ENABLED_FLAG, \'\'N\'\') = \'\'Y\'\')
              AND NVL (BOM_ITEM_TYPE, 0) NOT IN (1, 2)
              AND NVL (OUTSIDE_OPERATION_FLAG, \'\'N\'\') =  \'\'N\'\')
         AND MTL_SYSTEM_ITEMS_VL.MRP_PLANNING_CODE = 7 \');
   END IF;
END event;

image

以上是关于PR物料KFF弹出LOV - WHERE条件重写的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 Oracle 表格 6i 中的某些条件在两个 LOV 之间进行选择

sql LOV提示条件

Oracle EBS LOV速度优化

Oracle EBS FORM lov

如何在 ADF: ListOfValues (LOV) 组件中强制搜索字段为大写?

物料编码的处理特点