Campos de transacción condicionales

Suponga que desea que los datos de ciertos campos se incluyan en la salida si se cumplen ciertas condiciones, pero que se omitan en los demás casos. Por ejemplo, si un campo está rellenado, deseará que su valor se incluya en el registro, pero si está vacío, puede preferir que el valor se omita, evitando la presencia de espacios o ceros en el registro. (Esto es análogo a una instrucción de programación condicional del tipo si.../entonces...)

Puede hacerlo insertando campos de transacción #If y #EndIf en la descripción de transacción. (Instrucciones.)

Variable

Formato

Explicación/comentario

#If, #EndIf

N(1)*

Si la expresión insertada es ¹0, se incluirán todos los campos de transacción situados entre #If y #EndIf, excepto los que sigan a #ElseIf y #Else.

#ElseIf

N(1)*

Si la expresión de #If es = 0, se intentará la expresión de #ElseIf. Si la de #ElseIf es ¹0, se insertarán todos los campos de transacción entre #ElseIf y el siguiente #ElseIf, #Else o #EndIf.

#Else

N(1)*

Si las expresiones de #If y #ElseIf son = 0, se insertarán los campos de transacción situados entre #Else y #EndIf.

* Los campos de transacción anteriores tienen el Formato N o N(1), pero su Longitud es 0 porque estos campos de transacción en particular nunca producirán por sí mismos que se escriban datos en el fichero de transferencia.

La estructura es la siguiente:

#If

#ElseIf (optativo)

#ElseIf (optativo)

#Else (optativo, no es necesario que siga a #ElseIf)

#EndIf

Nota: Cuando se elige un carácter separador en la descripción de transacción, normalmente el último campo de cada registro no irá seguido por dicho carácter. Sin embargo, la excepción se produce cuando la descripción de transacción contiene instrucciones #If. En tal caso, el último campo del registro puede ir seguido por un carácter separador si, por ejemplo, el último campo de transacción es #EndIf.