导出数据 - export-v2.php 需要更新: 记录为 Excel (XLSX) 格式
目的
iTop提供了一个通用Web服务,可以基于OQL查询导出任何数据。该服务可用于从iTop提取数据,以便与第三方工具集成。此Web服务可以返回几种格式的数据:
可以通过命令行界面在iTop服务器上本地调用此服务,也可以通过HTTP请求远程调用此服务。
为了与以前的iTop版本具有100%的向后兼容性,您可以使用旧的Export data-export.php页面。
用法命令行界面
php /var/www/itop/webservices/export-v2.php --auth_user=login --auth_pwd=password --expression=query --format=csv --fields=<list of fields separated by a comma>
远程Web访问
有几种方法可以通过Web连接远程访问服务。这是与wget命令一起使用的语法(如果 启用了 基本身份验证):
wget --http-user=login --http-password=password webservices/export-v2.php?expression=query&format=csv&fields=<list of fields separated by a comma>
参数
参数 | 描述 | 缺省值 | param_file | 参数文件-请参阅 Parameters file | - | auth_user | User login - 仅CLI 模式 | - | auth_pwd | User login - 仅CLI 模式 | - | expression | Object Query Language Reference 查询 | 如果'query'缺失,则必须 | query | 存储在所谓的查询短语簿(Query Phrasebook)中的查询的标识符。请参阅 Query Phrasebook | 如果 'expression' 缺失,则必须 | format | 电子表格(推荐同 MS-Excel网页查询整合), html, xml, csv or xlsx | html | fields | 逗号分隔的属性列表 (例如 “name,brand,model”)。支持扩展属性代码 (例如 caller_id->org_id->code),但可能会大大降低导出速度(因为它们需要其他数据库查询)。小心使用! | <expression>指定的类的所有属性代码。那些没有本地化。
| with_archive | 1: 导出将包括存档的对象. 0 或省略参数: 它不返回已归档的对象。 | 0 | arg_xxx | 如果OQL查询具有参数,则需要:参数'xxx'的值 | none |
与先前版本的导出的主要区别在于,输出中字段的顺序遵循 fields 参数中指定属性的顺序 。
输出HTML
该HTML格式提供作为一个HTML表的输出,如下图所示:
电子表格
此格式专用于集成到电子表格中。特别是,建议将其与Excel Web查询一起使用。有关此Excel集成的更多信息,请参阅文章如何使用iTop查询创建Excel报表。
特定参数的形式
使用电子表格格式时,可以使用以下附加参数:
参数名 | | 默认值 | date_format | 用于导出日期和时间字段的格式(指定使用PHP日期和时间说明符指定)。 | 与 GUI 中相同 | formatted_text | 是否使用HTML标记导出富文本字段。1 =导出标记,0 =无标记。 | 1 | no_localize | 如果设置为0,则标头和值应以登录用户的语言进行本地化。设置为1以使用内部属性代码和值(枚举) | 0 |
XML
当以XML格式导出时,fields参数将被忽略,因为始终会检索目标类的所有字段。当对具有子类的一类对象执行查询时,字段的数量可以从集合中的一个对象变化到另一个。导出还可以包含关系,当调用时使用 linksets=1参数,如下所示。
<?xml version="1.0" enco**="UTF-8"?>
<Set>
<Server alias="Server" id="1">
<name>Server1</name>
<description></description>
<org_id>3</org_id>
<org_id_friendlyname>Demo</org_id_friendlyname>
<organization_name>Demo</organization_name>
<business_criticity>low</business_criticity>
<move2production></move2production>
<contacts_list>
<Set>
<lnkContactToFunctionalCI id="1">
<contact_id>3</contact_id>
<contact_name>Monet</contact_name>
<contact_id_friendlyname>Claude Monet
</contact_id_friendlyname>
<contact_id_finalclass_recall>Person
</contact_id_finalclass_recall>
</lnkContactToFunctionalCI>
</Set>
</contacts_list>
<documents_list>
<Set>
</Set>
</documents_list>
<applicationsolution_list>
<Set>
</Set>
</applicationsolution_list>
<providercontracts_list>
<Set>
</Set>
</providercontracts_list>
<services_list>
<Set>
</Set>
</services_list>
<softwares_list>
<Set>
</Set>
</softwares_list>
<tickets_list>
<Set>
</Set>
</tickets_list>
<serialnumber></serialnumber>
<location_id>1</location_id>
<location_id_friendlyname>Bordeaux</location_id_friendlyname>
<location_name>Bordeaux</location_name>
<status>production</status>
<brand_id>2</brand_id>
<brand_id_friendlyname>HP</brand_id_friendlyname>
<brand_name>HP</brand_name>
<model_id>4</model_id>
<model_id_friendlyname>DL380</model_id_friendlyname>
<model_name>DL380</model_name>
<asset_number></asset_number>
<purchase_date></purchase_date>
<end_of_warranty></end_of_warranty>
<networkdevice_list>
<Set>
</Set>
</networkdevice_list>
<physicalinterface_list>
<Set>
<PhysicalInterface id="1">
<name>eth0</name>
<ipaddress>192.168.10.12</ipaddress>
<macaddress>FB:0A:AF:00:12:3F:54:FF</macaddress>
<comment></comment>
<ipgateway>192.168.10.1</ipgateway>
<ipmask>255.255.255.0</ipmask>
<speed>1000.00</speed>
</PhysicalInterface>
</Set>
</physicalinterface_list>
<rack_id>0</rack_id>
<rack_id_friendlyname></rack_id_friendlyname>
<rack_name></rack_name>
<enclosure_id>0</enclosure_id>
<enclosure_id_friendlyname></enclosure_id_friendlyname>
<enclosure_name></enclosure_name>
<nb_u></nb_u>
<managementip></managementip>
<powerA_id>0</powerA_id>
<powerA_id_friendlyname></powerA_id_friendlyname>
<powerA_name></powerA_name>
<powerA_id_finalclass_recall></powerA_id_finalclass_recall>
<powerB_id>0</powerB_id>
<powerB_id_friendlyname></powerB_id_friendlyname>
<powerB_name></powerB_name>
<powerB_id_finalclass_recall></powerB_id_finalclass_recall>
<fiberinterfacelist_list>
<Set>
</Set>
</fiberinterfacelist_list>
<san_list>
<Set>
</Set>
</san_list>
<osfamily_id>6</osfamily_id>
<osfamily_id_friendlyname>Linux</osfamily_id_friendlyname>
<osfamily_name>Linux</osfamily_name>
<osversion_id>8</osversion_id>
<osversion_id_friendlyname>Unbuntu 11.10</osversion_id_friendlyname>
<osversion_name>Unbuntu 11.10</osversion_name>
<oslicence_id>0</oslicence_id>
<oslicence_id_friendlyname></oslicence_id_friendlyname>
<oslicence_name></oslicence_name>
<cpu></cpu>
<ram></ram>
<logicalvolumes_list>
<Set>
</Set>
</logicalvolumes_list>
</Server>
<Server alias="Server" id="2">
<name>Server2</name>
<description></description>
<org_id>3</org_id>
<org_id_friendlyname>Demo</org_id_friendlyname>
<organization_name>Demo</organization_name>
<business_criticity>low</business_criticity>
<move2production></move2production>
<contacts_list>
<Set>
</Set>
</contacts_list>
<documents_list>
<Set>
</Set>
</documents_list>
<applicationsolution_list>
<Set>
</Set>
</applicationsolution_list>
<providercontracts_list>
<Set>
</Set>
</providercontracts_list>
<services_list>
<Set>
</Set>
</services_list>
<softwares_list>
<Set>
<DBServer id="7">
<name>Oracle</name>
<description></description>
<org_id>3</org_id>
<organization_name>Demo</organization_name>
<business_criticity>low</business_criticity>
<move2production></move2production>
<software_id>1</software_id>
<software_name>MySql</software_name>
<softwarelicence_id>0</softwarelicence_id>
<softwarelicence_name></softwarelicence_name>
<path></path>
<status></status>
<finalclass>DB Server</finalclass>
<org_id_friendlyname>Demo</org_id_friendlyname>
<software_id_friendlyname>MySql 5.3</software_id_friendlyname>
<softwarelicence_id_friendlyname></softwarelicence_id_friendlyname>
</DBServer>
</Set>
</softwares_list>
<tickets_list>
<Set>
</Set>
</tickets_list>
<serialnumber></serialnumber>
<location_id>2</location_id>
<location_id_friendlyname>Grenoble</location_id_friendlyname>
<location_name>Grenoble</location_name>
<status>production</status>
<brand_id>0</brand_id>
<brand_id_friendlyname></brand_id_friendlyname>
<brand_name></brand_name>
<model_id>0</model_id>
<model_id_friendlyname></model_id_friendlyname>
<model_name></model_name>
<asset_number></asset_number>
<purchase_date></purchase_date>
<end_of_warranty></end_of_warranty>
<networkdevice_list>
<Set>
</Set>
</networkdevice_list>
<physicalinterface_list>
<Set>
</Set>
</physicalinterface_list>
<rack_id>0</rack_id>
<rack_id_friendlyname></rack_id_friendlyname>
<rack_name></rack_name>
<enclosure_id>0</enclosure_id>
<enclosure_id_friendlyname></enclosure_id_friendlyname>
<enclosure_name></enclosure_name>
<nb_u></nb_u>
<managementip></managementip>
<powerA_id>0</powerA_id>
<powerA_id_friendlyname></powerA_id_friendlyname>
<powerA_name></powerA_name>
<powerA_id_finalclass_recall></powerA_id_finalclass_recall>
<powerB_id>0</powerB_id>
<powerB_id_friendlyname></powerB_id_friendlyname>
<powerB_name></powerB_name>
<powerB_id_finalclass_recall></powerB_id_finalclass_recall>
<fiberinterfacelist_list>
<Set>
</Set>
</fiberinterfacelist_list>
<san_list>
<Set>
</Set>
</san_list>
<osfamily_id>0</osfamily_id>
<osfamily_id_friendlyname></osfamily_id_friendlyname>
<osfamily_name></osfamily_name>
<osversion_id>0</osversion_id>
<osversion_id_friendlyname></osversion_id_friendlyname>
<osversion_name></osversion_name>
<oslicence_id>0</oslicence_id>
<oslicence_id_friendlyname></oslicence_id_friendlyname>
<oslicence_name></oslicence_name>
<cpu></cpu>
<ram></ram>
<logicalvolumes_list>
<Set>
</Set>
</logicalvolumes_list>
</Server>
</Set>
特定参数的形式
使用XML格式时,可以使用以下附加参数:
参数名 | 描述 | 缺省值 | linksets | 设置为1可以检索到相关对象的链接(一对多或多对多关系)。0表示仅对象的“标量”值。 | 0 | no_localize | 如果设置为0,则标头和值应以登录用户的语言进行本地化。设置为1以使用内部属性代码和值(枚举). | 0 |
CSV
CSV格式产生的输出示例:
id,Name,Management IP 1,"dbserver1.demo.com","10.1.1.10"6,"webserver.demo.com","10.1.1.20"
特定参数的形式
使用CSV格式时,可以使用以下附加参数:
参数名 | 描述 | 缺省值 | charset | 用于对输出进行编码的字符集。 | UTF-8 | date_format | 用于导出日期和时间字段的格式(使用PHP日期和时间说明符指定)。 | 与 GUI 中相同 | formatted_text | 是否使用HTML标记导出富文本字段。1 =导出标记,0 =无标记。 | 0 | no_localize | 如果设置为0,则标头和值应以登录用户的语言进行本地化。设置为1以使用内部属性代码和值(枚举) | 0 | separator | 用作输出中字段之间分隔符的字符 | , (逗号) | text-qualifier | 文本字符串周围要使用的字符 | " (双引号) |
PDF
这种格式会生成一个PDF文档,其中包含一张包含所需数据的大表。注意:表格的自动布局使所有列的宽度相同。因此,它最适合于少量(<10)的列。要容纳更多列,请使用纵向页面的方向。
特定参数的形式
使用PDF格式时,可以使用以下附加参数:
Parameter name | Description | Default value | date_format | 用于导出日期和时间字段的格式(使用PHP日期和时间说明符)。 | 同 GUI相同 | page_size | 用于布局的页面纸张尺寸。可能的值: A3, A4 or Letter | A4 | page_orientation | 版面页面纸张的方向。可能的值:横向或纵向 | 纵向 |
XLSX特定参数的形式
使用XLSX格式时,可以使用以下附加参数:
Parameter name | Description | Default value | date_format | 用于导出日期和时间字段的格式(使用PHP日期和时间说明符)。 | 同 GUI相同 | formatted_text | 是否使用HTML标记导出富文本字段。1 =导出标记,0 =无标记。 | 0 |
允许的用户
Portal users 不允许访问此服务,因为此概要文件不包含安全性,安全性由门户网站自行完成。 用户必须有对指定对象类具有批量读取权限。在标准iTOP的数据模型,所有用户对所有类都有读和批量读的权利。
历史
0.9 此功能的首次实现 1.2.1 添加了参数“查询”,以替代“表达式”。 1.2.1 添加了“电子表格”格式,该格式可拆分日期和时间列。 1.2.1 修复了HTTPS和MS-IIS的停止问题(Trac: #485). 分支1.2.1电子表格格式:修复了带时间的问题 (Trac: #541). 解决方法是使用XML格式(XCel支持此格式) 2.0: 添加了标记no_localize 2.1.0: 添加了XLSX格式 2.2.0: 通过创建新export-v2.php页面重新设计导出
|