
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.
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)
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 .
class-data GT_ASSET_BUFFER type GTT_ASSET_BUFFER.
*" 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
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.
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
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.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073