Validar combinación de cuentas
Hola a todos, buen día.
Necesito de su ayuda, tengo que validar que antes que se guarde un documento contable valide que ciertas combinaciones de cuentas no se puedan postear, lo mas cercano que encontre fue esto: pero no tengo ese menu en mi sistena ECC 6.0 asi que otra forma que se me ocurre es usar una regla se sustitucion en la OB28 y usando set de datos definidos en la GS01 definir las cuentas y realizar una validacion completa del documento. El problema es que no se como se deba definir la regla y como validar que la cuenta de una posicion del documento no se encuentre dentro de los sets de cuentas. Alguien ha tenido la oportunidad de hacer algo asi y si es asi me podrian orientar por favor. Saludos!. |
Duda
Hola,
Cual seria la lógica? |
Hola Hugo, la logica seria de esta forma:
Defino los sets A y B. el set A tiene las siguientes cuentas: 12000000001 12000000002 12000000003 el set B tiene las siguientes cuentas: 1700000007 1700000008 1700000009 al guardar el documento (voy a poner como prerequisito para la validacion se para una sociedad especifica X y que solo aplique para determinados tipos de documentos) se valide las posiciones del documento y en ningun caso dicha posicion para la cuenta definida se encuentre en el set de cuentas A y al mismo tiempo exista otra posicion del documento que tenga una cuenta que pertenezca al set de cuentas B. ejemplo : tengo un doc con 3 posiciones item cuenta monto 1 12000000001 $200.00 2 1700000004 $230.00 3 1700000005 $120.00 4 1700000009 $300.00 no me permitira guardarlo ya que el item 1 esta definido en el set A y el item 4 esta definido en el set B. en cambio si el doc estuviera asi: item cuenta monto 1 12000000001 $200.00 2 12000000002 $230.00 3 1700000005 $120.00 4 1700000000 $300.00 si me permitiria guardarlo ya que a pesar que el item 1 y 2 estan en el set A no hay otra cuenta que este en el set B. no se si lo correcto sea usar reglas validacion pero es lo unico que se me ocurre ya que me permite hacer validaciones ya que hay a nivel Header, item o documento completo. Esta ultima opciones de documento completo es la que debiera servirme pero no se como validar una posicion de un Item contra todas las demas. Gracias |
Hola,
Prueba lo siguiente: 1) Crear los 2 sets de datos con sus cuentas (Ej. SET_A y SET_B) 2) Crear 2 reglas a nivel 3 (documento completo): REGLA_1:= BSEG-HKONT IN SET_A REGLA_2:= BSEG-HKONT IN SET_B 3) Crear un paso a nivel 3 (documento completo): Condición (los que indicaste, clase de documento y sociedad) Verificación: SUM ( BSEG-BUZEI ) WHERE REGLA_1 = '000' OR SUM ( BSEG-BUZEI ) WHERE REGLA_2 = '000' 4) Activar la validación de nivel 3 (Documento completo) para la sociedad (OB28) Espero te sirva. Saludos! |
Gracias mgitur,
por tu respuesta no habia pensado usar la instruccion SUM (pensaba que solo la usaba para operaciones) y si suena logica las validaciones. En un momento voy a intentarlo y te platico como me fue. Saludos. |
Ya probe y funciono bien :D si me realiza la validación pero aun no logro entender la parte de:
SUM ( BSEG-BUZEI ) WHERE REGLA_1 = '000' OR SUM ( BSEG-BUZEI ) WHERE REGLA_2 = '000' bueno en el sistema seria algo asi: SUM ( Line item ) where REGLA_1 = '000' OR SUM ( Line item ) where REGLA_2 = '000' no se como es que esta haciendo la validacion ¿ saca el promedio del campo line item ? al final este campo tiene la el numero de item en el documento. me ayudan a entender esta parte por favor por que igual se podria usar el campo Amount o como es que funciona esta parte. Saludos. |
Hola Pancho,
También podrías usar el campo Amount (BSEG-WRBTR). La idea es identificar en 2 grupos las cuentas usadas en el documento. Para esto se suman, por un lado las cuentas del documento que estén en SET_A y por otro las que estén en SET_B. Si se encuentran cuentas en ambos sets, entonces ambas sumas serán diferentes a cero. Eso es lo que se verifica....si alguna de las sumas es cero, entonces no tiene que dar el error. Saludos! |
Gracias por la respuesta me ha quedado completamente entendido como es que funciona.
En este caso como el campo que tenemos sumaria es el de las posiciones del documento si es 000 (valor inicial) es que no encontro nada, ya que el campo es de tipo Numerico y si la condicion es true OR False = True (no envia el error) y si la condicion es true OR true = true (tampoco lo envia) y la unica forma en la cual se dispara el mensaje es cuando false OR False = False ( envia el mensaje). Agradezco el apoyo. Saludos. |
Husos Horarios son GMT. La hora en este momento es 22:54:44. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web