/AWS1/IF_CEX=>GETSAVINGSPLANSUTILIZATION00()¶
About GetSavingsPlansUtilizationDetails¶
Retrieves attribute data along with aggregate utilization and savings data for a given
time period. This doesn't support granular or grouped data (daily/monthly) in response. You
can't retrieve data by dates in a single response similar to
GetSavingsPlanUtilization, but you have the option to make multiple calls to
GetSavingsPlanUtilizationDetails by providing individual dates. You can use
GetDimensionValues in SAVINGS_PLANS to determine the possible
dimension values.
GetSavingsPlanUtilizationDetails internally groups data by
SavingsPlansArn.
Method Signature¶
METHODS /AWS1/IF_CEX~GETSAVINGSPLANSUTILIZATION00
IMPORTING
!IO_TIMEPERIOD TYPE REF TO /AWS1/CL_CEXDATEINTERVAL OPTIONAL
!IO_FILTER TYPE REF TO /AWS1/CL_CEXEXPRESSION OPTIONAL
!IT_DATATYPE TYPE /AWS1/CL_CEXSAVINGSPLANSDATA00=>TT_SAVINGSPLANSDATATYPES OPTIONAL
!IV_NEXTTOKEN TYPE /AWS1/CEXNEXTPAGETOKEN OPTIONAL
!IV_MAXRESULTS TYPE /AWS1/CEXMAXRESULTS OPTIONAL
!IO_SORTBY TYPE REF TO /AWS1/CL_CEXSORTDEFINITION OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_cexgetsavingsplansu03
RAISING
/AWS1/CX_CEXDATAUNAVAILEX
/AWS1/CX_CEXINVALIDNEXTTOKENEX
/AWS1/CX_CEXLIMITEXCEEDEDEX
/AWS1/CX_CEXCLIENTEXC
/AWS1/CX_CEXSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
io_timeperiod TYPE REF TO /AWS1/CL_CEXDATEINTERVAL /AWS1/CL_CEXDATEINTERVAL¶
The time period that you want the usage and costs for. The
Startdate must be within 13 months. TheEnddate must be after theStartdate, and before the current date. Future dates can't be used as anEnddate.
Optional arguments:¶
io_filter TYPE REF TO /AWS1/CL_CEXEXPRESSION /AWS1/CL_CEXEXPRESSION¶
Filters Savings Plans utilization coverage data for active Savings Plans dimensions. You can filter data with the following dimensions:
LINKED_ACCOUNT
SAVINGS_PLAN_ARN
REGION
PAYMENT_OPTION
INSTANCE_TYPE_FAMILY
GetSavingsPlansUtilizationDetailsuses the same Expression object as the other operations, but onlyANDis supported among each dimension.
it_datatype TYPE /AWS1/CL_CEXSAVINGSPLANSDATA00=>TT_SAVINGSPLANSDATATYPES TT_SAVINGSPLANSDATATYPES¶
The data type.
iv_nexttoken TYPE /AWS1/CEXNEXTPAGETOKEN /AWS1/CEXNEXTPAGETOKEN¶
The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.
iv_maxresults TYPE /AWS1/CEXMAXRESULTS /AWS1/CEXMAXRESULTS¶
The number of items to be returned in a response. The default is
20, with a minimum value of1.
io_sortby TYPE REF TO /AWS1/CL_CEXSORTDEFINITION /AWS1/CL_CEXSORTDEFINITION¶
The value that you want to sort the data by.
The following values are supported for
Key:
UtilizationPercentage
TotalCommitment
UsedCommitment
UnusedCommitment
NetSavings
AmortizedRecurringCommitment
AmortizedUpfrontCommitmentThe supported values for
SortOrderareASCENDINGandDESCENDING.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_cexgetsavingsplansu03 /AWS1/CL_CEXGETSAVINGSPLANSU03¶
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->getsavingsplansutilization00(
io_filter = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_not = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_not = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_not = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
)
io_sortby = new /aws1/cl_cexsortdefinition(
iv_key = |string|
iv_sortorder = |string|
)
io_timeperiod = new /aws1/cl_cexdateinterval(
iv_end = |string|
iv_start = |string|
)
it_datatype = VALUE /aws1/cl_cexsavingsplansdata00=>tt_savingsplansdatatypes(
( new /aws1/cl_cexsavingsplansdata00( |string| ) )
)
iv_maxresults = 123
iv_nexttoken = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
LOOP AT lo_result->get_savingsplansutilizatio01( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_savingsplanarn = lo_row_1->get_savingsplanarn( ).
LOOP AT lo_row_1->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_attributevalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lo_savingsplansutilization = lo_row_1->get_utilization( ).
IF lo_savingsplansutilization IS NOT INITIAL.
lv_genericstring = lo_savingsplansutilization->get_totalcommitment( ).
lv_genericstring = lo_savingsplansutilization->get_usedcommitment( ).
lv_genericstring = lo_savingsplansutilization->get_unusedcommitment( ).
lv_genericstring = lo_savingsplansutilization->get_utilizationpercentage( ).
ENDIF.
lo_savingsplanssavings = lo_row_1->get_savings( ).
IF lo_savingsplanssavings IS NOT INITIAL.
lv_genericstring = lo_savingsplanssavings->get_netsavings( ).
lv_genericstring = lo_savingsplanssavings->get_ondemandcostequivalent( ).
ENDIF.
lo_savingsplansamortizedco = lo_row_1->get_amortizedcommitment( ).
IF lo_savingsplansamortizedco IS NOT INITIAL.
lv_genericstring = lo_savingsplansamortizedco->get_amortizedrecurringcomm00( ).
lv_genericstring = lo_savingsplansamortizedco->get_amortizedupfrontcommit00( ).
lv_genericstring = lo_savingsplansamortizedco->get_totalamortizedcommitment( ).
ENDIF.
ENDIF.
ENDLOOP.
lo_savingsplansutilization_1 = lo_result->get_total( ).
IF lo_savingsplansutilization_1 IS NOT INITIAL.
lo_savingsplansutilization = lo_savingsplansutilization_1->get_utilization( ).
IF lo_savingsplansutilization IS NOT INITIAL.
lv_genericstring = lo_savingsplansutilization->get_totalcommitment( ).
lv_genericstring = lo_savingsplansutilization->get_usedcommitment( ).
lv_genericstring = lo_savingsplansutilization->get_unusedcommitment( ).
lv_genericstring = lo_savingsplansutilization->get_utilizationpercentage( ).
ENDIF.
lo_savingsplanssavings = lo_savingsplansutilization_1->get_savings( ).
IF lo_savingsplanssavings IS NOT INITIAL.
lv_genericstring = lo_savingsplanssavings->get_netsavings( ).
lv_genericstring = lo_savingsplanssavings->get_ondemandcostequivalent( ).
ENDIF.
lo_savingsplansamortizedco = lo_savingsplansutilization_1->get_amortizedcommitment( ).
IF lo_savingsplansamortizedco IS NOT INITIAL.
lv_genericstring = lo_savingsplansamortizedco->get_amortizedrecurringcomm00( ).
lv_genericstring = lo_savingsplansamortizedco->get_amortizedupfrontcommit00( ).
lv_genericstring = lo_savingsplansamortizedco->get_totalamortizedcommitment( ).
ENDIF.
ENDIF.
lo_dateinterval = lo_result->get_timeperiod( ).
IF lo_dateinterval IS NOT INITIAL.
lv_yearmonthday = lo_dateinterval->get_start( ).
lv_yearmonthday = lo_dateinterval->get_end( ).
ENDIF.
lv_nextpagetoken = lo_result->get_nexttoken( ).
ENDIF.