cancel
Showing results for 
Search instead for 
Did you mean: 

TRANSACTION NOTIFICATION EN CONDICIONES DE PAGO DE SN

ClerkCarpio
Explorer
0 Kudos

Saludos Cordiales;

Iniciándome en SAP BO 9 PL12, me gustaría conocer como poder validar mediante Transaction Notification, para que cuando se cree un Socio de Negocio y en el grupo le defina como CONSUMIDOR FINAL, en la condición de pago, automáticamente aparezca "CONTADO" que es una de las varias condiciones definidas. O en su defecto obligarlo al usuario que crea el SN para que cuando seleccione el Grupo "Consumidor Final", manualmente le asigne condición de pago "CONTADO", caso contrario no le deje crearlo mientas estas dos condiciones no se cumplan.

Por favor agradezco de antemano su enorme y valiosa ayuda.

James Car

Accepted Solutions (1)

Accepted Solutions (1)

former_member203638
Active Contributor
0 Kudos

Hola James,

Puedes asignar una busqueda formateada en el campo "Condicion de Pago" para que cuando cambien el grupo a Consumidor Final, cambie el campo Condicion de Pago a "CONTADO".

Le asignas esta busqueda:


SELECT Case When $[$16.0] ='116' Then '-1' Else (Select Distinct DfCustTerm FROM OADM) End

*Sustituye el  116 por el ID de tu grupo Consumidor Final y sustituye el -1 por el ID de tu grupo Contado.

Para que bloquee si es diferente la condicion "Contado" al grupo de "Consumidor Final", puedes intentar así:


IF @transaction_type in ('A','U') AND @object_type = '2'  --Socio de Negocio

BEGIN

If exists (SELECT T0.cardcode  FROM ocrd T0 where (T0.GroupCode='116' AND T0.GroupNum<>'-1') and T0.cardcode=@list_of_cols_val_tab_del)

    begin

        SET @error = 10

        SET @error_message = 'La condicion de Pago para el grupo "Consumidor Final" debe ser CONTADO'

    end

END

*Sustituye el 116 por el ID de tu grupo y el -1 por el de ID de tu grupo contado.

Cualquier cosa, comentas.

Saludos.

Alessandro.

ClerkCarpio
Explorer
0 Kudos

Gracias Alessandro por tu respuesta, solo me queda preguntar, sobre la búsqueda definida en la linea del : SELECT Case When $[$16.0] ='116' Then '-1' Else (Select Distinct DfCustTerm FROM OADM) End 

a que hace referencia $[$16.0] es algún valor que debo tomar de alguna otra parte. Disculpa la pregunta pero desconozco del tema.

James Car

former_member203638
Active Contributor
0 Kudos

Hola james, es la variable del campo grupo en la ventana actual de SAP:

El query solo valida si el campo "grupo" $[$16.0]  es igual al dato que necesitas seleccionar, si el valor es igual a "tu grupo" asigna -1 (contado) si no, selecciona el valor por default que tiene parametrizado.

Saludos

Alessandro.

ClerkCarpio
Explorer
0 Kudos

Estimado, Alessandro, gracias por tu valiosa ayuda, te comento como veras, la imagen adjunta es como tengo definido, pero no logro invocar la consulta guardada. Adicionalmente al buscar la opción CODIGO DE GRUPO, esta no me aparece en el listado del combo box, o al menos con ese nombre no la ubico que en tu opcion si aparece.

Quedo a la espera de tus comentarios.

James

former_member203638
Active Contributor
0 Kudos

Hola James,  la busqueda va asignada en el campo "Condiciones de Pago",

De esa manera te saldran las opciones del campo para que se refresque cuando cambien tu grupo. Deja las opciones como aparece en esta imagen.

Saludos.

Alessandro.

ClerkCarpio
Explorer
0 Kudos

Gracias Alessandro, ahí si he validado todo, ha funcionado correctamente. Estoy muy agradecido por la ayuda brindada.

Por lo pronto tengo dos validaciones mas por aplicar, las misma que se tratan de lo siguiente:

1.- En SAP se debe definir las direcciones de factura y de destino, en este punto de que manera se podría INGRESAR la dirección de FACTURACION y esta automáticamente se copie a la de DESTINO?, con el ID pór defecto o definido como "ENVIO". Esto con el fin de evitar que la persona que crea los Socios de Negocio, tengan que volver a digitar la información.

2.- Al crear un cliente con el grupo "Mayoristas", estos se graben con LIMITE DE CREDITO Y COMPROMETIDO "0" CERO. Esto será solo la primera vez que se crea hasta que la persona encargada de autorizar los limites de credito le autorice el monto correspondiente.

Agradezco desde ya su enorme aporte para con estos temas.

Atentamente

James Car

former_member203638
Active Contributor
0 Kudos

Hola James,

1.- SAP lo hace presionando el boton que vez en la imagen. Esto copia los datos de facturacion a los campos de envio

2.- Intenta lo siguiente:


IF @transaction_type in ('A') AND @object_type = '2'  --Socio de Negocio

BEGIN

If exists (SELECT T0.cardcode  FROM ocrd T0 where (T0.GroupCode='116' AND (T0.CreditLine<>'0' or T0.DebtLine<>'0' )) and T0.cardcode=@list_of_cols_val_tab_del)

    begin

        SET @error = 10

        SET @error_message = 'Limite de Credito o Debito deben estar en ceros'

    end

END

Donde 116 es el ID de tu grupo "Mayoristas".

PD: Si tienes mas dudas abre un nuevo post para no revolver temas.

Comentas cualquier cosa.

Saludos

Alessandro.

ClerkCarpio
Explorer
0 Kudos

Listo Alessandro, muchas gracias por la valiosa ayuda, he logrado parametrizar según tus indicaciones.

James Car

ClerkCarpio
Explorer
0 Kudos

Estimado Alessandro, disculpa mi atrevimiento, pero necesito de tu valioso apoyo con unos temas de SAP en cuanto a una combinación de Alertas con un Query Formateado.

Tengo el siguiente query formateado:

IF $[OPOR.SERIES] = 'OC-local' and [OPOR.DocTotal]>='5000'

SELECT 'TRUE'

Cuando el usuario realice una orden de compra se active la AUTORIZACION con este query formateado llamandolo siempre que la serie se OC-local y el monto sea superior o igual a 5000. Solo en este caso que se active la autorización de aprobación. Si la orden de compra es de menor valor, no debe pedir ninguna aprobación. 

Ya lo he programado en las condiciones del modelo de autorización, pero no tengo ningun resultado para que se ejecute solo cuando se cumplan esas condiciones en la orden de  compra local.

Agradeciendo de antemano su gentil ayuda me despido.

Nota: Perdón por mezclar los temas.

James

former_member203638
Active Contributor
0 Kudos

Hola James, Intenta lo siguiente:


SELECT DISTINCT 'TRUE' FROM OPOR  Where ($[$88.0.1]='ID de tu serie ' and $[$29.0.NUMBER]>=5000)

Saludos.

Alessandro.

Answers (0)