Translate

Monday, June 16, 2014

Hide menu in the ASCP Work Bench

Exclude/Disable these drop down menu entries from under 'Plan' by executing these steps:

Navigate to the System Administrator Responsibility
Security > Responsibility > Define

1. Query for the Responsibility for which you would like to disable the menu entries
2. In the 'Menu Exclusions' Tab, choose Type as 'Function' for all records that are to be added
3. Select 'Access Replan' in the Name column to disable these entries:
Start Online Planner
Stop Online Planner
Online Planner Status
Launch New Plan
Copy Plan
Purge Plan
4. Add a new record and select 'Access Plan Settings' in the Name column to disable:
Plan Options
5. Add a new record and select 'Net Exceptions' in the Name column to disable:
Compare Plans
Note: You would not see the 'Compare Plans' entry greyed out as the rest of the disabled entries above however, when the user tries accessing 'Compare Plans' he would get this message:
'Function not available to this responsibility' preventing the user from access to this function.
6. Save

Tuesday, June 10, 2014

Performance Issue with OE_ODR_LINES_SN

Perform these steps when other processes are not updating the table OE_ORDER_LINES_ALL:
  1. Suspend workflow processes. Some customers have workflow processes that update order lines at a rate of several thousand lines per hour.
  2. Get Count on MLOG$_OE_ORDER_LINES_ALL:
    select count(*) from MLOG$_OE_ORDER_LINES_ALL;
  3. Truncate the MLOG$ table:
    truncate table ONT.MLOG$_OE_ORDER_LINES_ALL;
  4. Confirm ZERO rows in the MLOG:
    select count(*) from MLOG$_OE_ORDER_LINES_ALL;
  5. Gather table stats on the MLOG. From the System Administrator responsibility, run the single request Gather Table Statistics with the following parameters:
    • OWNER: ONT
    • TABLE: MLOG$_OE_ORDER_LINES_ALL
    Use the default for all the other parameters or in SQL*Plus, execute:
    begin FND_STATS.GATHER_TABLE_STATS ( 'ONT','MLOG$_OE_ORDER_LINES_ALL', 10 ); end;
  6. Confirm that num_rows in dba_tables for the MLOG table = 0:
    select table_name, num_rows, last_analyzed from dba_tables
    where table_name in ('MLOG$_OE_ORDER_LINES_ALL');
  7. Lock the Statistics using the following command:
    EXECUTE DBMS_STATS.LOCK_TABLE_STATS ('ONT','MLOG$_OE_ORDER_LINES_ALL');
  8. As APPS User in SQL*Plus, set the database parameter _mv_refresh_use_stats = FALSE:
    alter system set "_mv_refresh_use_stats"=FALSE;
    The DBA can set in the init.ora to be used at all times.
  9. Run Refresh Collection Snapshots as a standalone request with the following parameters:
    • Refresh Mode: Complete
    • Snapshot Name: OE_ODR_LINES_SN
    • Other parameters: Use default
  10. Gather table statistics on the snapshot. From the System Administrator responsibility, run the single request Gather Table Statistics with the following parameters:
    • Table Owner: ONT [or APPS in the latest code].
    • Table Name: OE_ODR_LINES_SN. You can check for the latest code using:
      Select * from dba_snapshots where name like '&snapshot_name';
    • All other parameters: Use the default.
    Alternatively, in SQL*Plus, execute the following:
    begin FND_STATS.GATHER_TABLE_STATS ( 'ONT [or APPS]','OE_ODR_LINES_SN', 10 ); end;
  11. Run Data Collections with Targeted Refresh with only Planners = Yes. This is a setup step for certain code improvements that help with overall data collections performance. This step must be run for all the organizations being collected. Do not use an Collection Group for this run. To run in targeted mode, set the Planning Data Pull parameter Purge Previously Collected Data to 'No' and then choose the targeted collection mode.
  12. Run Data Collections with either a complete or targeted refresh with only the Sales Orders parameter set to 'Yes'.

    Note: The Sales Order entity is unique. When complete refresh is specified for Data Collections, we default the Sales Order parameter to 'No' and run the net change refresh of sales orders automatically for performance reasons.
  13. Observe that during the run of Data Collections, the performance is improved.

Sunday, June 8, 2014

ASCP Planners Workbench Hangs When Mouse Right Button Is Clicked

ASCP Planners Workbench Hangs When Mouse Right Button Is Clicked

Solution:

Upgrade to Java 6 Update 17 resolved the issue.
Option #1:
Remove Java 6 update 10 using the Control Panel /Add Remove Programs for each PC
Then have users apply Java 6 Update 17.

Friday, May 23, 2014

FRM-40212: Invalid value for field ORDERED_ITEM_DSP order Management

SYMPTOMS

On :  12.1.1 version, Transaction Entry

When attempting to enter a new item in Orders Workbench, the following error occurs.

ERROR
-----------------------
FRM-40212: Invalid value for field ORDERED_ITEM_DSP


STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1. Responsibility: Order Management Super User
2. Navigate: Master Items > Entered Item in Item Master with correct parameters for Order Management tab:
Customer Ordered
Internal Ordered
Customer Orders enabled
Internal Orders Enabled
Shippable
OE Transactable
Returnable

3. Assigned to All Orgs
4. Add Item to Sales Order Line
5. Enter an order for the item and receive error:
FRM-40212: Invalid value for field ORDERED_ITEM_DSP

CAUSE

The issue is caused by the following setup: profile "OM: Use Materialized View for Items LOV (Honors Item Orderability Rules)" to "Yes" at site level.

SOLUTION

To implement the solution, please execute the following steps:

From the Diagnostics Apps Check output customer has set the profile "OM: Use
Materialized View for Items LOV (Honors Item Orderability Rules)" to "Yes" at
site level.

That means when ever customer does any changes to the Items Master or adds
new Items, they have to run the "Refresh Order Management Materialized Views"
concurrent programs for the Items to be available in the Items LOV of Sales
Order form.

Alternatively, customer can set the profile "OM: Use Materialized View for
Items LOV (Honors Item Orderability Rules)" to "No", then the Items will be
immediately be available in the LOV.

Please refer to 12.1 user guide for complete details on this profile usage.

1. Go into the responsibility: Order Management Super User.

2. Navigate to Setup > Profiles > set the profile "OM: Use Materialized View for Items LOV to "No" at the site level.

3. If changing the profile is not preferred, please run the "Refresh Order Management Materialized Views" concurrent programs for the Items to
be available in the Items LOV of Sales Order form.

4. Retest the issue.

5. Migrate the solution as appropriate to other environments.

Thursday, May 22, 2014

change from Standard to Actual Costing in OPM

change from Standard to Actual Costing in OPM

To change from Standard to Actual in OPM you will need:
  • New Cost Method Code
  • New Cost Calendar for the company, linking to the new cost method code
  • Make sure that the first period in the new actual cost calendar has the same end date as the last period in the standard cost calendar (particularly if you are using PMAC)
  • Copy the standard cost for the last standard cost calendar period to the first period in the new actual cost calendar
  • Close out the last period of standard costing by sending all the outstanding inventory transactions to GL, and close the OPM inventory period 
  • Change the MAC fiscal policy to point to the new cost method code
  • Change the event fiscal policy for PORC to book at PO Price
  • Perform inventory transactions as normal during the new cost and inventory period
  • Then when you run Actual Cost process for the first period of going live with actual costing (which will be the second period in the new actual cost calendar), you will have a prior period cost to value the period end inventory within the PMAC calculation.

Wednesday, May 21, 2014

Restrict planner in ASCP

The condition query should look something like: 
Trigger Event: WHEN-NEW-RECORD-INSTANCE 
Trigger Object: MRP_ORDERS 
Condition: 
FND_GLOBAL.USER_ID != (SELECT FU.USER_ID FROM MSC_PLANNERS MP, FND_USER FU WHERE MP.EMPLOYEE_ID = FU.EMPLOYEE_ID AND MP.PLANNER_CODE = :MRP_ORDERS.PLANNER_CODE AND ORGANIZATION_ID = :MRP_ORDERS.ORGANIZATION_ID) 
Processing Mode: Not in Enter-Query Mode 
On the Actions Tab: 
Set the Type to Property (Description to something like "Disable Release") 
Object Type: Item 
Target Object: MRP_ORDERS.RELEASE_STATUS 
Property Name: UPDATE_ALLOWED 
Value: FALSE 

Tuesday, May 20, 2014

Query to Find Pegging in ASCP

SELECT mso.sales_order_number, md1.*,
MSI1.ITEM_NAME||' ('||MSI1.INVENTORY_ITEM_ID||')' "COMPONENT (ID)"
, substr( md1.order_number,1,22) order_num
, MS1.NEW_ORDER_QUANTITY COMP_QTY -- this is the pegged or previously pegged column
, decode (ms1.order_type,'1','Purchase order'
,'11','Intransit shipment'
,'12','Intransit receipt'
,'13','Suggested repetitive schedule'
,'14','Discrete job co-product/by-product'
,'15','Nonstandard job by-product'
,'16','Repetitive schedule by-product'
,'17','Planned order co-product/by-product'
,'18','On Hand'
,'2','Purchase requisition'
,'27','Flow schedule'
,'28','Flow schedule by-product'
,'29','Payback Supply'
,'3','Discrete job'
,'30','Current repetitive schedule'
,'32','Returns'
,'4','Suggested aggregate repetitive schedule'
,'41','User Supply'
,'45','Demand Class Consumption'
,'46','Supply Due To Stealing'
,'47','Demand Due To Stealing'
,'48','Supply Adjustment'
,'49','PO Acknowledgment'
,'5','Planned order'
,'50','ATP Aggregate Supply'
,'51','Planned inbound shipment'
,'52','Requested inbound shipment'
,'53','Internal requisition'
,'60','Order Rescheduling Adjustment'
,'7','Non-standard job'
,'70','Maintenance Work Order'
,'8','PO in receiving') Order_type
-- , decode (MFP1.supply_type, 1, 'Purchase Order', 2, 'Purchase Requisition', 3, 'Work Order', 11, 'Intransit Shipment', 12, 'Intransit receipt') Supply_type
-- ,decode (MFP2.supply_type, 1, 'Purchase Order', 2, 'Purchase Requisition', 3, 'Work Order', 11, 'Intransit Shipment', 12, 'Intransit receipt') Supply_type2
, MFP1.demand_quantity
--, MFP1.supply_quantity
, MFP1.demand_date
, MFP1.supply_date
, ROUND(MFP1.ALLOCATED_QUANTITY,1) COMP_ALLOC
, decode(MD1.origination_type, '29','Peg_Fcast','30','Peg_Sales') Pegged_To
, decode (MFP1.DEMAND_ID, -1,'peg_Excess',-2,'Peg_SS') Pegged_To_1
, MFP2.ORGANIZATION_ID
,MFP1.ORGANIZATION_ID
, decode(MD2.origination_type, '29','Peg_Fcast','30','Peg_Sales') Pegged_To_2
, TRUNC(MS1.NEW_SCHEDULE_DATE) COMP_SUP_DUE
, 'X'
, DECODE(MD2.ORDER_NUMBER,NULL
,TO_CHAR(MD2.DEMAND_ID)
,(SUBSTR(MD2.ORDER_NUMBER,1,14)||SUBSTR(MD2.ORDER_NUMBER,42,5))) SO_NUM
, MSI2.ITEM_NAME||' ('||MSI2.INVENTORY_ITEM_ID||')' "ASSEMBLY (ID)"
-- , MSI2.DESCRIPTION
, TO_CHAR(MD2.REQUEST_SHIP_DATE,'DD/MM/YYYY') RDATE
, TRUNC(MD2.USING_ASSEMBLY_DEMAND_DATE) SSDATE
, MD1.Creation_date
, ROUND((MD2.DMD_SATISFIED_DATE-MD2.USING_ASSEMBLY_DEMAND_DATE),1) LATE
, MD2.DEMAND_PRIORITY PRIORITY
, ROUND(MFP2.DEMAND_QUANTITY,1) so_QTY
, ROUND(MFP2.ALLOCATED_QUANTITY,1) WIP_QTY
, TRUNC(MD1.OLD_DEMAND_DATE) ULSD
, TRUNC(MD1.USING_ASSEMBLY_DEMAND_DATE) COMP_DEM_DUE
FROM APPS.MSC_SUPPLIES MS1 -- COMP
, APPS.MSC_SYSTEM_ITEMS MSI1 -- COMP
, APPS.MSC_FULL_PEGGING MFP1 -- COMP
, apps.msc_sales_orders mso
, (SELECT *
FROM APPS.MSC_DEMANDS
WHERE SR_INSTANCE_ID =&1
AND ORGANIZATION_ID =&2
AND PLAN_ID =&3) MD1 -- COMP
, (SELECT *
FROM APPS.MSC_FULL_PEGGING
WHERE SR_INSTANCE_ID =&1
AND ORGANIZATION_ID =&2
AND PLAN_ID =&3) MFP2 -- FG
, (SELECT *
FROM APPS.MSC_DEMANDS
WHERE SR_INSTANCE_ID =&1
AND ORGANIZATION_ID =&2
AND PLAN_ID =&3) MD2 -- FG
, (SELECT *
FROM APPS.MSC_SYSTEM_ITEMS
WHERE SR_INSTANCE_ID = &1
AND ORGANIZATION_ID =&2
AND PLAN_ID =&3) MSI2 -- FG LEVEL
WHERE 1=1
AND MS1.SR_INSTANCE_ID =&1
AND MS1.ORGANIZATION_ID =&2
AND MS1.PLAN_ID =&3
and mso.demand_id=md1.demand_id
AND MSI1.SR_INSTANCE_ID = MS1.SR_INSTANCE_ID
AND MSI1.ORGANIZATION_ID = MS1.ORGANIZATION_ID
AND MSI1.PLAN_ID = MS1.PLAN_ID
AND MSI1.INVENTORY_ITEM_ID = MS1.INVENTORY_ITEM_ID
AND MFP1.SR_INSTANCE_ID = MS1.SR_INSTANCE_ID
AND MFP1.ORGANIZATION_ID = MS1.ORGANIZATION_ID
AND MFP1.PLAN_ID = MS1.PLAN_ID
AND MFP1.TRANSACTION_ID = MS1.TRANSACTION_ID
AND MD1.DEMAND_ID (+) = MFP1.DEMAND_ID
AND MFP2.PEGGING_ID (+) = MFP1.PREV_PEGGING_ID
AND MD2.DEMAND_ID (+) = MFP2.DEMAND_ID
AND MSI2.INVENTORY_ITEM_ID (+) = MFP2.INVENTORY_ITEM_ID
AND MSI1.ITEM_NAME = 'item'
and md1.order_number='ord'
ORDER BY MS1.OLD_SCHEDULE_DATE, MD2.REQUEST_SHIP_DATE