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).
This commit is contained in:
John Jenko 2023-10-16 15:33:45 -04:00
parent 928fba3b37
commit a79819bb65
2 changed files with 18 additions and 3 deletions

View File

@ -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

View File

@ -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"))