web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Master Scheduling stalls at Coverage planning 13697/13704

(0) ShareShare
ReportReport
Posted on by 1,632

Recently - In the past 2 weeks, Master planning has been acting up (various issues).

Currently, when trying to run Master Scheduling (Regeneration), the planning run stalls out at Coverage planning on BOM level 0 Progress 13697 out of 13704 records. 

I have an SQL script which tells me the items that planning is stalled out on, their status is "processing".  I have been looking at the items and they do not have any issues that stand out, like coverage, BOM level, or BOM circularity.  A full regeneration should take about 15 minutes and I've let planning run for 3+ hours, with no change in progress.

To throw an even bigger wrench in this, I was able to successfully run a test "Plan", just a different master plan not associated with the planning parameters. 

Any thoughts, questions, or brainstorming that can be offered is greatly appreciated.

*This post is locked for comments

I have the same question (0)
  • FAC.Ansel Profile Picture
    1,632 on at

    As an update.  None of the plans are completing at this time.

    I did copy production to a development environment and when I remove the item coverage and reapply the same item coverage to all items, the plans will run as desired.  But this is not a viable solution for production.  Has anyone else had issues with Item coverage?  Is there a way to refresh or update or check item coverage for issues?

  • Konrad U Profile Picture
    804 on at

    Is temporary storage running out of room? Sounds more database specific if a different instance works or changing the parms fixes it.

  • FAC.Ansel Profile Picture
    1,632 on at

    Another update....

    If I clear the Min and/or Max values from the ReqItemTable, then planning will run.

    I have exported the table to review the values, but I don't know what to look for that would be "odd".  I was thinking that maybe the Min being greater than Max, but there are no records that meet that criteria.  Other thoughts?

  • Suggested answer
    FAC.Ansel Profile Picture
    1,632 on at

    I hate to call this an "Answer" because I'm still not entirely sure why this wouldn't work, but by Un-Checking "Consider shelf life" on the Master plan, the planning run finishes successfully when the Min/Max values are populated.  Hopefully this helps someone else by giving different things to look for or test.

  • Konrad U Profile Picture
    804 on at

    That makes sense anything that reduces the amount of work being done should reduce the database churn.

  • AXT Profile Picture
    1,699 on at

    Hi Ansel, i would very much appreciate if you could provide me the SQL script that tells the items where planning is stalled. We actually have the same issue, just from one day to the other. But in our case unchecking "Consider shelf life" has no effect. Your script could give us a hint where to start searching.

  • FAC.Ansel Profile Picture
    1,632 on at

    /*CABERLE - Script to aid in determining at which level / Sublevel the most time is being spent at while MRP is still running*/

    /*Step 2.1.1 - Identiry the ProcessID in question*/

    --select * from ReqProcessList

    /*Step 2.2.2 - Edit Query with @ProcessId variable from info from step 2.1.1*/

    /*Replace 'XXXXXXXXXX' with the ReqProcess that is currently running that you want to investigate*/

    /*Edit Filter in where clause to Processing Only to see what is currently running and time it has been running*/

    /*Edit Filter by Processing & Ended with the Duration filter to see longest tasks without all the short duration noise*/

    declare @ProcessId varchar(20)

    set @ProcessId = 'XXXXXXXXXX'

    declare @BeginTime as datetime

    select @BeginTime = min(Starttime) from ReqCalcTasksBundle where Status in (10,30) and PROCESSID = @ProcessId

    select case ProcessingState when 0 then 'Waiting' when 1 then 'Processing' when 2 then 'Ended' end as ProcessingStateText,

    --Status as StatusNumber,  

    case a.STATUS

    when 10 then 'Starting'

    when 30 then 'Initializing'

    when 35 then 'RecalculateItemLevels'

    when 39 then 'PreUpdate'

    when 40 then 'Update'

    when 42 then 'InsertInterCompanyDemand'

    when 43 then 'InsertRequisitionsDemand'

    when 45 then 'PostUpdate'

    when 59 then 'Precoverage'

    when 60 then 'Coverage'

    when 61 then 'PostCoverage'

    when 69 then 'PreFutures'

    when 70 then 'Futures'

    when 79 then 'PreAction'

    when 80 then 'Actions'

    when 89 then 'PreAutoCoverage'

    when 90 then 'AutoCoverage'

    when 95then 'DEL_UpdatingItemLevel'

    when 100 then 'InsertingLog'

    when 110 then 'UpdatingDynamicPlan'

    when 120 then 'AutoFirming'

    when 125 then 'Statistics'

    when 130 then 'Ended'

    when 240 then 'Error'

    end as StatusText, a.Level_ as BOMLevel,

    --LEVELSTATE as LevelStateNumber,

    case LEVELSTATE

    when 0 then 'NotApplicable'

    when 1 then 'InitLevel'

    when 10 then 'Coverage'

    when 13 then 'CoCoverage'

    when 11 then 'FuturesReceipts'

    when 12 then 'Actions'

    when 20 then 'PartitionOrders'

    when 30 then 'ScheduleResources'

    when 40 then 'FinishedShcduling'

    when 41 then 'FuturesIssues'

    when 50 then 'FinalizeLevel'

    end as LevelStateText,

    case PROCESSINGSTATE when 0 then 0

    when 1 then datediff(second, starttime, getutcdate())

    when 2 then datediff(second, starttime, endtime)

    end as DurationInSeconds,

    case PROCESSINGSTATE when 0 then 0

    when 1 then datediff(minute, starttime, getutcdate())

    when 2 then datediff(minute, starttime, endtime)

    end as DurationInMinutes,

    LISTNUM,

    b.ITEMID,

    --c.REFID,

    a.ProcessDataAreaid,

    a.ProcessID,

    Threadid,

    STARTTIME,

    EndTime,

    case PROCESSINGSTATE when 0 then 0

    when 1 then datediff(minute, @BeginTime, getutcdate())

    when 2 then datediff(minute, @BeginTime, endtime)

    end as MinutesSinceMRPStart

    from ReqCalcTasksBundle a

    left outer join ReqCalcTask b

    on /*a.PARTITION = c.PARTITION and*/ a.PROCESSDATAAREAID = b.PROCESSDATAAREAID  and a.RECID = b.BUNDLE

    /*left outer join REQUNSCHEDULEDORDERSTrace c

    on /*a.PARTITION = c.PARTITION and*/ a.PROCESSDATAAREAID = c.DATAAREAID and a.PROCESSID = c.PROCESSID and a.LEVEL_ = c.LEVEL_ and a.LISTNUM = c.ENGINEBUNDLE */

    where a.PROCESSID = @ProcessId

    /*Filter by 0=Waiting, 1=Processing, 2=Ended*/

    and ProcessingState in (0,1,2)

    /*Use this to filter tasks greater than 10 seconds that were Processing or Ended*/

    --and case PROCESSINGSTATE when 0 then 0 when 1 then datediff(second, starttime, getutcdate()) when 2 then datediff(second, starttime, endtime) end >= 10

    /*Use this to filter by Scheduling for example*/

    --and levelstate = 30

    order by ProcessingState desc, STARTTIME, BOMLevel, ListNUM

  • Suggested answer
    AXT Profile Picture
    1,699 on at

    Thank you so much! It helped us to identify problematic items, e.g. Items in bundle. Now we can narrow down the problem and hopefully solve it.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#1
Priya_K Profile Picture

Priya_K 4

#3
MyDynamicsNAV Profile Picture

MyDynamicsNAV 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans