本推文介绍的制造成本分析报表是实施嵌入式分析eSAC的一次PoC的成果。S/4HANA Cloud 嵌入式 SAP Analytics Cloud 可以增当前系的分析功能,并更好地帮助客分析业务相关数据。本文将会在下文向读者详细介绍如何实施嵌入式 SAC 的完成销售毛利分析报表并展示eSAC大的功能。

客户的需求

根据客户的业务场景,客户希望能够得到实时的销售毛利信息。公司需要将销售数量、价格、税收、成本在一张报表中呈现,并提供有关其公司的每个客户每种物料的毛利信息以及转换为交易货币、公司代码货币和集团货币的金额数量。此外,公司需要在定价时对价格和销售金额以月末汇率进行货币换算。

在标准内容中,交货行项目信息(如客户、产品、数量、交易货币等)、销售和公司间采购的定价信息(净价、税额、定价货币)以及物料成本信息是在不同的 CDS 视图中提供,且标准内容仅存在于SAC standalone版本中,所以标准内容很难满足客户需求。

因此,我们推荐客户使用嵌入式 SAC 来定制提供客户所需信息的销售毛利分析。下表详细说明了客户对于该表的基本预期:

客户

客户名称

物料编码

物料名称

计量单位

销售梳理

订单货币

销售单价 (公司代码货币)

金额(交易货币)

金额(公司代码货币)

金额(集团货币)

税额(公司代码货币)

税价合计(公司代码货币)

实际单位成本

成本

毛利

毛利率

 

解决方案

实现嵌入式SAC的主要步骤有四个:创建自定义CDS视图,创建自定义分析查询,创建story和创建应用程序。 具体步骤将在下面详细描述。 为了保护客户敏感数据,一些截图来自虚拟测试系统。

I.            创建自定义CDS视图

完成这张销售毛利分析报表需要创建 3 CDS 视图。第一个CDS视图是YY1_ BaseDelivDoc,它可以暴露 I_DeliveryDocumentITEM 中的字段(尤其是外键)及其关联。

打开自定义 CDS 视图应用,创建新的 CDS 视图,填写名称并为场景选择“标准 CDS 视图”。添加 I_DeliveryDocumentITEM作为主数据源,然后添加参数。

1.png

添加元素。

2.png

然后可以根据需求添加计算。例如,编辑元素“客户”的计算公式以选择 DeliveryDocumentType 为“LF”和“LR”的客户。公式如下所示。

case when

   I_DeliveryDocumentItem._DeliveryDocument.DeliveryDocumentType = 'LF'

  OR  I_DeliveryDocumentItem._DeliveryDocument.DeliveryDocumentType = 'LR'

then I_DeliveryDocumentItem._DeliveryDocument.SoldToParty

else I_DeliveryDocumentItem._DeliveryDocument.ShipToParty

end

维护元素属性。

3.png

添加过滤器以提高报表性能。

4.png

保存并发布视图。

然后创建CDS视图 YY1_SalesAnaBase2 。在应用中创建新的 CDS 视图,添加 YY1_ BaseDelivDoc 作为主数据源,并添加I_SalesDocItemPricingElement, YYA3002620_POItmPricingEleI_InventoryPriceByKeyDate作为关联数据源。维护连接条件并将关联参数与视图参数进行映射。

5.png

从主数据源和关联数据源中添加必要的元素。

6.png

添加计算,例如添加公式来计算不含税金额。

cast(

  case when

    YY1_SalesAnaBaseDelivDoc.DeliveryDocumentType = 'LF'

    or

    YY1_SalesAnaBaseDelivDoc.DeliveryDocumentType = 'LR'

  then

    cast( YY1_SalesAnaBaseDelivDoc.Sign as ABAP.DEC(1,0) ) *

    division(

      division(

        cast( YY1_SalesAnaBaseDelivDoc.ActualDeliveredQtyInBaseUnit as ABAP.DEC(13,5)) *

        cast( _I_SO_GrossPrice.ConditionRateValue as ABAP.DEC(13,5)),

        _I_SO_GrossPrice.ConditionQuantity,

        5

      ),

      1 + division( coalesce( _I_SO_TaxRate.ConditionRateValue , 0 ), 100, 5 ),

      5

    )

  else

    cast( YY1_SalesAnaBaseDelivDoc.Sign as ABAP.DEC(1,0) ) *

    division(

      cast( YY1_SalesAnaBaseDelivDoc.ActualDeliveredQtyInBaseUnit as ABAP.DEC(13,5)) *

      cast( _I_PO_GrossPrice.ConditionRateValue as ABAP.DEC(13,5)),

      _I_PO_GrossPrice.ConditionQuantity,

      5

    ) -

    _I_PO_Tax.ConditionRateValue

  end

as ABAP.CURR( 26, 5 ) )

维护元素属性,最后发布该视图。

然后还需要再创建视图 YY1_ SalesAnaCube。为新创建的 CDS 视图选择场景“标准 CDS 视图”。添加 YY1_SalesAnaBase2 作为主数据源,并添加 I_ProductText 作为关联数据源。维护连接条件和参数。然后添加元素

7.png

添加计算,例如添加公式来计算金额(公司代码货币)。

case when YY1_SalesAnaBase2.ConditionCurrency =

  YY1_SalesAnaBase2.CompanyCodeCurrency

then

  YY1_SalesAnaBase2.AmountWithoutTax

else

  currency_conversion(

    amount => YY1_SalesAnaBase2.AmountWithoutTax ,

    source_currency => YY1_SalesAnaBase2.ConditionCurrency,

    target_currency => YY1_SalesAnaBase2.CompanyCodeCurrency,

    exchange_rate_date => YY1_SalesAnaBase2.PricingDate,

    exchange_rate_type => 'M',

    error_handling => 'FAIL_ON_ERROR',

    round => 'true',

    decimal_shift => 'true',

    decimal_shift_back => 'true'

  )

end                       

维护元素属性。

8.png

配置完成后保存视图。

在之前的步骤中,货币换算的逻辑如下:

条件货币->公司货币

条件货币->集团货币

如果要将逻辑更改为“条件货币 -> 公司货币 -> 集团货币”,则需要相应地更改模型。首先需要创建另一个 CDS 视图 (YY1_SalesAnaBase3) 并选择 YY1_SalesAnaBase2 作为主要数据源和所有参数和元素。在 YY1_SalesAnaBase3 中添加的计算与之前的 YY1_SalesAnaCube 中的计算相同,但需要消除计算 AmountWithoutTaxInGC

case when YYA3002620_SalesAnaBase3.Currency = YYA3002620_SalesAnaBase3.GroupCurrency

then

  YYA3002620_SalesAnaBase3.AmountWithoutTax

else

  currency_conversion(

    amount => YYA3002620_SalesAnaBase3.AmountWithoutTax,

    source_currency => YYA3002620_SalesAnaBase3.CompanyCodeCurrency,

    target_currency => YYA3002620_SalesAnaBase3.GroupCurrency,

    exchange_rate_date => YYA3002620_SalesAnaBase3.PricingDate,

    exchange_rate_type => 'M',

    error_handling => 'FAIL_ON_ERROR',

    round => 'true',

    decimal_shift => 'true',

    decimal_shift_back => 'true'

  )

end           

至此所有的CDS视图就创建完成了。

II.            创建自定义分析查询

从主页中找到“自定义分析查询”应用。创建查询并选择 YY1_ SALESANACUBE 作为数据源。填充查询的名称 (YY1_SALESANAQRY) 和标签(销售概览查询)。选择字段。

1.png

添加计算度量。

2.png

在公司代码字段中添加必填的单值提示。然后发布查询。

3.png

至此,查询创建完成。

III.            创建故事

客户可以通过“创建故事”页面为所选的数据源定义SAP Analytic Cloud故事。客户可以将数据源用不同的可视化方式呈现出来。例如,客户可以将多个数据源添加到故事中,并且可以设计交互式仪表板,创建新页面以及添加图表,表格等其他图形可视化数据。 页面上还会呈现一些工具(如图表),可以根据客户的喜好在页面上移动、调整大小和设置样式。

因此,我们为新创建的数据源定义了一个SAP Analytic Cloud故事,以可视化客户想要显示在页面上的数据。

首先,在主页内找到应用 KPI设计中的管理KPI和报表应用程序。在管理 KPI 和报表应用页面中选择“故事”标签并创建自定义故事。在创建故事页面中的 “定义” “标题” 两个部分输入具体信息,并在 “业务信息” 部分输入描述。

转到 “配置” 页面定义故事内容。从列表中选择查询以构建故事。本报表选择之前创建的 YY1_SalesAnaQry 作为主数据源。

1.png

根据需要设计故事的布局。当查询提示弹出时,启用“打开故事时自动打开提示”该功能,这样可以在打开故事时提示用户输入报表期间和公司代码。

2.png

按照客户的需求插入公司logo图片,插入任意文本作为报表标题或元素标签并插入图表显示数据,例如使用数值点图突出显示 KPI 相关数据。

3.png

使用带有排名的条形图来展现销售金额排名靠前的客户/产品。

4.png

插入主表并调整表格样式。

5.png

启用“行和列标题”的冻结功能。

6.png

添加故事过滤器,客户就可以在故事页面上限制要显示的数据集。

7.png

在报表完成后就可以点击激活并保存故事。

IV.            创建应用

要创建应用程序(也称为FLP Tile)以发布报表,选择“应用程序>添加Tile”。从各种选项中选择tile的格式。填写完相关的配置信息后点击“保存并发布”。

1.png

成功保存磁贴后,它将导航到“自定义目录扩展”应用程序以在所需目录中发布磁贴。

在“自定义目录扩展”应用程序中,添加目录以发布磁贴。

结论

在本推文中,我们展示了如何通过 S/4HANA Cloud 创建自定义 SAP Analytics Cloud 故事或仪表盘,并将其嵌入 S/4HANA Cloud Fiori Launchpad中。自定义的销售毛利分析报表可以提供客户所需的所有业务相关信息,从而完全满足其业务需求。通过使用 S/4HANA Cloud 嵌入式 SAP Analytics Cloud,客户可以高效地利用其强大的分析功能来解决问题。在未来,我们将继续与读者分享更多有关嵌入式分析的成功案例。

有关SAP S/4HANA Cloud嵌入式SAC的更多信息,可以查看以下链接:

  • S/4HANA Cloud嵌入式分析——数据展现的灵活扩展:click here
  • 嵌入式分析云客户用例:如何在S/4HANA Cloud中创建定制SAC storydashboard: click here
  • 嵌入式SAC客户用例分享之生产成本分析:click here
  • 嵌入式SAC客户用例分享之货物移动分析:click here
  • 嵌入式SAC客户用例分享之库存账龄分析:click here
  • 嵌入式SAC客户用例分享之物料库存分析:click here