1

我的理解是,AX 2009的构造方式使得巴西,中国和/或印度不能与俄罗斯和/或波兰的AX相同,因为它们具有互斥的GLS图层。我们正在接近我们将要发生这场冲突的阶段,并且正在研究如何管理这一冲突。Dynamics AX 2009 ::互斥GLS图层的含义

任何人都可以将我指向任何有关此问题的文档/博客?我希望更多地了解功能和技术含义以及可能的解决方案。据我了解,AX 2012没有这个问题,但希望在做出此决定之前查看我们2009年有哪些选择。

由于提前,

JB

如果您想了解更多关于什么我寻找到,请参阅以下内容:

  • 什么是功能性的影响(所以我们可以决定GLS层引入的功能是否与我们的要求相关/如果我们的要求不受其影响,可以实现一些没有GLS层的国家)?
  • 是否有可能为两个实例维护一个自定义代码库(即在VAR层),但在每个实例中使用不同的GLS层?
  • 如果以上内容不简单,可以通过在VAR层中添加更多代码将两个GLS层的功能映射到一个公共层(即它的行为就好像两个GLS层中的类实现相同接口一样)来实现,也许可以使用VAP层来定制代码,USR层使用修补程序(因为所有的代码都是由我们的合作伙伴开发的,所以我们不需要这个层用于我们自己的目的)?
  • 有关于多个GLS层的代码管理的任何信息吗?
  • 是否存在为什么存在此问题的描述(从技术角度),以便我可以更好地了解此问题的原因是什么(即体系结构的哪一点会导致多个国家/ AX 2009中的MS如何解决这个问题)?

回答

3
  • 什么是功能性的影响(所以我们可以决定是否由GLS层引入的功能是有关我们的要求/可以实现一些国家没有他们的GLS层,如果我们的要求并不受此) ?

你基本上在问:“每个国家的自定义GLS图层都有什么?”我不知道这个答案,但一种获得答案的方法是在一个清晰的环境中,您可以启用每个GLS图层,通过(工具>开发工具>版本更新>比较图层)创建图层比较项目GLS图层,然后将GLS图层项目仅导出到XPO,并对两个XPO使用WinDiff。这是我能想到的,以便快速找出差异。在这个问题上与微软开一张票可能是值得的,在这个问题上,工作在实际图层上的工程师可以为您提供更好的答案。

  • 是否有可能为两个实例维护一个自定义代码库(即在VAR层中),但在每个实例中使用不同的GLS层?

号如果你有,例如两个AOS的,每一个不同的GLS层,即传送到同一个数据库,它基本上是两个独立的代码库。有些东西可能会有所不同,具体取决于它发布的环境。这将是一个不好的道路。

  • 如果上述并不简单,是它通过将在VAR层更多的代码在两个GLS层的功能映射到一个共同的层(即,使得它的行为就好像在两个GLS类层实现了相同的可实现的接口),也许然后使用VAP层用于自定义代码和USR层用于修补程序(因为所有代码都将由我们的合作伙伴开发,因此我们不需要此层用于我们自己的目的)?

我在想什么,你首先需要在这种情况下做的是确定正是GLS层之间的差异是通过代码进行比较。

与您的大部分业务相关的GLS图层我们将称为A。另一个二级GLS层,我们将称为B

要做到这一点,把你的环境与GLS ,并做(工具>开发工具>版本更新>比较层),并为项目命名GLS_B,选择源GLS层,然后引用SYS层,和单击确定。一旦私人项目被创建,将整个项目导出到名为GLS_B.xpo的XPO。

对于这个例子,我们将在VAR层中工作,并且我将假设您的环境层仅是SYS,SYP,GLS,VAR,VAP,USR。

切换到您的GLS A环境,删除所有图层以上GLS。打开导入XPO工具(从AOT按Ctrl + Shift + I),选择GLS_B.xpo,保留所有默认值,然后选中“显示详细信息”,然后单击各个对象并进行比较。如果有任何差异,请导入该对象。如果没有差异,请勿导入。一旦完成了所有对象的检查,创建VAR图层的另一个比较项目,您就会知道要仔细查看对象。仔细检查这些项目,看看代码差异是什么。

对于不同的国家GLS层是分开的这一事实使我认为这些差异可能是显着的或相互冲突的...所以简单的合并可能无法解决潜在的逻辑差异。这是您需要确定下一步要做什么的地方。如果更改不是那么重要,则可以合并到VAR图层中,使其成为您单独放置的合并GLS图层,然后在上层进行修改。

  • 是否有任何有关多个GLS图层的代码管理的信息?

不确定。我会认为我的上述方法与TFS。

  • 有为什么这个问题存在(从技术角度来说),所以我可以得到什么这个问题的原因是一个更好的主意(说明即什么位架构导致的冲突多个国家/如何在AX 2009中无法解决这个问题)?

不知道,这个问题值得与Microsoft联系。

+0

太好了 - 谢谢Alex。使用图层比较工具的好声音;我最近熟悉了这一点,使用了一个非常类似的XPO出口流程,然后通过查看发现真正的差异。缺点是,正如你所提到的,这只是做比较的很多工作,然后是对代码进行反向工程以找出功能。我会尽力找到MS的联系方式,以便在尝试上述操作之前查看他们的意见。 – JohnLBevan 2012-07-31 10:49:45

+0

关于保持相同代码库的观点,我很乐意为两个实例提供完全不同的AOS,数据库,甚至是客户端(如果需要的话)。最主要的是,我希望我们的开发人员能够编写一次代码,并在波兰和巴西(比如说)使用它,而不是为两种环境编写代码。我设想的方式是他们在一层中编写这个通用代码,然后维护位于GLS和(比如说)VAR层之间的较低层的两个副本,以便VAR插入相同的代码,但是这个较低层充当GLS的适配器。 – JohnLBevan 2012-07-31 10:55:55

+1

如果您有两个单独的AOS/DB /客户端,则您的公司位于两个完全独立的系统上。他们将无法分享客户/供应商/总账/等。我首先要确定GLS图层和接触MS之间的差异。如果它很重要,那么这两个独立的环境可能就是要走的路。没有办法让他们开发一个环境,并促进两个GLS环境,但这并不意味着很难完成同样的事情。我敢打赌,你的开发者所做的75%的开发甚至不会触及GLS代码。 – 2012-07-31 15:56:03

1

我刚刚在一个AX 2009实例中安装了相同的两个GLS图层。我已经将第二个GLS图层导入到VAR/VAP中,并合并了CUS层中的差异。合并这些图层是一项相当的工作,特别是如果您安装了大量定制和附加模块。

MS建议每个AX安装只安装一个GLS层,正如你所提到的那样,在你的情况下需要2个实时安装(AX 2009有4个GLS层)。

我仍然认为最好的方法是将GLS图层放在同一个实例中,因为它使部署更容易,并且在部署时仍可以复制图层。

+0

好主意 - 谢谢Steen。很高兴知道MS可能会这样做/看起来很奇怪,因为MS并没有将其开箱即用(或者当你合并/类似的东西时,你不得不妥协什么功能)? – JohnLBevan 2012-08-29 09:57:05

+0

MS有计划为AX 2009提供一个全球GLS层,但他们从未完成这项工作。我看到MS建议每个GLS层有一个实例作为传递问题的一种方式。 2012年将会有一个全球GLS,我不知道它是否已经在2012年发布。 – 2012-09-10 20:09:56

+0

我不必在功能上做任何妥协。我只将AOS缓冲区大小从24增加到30. SYS/SYP层中约300行的一些方法最终为+1000行。我想这是多个GLS图层的成本。如果内核可以处理国家特定代码的执行会更好,所以GLS代码可以放在特定国家的子类中。 – 2012-09-10 20:28:18

相关问题