Extraer Importes de Ingreso/Coste para un cliente

sap-fi
Etiquetas: #<Tag:0x00007fb8dd957ef8>

#1

Buenas a tod@s,

Cuando usamos la transacción FBL3N puedo extraer todos los importes contabilizados en las cuentas de mayor. En la pantalla de selección inicial, podemos preseleccionar solo unas cuentas determinadas, pongamos por ejemplo las relativas a los ingresos derivados de transportes en un periodo de tiempo determinado.

Entonces, usando un “layout” determinado en el resultado podremos ver todos los importes contabilizados en dichas cuentas y contra que cuentas va cada importe (columna “Cuenta contrapartida”).

Ahora entonces podemos filtrar por la cuenta de contrapartida para obtener por ejemplo el importe neto de ingreso por transporte para dicho cliente.

La pregunta es:

es posible establecer dicho filtro (cuenta contrapartida) antes de generar el reporte? el motivo es que si necesitas saber un importe neto para un rango temporal muy amplio, el reporte tardará muchísimo en generarse, lo cual podría evitarse si de antemano restringimos la búsqueda a una determinada cuenta de contrapartida.

Muchas gracias por vuestra ayuda!


#2

Buenas.

Excelente forma de plantear el tema, explicando en detalle el escenario y la duda concreta :+1:

De acuerdo a la nota de SAP 310886 - Line items: Dynamic selections ignored

G/L accounts: logical database: SDF

Permitted tables:

  • SKA1: all fields
  • SKB1: all fields
  • BSIS: all fields

Según yo, el campo que queres agregar es “Cta.CP” está en ese programa en una estructura, pero el nombre técnico es: GKONT

No soy experto en cuestiones técnicas, pero de acuerdo a mi investigación, ese campo no se encuentra en ninguna de las tablas que se permite ampliar la selección para estas transacciones (FBL1n, FBL3n y FBL5n).

Entonces, por lo que veo, no podrás agregar dicho campo.

Saludos


#3

Buenas!,

Muchas gracias por tu respuesta. Lo que intentaba era hacer una query, enlazando las tablas correspondientes para poder obtener el resultado deseado.

Los importes de “ingreso/gasto” se encuentran en la tabla BSIS, y la contrapartida correspondiente a la cuenta de cliente cliente en este caso se llevará a la tabla BSID (parte no compensada) o BSAD (parte compensada).

Ya he visto que no hay forma de enlazar todas estas tablas (BSIS + BSID + BSAD) ya que las dos últimas son excluyentes entre sí. La única forma que podrá haber supongo que es crear una tabla resultado de unir las dos primeras, y después enlazar esta con BSIS, pero no tengo nivel para ello.

Por éste motivo una solución “de aquella manera” es crear dos Querys, una enlazando BSIS con BSID y otra query enlazando BSIS con BSAD.

Saludos


#4

Mmm :thinking: y … no entiendo, por qué complicarse tanto si todo lo tienes en la FBL3N ?
No tendrás el campo como “campo seleccionable” valga la redundancia, pero sí está después como columna de filtrado.


#5

Si si, eso está claro, el problema es que si necesitas simplemente el dato específico para un cliente solo, pongamos por ejemplo que para un periodo de 12 meses, la función va a extraer toda la información de la Sociendad entera para dicho periodo, y si la cantidad de transacciones generada en esa sociedad para ese periodo es muy muy grande (mas del millón fácilmente) pues el reporte tarda muchísimo en generarse, para luego simplemente buscar el dato de una cuenta determinada.

Saludos!


#6

Mmm no, si es un cliente específico, deberías ir vía FBL5N, y así obtener todos los documentos contables.


#7

Gracias por la respuesta! he probado pero el resultado no es el mismo que el obtenido con la FBL3N y filtrando después por cliente. En cualquier caso, aún obteniendo el mismo resultado, con la FBL5N tenemos el mismo problema pero a la inversa, podemos seleccionar cliente pero no podemos preseleccionar las cuentas de Ingreso/Gasto correspondientes, aunque el tiempo de procesamiento de datos se hubiera reducido muchísimo eso si es cierto.

Saludos!


#8

Mmm entonces no te queda otra que acudir a un abaper para que te haga un reporte adicional que cruce ambas estructuras de datos. Cuidado pq podrías tener problemas de performance.