cancel
Showing results for 
Search instead for 
Did you mean: 

Scheduling plan - Every two months, the third Friday

Former Member
0 Kudos

Hello SAP Experts,

I open this discussion; because, after several hours on Internet I haven t found the solution for this simple problem.

Here is the situation:

In my company, we have PM maintenance plans.

Some of them have to be schedule for example: “Every two months, the third Friday of the month”


I haven't seen how to do it with scheduling parameters (IP01).

So I've tried to use IP30 to schedule my PM plan.

With IP 30 It is easy to schedule every two months

Concerning the "third Friday" I wanted to use a specific calendar in IP30 with only Fridays as working days and select to run the job every third working day every two months

This would solve my problem ....but,and this is where I haven't a solution, in order to plan the week all the work orders have to be generated on Sunday.

This way, the manager can, on Monday morning, plan the week with these orders generated by the plans on Sunday.

So the question is: how can I generate the work orders the Sunday before the third Friday? I thought I found a solution this way:

1- Design my PM plan with a cycle of 7 days

2- Call horizon: 28% (two days over seven)

3- Run IP30 on the SECOND Friday every two months.

This way I thought that: running IP30 on the second Friday, it will generate a call date on next Sunday (28%).

Then, on this Sunday, the order would be generated and planned for the next Friday (because the cycle is 7 days) which is the third Friday of the month.

But IP 30 doesn't work this way :-(( and generates work orders directly and not the call date.

So my work orders will be generated on the second Friday, so one week too early.

So does someone has already had this problem and has found for solving it ?

Thanks a lot for the time you've spent to read me and for your support :-))

Regards,

Jérôme

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

Hello Pete, Maheshwaran and Akhliesh,

Thanks a lot for your answers.

Akhliesh : Your idea is interesting but it doesn t seem to work.

Let's take an example :

This year (2013), the first "third friday" was the 18th of Januray: 45 days later (I think it is 45 and not 46 :-)) ) we are on the 22th of Marsh.

But the 22th of Marsh is not the third friday of Marsh but the fourth friday (The third friday would be the 15th of Marsh because of February wich has only 28 days). So, Akhliesh, Am I missing something ?

Pete : Yes you are right, it will work, but this is what I didn t want to do  :-)) because in my post, it was just an example, I have many others like that (example ; second monday every 6 months etc ..) and it will be very difficult to maintain one calendar for each case.

Is it really impossible to do in SAP without using user-exit ?

Thanks a lot for your help and support,

Regards

Jérôme

sebastian_lenartowicz
Active Contributor
0 Kudos

Greetings Jerome,

Looked at this, but I can't see an obvious solution, given that 4 WK <> 1 MON. Also you can't use key date scheduling for weeks, only months, and you can't even fine-tune the schedule in IP10 using Fix Call in advance for calls past the next.

Basically, I see 3 options for you:

1. Use a Strategy with multiple packages, with offsets incrementing by 8 or 9 weeks, to match the "third Friday" requirement, that you would fine-tune to your cycle start. Potentially you could schedule multiple plans with 1 strategy, but also need multiple strategies to account for different requirements. It'd be a nightmare to maintain, but could do OK to cover your requirement once set in motion.

Other options aren't appealing

2. Develop

Or

3. Manual activity

Former Member
0 Kudos

Hello Sebastian,

Thanks a lot for your answer.

Because I m working for a large compagny, I'm not sure that they will let me use the IPRM0002 transaction :-((.

That's why your approach is interesting me a lot, but can you give me more details on how to do it ?

I've created a strategy with two packages: 

- One every 8 weeks

- Seconde every 8 weeks as well but with an offset of one week.

I did it htis way because :

If I had two packages (8 weeks and 9 weeks), at the first time the offset between these packages  would be 1 week (9-8 = 1 which is ok) but the second time, the offset would be 2 weeks (9*2 - 8*2 = 2) etc... So in order to have allways 1 week offset between the two packages I did it this way.

But, what I don t know is how to select (eventually manually) the correct packages to use for every second month.

If I run the IP10 transaction to schedule my plan, both packages will be called when only one is the correct one.

So can you please give me more details on how to implement your solution .?

Thanks a lot,

Best Regards,

Jerome

sebastian_lenartowicz
Active Contributor
0 Kudos

Greetings Jerome,

My idea was not a package with a cycle of 8 or 9 weeks. Rather it was a large number of (one-time) packages, with no cycles, only offsets at incrementing intervals, which you'd need to align with the plan schedule start date. Perhaps a worked example will help:

1. Setup a strategy with incrementing offsets, for example as such:

2. Assign ALL packages to the Operations in the Task List that you want performed each time.

3. Schedule the plan from a specific date (03.01.2014 in this example)

Note that this strategy is very bespoke, specific and tailored; it assumes a certain start date on a certain year; also, there are some limitations here, this strategy isn't self sustainable indefinitely in the long term as the cycle would need to effectively be 28 years (1456 weeks!) for that to repeat itself over with respect to the third Friday of every second month Realistically, you can look at setting up this strategy for 16 years (96 packages), at which point the plans will have to be re-started.

So on the downside, you would need specific strategies for various cycles, offsets and start dates (though you can also fine-tune the schedule on plan level in IP10)

On the upside, once you have the strategy in place, you can use it to schedule more than one Maintenance Plan - assuming the maintenance indeed always falls on the third of the month.

Hope this example helps you!

Former Member
0 Kudos

Hello Sebastian,

Only two things to say ; "Brilliant" and "thank you", because you've saved me ...

It works pefectly as you described.

It doesn t matter if in 16 years I'll have to reschedule my maintenance plans I can live with that.

One again thanks a lot for your help and the time you've spent to do the screenshots.

I give you "five stars"

Regards,

Jerome

Answers (4)

Answers (4)

rakesh_mane
Active Contributor
0 Kudos

Hello

This requirement can be fulfilled via below user exit.

IPRM0002 Determine planned date info for maintenance plan.

Please implement the above user exit with help of Abap person.

BR

Rakesh

peter_atkin
Active Contributor
0 Kudos

Jérôme

Create a new factory calendar with only the relevant Friday's as the working days.

The create a plan base on a 1-Day cycle.

You have to be very careful with this type of setup and ensure that the calendar is properly maintained, and the your IP30 is run correctly.

Another option is to use one of the user-exit/BADIs to automatically schedule these plans for the correct date.

PeteA

former_member182535
Active Contributor
0 Kudos

Hi,

     If you want execute the maintenance order every third Friday on second of month.So, you have create maintenance strategy 46,92,138. as days with call horizon 90% and run the program on daily basis.

While next order execution date depend on your last order TECHO Date. 

Former Member
0 Kudos

Hello Akhilesh,

I'm trying to do your solution.

Can you please tell me the "step by step" procedure I have to follow ?

Thanks for your help and support,

Regards,

Jerome

Former Member
0 Kudos

In IP30, define the Interval for Call Object with some minimum period such as 2 days, and run the program on daily basis. So that, call won't get generated well in advance.

I am still confused about your query regarding the frequency i.e., 2 months or 7 days.