En ocasiones hemos accesado a la transacción FS10N para obtener Saldos de Cuentas de Mayor, reporte donde nos detalla el debe y haber por mes durante el ejercicio consultado para una cuenta de mayor (o grupo) y su sociedad relacionada.
Un ejemplo del reporte devuelto por la transacción es:
A veces, en algunos desarrollos nos solicitan esos totales que se muestran en la transacción, y si bien podemos obtenerlos por consulta en la tabla FAGLFLEXT, hay una manera directa y usando una BAPI (función que ya viene implementada por SAP y que usa los recursos de manera eficiente).
La BAPI que se usara es la BAPI_GL_ACC_GETPERIODBALANCES, a la cual podemos accesar por la transacción SE37
Si ejecutamos la función nos solicitará el ingreso de algunos parámetros que detallaremos:
- COMPANYCODE -> Donde se ingresa la Sociedad asociado a la cuenta de mayor (campo técnico BUKRS)
- GLACCT -> Valor que recibe la cuenta de mayor (campo técnico HKONT)
- FISCALYEAR -> Donde se ingresa el ejercicio en consulta (campo técnico GJAHR)
- CURRENCYTYPE -> Valor donde se indica el tipo de moneda en que se desea obtener el reporte. En este punto por lo general se manejan 3 escenarios: 10 – Moneda de la Sociedad, 30 – Moneda de Grupo y 40 – Moneda fuerte (campo técnico CURTP)
Vemos que en la parte inferior muestra una tabla (ACCOUNT_BALANCES), que es donde nos devolverá los importes.
Una vez completado los datos se ejecuta la función y en la tabla ACCOUNT_BALANCES veremos que en el resultado regresa con valores
Si damos clic sobre el cuadrado azul con líneas al lado izquierdo de la cantidad de entradas, nos despliega el contenido de la tabla y como se puede ver en el resultado, aparecerán columnas que son homogéneas a lo mostrado en la transacción FS10N, donde se muestran filas para cada mes (periodo)
En caso se ingrese una cuenta que no ha sido creada, o una cuenta que no se encuentra asociada a la sociedad, entre otros errores, notaremos que la tabla ACCOUNT_BALANCES vendrá en blanco y más bien la tabla de importación «RETURN» regresa con resultados
Si le damos clic sobre el icono, nos mostrará el detalle del error
A nivel de código ABAP veremos cómo se implementaría está BAPI:
Se crea el siguiente programa, donde por parámetro de selección se le indica los valores de Sociedad, Cuenta, Ejercicio y Tipo de moneda y se muestra en impresión lo obtenido por la BAPI
REPORT ZLI_PRUEBA.
DATA: WA_RETURN LIKE BAPIRETURN,
GT_ACCOUNT TYPE TABLE OF BAPI3006_4,
WA_ACCOUNT LIKE LINE OF GT_ACCOUNT.
PARAMETERS: P_BUKRS TYPE BKPF–BUKRS,
P_HKONT TYPE BSEG–HKONT,
P_GJAHR TYPE BKPF–GJAHR,
P_CURTP TYPE CURTP.
CALL FUNCTION ‘BAPI_GL_ACC_GETPERIODBALANCES’
EXPORTING
COMPANYCODE = P_BUKRS
GLACCT = P_HKONT
FISCALYEAR = P_GJAHR
CURRENCYTYPE = P_CURTP
IMPORTING
RETURN = WA_RETURN
TABLES
ACCOUNT_BALANCES = GT_ACCOUNT.
IF WA_RETURN–MESSAGE = SPACE.
WRITE:/ ‘PERIODO’, ‘DÉBITO’, ‘CRÉDITO’.
LOOP AT GT_ACCOUNT INTO WA_ACCOUNT.
WRITE:/ WA_ACCOUNT–FIS_PERIOD, WA_ACCOUNT–DEBITS_PER, WA_ACCOUNT–CREDIT_PER.
ENDLOOP.
ELSE.
WRITE:/ WA_RETURN–MESSAGE.
ENDIF.
Cuando ejecutamos el reporte aparece la siguiente pantalla de selección (se le coloca los símbolos de texto de selección)
Cuando ejecutamos, la BAPI es empleada y nos devuelve el resultado impreso
Si ocurriera algún error con los parámetros, se mostrará el mensaje en pantalla