Ir al contenido

Diferencia entre revisiones de «FTR CUSTOMER EXTENT»

De wikiSAP
Franblay (discusión | contribs.)
Página creada con «Añadir pestañas adicionales con campos Z en transacciones de contratos/lineas de credito/facilities Transacciones FTR_EDIT, TM_61, TM_62, TM_63... [http://https://blogs....»
 
Franblay (discusión | contribs.)
Sin resumen de edición
Línea 2: Línea 2:
Transacciones FTR_EDIT, TM_61, TM_62, TM_63...
Transacciones FTR_EDIT, TM_61, TM_62, TM_63...


[http://https://blogs.sap.com/2014/02/19/custom-screen-in-transaction-manager-facility/ Doc SDN]
[https://blogs.sap.com/2014/02/19/custom-screen-in-transaction-manager-facility/ Doc SDN]


Los campos añadidos en esta extension han de ser pasadaos en las BAPIs de FTR_* a traves del parametro EXTENSIONIN
Los campos añadidos en esta extension han de ser pasadaos en las BAPIs de FTR_* a traves del parametro EXTENSIONIN

Revisión del 10:28 20 may 2021

Añadir pestañas adicionales con campos Z en transacciones de contratos/lineas de credito/facilities Transacciones FTR_EDIT, TM_61, TM_62, TM_63...

Doc SDN

Los campos añadidos en esta extension han de ser pasadaos en las BAPIs de FTR_* a traves del parametro EXTENSIONIN

Ejemplo para rellenar EXTENSIONIN

FUNCTION ztrm_ftr_vtbfha_to_extensionin.
*"----------------------------------------------------------------------
*"*"Interfase local
*"  IMPORTING
*"     REFERENCE(I_ZTRM_VTBFHA) TYPE  ZTRM_VTBFHA
*"  EXPORTING
*"     REFERENCE(ET_EXTENSIONIN) TYPE  BAPIPAREX_T
*"  EXCEPTIONS
*"      ILLEGAL_PARAMETER_TYPE
*"----------------------------------------------------------------------

  DATA container       TYPE string.
  DATA lw_extensionin  TYPE bapiparex.
  DATA start           TYPE sytabix VALUE 0.
  DATA length          TYPE sytabix VALUE 960.
  DATA total_length    TYPE sytabix.
  DATA remain          TYPE sytabix.

* Initialization
  REFRESH et_extensionin.

* Copy structure to RAW field (CHAR)
  CALL METHOD cl_abap_container_utilities=>fill_container_c
    EXPORTING
      im_value               = i_ztrm_vtbfha
    IMPORTING
      ex_container           = container
    EXCEPTIONS
      illegal_parameter_type = 1
      OTHERS                 = 2.
  IF sy-subrc <> 0.
    RAISE illegal_parameter_type.
  ENDIF.

* Structure does not fit in a single EXTENSIONIN row, so we do a loop in
* container to split it in BAPIPAREX(960) pieces
  start = 0.
  length = 960.
  total_length = strlen( container ).
  remain = total_length. " Initally all strig remains to be moved to extensionin
  DO.

    IF start >= total_length. " Break loop
      EXIT.
    ENDIF.

    IF length > remain.
      length = remain. " Length of last chunk
    ENDIF.

    CLEAR lw_extensionin.
    lw_extensionin-structure = 'ZTRM_VTBFHA'.
    MOVE container+start(length) TO lw_extensionin+30. " move chunk to extensionin
    APPEND lw_extensionin TO et_extensionin.
    start = start + length. " move pointer to next chunk
    remain = remain - length. " Update remaining chars in the string

  ENDDO.

ENDFUNCTION.


Ejemplo para recuperar componentes de EXTENSIONIN

FUNCTION ZTRM_FTR_EXTENSIONIN_TO_VTBFHA.
*"----------------------------------------------------------------------
*"*"Interfase local
*"  IMPORTING
*"     REFERENCE(IT_EXTENSIONIN) TYPE  BAPIPAREXTAB
*"  EXPORTING
*"     REFERENCE(E_ZTRM_VTBFHA) TYPE  ZTRM_VTBFHA
*"  EXCEPTIONS
*"      ILLEGAL_PARAMETER_TYPE
*"----------------------------------------------------------------------

  DATA container(4096)            TYPE C.
  DATA start                      TYPE sy-tabix.
  FIELD-SYMBOLS <fs_extensionin>  TYPE bapiparex.

  CLEAR e_ztrm_vtbfha.

  start = 0.
  LOOP AT it_extensionin ASSIGNING <fs_extensionin>.

    MOVE <fs_extensionin>+30 TO container+start.
    start = start + 960.

  ENDLOOP.

  CALL METHOD CL_ABAP_CONTAINER_UTILITIES=>READ_CONTAINER_C
    EXPORTING
      im_container = container
    IMPORTING
      ex_value = e_ztrm_vtbfha.

ENDFUNCTION.


Recuperar EXTENSIONIN en la BADI

METHOD if_ex_ftr_customer_extent~evt_bapi_set_custom1.

* Leemos la tabla extensionin de la bapi y pasamos los valores a la ampliacion de la vtbfha
    CALL FUNCTION 'ZTRM_FTR_LEER_EXTENSIONIN_BAPI'
      IMPORTING
        pi_return      = pe_return
      TABLES
        pt_extensionin = pi_extensionin.
*  ENDIF.

ENDMETHOD.

FUNCTION ztrm_ftr_leer_extensionin_bapi .
*"----------------------------------------------------------------------
*"*"Interfase local
*"  EXPORTING
*"     REFERENCE(PI_RETURN) TYPE  BAPIRET2_TAB
*"  TABLES
*"      PT_EXTENSIONIN TYPE  BAPIPAREXTAB
*"----------------------------------------------------------------------
  DATA len  TYPE c LENGTH 3.
  DATA ztab LIKE LINE OF g_tab_fha_appends.
  DATA ls_zvtbfha TYPE ztrm_vtbfha.
  DATA ls_extensionin TYPE bapiparex.

  CHECK pt_extensionin[] IS NOT INITIAL.

* "getting data from append structure (user-exit tab 1)"
  CALL METHOD g_proxy_cust_data->get_cust_data
    IMPORTING
      pe_tab_fha_appends = g_tab_fha_appends
    EXCEPTIONS
      OTHERS             = 4.

* "Read data from EXT structures from function module BAPI_FTR_IRATE_DEALCREAT into append structure G_TAB_FHA_APPENDS"
  IF sy-subrc = 0.

    CLEAR ls_extensionin.
    READ TABLE pt_extensionin INDEX 1 INTO ls_extensionin.

    CLEAR ls_zvtbfha.
    CALL FUNCTION 'ZTRM_FTR_EXTENSIONIN_TO_VTBFHA'
      EXPORTING
        it_extensionin         = pt_extensionin[]
      IMPORTING
        e_ztrm_vtbfha          = ls_zvtbfha
      EXCEPTIONS
        illegal_parameter_type = 1
        OTHERS                 = 2.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.

    ztab-tabname = 'ZTRM_VTBFHA'.
    CALL METHOD cl_abap_container_utilities=>fill_container_c
      EXPORTING
        im_value               = ls_zvtbfha
      IMPORTING
        ex_container           = ztab-content
      EXCEPTIONS
        illegal_parameter_type = 1
        OTHERS                 = 2.
    IF sy-subrc <> 0.
*     Implement suitable error handling here
    ENDIF.

    MODIFY g_tab_fha_appends FROM ztab INDEX 1.

  ENDIF.

* "Saving data from EXT structure into transaction"
  CALL METHOD g_proxy_cust_data->set_cust_data
    EXPORTING
      pi_tab_fha_appends = g_tab_fha_appends
    EXCEPTIONS
      invalid_data       = 1
      invalid_call       = 2
      OTHERS             = 3.
  IF sy-subrc <> 0.  ENDIF.

ENDFUNCTION.


BADIs
Página principal