云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

消息队列_哪里可以办理qq企业邮箱_12月免费

小七 141 0

默认情况下,sapwebideforhana和sapwebidefull堆栈将HDB模块写入特定于开发人员的模式。本博客描述了为什么以及如何更改此行为。

当您登录到SAP Web IDE时,您将看到包含项目、文件夹和文件的树结构。这些文件物理上存储在CloudFoundry或XSA服务器中您自己的小部分中。我们称之为工作空间。webide没有为所有开发人员提供一个共享的工作区,而是使用一个开发人员隔离的工作区。这意味着每个开发人员都有自己的工作区,并且开发人员在其工作区内所做的任何事情都将保留在该工作区内,除非他将内容分发给其他开发人员。这种分发通常通过一个集中的Git存储库来完成,或者通过导出和导入(部分)项目来完成。下图说明了这种行为。

图1:Web IDE的DW开发,每个开发人员都在自己的工作区中工作,并通过Git存储库同步设计时的更改

有一个隔离的工作区是很有意义的,因为这允许开发人员将自己的工作与其他开发人员隔离开来,因此,他们可以专注于自己的工作,而不会被其他人所做的改变分散注意力。但是,当您创建需要推送到HANA的对象时,这种孤立的行为是如何反映的呢?

在工作区内,您可以设置包含HANA数据库(HDB)模块的项目。默认情况下,WebIDE将每个HDB模块构建到特定于开发人员的HANA部署基础结构(HDI)容器中,该容器在数据库上由一个主模式和其他几个保存元数据的对象表示。在本博客中,我们只讨论主模式,它将保存设计时对象的运行时版本,如表和视图。

默认行为:开发人员隔离模式

默认情况下,当第一个开发人员从Web IDE中构建HDB模块并在其yaml文件中定义了模式名称时,具有该名称的模式在HANA中创建并用其对象填充。但是,如果第二个开发人员在自己的工作区中处理同一个项目,并从其Web IDE执行构建,实时数据采集系统,则会创建一个后缀为"\u 1"的新架构,淘客app系统,下一个开发人员将创建一个后缀为"\u 2"的架构,依此类推。这意味着除了为每个开发人员保存所有设计时文件的独立工作区之外,还有一个独立的模式或一组模式,用于保存每个开发人员的运行时对象。下图描述了这一点。请注意,在撰写本文时,这是XSA和CloudFoundry上最新版本的webide的默认行为。在旧版本中,WebIDE将以第一个模式开始,该模式已经由"\u1"后缀。一个项目的部署,不使用WebIDE,而是使用xs deploy或cf deploy,总是使用定义的模式名,没有任何后缀。

图2:隔离工作区,独立模式

替代行为:与多个开发人员共享运行时模式

可以将HDB模块配置为写入固定的模式名称,而无需为每个开发人员的HDB模块创建唯一的模式。这样,开发人员共享相同的模式。但是请注意,开发人员的工作区不能共享。因此,共享模式有可能导致开发人员重写彼此的更改。当开发人员更改HDB模块中的设计时对象,然后将这些对象构建到运行时模式中时,就会发生这种情况。由于他的设计时对象将与其他开发人员的设计时对象不同,因此对象的运行时版本将与其他开发人员不同步。一旦另一个开发人员再次构建他的设计时对象,运行时版本将再次被覆盖。

图3:隔离工作区,共享模式

因此,强烈建议不要将不同Git特性分支的模块构建到同一模式中。毕竟,每个分支的设计时对象都会有所不同,因此每次构建一个分支时,都会覆盖另一个分支的运行时状态。不过,您可以考虑允许在同一项目和同一分支上工作的不同开发人员将其模块构建到同一模式中。这仍然有被覆盖的风险,因为设计时文件不会在开发人员的各个工作区中自动共享。但是,您可以通过两种方式降低这种风险。首先,只构建已经更改的对象,而不是完整构建HDB模块。其次,通过经常通过Git存储库同步工作区的更改。

共享模式还有一个风险,即一个开发人员将其对象基于另一个开发人员的运行时对象,而另一个开发人员没有将设计时版本推送到Git。例如,开发人员A在开发人员B生成的表上定义了一个计算视图。如果开发人员B没有将其设计时表推送到Git,则Web IDE生成仍然会成功,因为依赖项检查是在运行时架构上完成的,并且该表存在于此。但是,将基于Git中的设计时文件的计算视图部署到另一个系统将失败,因为基础表不是设计时文件的一部分,因此在运行时模式中不可用。这个风险可以通过自动测试部署来减轻,这将为您提供早期警告。

如何共享模式的代码示例