- 功能影响是什么(因此我们可以决定 GLS 层引入的功能是否与我们的要求相关/如果我们的要求不受此影响,可以在没有 GLS 层的情况下实施一些国家)?
您基本上是在问,“每个国家/地区的自定义 GLS 图层中有什么?” 我不知道这个答案,但获得答案的一种方法是在一个清晰的环境中,您可以启用每个 GLS 层,通过(工具>开发工具>版本更新>比较层)创建一个层比较项目GLS 图层,然后仅将 GLS 图层项目导出到 XPO 并针对这两个 XPO 使用 WinDiff。这就是我能想到的快速找出差异的全部。在这个问题上向微软开一张票可能是值得的,在实际层上工作的工程师可以为您提供更好的答案。
- 是否可以为两个实例维护一个自定义代码库(即在 VAR 层中),但在每个实例中使用不同的 GLS 层?
不。例如,如果你有两个 AOS,每个都有不同的 GLS 层,它们与同一个数据库通信,它基本上是两个独立的代码库。根据发布的环境,发布的内容可能会有所不同。这将是一条糟糕的道路。
- 如果上述不简单,是否可以通过在 VAR 层中放置更多代码以将两个 GLS 层的功能映射到一个公共层(即,它的行为就像两个 GLS 层中的类实现相同的接口),也许然后使用用于自定义代码的 VAP 层和用于补丁的 USR 层(因为所有代码都将由我们的合作伙伴开发,因此我们不需要此层用于我们自己的目的)?
我在想,在这种情况下,您首先需要做的是通过代码比较准确确定 GLS 层之间的差异。
与您的大部分业务相关的 GLS 层,我们将其称为A。我们将称为B的另一个辅助 GLS 层。
为此,请使用 GLS B获取您的环境,然后执行(工具> 开发工具>版本更新>比较层)并将您的项目命名为 GLS_B,选择您的源 GLS 层,然后引用 sys 层,然后单击确定。创建私有项目后,将整个项目导出到名为 GLS_B.xpo 的 XPO。
对于此示例,我们将在 VAR 层中工作,我将假设您的环境层仅是 SYS、SYP、GLS、VAR、VAP、USR。
切换到您的 GLS A环境,删除GLS 上方的所有层。打开导入XPO工具(Ctrl+Shift+I from AOT),选择GLS_B.xpo,保留所有默认,然后勾选“Show details”,繁琐的工作就进来了,但是点击每个对象,做一个比较。如果有任何差异,请导入对象。如果没有差异,请不要导入。完成所有对象的检查后,创建另一个 VAR 层的比较项目,您将知道要仔细查看的对象。浏览每个项目,看看代码差异是什么。
GLS 层对于不同国家/地区是分开的这一事实使我认为差异可能很大或相互冲突……因此简单的合并可能无法解决潜在的逻辑差异。这是您需要确定下一步要做什么的地方。如果更改不是那么重要,您可以合并到 VAR 层,将其设为您合并的 GLS 层,然后在上层进行修改。
- 是否有关于具有多个 GLS 层的代码管理的任何信息?
没有把握。我认为只是我上面的 TFS 方法。
- 有没有描述为什么这个问题存在(从技术角度),所以我可以更好地了解这个问题的确切原因是什么(即架构的哪一点导致多个国家/地区的冲突/这是怎么回事AX 2009 中的 MS 无法解决)?
不确定,这个问题值得联系微软。