首页 > 解决方案 > NEO 中的租户访问器

问题描述

我曾尝试在 NEO 环境中使用 TenantAccessor。从 TenantAccessor.getCurrentTenant().getTenantId() 生成的 TenantId 作为 GUID 返回。但是,在 NEO 中,我无法将 GUID 映射到子帐户。期望是获得子账户名称。

请让我知道子帐户和租户的含义之间的区别。

标签: s4sdk

解决方案


依赖帐户名称的问题在于,截至今天,SAP Cloud Platform Neo 上的帐户名称的唯一性没有明确的合同。虽然租户标识符和帐户名称之间的关系通常是 1:1 的关系,但由于历史原因不能保证强制执行。因此,Neo 提供了除了帐户名称之外的唯一租户标识符。

如果您仍然需要在 SAP Cloud Platform Neo 上获取帐户名称,您可以通过TenantContextNeo 可用的方法来检索它:

Tenant currentTenant = TenantAccessor.getCurrentTenant();

// assert that we are running on SAP Cloud Platform Neo
if( !(currentTenant instanceof ScpNeoTenant) ) {
    throw new RuntimeException("Unexpected SAP Cloud Platform environment.");
}

// get the Neo-specific TenantContext
TenantContext tenantContext = ((ScpNeoTenant)currentTenant).getTenantContext();
String accountName = tenantContext.getTenant().getAccount().getName();

推荐阅读