I have kind of an odd issue that I’m hoping I can get a pointer on debugging. In our Kinetic environment, in the browser, whenever we right click a Job Number and open “Multi Resource Scheduling Board”, it opens the app but it doesn’t populate the correct list of resources based on the job you opened it from.
In classic, when you right click + open with → Multi Resource Sched Board it opens the screen and populates a list of resources as expected from the scheduled job in question. In Kinetic, it opens the screen and shows the same (seemingly random) list of several resources, no matter which job you started with, and even when those several resources don’t apply to the job in question.
I am assuming there is some kind of launch option issue that is not happening correctly when the M.R.S.B. Kinetic App is opened from Job Num context menu. I am still digging into it on my end, but I did some searches online and couldn’t find anyone else reporting this issue.
Any quick tips on where I should go to start debugging and resolving this so that our kinetic works the same as our classic?
Well, I at least was able to find what’s going on but haven’t been able to fully resolve it yet.
Classic, when opening the Multi Resource Scheduling Board with Open With → from JobNum, uses JobEntry.GetRows(), which returns JobResources dataset.table rows matching what you would expect to see if you query the job number in ResourceTimeUsed table. It also sets the “Start Date” and “End Date” according to what you would expect from the mix/max start/due dates on those RTU records.. So far, what Classic is doing makes perfect sense.
However, Kinetic, when performing the same action, (Open with → Multi Resource Sched. Board (from Job Number)), calls new method JobEntry.GetDatasetForTree(). With the returned values from this method call, the MRSB Kinetic App performs some voodoo magic and populates the LandingPage grid with rows, but the LandingPage table is not returned in the method output so I cannot modify it directly. What’s also a little bit frustrating is that, GetDatasetForTree() returns an odd list in the JobResources table, NOT the complete list of resources you would expect when you query the ResourceTimeUsed table rows for the job in question. It appears to be a filtered or limited list, and I have not been able to determine what that logic or filter is yet (make it make sense…). Furthermore, the Kinetic app’s “Start Date” and “End Date” values are just “Today” and “Today + X Days” every time, which is also not as useful, and cannot be set from a GetDatasetForTree method directive.
I have been trying to get the Kinetic method to return the same JobResources rows that the Classic method did, and even though I have that part figured out, it won’t display them correctly in the landingPage grid, and therefore the rest of the “View Schedule” functionality doesn’t work right. Also, if I wanted to set the KeyFields.StartDate and EndDate values after the screen loads, I would have to do this through a function call in App Studio-- I couldn’t figure out how to set them from a Method Directive yet.
Anyhow, just wanted to follow up on the post since I found more info, but really no good solution so far. Does anyone know why the new Kinetic method JobEntry.GetDatasetForTree() returns different list of resources than the classic GetRows() method?.. And if so, what was the decision there? I have not been able to make the returned list of resources “make sense”. My team of engineers tells me it’s critical that it opens with the correct list of resources, the way classic does. Bah!
Sorry, I can’t help get Kinetic working just like classic. In my experience the MRSB only shows the resources for the top-level assembly for the job. If there are sub-assemblies, it does not show those resources by default. Is your MRSB at least showing the correct resources for operations at the top-level assembly? I’m curious if your operations, resource groups, and resources are setup correctly.
Yeah, as Nate said, it looks like it only returns the the top-level resources.
You could override the GetJobResourcesList Event and either alter the GetDatasetForTree call or replace it. Looks like as long as that event results in the Resources you want in the ResourceList dataview, you’ll be good.
Thanks to both of you for the help. I guess that explains the different list being returned by Kinetic. In this instance, I prefer to see all the resources scheduled to the job if you cross reference that job in ResourceTimeUsed, this appears to be the way classic is handling it. I’ll give it a shot to override the event in a custom layer in app studio.
I was already replacing JobResources table rows with the desired list from the old GetRows() method, then in App Studio the event should populate the ResourceList dataview from this results set, but it didn’t show up right in the LandingPage grid. Hopefully tackling it from App Studio will work better.
wow.. wait a second. Thanks for some insight from Gabe who messaged me about this with a beautiful AI summary from his EpiDev tool- I realized I could just try flipping the ipCompleteTree input variable to TRUE instead of the default FALSE. I can actually make this change in App Studio so it doesn’t effect every method call like a Pre Processing directive would. This actually worked- and it returned the full list of resources from RTU table, NOT just the filtered set from the top level assembly. Not only that- it displays them correctly in the landing page grid. AWESOME.