Rational 部门的一个主要策略是改善 Rational 和非 Rational 工具的集成。该策略的技术是基于生命周期协作开放服务 (OSLC)。
变得可用的脚本完全由 Rational DOORS 管理员进行控制和定制,该管理员可决定在整个服务接口中提供哪些 DXL 脚本。管理员可锁定调用某些可能被认为是潜在的安全风险(例如“runDXL”)的函数的能力。
请注意,将永不支持某些 DXL(例如用户界面窗口小部件)。
因为服务发现受 OAuth 的保护,因此还要求该功能的用户首先使用用户名和密码进行认证。
创建包含以下代码的名为 helloWorld.inc 的 DXL 文件:
void getHelloString(string language)
{
string hello = null
if ("French" == language)
{
hello = "Bonjour le monde"
}
else if ("Finnish" == language)
{
hello = "Hei maailma"
}
else if ("Latin" == language)
{
hello = "Ave mundi"
}
else
{
hello = "Hello world"
}
setDxlServiceResult hello
print hello "\n"
}
将 helloWorld.inc 文件复制到 /addins/services 目录中。该目录的缺省位置是 C:\Program Files (x86)\IBM\Rational\DOORS\9.5\lib\dxl\addins\services。
启动 Rational DOORS 客户机并以 Administrator 身份登录。
要安装 DXL,请打开 DXL 窗口并输入以下 DXL 代码。这将创建名为 helloWorld 的服务。
OSLCDXLService os = null
string err = null
string dxlCode = "#include <addins/services/helloWorld.inc>\n"
err = addOrUpdateOSLCDXLService("helloWorld", "Hello world in several languages", dxlCode, "getHelloString")
if (!null err)
{
print err
}
else
{
print "Installed Service\n"
}
然后,调用该服务。该 URI 类似于以下示例:http://servername:portnumber/dwa/rm/dxl/helloWorld
将 accept 和 content-type 头设置为以下条目:application/rdf+xml
请求内容应该类似于以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
<doors:Arguments>
<doors:arguments>English</doors:arguments>
</doors:Arguments>
</rdf:RDF>
最重要的字段是 doors:arguments 字段。这些字段包含脚本运行所需的所有参数。如果其中任何字段缺失或未正确排序,那么调用将失败。
响应内容将类似于以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
<doors:DxlServiceResult rdf:about="http://my-desktop:8080/dwa/rm/dxl/helloWorld>
<doors:result>Hello world</doors:result>
</doors:DxlServiceResult>
</rdf:RDF>
该服务不执行数据编组操作。 自变量以字符串格式指定,DXL 脚本从字符串中抽取值,然后将这些值转换为期望的各个参数。