公司标识 Inside Dynamics AX 4.0 Company Identifiers

 

AX中,系统信息及业务信息都和公司相关联,同时也和各个公司之间的相互关系相关联。多个公司可以共享相同的数据库结构及业务流程。但是,每个公司都有属于自己的一组数据集,而且这组数据集是不可以被其他公司直接访问的。实际业务中,一些表的信息应该是可以被多个公司重用的。为了在多个公司间重用表,于是有了一个新的设计,它包含以下一些元素:

·         公司:一个公司账户可以基于一个或多个虚拟公司账户。当你向一个不存在于任何虚拟公司的表插入数据时,数据将直接存储在该公司账户名下。

·         虚拟公司:虚拟公司账户是一个属于多个公司的数据的集,这些数据适用于该虚拟公司所包含的所有非虚拟公司。该数据集包含哪些表是通过一个‘表集’(table collections)列表来定义的。而这些表的数据将被存储在虚拟公司的名下。最终用户无法在一个虚拟公司账户下公司,但虚拟公司数据集中的表的内容可以通过它所包含的所有非虚拟公司来访问和修改。

·         表集: 表集是有一些表的名字所组成的详细列表。表集定义一个表图,这个表图中的表不应该与不属于该表图的表之间存在外键关系。表集是由开发人员来定义的。系统中的每个表和视图只能属于一个表集,并且只能在该表集中出现一次。表数据不会存储在表集名下,只会存储在公司或虚拟公司名下。

Dynamics AX 运行时使用这些元素提供了一个强大的架构用于公司间的数据整合及优化,并且可以使数据处理及结构可以被集中管理。同时它也提高了数据完整性,因为相同的数据现在只需要管理一次而不需要在多个公司下重复管理。这个架构的另一个优点在于用户不会察觉到他们是在使用一个独立的虚拟公司,这一切对于最终用户来说都是透明的。

12-11说明了三个虚拟公司账户是如何与非虚拟公司账户相互作用以及一个虚拟公司账户可以拥有多个表集,而这些表集只能属于某一个虚拟公司,不允许重复。公司AAABBB共享对表Currencies的维护和管理,而公司CCCDDD共享表chart of accounts. 所有公司共享表Zip codescountries 最后一个虚拟公司账户说明了一个非虚拟公司可以同时使用多个虚拟公司。

12-11 公司账户概述

 12-11

AX通过公司账户将公司的组织结构转换为一些元素,这些元素可以进行相应的配置。使用公司账户构建公司结构包含以下步骤:

1.

创建公司账户

  

2.

创建表集

3.

创建虚拟公司账户并且关联非虚拟公司

当你创建表集的时候,不允许表集中的表拥有与非虚拟公司表之间的外键关系。当创建表集时,需要调整数据模型来实现表集的最佳。图12-12说明了表集在AOT中的位置以及表如何被包含在一个特定点表集中。

12-12 AOT中的表集

12-12

标识

公司账户是由3个属于Unicode字符集的字符的组成的标识,包括虚拟公司和非虚拟公司账户。它使得Dynamics AX可以在同一数据库下维护上千个公司账户并共享相同的业务逻辑。当选择作为公司账户标识的字符时,注意那些会影响生成SQL语句的字符(如!,’’””等),因为公司标识符是SQL语句的重要组成部分。

注意:

公司账户受许可文件的影响。在你没有获得公司账户许可之前你无法创建3个以上的虚拟公司或无限多个虚拟公司。公司账户许可会移除只能创建3个虚拟公司这一限制。

 

DataArea存储公司账户的相关信息,AX运行时使用该表来决定如何读写数据。表一级的表属性SaveDataPerCompany决定在写数据时是否按公司来单独存储或存储为与公司无关的数据。如果该属性为Yes,DataAreaId会被自动引用来维护数据与公司之间的关联。

数据流程图12-13说明了在插入数据时如何判断是否与公司关联。需要重视将记录插入到与公司不相关联的表的流程, 因为数据会被关联到所有公司、装置、数据库、AOT、跟踪或OLAP,可以通过所有公司账户来访问这些记录。

12-13 插入数据的流程图

12-13

改变公司账户

公司账户环境在运行时可以通过多种方法来改变,当然你也可以在系统启动时使用配置工具或在快捷方式上添加参数来改变公司账户。在AX运行时,用户可以双击系统状态了上的公司账户名字来打开公司账户选择面板,从而修改公司账户,也可以点击菜单栏上的File/Open/Company来完成。

当在多个公司账户之间工作时可以使用代码来进行公司账户的切换,如在总合报表,公司间的销售或多站点的计划。AX支持使用changeCompany方法来切换公司,changeCompany同时是一个保留关键字。changeCompany语句告诉数据库设置当前工作公司账户为另一个账户。语法如下:

changeCompany ( expression ) { statement }

在上面的语句中,expression表是要切换到的公司账户。语句statement将在这个新切换到的公司下执行。下面的代码演示了如何使用这样语法结构:

Static void main()

{

      CustTable custTable;

      ;

     

      // 假设我们当前允许在公司‘DAT’下

      Changecompany(‘dmo’)//现在,当前公司变为dmo

      {

           custTable = null;

           while select custTable

           {

                 // custTable是在公司dmo下被查询的

           }

      }

      // 现在默认公司也即当前所在公司变为’dat

      Changecompany(‘int’)// 现在默认公司为‘int’

      {

           // 清空custTable以便在新的公司中进行查询

           custTable = null;

           while select custTable

           {

                 // custTable现在是在’int’公司中被查询的

           }

      }

      //现在默认公司为’dat’

}

Changecompany方法在InerCompany*开头的类中被大量使用,但也可以在其他地方看到这一方法被使用。

外部访问性

你可以通过外部资源来访问AX内与公司相关联的数据,可以通过COM连接器,.NET连接器及X++来抽取或模块化需要的数据,或者使用AIF。你也可以直接通过数据库来访问这些数据。

对于没有AX经验的顾问来说,直接使用数据库通常是首选的方法,因为数据库的相关工具被大家熟知,但当使用了虚拟公司的时候,直接使用数据库会成为一个挑战。数据库并没有包含任何有关与非虚拟公司与虚拟公司之间相关联关系的表。

你可以使用业务视图将一组数据展示为数据库视图,该视图可以精确地将公司状态转换为人可读的格式。使用业务视图同时可以提供关于本地计算字段(基于edit方法或display方法)、枚举、数据组和公司账户的更多详细信息,从而提高了第三方对数据的可见度。由AX的管理员定义业务视图并存储与数据库以便第三方软件使用。定义业务视图不会影响业务流程和数据结构,因为是从应用程序上以数据驱动的方式完成定义的。业务视图使用AOT中已有的表和视图,但会在当前AX运行时所使用的数据库中创建新的视图。

创建业务视图的步骤如下:

1.    创建数据库视图前缀

2.    在业务视图中管理虚拟公司账户

3.    定义公司账户集

4.    定义一些特定值得组,如颜色,数值,文本等

5.    定义基于公司来计算的字段

6.    管理枚举字段值

7.    创建并定义业务视图

8.    同步数据库中新建的业务视图

原文:

Company Identifiers

The business and system information in Dynamics AX is associated with company accounts and their interaction with the database tables. Several company accounts can share the same database infrastructure and use the same application logic. However, they must each have their own set of data that cannot be directly accessed from other company accounts. Tables in an application may also contain information that can be reused by several company accounts. This design involves the following elements:

  • Companies A company account can be based on one or more virtual company accounts. When you add data to a table that is not in a virtual company account, the data is stored directly in the company account.

  • Virtual companies A virtual company account is a collection of data from several company accounts that is common to all the companies and uses a list of one or more table collections to define the tables that it contains. The data in the tables included in the table collections is stored in the virtual company account. The end user cannot work directly in a virtual company account, but the contents of the shared tables can be changed through the company account.

  • Table collections A table collection is a specification of a list of table names. Table collections define a graph of tables that have no foreign-key relationships with tables outside the table collection. Table collections are defined by developers. Each table and view in the system can occur only once in any one table collection, but tables and views can be added to more than one table collection. A table collection stores no table data; only companies and virtual companies store data.

The Dynamics AX application runtime uses these components to provide a powerful framework for integrating and optimizing the available and required business data across the enterprise, allowing chosen processes and structures to be centralized. This also improves data integrity because identical information is administrated only once and does not have to be saved in multiple companies. Another significant benefit is that users do not perceive the virtual company as a separate company account because it is completely transparent to users who are using the current company account.

Figure 12-11 illustrates how the three virtual company accounts interact with company accounts and how a virtual company account can have multiple table collections associated with the individual virtual company account. Company AAA and Company BBB share the maintenance of currencies, whereas Company CCC and Company DDD share the chart of accounts. All companies share the maintenance of zip codes and countries. The last virtual company account also shows how company accounts can use multiple virtual company accounts.

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值