Determinación por tabla/estructura campo
Transacción /EDGE/FC_SPRO → Carpeta de configuración "Determinación automática intérprete" → Subcarpeta de configuración "Determinación por tabla/estructura campo".
A esta configuración solo se puede entrar si previamente se ha seleccionado una determinación automática.
Esta configuración permite indicar el nombre de las estructuras o tablas internas que son enviadas al contexto del proceso al momento de iniciarlo. Con esto último lo que se quiere indicar, es que a nivel ABAP estas estructura y/o tablas internas deben ser enviadas al procedimiento de determinación automática a través de una clase que las contiene.
A manera de ejemplo, se tiene la implementación de la BADI de contabilización de facturas SD, donde dentro de dicha implementación se hace el llamado al inicio de un proceso dependiendo de los datos de la factura. Estos datos están en estructuras y tablas internas. A continuación el código:
FIELD-SYMBOLS: <fs_xvbrk> TYPE vbrk_tab,
<fs_xvbrp> TYPE vbrp_tab,
<fs_xvbpa> TYPE vbpa_tab,
<fs_xkomv> TYPE komv_tab.
DATA: lr_params TYPE REF TO /edge/cl_fc_start_process_para,
lt_data TYPE abap_trans_resbind_tab,
wa_data LIKE LINE OF lt_data,
lr_exc TYPE REF TO /edge/cx_fc_einvoice_exception,
lr_cxroot TYPE REF TO cx_root,
lr_cx2 TYPE REF TO cx_root,
lr_log TYPE REF TO /edge/cl_fc_einvoice_util_logs.
TRY .
wa_data-name = 'VBRK_TAB'.
CREATE DATA wa_data-value TYPE vbrk_tab.
ASSIGN wa_data-value->* TO <fs_xvbrk>.
<fs_xvbrk> = xvbrk.
APPEND wa_data TO lt_data.
wa_data-name = 'VBRP_TAB'.
CREATE DATA wa_data-value TYPE vbrp_tab.
ASSIGN wa_data-value->* TO <fs_xvbrp>.
<fs_xvbrp> = xvbrp.
APPEND wa_data TO lt_data.
wa_data-name = 'VBPA_TAB'.
CREATE DATA wa_data-value TYPE vbpa_tab.
ASSIGN wa_data-value->* TO <fs_xvbpa>.
<fs_xvbpa> = xvbpa.
APPEND wa_data TO lt_data.
wa_data-name = 'KOMV_TAB'.
CREATE DATA wa_data-value TYPE komv_tab.
ASSIGN wa_data-value->* TO <fs_xkomv>.
<fs_xkomv> = xkomv.
APPEND wa_data TO lt_data.
CREATE OBJECT lr_params
EXPORTING
pi_data = lt_data.
/edge/cl_fc_start_process_ext=>start_process_sync( EXPORTING pi_do_commit = abap_false
CHANGING pc_params = lr_params ).
CATCH /edge/cx_fc_einvoice_exception INTO lr_exc.
TRY .
CREATE OBJECT lr_log
EXPORTING
pi_object = /edge/cl_fc_constants=>log_object
pi_subobject = /edge/cl_fc_constants=>sublog_startp
pi_alprog = sy-cprog.
lr_log->add_messages_from_exception( lr_exc ).
CATCH cx_root INTO lr_cx2.
* Nothing to do!!!
ENDTRY.
CATCH cx_root INTO lr_cxroot.
TRY .
CREATE OBJECT lr_log
EXPORTING
pi_object = /edge/cl_fc_constants=>log_object
pi_subobject = /edge/cl_fc_constants=>sublog_startp
pi_alprog = sy-cprog.
lr_log->add_messages_from_exception( lr_cxroot ).
CATCH cx_root INTO lr_cx2.
* Nothing to do!!!
ENDTRY.
ENDTRY.
En el anterior código se puede observar que se hizo el inicio del proceso enviando las tablas internas VBRK_TAB, VBRP_TAB, VBPA_TAB y KOMV_TAB. De esta forma se envían al inicio del proceso para que sean obtenidas por el proceso de determinación automática.
Luego en la configuración funcional se deben indicar los siguientes campos:
Tabla
Corresponde al nombre de la tabla interna o estructura que se pasó como parámetro de entrada al proceso. Existe una estructura que siempre se tiene en cuenta por defecto y es la estructura SY, la cual a a nivel del diccionario ABAP se debe ingresar como SYST.
Si al proceso de determinación automática no le llega alguna de estas tablas o estructuras, el proceso asume entonces como un falso para la determinación y concluye la ejecución de la misma.
En el caso de indicar tablas internas, se verifican uno a uno sus registros y si existe al menos uno que cumple con la condición del campo indicado, se retorna true para la determinación por esa tabla.Nombre campo
Corresponde al nombre del campo que se va a verificar de la estructura o tabla que se indicó en el campo anterior. En caso de no existir el campo en la estructura o tabla interna, la determinación retornará falso.Nombre validación
Nombre que identifique a la validación. Esta información solo es por motivos de trazabilidad en el log.
Luego de configurar los campos de las tablas internas y/o estructuras que se deberán validar para verificar si se debe instanciar el intérprete de la determinación automática, se debe configurar los valores que deben tener dichos campos en la estructura o tabla interna. Esto se configura a través de la opción: Valores para la determinación.
Un ejemplo de la configuración de los campos es el siguiente:
Avvale 2024