CÓMO varias validaciones en B1 Hana SP TN?

Hola a todos, este es mi primer post, ojalá este correcto!

Estoy tratando de poner campos como requeridos utilizando el stored procedure Transaction Notification, el detalle es que cuando lo puse para la Orden de Venta y para la Entrega, no hubo ningún problema, pero al ponerlo en la factura de deudores, surgio un problema.

Tanto en la Orden de Venta como en la Entrega, solo era un campo el que deseaba hacer mandatorio, y ambos funcionaron bien, pero en la factura de deudores tengo 3 campos que deseo hacer mandatorios, y el problema es que no me reconoce cuando hago el cambio capturando alguno de los datos faltantes.

Las madificaciones que he estado haciendo me han llevado a esta version que les voy a copiar, pero esta version ahora solo muestra un error en rojo en la parte baja, que solamente dice (DLN1), me podrían ayudar por favor, no se cual sea el error y estoy atorado en este punto.

Aqui viene el código:

if object_type=N'13'   then -- Documento : Factura de deudores!
    if error = 0 then
        select ifnull("U_B1SYS_MainUsage",''), ifnull("PeyMethod",''), ifnull("Installmnt",'') into myVar1, myVar2, myVar3 from "TRONICO_LGM".OINV where "DocEntry" = list_of_cols_val_tab_del;
        if myVar1='' then
            error := 131;
            error_message := N'PIE DE DOCUMENTO - Debe capturar el campo Uso Principal.';
        elseif myVar2='' then
            error := 132;
            error_message := N'FINANZAS - Debe capturar la forma de pago.';
        elseif myVar3='' then
            error := 133;
            error_message := N'FINANZAS - Debe capturar el campo de Plazos.';
        end if;
    end if;
end if;

Gracias!

2 Me gusta

Hol@ @LeoTronico:

Buen día y un feliz año para usted, y todos en la comunidad, que este lleno de éxitos para todos.

Quería saber si ya encontró el error? y de ser así como lo soluciono? sino comentemos que avances tuvo para ver si lo podemos ayudar.

Salud@s :raised_hand_with_fingers_splayed:t5:

1 me gusta

No lo he encontrado! Gracias! Feliz año!

1 me gusta

Hol@ @LeoTronico:

Buenos días, quiero entender un poco su post, usted tiene tres variables, myVar1, myVar2 y myVar3. Y lo que requiere es que valide que estos valores no se encuentren vacíos.

Según su estructura, lo que entiendo, es que si el valor myVar1 es vacío, da un mensaje, y de ser así entonces nunca validará lo otro. El único caso en el que evaluará las otras opciones será sí myVar1 no es vacío. Basado en lo anterior la única manera en que llegará a evaluar myVar3, es si myVar1 es vacío, y luego myVar2, también es vacío.

Yo dejaría cada validación independiente, algo así como:

    select ifnull("U_B1SYS_MainUsage",'') into myVar1 from "TRONICO_LGM".OINV where "DocEntry" = list_of_cols_val_tab_del;
    if myVar1='' then
        error := 131;
        error_message := N'PIE DE DOCUMENTO - Debe capturar el campo Uso Principal.';
    end if;

    select ifnull("PeyMethod",'') into myVar2 from "TRONICO_LGM".OINV where "DocEntry" = list_of_cols_val_tab_del;
    if myVar2='' then
        error := 132;
        error_message := N'FINANZAS - Debe capturar la forma de pago.';
    end if;

    .
    .
    .

Sino otra alternativa, validar al mismo tiempo que las las tres variables tengan valores y dar un mensaje general, así:

    if myVar1='' AND myVar2='' AND myVar3='' then
        error := 131;
        error_message := 'Verifique los campos campo1 campo2 campo3 que cuenten con valores';
    end if;

Saludos :raised_hand_with_fingers_splayed:t5:

Este tema se cerró por inactividad por parte del autor.

Copia la URL de este debate, y abre un nuevo tema en #feedback si:

  • El autor del debate no marcó ninguna respuesta como solución, y tú crees tener la solución
  • Crees tener otra solución a la que actualmente está marcada.

Si, en cambio tienes una duda parecida a la que se debatió, o la misma duda, abre un nuevo tema en la categoría que corresponda y pon que el tema se debatió oportunamente (pega el enlace a este debate), así los otros lectores pueden saber de qué hablas.

Ayúdanos a tener una comunidad organizada.