Dando a entender todas las etiquetas son únicas (que lo dudo ..):
Se puede crear una función que acepta una etiqueta, búsquedas en las tablas de control de calidad que definen campos personalizados para la definición de campo correcto, y devuelve el nombre del campo . Luego use el valor del resultado de la función como el índice de la propiedad indexada.
suponer que la función se llamaría "GetNameOfLabel", luego el código del interlocutor se vería así:
Set currentRun = QCUtil.CurrentRun
currentRun.Field(GetNameOfLabel ("Data Rows Passed")) = 1
currentRun.Post
Por supuesto, la función sería en realidad no ser trivial, pero es bastante fácil después de algo de investigación en los datos de control de calidad modelar y encontrar una forma eficiente de obtener el nombre de la base de datos a través de SQL.
O bien, la función podría buscar el nombre en una matriz o en un diccionario, entonces tendría que mantener ese diccionario, pero no tendría que ir a la base de datos para cada búsqueda.
Disadventages:
- secuencias de comandos con la etiqueta equivocada podrían ser más difíciles de ser depurar
- Si las etiquetas no son únicos, que podría ser real "diversión" para depurar
Si mirando hacia arriba en la base de datos:
- Todos los scripts se ralentizan si no almacena en caché o carga los resultados de la consulta SQL para esas búsquedas;
- complejidad, ya que tiene que hacer la consulta SQL derecha, y del que depende el modelo de datos de control de calidad de una manera bastante peculiar (por lo general un horror cuando va a actualizar)
Si mirando hacia arriba en una matriz, o diccionario:
- o se debe mantener su inicialización (apuesta de otros tipos de administración añadiendo un campo Cust olvidarán tan fácilmente), o debe "carga" que de la mesa de control de calidad (que es un poco como la solución SQL anterior, y tiene los mismos inconvenientes).
Iré con la matriz/dictionary-initialized-from-db-idea. O, si puedes vivir con la idea constante ya presentada, esa es una buena apuesta. Teniendo en cuenta que no existe un alcance independiente de la sesión en los sistemas de control de calidad que personalizan las secuencias de comandos, la idea de acceso a SQL realmente podría matar el rendimiento, ya que tendría que ejecutarse para cada nueva sesión de usuario. Por eso yo también hice +1 la idea constante.
¿Por qué querrías hacer eso? ¿Por qué no puedes usar el nombre como lo haces hoy? –
Hola Alex. Buena pregunta. La razón es que utilizamos muchos campos personalizados y será difícil para los evaluadores/desarrolladores implementar y mantener las pruebas con nombres como "RN_USER_03", será muy fácil confundirse y hacer errores, y muy difícil de leer el código. Las etiquetas no cambiarán muy a menudo y es por eso que queremos usar etiquetas en su lugar. –
¿No podría simplemente asignar el nombre del campo a una constante con un nombre significativo? 'const DATA_ROWS_PASSED =" RN_USER_03 "currentRun.Field (DATA_ROWS_PASSED) = 4' –