/AWS1/IF_CUS=>SEARCHRECOMMENDATIONS()¶
About SearchRecommendations¶
Retrieves recommendations for a profile in a specific domain. The profile is identified
using a search key, which consists of a KeyName and a KeyValues list.
The KeyName can be a predefined key (for example, _profileId,
_phone, _email) or a custom-defined key.
The search key must match exactly one profile. If no profile matches the search key, the
operation returns a ResourceNotFoundException. If more than one profile matches
the search key, the operation returns a BadRequestException. You can use the
SearchProfiles API to review the matching profiles.
Method Signature¶
METHODS /AWS1/IF_CUS~SEARCHRECOMMENDATIONS
IMPORTING
!IV_DOMAINNAME TYPE /AWS1/CUSNAME OPTIONAL
!IV_KEYNAME TYPE /AWS1/CUSNAME OPTIONAL
!IT_KEYVALUES TYPE /AWS1/CL_CUSKEYVALUESLIST_W=>TT_KEYVALUESLIST OPTIONAL
!IO_RECOMMENDER TYPE REF TO /AWS1/CL_CUSRECOMMENDER OPTIONAL
!IT_CANDIDATEIDS TYPE /AWS1/CL_CUSCANDIDATEIDLIST_W=>TT_CANDIDATEIDLIST OPTIONAL
!IT_CONTEXT TYPE /AWS1/CL_CUSRECOMMENDERCTX_W=>TT_RECOMMENDERCONTEXT OPTIONAL
!IO_DIVERSITY TYPE REF TO /AWS1/CL_CUSRECDIVERSITYCONFIG OPTIONAL
!IO_METADATA TYPE REF TO /AWS1/CL_CUSRECMETADATA OPTIONAL
!IV_MAXRECOMMENDATIONS TYPE /AWS1/CUSMAXSIZE500 OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_cussearchrecsresponse
RAISING
/AWS1/CX_CUSACCESSDENIEDEX
/AWS1/CX_CUSBADREQUESTEX
/AWS1/CX_CUSINTERNALSERVEREX
/AWS1/CX_CUSRESOURCENOTFOUNDEX
/AWS1/CX_CUSTHROTTLINGEX
/AWS1/CX_CUSCLIENTEXC
/AWS1/CX_CUSSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_domainname TYPE /AWS1/CUSNAME /AWS1/CUSNAME¶
The unique name of the domain.
iv_keyname TYPE /AWS1/CUSNAME /AWS1/CUSNAME¶
A searchable identifier of a customer profile. You can use a predefined key, such as
_profileId,_phone, or_email, or a custom-defined key.
it_keyvalues TYPE /AWS1/CL_CUSKEYVALUESLIST_W=>TT_KEYVALUESLIST TT_KEYVALUESLIST¶
A list of key values. Provide one value for each field of the search key.
io_recommender TYPE REF TO /AWS1/CL_CUSRECOMMENDER /AWS1/CL_CUSRECOMMENDER¶
The recommender used to generate the recommendations.
Optional arguments:¶
it_candidateids TYPE /AWS1/CL_CUSCANDIDATEIDLIST_W=>TT_CANDIDATEIDLIST TT_CANDIDATEIDLIST¶
A list of item IDs to rank for the user. Use this when you want to re-rank a specific set of items rather than getting recommendations from the full item catalog. Required for personalized-ranking use cases.
it_context TYPE /AWS1/CL_CUSRECOMMENDERCTX_W=>TT_RECOMMENDERCONTEXT TT_RECOMMENDERCONTEXT¶
The contextual metadata used to provide dynamic runtime information to tailor recommendations.
io_diversity TYPE REF TO /AWS1/CL_CUSRECDIVERSITYCONFIG /AWS1/CL_CUSRECDIVERSITYCONFIG¶
Runtime diversity configuration for this request. Enables diversity-aware recommendations and optionally supplies values for placeholder-based diversity caps configured on the recommender.
io_metadata TYPE REF TO /AWS1/CL_CUSRECMETADATA /AWS1/CL_CUSRECMETADATA¶
Configuration for metadata to include in recommendation responses.
iv_maxrecommendations TYPE /AWS1/CUSMAXSIZE500 /AWS1/CUSMAXSIZE500¶
The maximum number of recommendations to return. The default value is 5.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_cussearchrecsresponse /AWS1/CL_CUSSEARCHRECSRESPONSE¶
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->searchrecommendations(
io_diversity = new /aws1/cl_cusrecdiversityconfig(
it_values = VALUE /aws1/cl_cusdiversityvalsmap_w=>tt_diversityvaluesmap(
(
VALUE /aws1/cl_cusdiversityvalsmap_w=>ts_diversityvaluesmap_maprow(
key = |string|
value = new /aws1/cl_cusdiversityvalsmap_w( 123 )
)
)
)
iv_enabled = ABAP_TRUE
)
io_metadata = new /aws1/cl_cusrecmetadata(
it_columns = VALUE /aws1/cl_cusmetcolumnslist_w=>tt_metadatacolumnslist(
( new /aws1/cl_cusmetcolumnslist_w( |string| ) )
)
)
io_recommender = new /aws1/cl_cusrecommender(
it_filters = VALUE /aws1/cl_cusrecommenderfilter=>tt_recommenderfilters(
(
new /aws1/cl_cusrecommenderfilter(
it_values = VALUE /aws1/cl_cusrecmdrfiltervals_w=>tt_recommenderfiltervalues(
(
VALUE /aws1/cl_cusrecmdrfiltervals_w=>ts_recmdrfiltervalues_maprow(
key = |string|
value = new /aws1/cl_cusrecmdrfiltervals_w( |string| )
)
)
)
iv_name = |string|
)
)
)
it_promotionalfilters = VALUE /aws1/cl_cusrecmdrpromofilter=>tt_recommenderpromofilters(
(
new /aws1/cl_cusrecmdrpromofilter(
it_values = VALUE /aws1/cl_cusrecmdrfiltervals_w=>tt_recommenderfiltervalues(
(
VALUE /aws1/cl_cusrecmdrfiltervals_w=>ts_recmdrfiltervalues_maprow(
key = |string|
value = new /aws1/cl_cusrecmdrfiltervals_w( |string| )
)
)
)
iv_name = |string|
iv_percentpromoteditems = 123
iv_promotionname = |string|
)
)
)
iv_name = |string|
)
it_candidateids = VALUE /aws1/cl_cuscandidateidlist_w=>tt_candidateidlist(
( new /aws1/cl_cuscandidateidlist_w( |string| ) )
)
it_context = VALUE /aws1/cl_cusrecommenderctx_w=>tt_recommendercontext(
(
VALUE /aws1/cl_cusrecommenderctx_w=>ts_recommendercontext_maprow(
key = |string|
value = new /aws1/cl_cusrecommenderctx_w( |string| )
)
)
)
it_keyvalues = VALUE /aws1/cl_cuskeyvalueslist_w=>tt_keyvalueslist(
( new /aws1/cl_cuskeyvalueslist_w( |string| ) )
)
iv_domainname = |string|
iv_keyname = |string|
iv_maxrecommendations = 123
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_uuid = lo_result->get_profileid( ).
LOOP AT lo_result->get_recommendations( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lo_catalogitem = lo_row_1->get_catalogitem( ).
IF lo_catalogitem IS NOT INITIAL.
lv_sensitivestring1to255 = lo_catalogitem->get_id( ).
lv_sensitivestring1to255 = lo_catalogitem->get_name( ).
lv_sensitivestring1to255 = lo_catalogitem->get_code( ).
lv_sensitivestring1to255 = lo_catalogitem->get_type( ).
lv_sensitivestring1to255 = lo_catalogitem->get_category( ).
lv_sensitivestring1to255 = lo_catalogitem->get_description( ).
lv_sensitivestring1to1000 = lo_catalogitem->get_additionalinformation( ).
lv_sensitivestring1to1000 = lo_catalogitem->get_imagelink( ).
lv_sensitivestring1to1000 = lo_catalogitem->get_link( ).
lv_timestamp = lo_catalogitem->get_createdat( ).
lv_timestamp = lo_catalogitem->get_updatedat( ).
lv_sensitivestring1to255 = lo_catalogitem->get_price( ).
LOOP AT lo_catalogitem->get_attributes( ) into ls_row_2.
lv_key = ls_row_2-key.
lo_value = ls_row_2-value.
IF lo_value IS NOT INITIAL.
lv_string1to255 = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_double0to1 = lo_row_1->get_score( ).
ENDIF.
ENDLOOP.
ENDIF.