Я использую подпроцесс 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