From a79819bb6563f0eebb56711f1a06b53c3c2e48ec Mon Sep 17 00:00:00 2001 From: John Jenko Date: Mon, 16 Oct 2023 15:33:45 -0400 Subject: [PATCH] B2023-104 Import procedure and Go To RO Added a check for a bad RO link when trying to do a Go To RO. A message box pops up telling the user to re-link that RO. Fixed the Import logic so that an old RO link reference can be replaced with the new one that is generated when a procedure is processed during the Import function. The Import caused the Bad RO link reported in this bug. This bug was introduced when the ROID was standardized in length and formatting (new RO logic in 2022). --- PROMS/VEPROMS User Interface/dlgExportImport.cs | 8 +++++++- PROMS/Volian.Controls.Library/StepTabRibbon.cs | 13 +++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/PROMS/VEPROMS User Interface/dlgExportImport.cs b/PROMS/VEPROMS User Interface/dlgExportImport.cs index ddf946f6..139a5b5a 100644 --- a/PROMS/VEPROMS User Interface/dlgExportImport.cs +++ b/PROMS/VEPROMS User Interface/dlgExportImport.cs @@ -4116,6 +4116,11 @@ namespace VEPROMS ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion); + // B2023-104 use this to replace RO Link information in the imported text + // FormatRoidKey() was creating the roid with the new formatting introduce with B2022-088 & B2022-098 + // We need to save the ROID from the imported text in order to update it with the new RO link information + string contentROID = roid; + // B2022-088: [JPR] Find Doc Ro button not working in Word Sections // B2022-098: [JPR] ROs not being resolved in Word Sections roid = ROFSTLookup.FormatRoidKey(roid, true); @@ -4135,7 +4140,8 @@ namespace VEPROMS rou.Save(); RoUsageInfo roui = RoUsageInfo.Get(rou.ROUsageID); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); + //B2023-104 use the ROID from the imported text (contentROID) to create the lookFor string + string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, contentROID, oldRODbID.ToString()); string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); _DidProcessROs = content.Text.Contains(lookFor); // B2017-076 RO link in the text so we will be processing it diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index d67dd9e1..fc242db9 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -3112,8 +3112,17 @@ namespace Volian.Controls.Library else { LinkText lt = new LinkText(_MyStepRTB.MyLinkText); - myROID = lt.MyRoUsageInfo.ROID.ToLower(); - myRODB = lt.MyRoUsageInfo.MyRODb; + //B2023-104 If we could not get the MyRoUsageInfo then we have a bad RO Link. Tell user to re-link the RO + if (lt.MyRoUsageInfo != null) + { + myROID = lt.MyRoUsageInfo.ROID.ToLower(); + myRODB = lt.MyRoUsageInfo.MyRODb; + } + else + { + FlexibleMessageBox.Show("Invalid RO link information.\n\n Please re-link this RO value.", "Invalid RO Reference", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } } if (myROID == null) return; if (myROID.StartsWith("ffff")) -- 2.47.2