如何生成数据模型或数据字典
本文提供两种生成Adobe Campaign数据库的数据模型或数据字典的方法。
描述 description
环境
Adobe Campaign Classic v7
问题/症状
本文档显示两种生成Adobe Campaign数据库的数据模型或数据字典的方法。
解决方法 resolution
Adobe Campaign包含数百个表。 本文档介绍了两种生成架构文档的不同方式:
- 生成Open Office文档(可在Microsoft Word中读取),或者
- 通过生成HTML网页。
方法1:创建OpenOffice文档
在Adobe Campaign中 datakit\nms\fra\package\optional
目录,有一个名为 dbbBuilder.xml
. 此包文件包含一个JavaScript实体,该实体会生成一个Open Office文档,其中详细介绍了Adobe Campaign实例的数据库架构。
答: 创建JavaScript文件
使用Campaign控制台资源管理器视图,在管理配置JavaScript代码中编写一个简单的JavaScript实用程序,如下面的示例所示。
更改 strOutputFile
值,以添加要在其中创建Open Office文档的目标目录。 例如:/tmp/database-description.odt
。
文件示例: cus:build-dbd.js
/* * build-dbd.js/ var
strXslt = "nl:dbdToOdt.xsl"
var strTemplate = installDirectory( "datakit/nl/dbd-template.odt" )
var strOutputFile = "database-description.odt"
var sql = xtk.sqlSchema.create() sql.Generate()
var strDbXml = db = sql.toXML().toXMLString()
var strOdt = applyXsl(strXslt, strDbXml)
strOdt = strOdt.replace(/\?xml .*\?\r?\n/, '\r\n' )
var mbContent = new MemoryBuffer mbContent.fromString(strOdt, "utf-8" )
var zip = new ZipFile(strTemplate)
zip.open() zip.setEntry( "content.xml" , mbContent) zip.save(strOutputFile)
B. 导入dbdBuilder.xml
此 dbdBuilder.xml
通过在存储软件包的目录中执行以下命令,可以导入软件包。 将instance_name替换为Adobe Campaign实例的实际名称。
nlserver package - import :dbdBuilder.xml -instance:instance_name
Debian的包导入示例
neolane@debian: /nl6/datakit/nms/fra/package/optional $ cd
/nl6/datakit/nms/fra/package/optionalneolane@debian:/nl6/datakit/nms/fra/package/optional$
nlserverpackage -import:dbdBuilder.xml
-instance:10:46:09
Application serverfor Adobe Campaign Version 6.1.1(build 8537) of 04/16/201410:46:09
Starting 1 connection(s) on pool'default vmcloud'(PostgreSQL, server='localhost',
login='user:password')10:46:09 Importing package'/tmp/dbdBuilder.xml'...10:46:11
Enumerating thefile entities...10:46:11
Writing entitiesin the database...10:46:11
Saving entities oftype 'xtk:xslt'...10:46:12
Saving entities oftype 'xtk:javascript'...10:46:12
Installation of packages successful.
适用于Windows的包导入示例
C: cd "\Program Files (x86)\Adobe\Adobe Campaign v6\bin"
C:\Program Files (x86)\Adobe\Adobe Campaign v6\binnlserver.exe
package - import : ..\datakit\nms\fra\package\optional\dbdBuilder.xml
-instance: 13:52:57 Application server for Adobe Campaign Version 6.1.1 (build 8622) of 01 /19/2015 13:52:57
Starting 1 connection(s) on pool 'default ' (PostgreSQL, server= 'localhost' , login= 'user:password' ) 13:52:57
Importing package 'C:\Program Files (x86)\Adobe\Adobe Campaign v6\bin\..\datakit\nms\fra\package\optional\dbdBuilder.xml'...
13:52:59 Enumerating the file entities...
13:52:59 Writing entities in the database...
13:52:59 Saving entities of type 'xtk:javascript' ...
13:52:59 Installation of packages successful.
C. 生成数据库说明
要生成数据库说明,可以执行 cus:build-dbd.js
JavaScript实体与nlserver模块一起使用命令行,如下所示:
neolane@debian: /tmp $ nlserver javascript -instance: cus:build-dbd.js 05:06:12
Application server for Adobe Campaign Version 6.1.1 (build 8537) of 04 /16/2014
05:06:12 Starting 1 connection(s) on pool
'default vmcloud' (PostgreSQL, server= 'localhost' , login= 'user:vmcloud' )
05:06:12 Executing JavaScript from entity of identifier 'xs:build-dbd.js' ...
05:06:12 Generating the database structure...
05:06:12 Element '0' unknown (see definition of schema 'Recipient delivery logs (nms:broadLogRcp)').
(iRc=16384)
05:06:12 Element '0' unknown (see definition of schema 'Visitor delivery logs (nms:broadLogVisitor)').
(iRc=16384) 05:06:12 Element '0' unknown (see definition of schema 'Recipient delivery logs (nms:broadLogRcp)').
(iRc=16384) 05:06:12 Element '0' unknown (see definition of schema 'Visitor delivery logs (nms:broadLogVisitor)').
(iRc=16384) 05:06:13 Generating the ODT XML... 05:06:14 Saving the zip file ...
05:06:14 File saved as 'database-description.odt
名为'database-description.odt'的OpenOffice文档将在您指定的目录中生成 build-dbd.js
. 它包含Adobe Campaign表的说明。 此文档可以使用Microsoft Word或OpenOffice进行编辑,并且可以转换为PDF。
数据模型文件示例:本文档显示了数据库表索引、SQL字段和键以及模式链接列表。
方法2:使用xsltproc创建网页
此替代方法基于Linux xsltproc
命令行工具。 在此方案中,您可以通过创建XML文档来导出架构,然后使用XSLT文件将XML转换为HTML。 可在浏览器中查看输出文件。
对于此方法,您需要:
- 要运行的Linux或Macintosh环境
xsltproc
,这是一个标准的Macintosh Mac OS X命令行实用程序。 - 附加文件,
database.xsl
、和styles.xml
(请参阅attachments.zip)。
注意:有一个Windows等效项, msxsl.exe
可以在这个平台上正常运行, 但还没有经过测试.
现在msxsl.exe是 MS Core XML Services (MSXML).
此 MS Core XML Services (MSXML) 可在Microsoft更新目录中找到下载。
下载
获取文件database.xsl
和 styles.xml
- 下载两个附加文件
database.xsl
和styles.xml
到Linux或Mac上的工作目录中。 在XSL的顶部,有两个变量可供调整:xsl:variable name="unicode"false/xsl:variable
xsl:variable name="engine"postgresql/xsl:variable
引擎支持的值为:postgresql、mssql和oracle。 将引擎变量设置为与营销实例数据库对应的值。 - 从Campaign控制台中,转到管理配置包管理包定义,然后创建
package.xml
包含数据模式的文件(xtk:schema
)。 - 导出资源包,然后将文件复制到Linux或Mac工作目录。
- 使用以下命令在工作目录中处理package.xml文件
XSLT: xsltproc database.xsl package.xml database.html.
生成的文档并不完美:
- 无法记录链接上的某些加入条件。
- 当某个枚举在一个架构中被引用,但在另一个不在包中的架构中定义时,未记录该枚举。