• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
#BADI  ·  #BADI_FINS_CFIN_AC_INTEFACE  ·  #cfin  ·  #enhancement_spot  ·  abap  ·  Technical Articles

[Central Finance]: transfiera la información de activos a campos definidos por el cliente en la interfaz de publicación secundaria de FI

By s4pcademy 


Planteamiento del problema:

Durante los últimos días, estuve trabajando en un requisito que requería una interfaz de publicación de CFIN FI para transferir datos de información de Activos como los campos ANLN1 y ANLN2 de uno de los sistemas ECC, ya que se eliminó antes de publicar en el sistema Target.

Desafío: Para lograr este requisito, se nos impidió mejorar CFIN BADI en el sistema de origen para completar el campo adicional en el estándar Incluir CI_CFIN_ACCIT_APP_EXT en (CFIN_ACCIT_APP) y llevar la información a CFIN para manipular el valor y lograr el resultado.

Ganancias: En esta publicación de blog, cubriremos los pasos para realizar esta mejora solo en el Objetivo del sistema.

Pasos para la Resolución:

  1. Continuar para el lugar de mejora ES_FINS_CFIN_INTERFACE.

Implementar el BADI_FINS_CFIN_AC_INTERFACE si no existe una implementación hasta el momento, ya que el uso múltiple de este BADI no es posible.

(Las imágenes utilizadas son datos de prueba que he creado libres de datos e información personal)

  1. Proporcione el nombre y los detalles de la implementación de BADI y cree una clase personalizada correspondiente a la interfaz según se le solicite y aterrice en la pantalla a continuación.ZES_CFIN_Enhancement%20and%20ZCL_CFIN_ENH_CLASS
  2. Aquí, según la depuración realizada con /AIF/ERR, entiendo que la información de activos se borró en el método CL_FINS_CFIN_AC_DOC_AGENT~MANDATORY_PREPARATION y esto se activa después de IF_BADI_FINS_CFIN_AC_INTERFACE~GET_PROCESS_CONTROL, por lo que este método sería el punto ideal para transferir la información de activos requerida en el búfer. mesa.
  • Entonces, he creado la siguiente tabla de búfer dentro de Tipos:
types:
    BEGIN OF gts_asset_buffer,
        bukrs TYPE bukrs,
        belnr TYPE belnr_d,
        gjahr TYPE gjahr,
        buzei TYPE buzei,
        anln1 TYPE anln1,
        anln2 TYPE anln2,
      END OF gts_asset_buffer .
  types:
    gtt_asset_buffer TYPE TABLE OF gts_asset_buffer .
  • Y tabla interna dentro de los atributos:
class-data GT_ASSET_BUFFER type GTT_ASSET_BUFFER.

  • Y dentro del método, GET_PROCESS_CONTROL implementado debajo del código fuente
*" Loading the class-global table GT_ASSET_BUFFER created for data records
* If ANLN1 is initial, ANLN2 will be '0'  as well - so no need to concatenate in that scenario as per requirement
*" Adding BUKRS, BELNR, GJAHR, BUZEI for key-field combination to later map the data as per them
    gt_asset_buffer[] = VALUE #( FOR ls_data IN is_posting_data-accit_ext
                                          WHERE ( anln1 IS NOT INITIAL )
                                  ( bukrs = ls_data-bukrs
                                    belnr = ls_data-belnr
                                    gjahr = ls_data-gjahr
                                    buzei = ls_data-buzei
                                    anln1 = ls_data-anln1
                                    anln2 = ls_data-anln2
                                  )
                               ).
    SORT gt_asset_buffer[].          " sort to read with Binary search
  1. Ahora, preparar cualquier dato antes de publicar PREPARE_INPUT_DATA es el método adecuado para actualizar los datos de publicación.
LOOP AT cs_posting_data-accit_ext ASSIGNING FIELD-SYMBOL(<ls_accit2>).
  READ TABLE gt_asset_buffer ASSIGNING FIELD-SYMBOL(<ls_asset>)
                             BINARY SEARCH WITH KEY bukrs = <ls_accit2>-bukrs    " sorted in GET_PROCESS_CONTROL
                                                    belnr = <ls_accit2>-belnr
                                                    gjahr = <ls_accit2>-gjahr
                                                    buzei = <ls_accit2>-buzei.
  IF sy-subrc = 0.
    <ls_accit2>-zztext2 = |{ <ls_asset>-anln1 }{ zif_fire_constants=>gc_hypen }{ <ls_asset>-anln2 }|.
    UNASSIGN <ls_asset>.
  ENDIF.
ENDLOOP.

Resultado:

Ahora, cree un documento en el sistema de origen y, según el manejo de SLT, el documento se publica y verifica lo mismo en /AIF/ERR en el sistema Target CFIN.

Sistema de origen:

Objetivo del sistema:

/AIF/ERROR

/AIF/ERROR

Enlaces de referencia:

Punto 1.5.3.1 Personalización de la configuración de los documentos de activos fijos

2543899: envío de datos definidos por el cliente desde los sistemas de origen a Central Finance

Página del tema:

Tema ABAP: https://community.sap.com/topics/abap,

publicar y responder preguntas https://answers.sap.com/tags/833755570260738661924709785639136.




activoscamposCentralclientedefinidosFinanceInformacióninterfazporpublicaciónsecundariatransfiera

Artículos relacionados


crm  ·  cx  ·  help  ·  Product Information  ·  support
Mejore su equipo de proyecto: el nuevo soporte de experiencia del cliente de SAP brinda experiencia a los socios sin costo adicional
Product Information
¿Esperar demasiado para las aprobaciones? ¿Qué hay de establecer plazos por adelantado?
Event Information
Cumplir con los requisitos del cliente a bajo costo de inventario con SAP S/4HANA Cloud, edición pública
Cree una notificación de mantenimiento para SAP S/4HANA utilizando IBM Watson y los servicios de SAP
Previo
Aplicación no administrada para publicar solicitudes de compra en S/4
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.