Anthony, here are five options to explore:
(1) You might be able to use dynamic job plan functionality to manage this on a single job plan by creating material estimates for all types/sizes of filters and then setting the quantity dynamically based on asset attributes. This would require the affected assets to be classified and to have specification attributes that could be used to determine the itemnum and quantity of filter needed; the easiest way to do that might be to create a tablevalue attribute for the itemnum for the filter type/size needed and another attribute for the quantity needed.
(2) You could create a one-stop route for each of the assets for which you have filter-change PMs. The route should be configured for stops to become child work orders. Attach the route to the filter change PM. Create a job plan for the route stop that includes the appropriate filter type and quantity. The upside of this approach is that you can manage a single job plan for everything except the material estimate. The downside is that the users have to deal with two work orders (a parent and child) for each filter change.
(3) This is a variation on option 2 that uses nested job plans instead of routes. Create the filter-specific job plans with planned materials and a single task. Make the main filter change job plan a nested job plan in the task on all the filter-specific job plans. This creates a child work order for the main filter change every time you apply a filter-specific job plan to a work order. As with option 2, the downside is that users have to deal with two work orders.
(4) Set up the filters as spare parts for each of the assets that require filter changes. Use an automation script to add a WPMATERIAL record for newly generated work orders that are associated with the filter change job plan. The action adding the WPMATERIAL record would retrieve the itemnum and quantity values from the asset's spare part record. This approach may be the best choice if you have some assets that require different types/sizes of filters because you could set up multiple spare part records for filters and generate WPMATERIAL records for all of them. You would need a method to determine which spare part records were appropriate sources for the planned filters. You could do this with the item classification (either with a unique classification for filters or with an itemsepc attribute that indicated that an item was a filter).
(5) Create a new itemnum for a "generic filter" -- this would not be a stocked item but just serve as a temporary placeholder. Add the "generic filter" to the job plan. This will cause a WPMATERIAL record for the generic filter to be generated when the job plan is applied to a work order. For each of the asst classifications used with assets that require filter changes, add attributes for the filter type and quantity. The former would be a tablevalue for the item table so that you can select a valid item number for the filter. You could then use an automation script or an escalation with a couple of actions to update WPMATERIAL records that have generic filter items to show the itemnum and quantity from the assetspec. You'd probably need to create relationships from WPMATERIAL to the appropriate assetspecs to facilitate the "Set Value" actions. This option limits you to a single type/size of filter per asset.
All these options are a lot of work. Before spending too much time exploring these, it might be worth estimating the frequency with which you need to update the other details of the filter change job plan. If it is a pretty stable job plan, and if you only have a few dozen different filter types/sizes, then perhaps the easiest thing to do is to create a distinct job plan for each type/size of filter. If you manage the instructions in a "library" document rather than as tasks and attach this document to all the job plans, then you could update the instructions for all the job plans just by updating the single document. Even if you have to occasionally update all the job plans, it's worth estimating how long that would actually take and compare that to the estimated cost of building and maintaining the data and automation necessary to avoid those periodic updates.