第七章 配置命名空间(二)
将全局、例程和包映射添加到命名空间
除了可以访问映射数据库中的全局变量和例程之外,还可以映射来自相同或不同系统上的其他数据库的全局变量、例程和类包。这允许对可以存在于任何地方的数据进行简单引用,并且是命名空间的主要特征。可以映射整个全局变量或全局变量;此功能允许数据轻松跨磁盘。
注意:映射按字母顺序排序;如果指定了下标,则按名称和下标排序。
单击适当的选项开始映射:
Global Mappings
Routine Mappings
Package Mappings
Mapping Data to All Namespaces
以下是映射如何在示例航空公司预订应用程序中工作的示意图:
数据和程序存储在数据库数据库中,即物理存储位置,并由名称空间引用,即逻辑引用。
重要提示:如果存在与本地内容具有相同标识符的映射内容(例如包、类、全局或例程名称),则映射内容将可见,而不是本地内容。因此,应该尽可能具体地使用映射,以防止映射远离现有内容。
在命名内容和创建映射时,请务必遵循标识符规则和准则,以避免任何不必要的冲突。
Mappings
可以在全局和全局下标级别将新全局映射添加到命名空间,以覆盖命名空间全局变量的默认数据库映射:
- 导航到命名空间页面(系统管理 > 配置 > 系统配置 > 命名空间)并单击要在其中映射全局的命名空间行中的全局映射。
- 从
Global Mappings
页面单击新建。
- 选择全局所在的全局数据库位置
Global database location
数据库。 - 输入全局名称。可以使用
*
字符作为全局名称的一部分来指定多个全局变量,例如ABC*
。 - 输入要映射的全局下标。下标引用必须以左括号开头。一些例子如下:
(1)
("A")
(1):(5)
("A"):("Z")
("B",23,"m"):("E",5)
(BEGIN):("X")
("Y"):(END)
注意:指定范围时(例如,("A"):("Z")
,范围是“from-to”
(不是“from-through”
)指定的下标;即定义的下标范围是包含的,而定义的下标范围的上端是互斥的。例如,Name(1):(10)
包含 Name(1)
但不包含 Name(10)
;互斥的上限允许在使用下标范围时具有已定义的上边界,例如 Name ("a"):("b")
,其中 Name ("aa")
和Name ("aaaaa")
在 Name ("b")
之前同样有效。
可以使用保留字 BEGIN
和 END
来指代第一个和最后一个可能的下标;但是,不能将星号 (*
) 通配符与带下标的全局变量一起使用,因为全局下标必须单独映射。
- 单击高级以显示以下内容:
A. 选择排序规则。排序规则仅适用于新的下标级映射全局变量。
B. 选择锁定数据库位置。
- 单击确定。
注意:新映射行的第一列中显示的 >>
表示已打开映射进行编辑。
- 要将映射保存在
cpf
文件中,请单击保存更改。
重要提示:虽然可以添加更改现有全局数据库位置的映射,但这实际上并不会移动global
。结果,global
变得不可访问,因为它保留在原始数据库中,而命名空间希望在新映射的数据库中找到它。要使现有global
的新映射成功,必须手动重新定位全局,例如使用Terminal
或 Studio
,通过在新数据库上创建它并从原始数据库中删除它。