Translate

Monday, July 11, 2016

Pegging Details 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

Thursday, January 21, 2016

ERR_GET_INSTANCES (ERROR_MSG=No Free partitions available. Contact DBA to create partitions.)



ERR_GET_INSTANCES (ERROR_MSG=No Free partitions available. Contact DBA to create partitions.)

Through System Administrator responsibility > Security > Responsibility Request >Select the group, All MSC Reports
Place cursor in the name column > Click the Green X on the toolbar > In the name  column select, CREATE APS PARTITIONS  (Make sure to select the  correct one)
Save.

Go the Advanced supply chain planner responsibility > other > request > submit a new request > single request
select CREATE APS PARTITIONS
(Make sure to select the correct one NOT Create ATP Partitions)

Use parameters
plan_partition_count = 0
inst_partition_count = 1

This will create the instance partition and allow continued setup.

Concurrent Request/Program tables in Oracle

Tables Used by Concurrent Request Concurrent Program

FND_CONCURRENT_REQUESTS

Contains a complete history of all concurrent requests (both past history and those scheduled to run in the future).

FND_RUN_REQUESTS

Stores information about the reports in a report set that a user submits including the report set’s parameter values.

FND_CONC_REQUEST_ARGUMENTS

Records all arguments passed by Concurrent Managers to concurrent requests as those requests are running.

FND_DUAL

Records when a request does not update any database tables.

FND_CONCURRENT_PROCESSES

Records information about Oracle Applications processes and OS processes.

FND_CONC_STAT_LIST

Collects runtime performance statistics for concurrent requests.

FND_CONC_STAT_SUMMARY

Contains Concurrent Program performance statistics generated by the Purge Concurrent Request program or the manager data program. These programs use the data in FND_CONC_STAT_LIST to compute these statistics।

Wednesday, December 30, 2015

Unable to Update Invoice Amounts after Running Create Accounting in DRAFT

Qn1:

Invoice Amount field is available for update before "Draft Accounting" but is “greyed out” after running:
Invoice Workbench form>Invoice>Actions>Run Draft Accounting.
Is this the correct functionality?

An1:

The correct functionality is to be able to adjust adjust accounting entries in Payables after the Create Accounting program is run in Draft mode.
To adjust accounting entries, adjust the transaction details and rerun the Create Accounting program.
See more details in the Oracle Payables User Guide.

Qn2:

For non-matched invoices, the invoice distributions appear to be update-able after Draft accounting.
Is it correct, that you update first the invoice distributions and then invoice line?
The invoice header amount can then be updated?

An2:

First, the amount in invoice distributions must be modified (in fact this is the information that will go into accounting entries)
and right after correct the lines or invoice header amounts.

Qn3:

For matched invoices, nothing appears to be update-able after Draft accounting has been run.
Is this correct?


An3:

Since the invoice is matched, distributions of the invoice contain PO information that cannot be changed in this way.
(the matched lines must be discarded to be able to change/modify the amounts)

Friday, November 13, 2015

Resource requirement outside the resource available time (shift) in constrained plans

Resource Requirement Start Date is outside the resource availability (shift times) in an Enforce Demand Capacity Constrained or Enforce Due Date plan with seemingly no resource constraint


1. Go into the responsibility: Process Engineer

2. Navigate to Process Operations > Activity

3. Check the Breakable checkbox against the resource that is seen as causing the problem. 

4. Go into the responsibility: System Administrator

5. Navigate to Profiles > System Profiles

6. Set the profiles as below:

MSO: Schedule across breaks = Yes
MSO: Schedule simultaneous resources across breaks = Yes
MSO: Respect Activity Contiguity Flag for Process Supplies = No

4. Retest the issue by running the ASCP Standard Collection, complete refresh and the ASCP Plan

5. Migrate the solution as appropriate to other environments.

OPM/ASCP such that multiple recipe capacities are respected (production lines)

1) Establish the Recipe Validity Rule Quantities (Minimum, Maximum and Standard) to be all the same for the quantity that can be made by that recipe. So, for the first recipe, all three quantities can be set to 10500, the second as 3500 and the third as 2600. All of the preferences should be the same (1) initially for testing and then can subsequently be different if you prefer making in one line over another

2) Set up the Inventory > Items > Organization Items > General Planning tab > minimum and maximum quantities to the smallest and largest recipe validity rule quantities, so in this example the minimum quantity would be 2600 and the maximum quantity would be 10500. Fixed Days of Supply can be set but all the other order modifiers (e.g. Fixed Lot Multiple) must be unset.

3) The profile MSO: Enable Decision Rules must be set to Yes

4) The ASCP plan needs to be constrained (classic constrained, Enforce Capacity Constraint preferred or With Detailed Scheduling), a manufacturing plan, the Scheduling Zone Minutes Bucket Size in Days must be set to a value within which you want to see change over between recipes, the Use Alternate BOM/ROUTING must be checked in the Decision Rules tab.

If you set up as above and run the ASCP Standard Collection, complete refresh the results in ASCP will allocate the demand quantity to the recipes based on the preferences and the availability of resources and materials and will be correct nine times out of ten (roughly).



The WORKAROUND for this problem is to :

5) Establish a 'planning recipe'. For this you need a formula that includes the product and at least the key ingredients from the existing recipes. You should also establish a route with at least a dummy resource. The recipe validity rule should have a Recipe Use of Planning and a preference of 99 (to ensure it is only used as a last option). The minimum quantity should be set to 2600 and the maximum set to 10500. This quantity range means that, if planned orders are created that do not match the fixed quantities of the production recipes, the 'planning recipe' will be assigned and there at least will be demand for the ingredients created.

Sunday, September 13, 2015

MRP Plan Run Hangs On MRCNSP And MRCMON With All Other Requests In Pending Standby

A.  Profile Option Concurrent:Active User Limit or Concurrent:Active Request Limit (short name for sql above is CONC_REQUEST_LIMIT) has a value other than NULL.  This can stop MRP concurrent requests from processing if this is set to too small of a number.  We recommend this profile be set to NULL
B.  There are not enough Standard Manager processes defined.  This is the one we typically run into the most often when MRP concurrent requests are not running or continue to run.  The Standard Manager is a concurrent manager which can be viewed in System Administrator/Concurrent/Manager/Administer.  We recommend the number of processes for this manager based on the following formula:
(2 x <Value for Profile Option MRP: Snapshot Workers>) + 6
So in the example above, if the value of profile option MRP: Snapshot Workers = 5, the formula would be as follows:
(2 x 5) + 6 = 16
To set the number of processes for the Standard Manager navigate System Administrator/Concurrent/Manager/Define - query the Standard Manager - select Workshifts button - set the number of processes - save. Bounce the Standard Manager.  16 would be the minimum to set for the processes on the Standard Manager.  Usually you can add a few more processes to this but generally you would not want to go above 20 - 25. 
Typically the value for profile option MRP: Snapshot Workers is set with 3, 4 or 5 - This enables the Memory Based Snapshot to offload work to the workers to help improve MRP plan performance.
C.  The MRP Manager and/or the Planning Manager are not running (Only for old MRP Planning module.  This does not affect ASCP plans).  If the plan has never been run successfully before and users have loaded demand/supply data into the system without these two being run, then the plan tries to do the Planning Manager work itself if profile MRP:Perform Planning Manager Functions in Loads = Yes while the following profiles are set incorrectly:
MRP:Planning Manager Batch Size = Null
MRP:Planning Manager Max Workers = 10 
Perform the following:
1. Set the following profiles

MRP:Planning Manager Batch Size = 10000
MRP:Planning Manager Max Workers = 0

Save

2. Bounce/Start the MRP Manager in System Administrator/Concurrent/Manager/Administer - find the MRP Manager and start it up. Make sure it comes online with only 1 target/actual process. This manager only runs the Planning Manager and should never be set to more than 1 process. If you have more than one process, change the processes back to 1

3. Start the Planning Manager - Material Planner/Setup/Planning Manager - pick any organization as it doesn't matter. select the Start button.

4. The planning manager has a lot of work to do since it's not been running so it may run for a significant amount of time. When you start to see multiple start messages in the Planning Manager form, this means it's cycling and done with it's work

5. Then run the MRP plan after the Plannning Manager has begun to cycle
D. MRP Manager set to more than 1 process.  As noted above, this Manager should NEVER have more than 1 process.  It's only job is to run the planning manager.  When more than 1 process is setup for this Manager it will then allow multiple Planning Manager concurrent requests.  These requests can then contend with MRP plan concurrent requests and cause them to hang.
1.  Shut down the Planning Manager and MRP Manager
2.  System Administrator/Concurrent/Manager/Define - query MRP Manager - select Specialization Rules button - there should only be 1 row here for the Planning Manager.  If other rows are defined you must move them to a different concurrent manager. 
3.  Then select the Workshifts button - change the processes = 1 - save
4.  Start the MRP Manager and the Planning Manager
5.  Rerun the MRP Plan