You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] parseXER drops relationships whose lag_hr_cnt is blank (P6 6.0 exports write zero lag as empty) #17
What happens: Some older P6 exports (ERMHDR 6.0) write a zero lag as an empty lag_hr_cnt instead of 0. parseXER treats the empty value as non-finite and drops the relationship (ALERT lag-non-finite). In one
2,880-activity export, 2,614 of 3,235 relationships were dropped and the project finish came out 19 days earlier than P6's.
Evidence that P6 reads blank as 0: in that file, P6's own stored early dates satisfy every relationship with lag = 0 (0 forward-pass violations;
2,878 of 2,880 early starts tight to their driving predecessor, the other 2 set by constraints). With the blank lags set to 0, the engine matched P6's stored values on all 2,880 activities: ES, EF, LS, LF to the minute, TF and FF (< 0.01 h) and the critical flag.
Minimal reproduction (attached, synthetic): two activities, A (40 h)
-> B (24 h), FS with an empty lag_hr_cnt.
lag_hr_cnt = "" -> 0 relationships kept, B early start 2026-01-05, finish 2026-01-12, ALERT lag-non-finite
lag_hr_cnt = "0" -> 1 relationship kept, B early start 2026-01-12, finish 2026-01-15
Suggestion: treat an empty lag_hr_cnt as 0 (with an INFO note for traceability) and keep the ALERT for genuinely malformed values (NaN, text).
The original export is not mine to share, but I'm happy to re-test a fix against it.
Activity