PDA

Ver la Versión Completa : Validar combinación de cuentas


pancho6102
07/05/15, 20:55:46
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: http://help.sap.com/erp2005_ehp_04/helpdata/en/48/7e0194fa691b5ae10000000a42189c/content.htm

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!.

Hugosap
08/05/15, 11:14:02
Hola,

Cual seria la lógica?

pancho6102
08/05/15, 15:24:34
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

mgitur
10/05/15, 18:17:47
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!

pancho6102
11/05/15, 14:26:51
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.

pancho6102
11/05/15, 17:55:10
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.

mgitur
11/05/15, 18:52:23
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!

pancho6102
11/05/15, 21:00:30
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.