/AWS1/IF_APY=>EVALUATECODE()¶
About EvaluateCode¶
Evaluates the given code and returns the response. The code definition requirements
depend on the specified runtime. For APPSYNC_JS runtimes, the code defines the
request and response functions. The request function takes the incoming request after a
GraphQL operation is parsed and converts it into a request configuration for the selected
data source operation. The response function interprets responses from the data source and
maps it to the shape of the GraphQL field output type.
Method Signature¶
METHODS /AWS1/IF_APY~EVALUATECODE
IMPORTING
!IO_RUNTIME TYPE REF TO /AWS1/CL_APYAPPSYNCRUNTIME OPTIONAL
!IV_CODE TYPE /AWS1/APYCODE OPTIONAL
!IV_CONTEXT TYPE /AWS1/APYCONTEXT OPTIONAL
!IV_FUNCTION TYPE /AWS1/APYSTRING OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_apyevaluatecodersp
RAISING
/AWS1/CX_APYACCESSDENIEDEX
/AWS1/CX_APYBADREQUESTEX
/AWS1/CX_APYINTERNALFAILUREEX
/AWS1/CX_APYCLIENTEXC
/AWS1/CX_APYSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
io_runtime TYPE REF TO /AWS1/CL_APYAPPSYNCRUNTIME /AWS1/CL_APYAPPSYNCRUNTIME¶
The runtime to be used when evaluating the code. Currently, only the
APPSYNC_JSruntime is supported.
iv_code TYPE /AWS1/APYCODE /AWS1/APYCODE¶
The code definition to be evaluated. Note that
codeandruntimeare both required for this action. Theruntimevalue must beAPPSYNC_JS.
iv_context TYPE /AWS1/APYCONTEXT /AWS1/APYCONTEXT¶
The map that holds all of the contextual information for your resolver invocation. A
contextis required for this action.
Optional arguments:¶
iv_function TYPE /AWS1/APYSTRING /AWS1/APYSTRING¶
The function within the code to be evaluated. If provided, the valid values are
requestandresponse.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_apyevaluatecodersp /AWS1/CL_APYEVALUATECODERSP¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->evaluatecode(
io_runtime = new /aws1/cl_apyappsyncruntime(
iv_name = |string|
iv_runtimeversion = |string|
)
iv_code = |string|
iv_context = |string|
iv_function = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_evaluationresult = lo_result->get_evaluationresult( ).
lo_evaluatecodeerrordetail = lo_result->get_error( ).
IF lo_evaluatecodeerrordetail IS NOT INITIAL.
lv_errormessage = lo_evaluatecodeerrordetail->get_message( ).
LOOP AT lo_evaluatecodeerrordetail->get_codeerrors( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_string = lo_row_1->get_errortype( ).
lv_string = lo_row_1->get_value( ).
lo_codeerrorlocation = lo_row_1->get_location( ).
IF lo_codeerrorlocation IS NOT INITIAL.
lv_codeerrorline = lo_codeerrorlocation->get_line( ).
lv_codeerrorcolumn = lo_codeerrorlocation->get_column( ).
lv_codeerrorspan = lo_codeerrorlocation->get_span( ).
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT lo_result->get_logs( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_string = lo_row_3->get_value( ).
ENDIF.
ENDLOOP.
lv_stash = lo_result->get_stash( ).
lv_outerrors = lo_result->get_outerrors( ).
ENDIF.