Skip to main content

Filter by idea status

10000+ Ideas

cvergesLevel 5

dateDifference function behavior around Daylight Savings Time and Standard Time transitions (an idea and a warning)New

The dateDifference(t1; t2; unit) function in Fusion allows you to compute the number of hours/days/etc. between two timestamps (t1 and t2) provided.  This behaves oddly whenever the number of hours in a day isn't exactly 24, which happens twice a year when crazy countries/localities switch between Daylight Savings Time and Standard Time.Example: On March 10, 2024, at 2am, the clocks "jump" forward to 3am.  That is, there technically is no 2:00am to 2:59am on March 10.  This results in March 10 having only 23 hours in the day.  (The same thing happens on November 3, except we actually repeat 2:00am to 2:59am, resulting in 25 hours in the day.)This website has more information that corroborates: https://www.ge.com/digital/documentation/csense/version2023/Blocks/Daylight_Saving_Time.htm#:~:text=In%20spring%3A%20if%20a%20one,the%20day%20to%2025%20hours.If you're trying to use something like dateDifference(t1; t2; days) and expect something like 2024-03-09T00:00:00 to 2024-03-11T00:00:00 (both in America/Los_Angeles time zone) to return a value of "2", it will instead return a value of "1".  This occurs because dateDifference is computing a delta of 47 hours, which is less than 48 ("2 days" as per how dateDifference is written).  When dateDifference divides 47 by 48, it results in 1.979... which is then truncated to just "1".Note that this appears unique and different than any other programming language that has similar functions.  You can test this using a Java online compiler such as https://www.programiz.com/java-programming/online-compiler/ and the code below: import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; class HelloWorld { public static void main(String[] args) { final ZoneId timeZone = ZoneId.of("America/Los_Angeles"); final ZonedDateTime start = ZonedDateTime.of(2024, 3, 9, 0, 0, 0, 0, timeZone); final ZonedDateTime end = ZonedDateTime.of(2024, 3, 11, 0, 0, 0, 0, timeZone); System.out.println(ChronoUnit.DAYS.between(start, end)); } } Java is appropriately handling the fact that the length of a "day" is actually variable and thinking more in terms of "midnight to midnight" rather than "how many 24 hour periods exist".It is possible to workaround this using by casting every date to UTC, but this is super cumbersome, as shown by this Fusion example: The awareness required around this renders dateDifference as a dangerous function to use without advanced Computer Science knowledge.  For example, the help text (shown below) is fairly simple with no warnings around this, nor are the online docs (below) hinting to the need to use UTC -- though they do only show "Z" (UTC) in the examples, which is perhaps too subtle of a thing.Ideally, dateDifference should internally cast to UTC if that's what's required to bring in line with the semantic notion of "hours" or "days" or other units.  For dates that are already in UTC, this would be a "no-op" and things would work fine.  For non-UTC dates, it would make things more intuitive.While a support ticket was filed on this, they redirected to submit an Idea via the forum here, saying that the current implementation of dateDifference meets the desired behavior and indicated that it would likely only get actioned if it received enough upvotes.  So take this as both a warning in use of the function with its current behavior and an idea ask for the community to vote on.  Hope this helps someone either way!

MoniqueEvans
MoniqueEvansNew Participant

Tie Issue Status to Converted Projects In PerpetuityNew

Description - When an issue is resolved by another object, the status and progress are locked and only updated via the resolvable. Unfortunately, if you were to mark the resolving/converted project as Dead, the issue is also Dead and will no longer update regardless of the updates that continue to happen on the project. For example, you convert an issue to a project, work starts and the team thinks it's a duplicate ask so they mark the project as Dead. A meeting happens, and you learn that it is very similar to an existing project but unique enough to continue so you update the project's status to Current. Meanwhile, the Issue will continue to say Dead and you cannot update the status because it is locked by the resolving project. I would like for the issue to continue monitoring the resolving project and update the status if the project reopens (from being Complete or Dead).   Why is this feature important to you - If the project management team isn't aware of this you have issues telling a completely different story than what is happening which can skew metrics. This is especially damaging if you have one person reporting from the issues and another person reporting from the projects. We always want our metrics and reports to be accurate since those are influencing business decisions.   How would you like the feature to work - The issue's status would update from Dead to In Progress if the resolving project status changed from Dead back to Current or Planning.   Current Behaviour - Currently the only workaround is to manually remove the resolve by information, save the issue, and then add the resolve by information back since you cannot update the issue's status individually while a resolvable is listed.

JanineDiLevel 2

Ability to bulk remove unassigned roles from assignment fieldNew

Description - If I have a project template that has tasks with several roles assigned, and then determine that I don't need to fill each role, I'd like to have a way to bulk remove unassigned roles from task assignments. Why is this feature important to you - I noticed one time when I had it assigned to one UX Designer (name Jeri Bailer), but had a second UX Designer role assigned to the same task but left UNassigned.  It then was not calculating Jeri's time off in the project timeline.  It was assuming we would assign someone else who could work through her time off.  Therefore this affected the project's overall timeframe. How would you like the feature to work - If I remove a person from an assigned role or leave a role unassigned, I'd like to have an option to remove unassigned roles from all assignments. Current Behaviour - See Why above. Also see screenshots of the example with the unassigned role left in and it's affect on the timeline versus removed. Jeri has PTO scheduled in her Time Off field from Feb 26 to Mar 4. You'll see one attachment shows the work being completed through that task b/c there is an unassigned UX Designer to the task.  The other attachment will show you the change in timeline when I remove the unassigned role and it then calculates in Jeri's time off.  It not a big deal to remove one or two roles, but sometimes it's every task in the project and that is tedious.