DXL to display redline markups between DOORS module and CPS module

We are using DOORS 9.3. Does any one have a DXL script that will pull the CP Attr - attribute name from the CP module and compare it against the attribute in the formal module and display the differences in a column in the formal with redline markups?
SystemAdmin - Tue Jun 07 16:23:18 EDT 2011

Re: DXL to display redline markups between DOORS module and CPS module
Tony_Goodman - Thu Jun 09 10:08:30 EDT 2011

I knew I had this somewhere :-)

// Proposed Changes
 
/*
    Layput DXL to display redlined differences between Object Text and
        proposed object text.
        
        Tony Goodman
*/
pragma runLim,0
 
string shortName = "Change Proposal Links"
 
Link l
LinkRef lr
string otherModName
Module linkMod = null
Object othero
Object po
string orderString = ""
User usr
string s = ""
 
Buffer o = create()
Buffer n = create()
 
o = obj."Object Text"
 
for lr in obj<-"*" do 
{
        otherModName = fullName(source lr)
        if (!module otherModName) continue
        if (isDeleted module otherModName) continue
        if (!open module otherModName) read(otherModName,false)
}
 
for l in obj<-"*" do 
{
        linkMod = module(l)
        if (null linkMod) continue
        if (name(linkMod) != shortName) continue
 
        othero = source l
        if (null othero) continue
        if (isDeleted othero) continue
        
        setempty(n)
        n = probeAttr_(othero, "Proposed Object Text")
        
        if ( length(o) > 10000 || length(n) > 10000 ) 
        {
            displayRich "{\\i (Text too big to compare.)}"
        } else
        {
            Buffer resBuf = create
            diff(resBuf, o, n, "\\cf1\\strike ", "\\cf3\\ul ")
            
            s = identifier(othero)
            resBuf = "{\\b " s ": }\n" tempStringOf(resBuf) "\n\n"
            
            displayRichWithColour (tempStringOf resBuf)
            delete resBuf
        }
}
 
delete(o)
delete(n)

 


Tony Goodman, Smart DXL Limited