Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
andy_bai
Employee
Employee
0 Kudos

背景介绍


SAP Business Technology Platform (BTP) ,是SAP的一个崭新的业务技术云平台,目标是将数据管理、分析、人工智能、应用开发、自动化和集成功能整合至统一的环境中。


SAP Business One (B1) ServiceLayer,是B1提供给客户和合作伙伴的一个Web服务,目标是将B1的业务对象和业务服务通过OData的形式开放出来,客户可以通过调用HTTP API来构建自己的应用程序,作为B1的extension与B1系统进行交互,来实现个性化的客户需求。


那么如何基于BTP平台来部署B1客户的一些应用呢?这样客户的应用程序不仅可以利用BTP平台提供的各种基础设施,也可以与B1 ServiceLayer进行交互。这篇博客将首先从以下两个方面简单介绍一下如何在两个系统之间进行一个初步的集成。





  1. 如何通过创建Destination来建立ServiceLayer和 BTP 之间的连接。




  2. 如何基于这个Destination, 使用SAP Business Application Studio创建一个Fiori Freestyle项目,从Service Layer中读取并显示数据。





注意,本文中使用的ServiceLayer版本为 SAP Business One 10.0 2111,并且一个前提条件是要确保ServiceLayer在公共 Internet 中运行,以便可以从 BTP 访问它。



创建BTP Destination




  1. 使用您的 BTP 帐户登录到 BTP Cockpit,可以使用 BTP 试用帐户。




  2. 进入子账户(subaccount), 默认情况下,子账户的名称是trial。




  3. 导航到Connectivity | Destination,通过点击New Destination创建一个Destination。


    Destination详情如下:



    选择Basic Authentication作为认证方式,同时,我们需要指定一些额外的属性,如下表所示。





























    Additional Property Property Value
    HTML5.DynamicDestination true true
    WebIDEEnabled true
    WebIDESystem Gateway
    WebIDEUsage odata_gen


    单击 Check Connection 以验证连接是否正常。 成功后,会弹出以下对话框。




创建Dev Space




  1. 在Trial账户的主页,点击并登录到SAP Business Application Studio




  2. 点击Create Dev Space,创建一个dev space (比如:fiori_dev) ,并进入这个space。




创建UI5项目




  1. 打开SAP Business Application Studio,从模版中创建一个项目。




  2. 选择 SAP Fiori application 并点击Start




  3. Floorplan Selection 中,选择 SAPUI5 freestyle 作为 Application Type,选择 SAPUI5 Application,然后下一步。




  4. Data Source and Service Selection 中,按照如下方式配置数据源和选择服务,然后下一步。


    对于 System,选择 B1ServiceLayer,这是在 Connectivity 中配置的Destination名称。


    对于Service Path,输入/b1s/v2,这是Service Layer OData V4协议的相对路径。




  5. Project Attributes 中,按照以下方式配置项目属性,然后下一步。




  6. 创建成功后,将在右下角显示一条指示消息,告知此项目成功保存。




  7. 导航到项目位置并打开这个新创建的项目。




  8. 新建一个终端(terminal),通过以下命令运行此项目。



    npm  start




  9. 一个浏览器窗口将会自动弹出,显示一个Title。




至此,一个非常简单的Fiori应用创建完毕。



Create Worklist Project


同样,您可以按照worklist应用程序模板向导,来创建一个更加实用的worklist应用程序, 以下是一些关键的步骤和截图。





  1. 选择 SAP Fiori Worklist 应用程序






  1. Data Source and Service Selection 中,按照如下方式配置数据源和选择服务,然后下一步。


    对于 System,选择 B1ServiceLayer,这是在 Connectivity 中配置的Destination名称。


    对于Service Path,输入/b1s/v2,这是Service Layer OData V4协议的相对路径。




  2. Entity Selection中,填写实体信息,然后下一步。




  3. Project Attributes 中,按照以下方式配置项目属性,然后下一步。


    对于Add deployment configuration,选择 Yes.


    对于Add FLP configuration,选择 Yes.




  4. Deployment Configuration中,配置部署方式,这里我们选择Cloud Foundry作为部署的目标平台,从下拉列表之中选择之前配置的一个Destination。




  5. 配置Fiori launchpad。


    对于 Fiori Launchpad 配置,填写以下内容,然后单击 Finish





























    参数 取值
    Semantic Object Object
    Action display
    Title Employee
    Subtitle(optional) Employee



    注意


    请确保您已订阅Launchpad Service服务, 您可以在您的子账户下的Instances and Subscriptions中查看。






  6. 成功后,应用信息显示如下。




  7. 项目生成后,打开 webapp/manifest.json,导航到 models 并添加以下条目



    "groupId": "$direct"

    那么整个models将是:



     "models": {
         "i18n": {
           "type": "sap.ui.model.resource.ResourceModel",
           "settings": {
             "bundleName": "sapb1.app3.i18n.i18n"
          }
        },
         "": {
           "dataSource": "mainService",
           "preload": true,
           "settings": {
             "synchronizationMode": "None",
             "operationMode": "Server",
             "autoExpandSelect": true,
             "groupId": "$direct",
             "earlyRequests": true
          }
        }
      },

    此更改的目的是确保发送到ServiceLayer的请求使用 http 方法 GET,而不是通过 OData $batch 的 POST。




  8. 要运行该项目,请从下拉列表中单击“Preview Application”,然后选择第一个 npm 脚本“start fiori run”。






  1. 然后一个列表将会显示出来,显示来自ServiceLayer的Employee数据。




至此,一个基于worklist模版创建的fiori应用创建完毕,可以显示Employee列表,也可以显示Employee明细。



下一步


目前,这些应用程序只是在studio里面运行,在接下来的博客中,将会继续介绍如何对应用程序进行打包和部署,以及如何与SAP BusinessOne Web Client进行集成。