How to receive sub-service limits in APS 1.2 applications
Modified on: Fri, 17 Nov 2023 12:07 PM2020-01-22
Symptoms
Application needs to receive limits of sub-services in subscription.
Resolution
Limits on sub-services can be received in top service via list settings with special classes, for instances:
<setting id="subservice_limits" type="list" protected="true"
element-type="string" class="subservice-limits" visibility="hidden">
<name>Limits for subservices</name>
</setting>
<setting id="subservice_ids" type="list" protected="true"
element-type="string" class="subservice-ids" visibility="hidden">
<name>IDs for subservices</name>
</setting>
<setting id="subservice_setting_names" type="list" protected="true"
element-type="string" class="subservice-setting-names" visibility="hidden">
<name>Names of subservice settings</name>
</setting>
<setting id="subservice_setting_values" type="list"
protected="true" element-type="string" class="subservice-setting-values"
visibility="hidden">
<name>Default values of subservice settings</name>
</setting>
If subscription has 'Application Service' resource types, for example resource type for 'account' sub-service, these setting lists contain sub-service limits, ids, and hidden settings, that are defined in 'Application Service' resource types.
Application script receives these settings as in the following example:
SETTINGS_subservice_ids_1=65
SETTINGS_subservice_ids_2=66, 67
SETTINGS_subservice_limits_1=3
SETTINGS_subservice_limits_2=34, 10
SETTINGS_subservice_setting_names_1=65_filequota
SETTINGS_subservice_setting_names_2=66_service_level, 67_service_level
SETTINGS_subservice_setting_values_1=3456
SETTINGS_subservice_setting_values_2=default, premium
SETTINGS_subservice_ids_1 corresponds to the first sub-service, SETTINGS_subservice_ids_2 - second sub-service, and so on. Order is NOT necessary the same as services appear in APP-META.xml. Rely on setting names (SETTINGS_subservice_setting_names) to identify sub-service
Each of the settings contain comma separated list of values.
SETTINGS_subservice_ids_N - internal resource type ids for sub-service N,
SETTINGS_subservice_limits_N - corresponding limits,
SETTINGS_subservice_setting_names_N - hidden settings that are defined in sub-service resource type.
In the example above, there is service_level setting, in resource type 66 it is set to 'default', in resource type 67 - premium.
So, if sub-service #2 is a mailbox, we can see that customer purchased 34 'default' and 10 'premium' mailboxes.