Хотите обнаружить неправильное имя пользователя и / или пароль при запуске IBM Doors в пакетном режиме - PullRequest
2 голосов
/ 14 января 2020

Я использую подпроцесс Python для запуска IBM Doors в пакетном режиме со сценарием DXL и внешней переменной. Когда я запускаю скрипт, он обычно работает нормально, но иногда возвращаемое значение пустое. Другая проблема возникает, когда я намеренно предоставляю неверные учетные данные пользователя. Doors открывает окно, которое я хотел бы закрыть кодом и выписать ошибку, но ошибка появляется только после закрытия окна вручную. Я использовал временный каталог для экспорта, который я проверял с Python, и когда произошло обновление, я обработал его, но чтение из std out, казалось, было лучшим решением.


  • Может ли -кэширование (-k) повысить надежность (в случае пустых возвратов)?
  • Можно ли поймать -E- ДВЕРИ: Неверное имя пользователя или пароль Массаж и аналогичные сообщения об ошибках во время прогона перед закрытием окна и закрытием пакетного прогона из кода в случае ошибки?

.py

import subprocess
import os

if __name__ == '__main__':
  script_name = 'demo_dummy_script.dxl'
  filename = os.path.join(os.path.dirname(os.path.realpath('__file__')), script_name)

  var = "apple"
  proc = subprocess.Popen(r'"C:\Program Files\IBM\Rational\DOORS\bin\doors.exe"'
                           r' -dxl "string myVar = \"'
                           + var +
                           r'\"" -b '
                           + filename +
                           r' -osuser',
                           stdout=subprocess.PIPE,
                          stderr=subprocess.STDOUT)
  stdout = proc.communicate()
  encoding = 'utf-8'
  print(stdout[0].decode(encoding).split())

.dxl

cout << myVar

Использование дверей 9,6, Python 3,6, Windows10

1 Ответ

0 голосов
/ 20 января 2020

Я бы предложил добавить ключ -W в оператор командной строки. Это можно найти под 'nowait' здесь . Убедитесь, что вы используете заглавные буквы W!

Кэширование сложнее - это зависит от того, что вы пытаетесь сделать. Я бы предложил попробовать это с и без и посмотреть, какое поведение вы предпочитаете. Я не использую его, но мои приложения, работающие в пакетном режиме, имеют тенденцию быть однонаправленными (пользователь просматривает данные DOORS, но не пишет в DOORS)

...