on 11-14-2018 4:02 PM
Hey Guys,
i have a problem with calling My BRFplus Function with through ABAP.
BRFplus generates the following Code Snippet. But it doesn't work. My Application dumps at the point:
<lr_te_data_source> = lt_inputbrfplus.
It dumps with the following message: GETWA_NOT_ASSIGNED.
Field Symbol is not assigned. Can someone help me and make my BRfplus-Function-Call work?
CONSTANTS:lv_function_id TYPE if_fdt_types=>id VALUE '0698F9B4010C1EE8B9E785AFFC000AF0'.
DATA:lv_timestamp TYPE timestamp,
lt_name_value TYPE abap_parmbind_tab,
ls_name_value TYPE abap_parmbind,
lr_data TYPE REF TO data,
lx_fdt TYPE REF TO cx_fdt,
lr_te_data_source TYPE REF TO data.
FIELD-SYMBOLS: <la_any> TYPE any,
<lr_te_data_source> TYPE any.
****************************************************************************************************
* Alle Methodenaufrufe, die innerhalb eines Bearbeitungszyklus dieselbe Funktion aufrufen, müssen denselben Zeitstempel verwenden
* Bei Folgeaufrufen derselben Funktion ist es ratsam, alle Aufrufe mit demselben Zeitstempel auszuführen
* Dies dient zur Verbesserung der System-Performance
****************************************************************************************************
* Wenn Sie Strukturen oder Tabellen ohne DDIC-Bindung verwenden, müssen Sie die jeweiligen Typen
* selbst angeben. Fügen Sie den entsprechenden Datentyp in die jeweilige Zeile des Quellcodes ein.
****************************************************************************************************
GET TIME STAMP FIELD lv_timestamp.
****************************************************************************************************
* Funktion ohne Aufzeichnung der Trace-Daten bearbeiten, Kontextdatenobjekte per Namen-/Wertetabelle übergeben
****************************************************************************************************
* Funktionsbearbeitung vorbereiten:
****************************************************************************************************
* Lassen Sie BRFplus Ihre Daten in den für BRFplus erforderlichen Typ konvertieren:
****************************************************************************************************
ls_name_value-name = 'TE_DATA_SOURCE'.
"CREATE DATA lr_te_data_source TYPE [ENTER DESIRED TYPE HERE] .
ASSIGN lr_te_data_source->* TO <lr_te_data_source>.
<lr_te_data_source> = lt_inputbrfplus.
lr_data = lr_te_data_source.
cl_fdt_function_process=>move_data_to_data_object( EXPORTING ir_data = lr_data
iv_function_id = lv_function_id
iv_data_object = '0698F9B4010C1EE8B9EC2E2AD64454A8' "TE_DATA_SOURCE
iv_timestamp = lv_timestamp
iv_trace_generation = abap_false
iv_has_ddic_binding = abap_false
IMPORTING er_data = ls_name_value-value ).
INSERT ls_name_value INTO TABLE lt_name_value.
****************************************************************************************************
* Datenobjekt anlegen, um den Ergebniswert nach der Berarbeitung der Funktion zu sichern
* Sie können den folgenden Aufruf überspringen, wenn Sie bereits eine
* Variable für das Ergebnis festgelegt haben. Ersetzen Sie auch den Parameter
* EA_RESULT im Methodenaufruf CL_FDT_FUNCTION_PROCESS=>PROCESS
* mit der gewünschten Variable.
****************************************************************************************************
cl_fdt_function_process=>get_data_object_reference( EXPORTING iv_function_id = lv_function_id
iv_data_object = '_V_RESULT'
iv_timestamp = lv_timestamp
iv_trace_generation = abap_false
IMPORTING er_data = lr_data ).
ASSIGN lr_data->* TO <la_any>.
TRY.
cl_fdt_function_process=>process( EXPORTING iv_function_id = lv_function_id
iv_timestamp = lv_timestamp
IMPORTING ea_result = <la_any>
CHANGING ct_name_value = lt_name_value ).
CATCH cx_fdt into lx_fdt.
****************************************************************************************************
* Sie können zur Fehlerbehandlung CX_FDT->MT_MESSAGE prüfen.
****************************************************************************************************
ENDTRY.
You get an error because you haven't created your input data reference object. You have to uncomment the line: "CREATE DATA lr_te_data_source TYPE [ENTER DESIRED TYPE HERE], then put the data type inside the [ ] brackets, and assign some values to it so it can be sent to the BRF function as input.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.