не может извлечь версию модуля DXL IBM DOORS - PullRequest
0 голосов
/ 14 марта 2019

Я работаю над DXL-программой в Doors, которая должна выводить в файл csv весь исходный модуль, целевой объект, набор ссылок и версию каждого (исходного / целевого) модуля. Мне удалось вывести "исходный модуль, цель, набор ссылок, но я не смог извлечь версию модулей. Кто-нибудь знает, как это сделать?

Вот мой код ниже:

enter image description here

enter image description here

1 Ответ

0 голосов
/ 29 марта 2019

Далее используется выходной файл, который находится в C: \ Temp, но вы можете легко это изменить. он работает путем сопоставления модулей с использованием строки grep, которую вы также можете изменить в соответствии с вашими предпочтениями. У меня разные типы модулей, и поэтому я могу просто получить результаты по префиксу STR в этом случае. Я решил создать несколько сценариев для разных префиксных модулей, а не динамически передавать ключевое слово STR.

Вам необходимо ввести свою папку и подпапки для "modPathname" затем настройте регулярное выражение «GrepString» в соответствии с вашим соглашением об именах в качестве альтернативы вы можете обойти все это путем жесткого кодирования значений.

string      filename          = "C:\\TEMP\\STR_Baseline_Info.txt"
Stream      outFile           = write filename
string      Modtype           = "STR"


void PrintAndOutput ( string s)
{
    // print (s)    // Enable if you want output 
    outFile << s
}


void DisplayResults( string Modtype )
{


    Item        modItem
    Module      mName
    Regexp      GrepString        = regexp2 "^" Modtype "-[0-8][0-9][0-9]"
    Folder      modPathname       = folder "/EnterYourFolderHere/AnySubFolders/" Modtype ""
    string      fullModuleName , CommentStr , moduleName
    Baseline    b



    PrintAndOutput  "------------------------------------------------------------------------------\n"     
    CommentStr = "This File is automatically produced via the " Modtype " Baseline Info.dxl script.  \n" Modtype " Versions as of :  " dateAndTime(today)   "\n"
    PrintAndOutput CommentStr
    PrintAndOutput  "-------------------------------------------------------------------------------\n\n"       

    for modItem in modPathname do
    {
        if  (type (modItem ) == "Formal") 
        {
            moduleName = (name modItem)

            if (GrepString moduleName)
            {

                fullModuleName = (fullName(modItem))
                mName =  read(fullName modItem , false)

                b= getMostRecentBaseline (mName)

                if (b != null )
                {
                   PrintAndOutput  moduleName  "      -\tBaseline : "(major b)"."(minor b)(suffix b) "   \t " (dateOf b) "\n"
                }
                else
                {
                    PrintAndOutput  moduleName "       \t### No Baseline Information ### \t"  " \n"
                }
            }

        }
    }
}


DisplayResults ( Modtype)
...