/AWS1/IF_TNB=>CREATECALLANALYTICSCATEGORY()¶
About CreateCallAnalyticsCategory¶
Creates a new Call Analytics category.
All categories are automatically applied to your Call Analytics transcriptions. Note that in order to apply categories to your transcriptions, you must create them before submitting your transcription request, as categories cannot be applied retroactively.
When creating a new category, you can use the InputType parameter to
label the category as a POST_CALL or a REAL_TIME category.
POST_CALL categories can only be applied to post-call transcriptions and
REAL_TIME categories can only be applied to real-time transcriptions. If you
do not include InputType, your category is created as a
POST_CALL category by default.
Call Analytics categories are composed of rules. For each category, you must create between 1 and 20 rules. Rules can include these parameters: , , , and .
To update an existing category, see .
To learn more about Call Analytics categories, see Creating categories for post-call transcriptions and Creating categories for real-time transcriptions.
Method Signature¶
METHODS /AWS1/IF_TNB~CREATECALLANALYTICSCATEGORY
IMPORTING
!IV_CATEGORYNAME TYPE /AWS1/TNBCATEGORYNAME OPTIONAL
!IT_RULES TYPE /AWS1/CL_TNBRULE=>TT_RULELIST OPTIONAL
!IT_TAGS TYPE /AWS1/CL_TNBTAG=>TT_TAGLIST OPTIONAL
!IV_INPUTTYPE TYPE /AWS1/TNBINPUTTYPE OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_tnbcrecallalyscatrsp
RAISING
/AWS1/CX_TNBBADREQUESTEX
/AWS1/CX_TNBCONFLICTEXCEPTION
/AWS1/CX_TNBINTERNALFAILUREEX
/AWS1/CX_TNBLIMITEXCEEDEDEX
/AWS1/CX_TNBCLIENTEXC
/AWS1/CX_TNBSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_categoryname TYPE /AWS1/TNBCATEGORYNAME /AWS1/TNBCATEGORYNAME¶
A unique name, chosen by you, for your Call Analytics category. It's helpful to use a detailed naming system that will make sense to you in the future. For example, it's better to use
sentiment-positive-last30secondsfor a category over a generic name liketest-category.Category names are case sensitive.
it_rules TYPE /AWS1/CL_TNBRULE=>TT_RULELIST TT_RULELIST¶
Rules define a Call Analytics category. When creating a new category, you must create between 1 and 20 rules for that category. For each rule, you specify a filter you want applied to the attributes of a call. For example, you can choose a sentiment filter that detects if a customer's sentiment was positive during the last 30 seconds of the call.
Optional arguments:¶
it_tags TYPE /AWS1/CL_TNBTAG=>TT_TAGLIST TT_TAGLIST¶
Adds one or more custom tags, each in the form of a key:value pair, to a new call analytics category at the time you start this new job.
To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
iv_inputtype TYPE /AWS1/TNBINPUTTYPE /AWS1/TNBINPUTTYPE¶
Choose whether you want to create a real-time or a post-call category for your Call Analytics transcription.
Specifying
POST_CALLassigns your category to post-call transcriptions; categories with this input type cannot be applied to streaming (real-time) transcriptions.Specifying
REAL_TIMEassigns your category to streaming transcriptions; categories with this input type cannot be applied to post-call transcriptions.If you do not include
InputType, your category is created as a post-call category by default.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_tnbcrecallalyscatrsp /AWS1/CL_TNBCRECALLALYSCATRSP¶
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->createcallanalyticscategory(
it_rules = VALUE /aws1/cl_tnbrule=>tt_rulelist(
(
new /aws1/cl_tnbrule(
io_interruptionfilter = new /aws1/cl_tnbinterruptionfilter(
io_absolutetimerange = new /aws1/cl_tnbabsolutetimerange(
iv_endtime = 123
iv_first = 123
iv_last = 123
iv_starttime = 123
)
io_relativetimerange = new /aws1/cl_tnbrelativetimerange(
iv_endpercentage = 123
iv_first = 123
iv_last = 123
iv_startpercentage = 123
)
iv_negate = ABAP_TRUE
iv_participantrole = |string|
iv_threshold = 123
)
io_nontalktimefilter = new /aws1/cl_tnbnontalktimefilter(
io_absolutetimerange = new /aws1/cl_tnbabsolutetimerange(
iv_endtime = 123
iv_first = 123
iv_last = 123
iv_starttime = 123
)
io_relativetimerange = new /aws1/cl_tnbrelativetimerange(
iv_endpercentage = 123
iv_first = 123
iv_last = 123
iv_startpercentage = 123
)
iv_negate = ABAP_TRUE
iv_threshold = 123
)
io_sentimentfilter = new /aws1/cl_tnbsentimentfilter(
io_absolutetimerange = new /aws1/cl_tnbabsolutetimerange(
iv_endtime = 123
iv_first = 123
iv_last = 123
iv_starttime = 123
)
io_relativetimerange = new /aws1/cl_tnbrelativetimerange(
iv_endpercentage = 123
iv_first = 123
iv_last = 123
iv_startpercentage = 123
)
it_sentiments = VALUE /aws1/cl_tnbsentimentvallist_w=>tt_sentimentvaluelist(
( new /aws1/cl_tnbsentimentvallist_w( |string| ) )
)
iv_negate = ABAP_TRUE
iv_participantrole = |string|
)
io_transcriptfilter = new /aws1/cl_tnbtranscriptfilter(
io_absolutetimerange = new /aws1/cl_tnbabsolutetimerange(
iv_endtime = 123
iv_first = 123
iv_last = 123
iv_starttime = 123
)
io_relativetimerange = new /aws1/cl_tnbrelativetimerange(
iv_endpercentage = 123
iv_first = 123
iv_last = 123
iv_startpercentage = 123
)
it_targets = VALUE /aws1/cl_tnbstringtargetlist_w=>tt_stringtargetlist(
( new /aws1/cl_tnbstringtargetlist_w( |string| ) )
)
iv_negate = ABAP_TRUE
iv_participantrole = |string|
iv_transcriptfiltertype = |string|
)
)
)
)
it_tags = VALUE /aws1/cl_tnbtag=>tt_taglist(
(
new /aws1/cl_tnbtag(
iv_key = |string|
iv_value = |string|
)
)
)
iv_categoryname = |string|
iv_inputtype = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_categoryproperties = lo_result->get_categoryproperties( ).
IF lo_categoryproperties IS NOT INITIAL.
lv_categoryname = lo_categoryproperties->get_categoryname( ).
LOOP AT lo_categoryproperties->get_rules( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lo_nontalktimefilter = lo_row_1->get_nontalktimefilter( ).
IF lo_nontalktimefilter IS NOT INITIAL.
lv_timestampmilliseconds = lo_nontalktimefilter->get_threshold( ).
lo_absolutetimerange = lo_nontalktimefilter->get_absolutetimerange( ).
IF lo_absolutetimerange IS NOT INITIAL.
lv_timestampmilliseconds = lo_absolutetimerange->get_starttime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_endtime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_first( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_last( ).
ENDIF.
lo_relativetimerange = lo_nontalktimefilter->get_relativetimerange( ).
IF lo_relativetimerange IS NOT INITIAL.
lv_percentage = lo_relativetimerange->get_startpercentage( ).
lv_percentage = lo_relativetimerange->get_endpercentage( ).
lv_percentage = lo_relativetimerange->get_first( ).
lv_percentage = lo_relativetimerange->get_last( ).
ENDIF.
lv_boolean = lo_nontalktimefilter->get_negate( ).
ENDIF.
lo_interruptionfilter = lo_row_1->get_interruptionfilter( ).
IF lo_interruptionfilter IS NOT INITIAL.
lv_timestampmilliseconds = lo_interruptionfilter->get_threshold( ).
lv_participantrole = lo_interruptionfilter->get_participantrole( ).
lo_absolutetimerange = lo_interruptionfilter->get_absolutetimerange( ).
IF lo_absolutetimerange IS NOT INITIAL.
lv_timestampmilliseconds = lo_absolutetimerange->get_starttime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_endtime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_first( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_last( ).
ENDIF.
lo_relativetimerange = lo_interruptionfilter->get_relativetimerange( ).
IF lo_relativetimerange IS NOT INITIAL.
lv_percentage = lo_relativetimerange->get_startpercentage( ).
lv_percentage = lo_relativetimerange->get_endpercentage( ).
lv_percentage = lo_relativetimerange->get_first( ).
lv_percentage = lo_relativetimerange->get_last( ).
ENDIF.
lv_boolean = lo_interruptionfilter->get_negate( ).
ENDIF.
lo_transcriptfilter = lo_row_1->get_transcriptfilter( ).
IF lo_transcriptfilter IS NOT INITIAL.
lv_transcriptfiltertype = lo_transcriptfilter->get_transcriptfiltertype( ).
lo_absolutetimerange = lo_transcriptfilter->get_absolutetimerange( ).
IF lo_absolutetimerange IS NOT INITIAL.
lv_timestampmilliseconds = lo_absolutetimerange->get_starttime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_endtime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_first( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_last( ).
ENDIF.
lo_relativetimerange = lo_transcriptfilter->get_relativetimerange( ).
IF lo_relativetimerange IS NOT INITIAL.
lv_percentage = lo_relativetimerange->get_startpercentage( ).
lv_percentage = lo_relativetimerange->get_endpercentage( ).
lv_percentage = lo_relativetimerange->get_first( ).
lv_percentage = lo_relativetimerange->get_last( ).
ENDIF.
lv_participantrole = lo_transcriptfilter->get_participantrole( ).
lv_boolean = lo_transcriptfilter->get_negate( ).
LOOP AT lo_transcriptfilter->get_targets( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_nonemptystring = lo_row_3->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lo_sentimentfilter = lo_row_1->get_sentimentfilter( ).
IF lo_sentimentfilter IS NOT INITIAL.
LOOP AT lo_sentimentfilter->get_sentiments( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_sentimentvalue = lo_row_5->get_value( ).
ENDIF.
ENDLOOP.
lo_absolutetimerange = lo_sentimentfilter->get_absolutetimerange( ).
IF lo_absolutetimerange IS NOT INITIAL.
lv_timestampmilliseconds = lo_absolutetimerange->get_starttime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_endtime( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_first( ).
lv_timestampmilliseconds = lo_absolutetimerange->get_last( ).
ENDIF.
lo_relativetimerange = lo_sentimentfilter->get_relativetimerange( ).
IF lo_relativetimerange IS NOT INITIAL.
lv_percentage = lo_relativetimerange->get_startpercentage( ).
lv_percentage = lo_relativetimerange->get_endpercentage( ).
lv_percentage = lo_relativetimerange->get_first( ).
lv_percentage = lo_relativetimerange->get_last( ).
ENDIF.
lv_participantrole = lo_sentimentfilter->get_participantrole( ).
lv_boolean = lo_sentimentfilter->get_negate( ).
ENDIF.
ENDIF.
ENDLOOP.
lv_datetime = lo_categoryproperties->get_createtime( ).
lv_datetime = lo_categoryproperties->get_lastupdatetime( ).
LOOP AT lo_categoryproperties->get_tags( ) into lo_row_6.
lo_row_7 = lo_row_6.
IF lo_row_7 IS NOT INITIAL.
lv_tagkey = lo_row_7->get_key( ).
lv_tagvalue = lo_row_7->get_value( ).
ENDIF.
ENDLOOP.
lv_inputtype = lo_categoryproperties->get_inputtype( ).
ENDIF.
ENDIF.