Can I lock schedule of a subassembly?

Can I lock schedule of a Subassembly, so that even when “manually scheduling” that subassembly’s date do not get changed?

We work with multi level subassembly jobs for our machines.

We use backwards scheduling from the due date to generate required by date for each assembly and their materials.

Occasionally we may want to schedule an assembly to start earlier than it needs to and to source the relevant materials earlier.

Currently, the only way to do this is to unlink it from its relevant operation in the build sequence and try to link it to an earlier operation, but that does not really reflect its requirement in the build sequence.

Via the Job Scheduling board, we see that that we can click and drag that operation alone to an earlier date and accept changes, which has the desired affect.

We can also “Lock Schedule”, which stops the job from being automatically scheduled by processes.

However, when the job is “manually scheduled”, that sub-assembly will be dragged back to its original required date (even though the schedule is locked).

Is there a way to lock individual assemblies, or operations, so that they don’t move - even when a job is manually scheduled?

The problem we have is that, as our machines are engineered “on-the go” after our jobs have been released, we always ask our engineers to “re-schedule the job” so that any newly added assemblies and parts are scheduled correctly for the next MRP run - but this would “overwrite” any “manually” scheduled assemblies!

Is there any way to achieve what we want, so that any assemblies or operations that have been “manually” scheduled can be “locked” for good?

Thanks.

I’m pretty sure you can’t lock the schedule of a subassembly. Have you looked at making your subassemblies into materials to be separate fulfilled by separate jobs? There are definitely trade-off to this - it’s more work to manage; but it would allow you to schedule them independently and lock them, while also being able to schedule them all together by using the Scheduling Multi-Job functionality.

Maybe you can be creative with Move Time and/or dummy operation to create a buffer at the end of the assembly ; the assembly would finish sooner than required (buffer), so it would obviously start earlier…