RAT Plugin v15.1.5 causes DXL error

7 years 5 months ago #82 by javier-fernandez
RAT Plugin v15.1.5 causes DXL error was created by javier-fernandez
Hi all!

We detected an important issue in the new RAT Plugin for DOORS. Let me explain you properly:

As shown in the TRC World, one of the new functionalities was the quality assessment in-line, which will assess the requirements in DOORS as usual without opening RAT every time. This functionality needs some DXL triggers that are stored in the DOORS Server and will be executed for all DOORS Clients, having or not RAT Plugin installed).

In case the DOORS Client does not have access to the triggers (in DOORS Server) it will display a DXL error every time you open a module. No matter if you have RAT Plugin or not.

IMPORTANT: The DXL error is not a blocking error and won’t be involved in any other work case. The engineers will be able to work as usual but the DXL error screen could be annoying. However, we are afraid to say that we were forced to remove this functionality from v15.1.5, but it will be on v15.1.6 with a new arquitecture.

If you reached this situation, you can avoid this DXL error by executing the following DXL script on any DOORS client. It will solved the issue for everybody.

// Defining RQS trigger Names
string onOpenModuleTriggerName
onOpenModuleTriggerName = "open_module"
string onObjectDescriptionChangesName
onObjectDescriptionChangesName = "description_Changes"
string onObjectHeadingChangesName
onObjectHeadingChangesName = "heading_Changes"
string onCreateNecessaryFiles
onCreateNecessaryFiles = "create_necessary_files"

// Removing previous RQS triggers
Trigger t 
for t in database do  { 
     string h=name (t ) 
     if (h == "open_module" ) { 
           delete(t)
     }
     if (!null t && h == onObjectDescriptionChangesName) {
           delete(t)
     }
     if (!null t && h == onObjectHeadingChangesName) {
           delete(t)
     }
     if (!null t && h == onCreateNecessaryFiles) {
           delete(t)
     }
} 
// Creating the fixed triggers 
bool existsTrigger_OnOpen
existsTrigger_OnOpen = false

bool existsTrigger_OnChanges
existsTrigger_OnChanges = false

bool existsTrigger_OnChanges_h
existsTrigger_OnChanges_h = false

bool create_necessary_files_exists
create_necessary_files_exists = false

Trigger currentTrigger
string currentTriggerName
for currentTrigger in database do {
     currentTriggerName = name(currentTrigger)
     if (currentTriggerName == onOpenModuleTriggerName) {
           existsTrigger_OnOpen = true
     }
     if (currentTriggerName == onObjectDescriptionChangesName) {
           existsTrigger_OnChanges = true
     }
     if (currentTriggerName == onObjectHeadingChangesName) {
           existsTrigger_OnChanges_h = true
     }
      if (currentTriggerName == onCreateNecessaryFiles) {
           create_necessary_files_exists = true
     }
}

 
if (!existsTrigger_OnOpen) {
     Trigger topen 
     topen = trigger(onOpenModuleTriggerName, project->all->module->formal->all, post, open, 10, 
     "    string fileName = \"triggers/onModule_Open.inc\"
           string includeString =  \"#include <triggers/onModule_Open.inc>\"
           if (canOpenFile(fileName, false)) {
                eval_ includeString
           }
     ")
}

if (!existsTrigger_OnChanges) {
     Trigger tchanges = trigger(onObjectDescriptionChangesName, project->all->module->formal->all->attribute->"Object Text", post, modify, 10, 
     "    string fileName = \"triggers/onObjectDescription_Ends.inc\"
           string includeString = \"#include <triggers/onObjectDescription_Ends.inc>\"
           if (canOpenFile(fileName, false)) {
                eval_ includeString
           }
     ")
     
}
if (!existsTrigger_OnChanges_h) {
     Trigger tchanges_h = trigger(onObjectHeadingChangesName, project->all->module->formal->all->attribute->"Object Heading", post, modify, 10, 
     "    string fileName = \"triggers/onObjectDescription_Ends.inc\"
           string includeString = \"#include <triggers/onObjectDescription_Ends.inc>\"
           if (canOpenFile(fileName, false)) {
                eval_ includeString
           }
     ")
}

if (!create_necessary_files_exists) {
     Trigger tfiles = trigger(onCreateNecessaryFiles, project->all->discussion, post, create, 10, "")
}

// Printing current triggers after fixing RQS trigger scripts 
Trigger outputTrigger
for outputTrigger in database do {
     currentTriggerName  = name outputTrigger
     if (currentTriggerName == onOpenModuleTriggerName ||
                currentTriggerName == onObjectDescriptionChangesName ||
                currentTriggerName == onObjectHeadingChangesName ||
                        currentTriggerName == onCreateNecessaryFiles) {
           print currentTriggerName ": " dxl outputTrigger "\n"
     }
}

string buttons[] = {"OK"}
messageBox (" Trigger fixed successfully !", buttons, msgInfo )

We are totally available if you have any question on this issue. Sorry for the inconveniences.

Please Log in or Create an account to join the conversation.

  • javier-fernandez
  • Topic Author