From 812f0b573d8d8ac6b7eea5c9cda350ea220b2fbe Mon Sep 17 00:00:00 2001
From: Vincent Dumas <42336698+v-dumas@users.noreply.github.com>
Date: Tue, 11 Aug 2026 11:44:13 +0200
Subject: [PATCH] =?UTF-8?q?N=C2=B09643=20-=20Dataflow:=20split=20protocol?=
=?UTF-8?q?=20&=20type,=20add=20url=20and=20last=20change=20(#994)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../data/data.itop-dataflowprotocol.xml | 24 +++++
...p.en_us.xml => data.itop-dataflowtype.xml} | 16 +---
.../itop-flow-map/datamodel.itop-flow-map.xml | 96 ++++++++++++++++++-
.../dictionaries/en.dict.itop-flow-map.php | 25 ++---
.../dictionaries/fr.dict.itop-flow-map.php | 35 +++----
.../dictionaries/nl.dict.itop-flow-map.php | 11 ++-
.../dictionaries/ru.dict.itop-flow-map.php | 25 ++---
.../dictionaries/zh_cn.dict.itop-flow-map.php | 41 ++++----
.../itop-flow-map/module.itop-flow-map.php | 3 +-
9 files changed, 188 insertions(+), 88 deletions(-)
create mode 100644 datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml
rename datamodels/2.x/itop-flow-map/data/{data.itop-flow-map.en_us.xml => data.itop-dataflowtype.xml} (56%)
diff --git a/datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml
new file mode 100644
index 0000000000..74cd0ed0f1
--- /dev/null
+++ b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml
@@ -0,0 +1,24 @@
+
+
+
+ HTTP
+
+
+ HTTPS
+
+
+ FTP
+
+
+ SFTP
+
+
+ AS2
+
+
+ X.400
+
+
+ FTPS
+
+
diff --git a/datamodels/2.x/itop-flow-map/data/data.itop-flow-map.en_us.xml b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowtype.xml
similarity index 56%
rename from datamodels/2.x/itop-flow-map/data/data.itop-flow-map.en_us.xml
rename to datamodels/2.x/itop-flow-map/data/data.itop-dataflowtype.xml
index e53080f5ac..40505f0a6c 100644
--- a/datamodels/2.x/itop-flow-map/data/data.itop-flow-map.en_us.xml
+++ b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowtype.xml
@@ -1,24 +1,18 @@
- HTTP
+ REST API
- HTTPS
+ KAFKA
- FTP
+ JSON
- SFTP
+ XML
- AS2
-
-
- X.400
-
-
- FTPS
+ CSV
\ No newline at end of file
diff --git a/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml b/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml
index d64732aecf..6fbf52bccb 100644
--- a/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml
+++ b/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml
@@ -97,6 +97,31 @@
DEL_MANUAL
all
+
+ dataflowprotocol_id
+
+
+ true
+ DataFlowProtocol
+ DEL_MANUAL
+ all
+
+
+ documentation_url
+
+ _blank
+
+
+ true
+ all
+
+
+ last_change_date
+
+
+ true
+ all
+
status
@@ -266,9 +291,12 @@
-
50
- -
+
-
60
+ -
+ 70
+
20
@@ -282,6 +310,9 @@
-
10
+ -
+ 20
+
10
@@ -290,9 +321,12 @@
-
10
- -
+
-
20
+ -
+ 30
+
20
@@ -422,6 +456,60 @@
+
+ Typology
+
+ bizmodel,searchable
+ false
+ dataflowprotocol
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ true
+
+
+
+
+
+
+
+
+ -
+ 10
+
+
+
+
+
+ -
+ 10
+
+
+
+
+
+ -
+ 10
+
+
+
+
+
@@ -628,6 +716,10 @@
23
DataFlowType
+
+ 24
+ DataFlowProtocol
+
diff --git a/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php
index e1d46dbb8a..1185f3a1ef 100644
--- a/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php
+++ b/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php
@@ -45,7 +45,13 @@ Dict::Add('EN US', 'English', 'English', [
'Class:DataFlow/Attribute:destination_impact/Value:no' => 'no',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'If the flow stops, the destination is not impacted',
'Class:DataFlow/Attribute:dataflowtype_id' => 'Flow type',
- 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Typology of Flow.',
+ 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Flow protocol',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol',
+ 'Class:DataFlow/Attribute:documentation_url' => 'Documentation URL',
+ 'Class:DataFlow/Attribute:documentation_url+' => 'URL to the documentation of the data flow',
+ 'Class:DataFlow/Attribute:last_change_date' => 'Last change date',
+ 'Class:DataFlow/Attribute:last_change_date+' => 'Last time the software or configuration of the Data Flow was updated',
'Class:DataFlow/Attribute:status' => 'Status',
'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => 'active',
@@ -74,18 +80,7 @@ Dict::Add('EN US', 'English', 'English', [
'Class:DataFlowType' => 'Data Flow Type',
'Class:DataFlowType+' => 'Typology of Data Flow',
-/*
- 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname',
- 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
- 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname',
- 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
-*/
+ 'Class:DataFlowProtocol' => 'Data Flow Protocol',
+ 'Class:DataFlowProtocol+' => 'Typology of Data Flow Protocol',
+
]);
diff --git a/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php
index c7fc8c19b1..610bc7be1d 100644
--- a/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php
+++ b/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php
@@ -44,10 +44,16 @@ Dict::Add('FR FR', 'French', 'Français', [
'Class:DataFlow/Attribute:destination_impact/Value:yes+' => 'Si le flux s\'arrête, le destinataire est impacté',
'Class:DataFlow/Attribute:destination_impact/Value:no' => 'non',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Si le flux s\'arrête, le destinataire n\'est pas impacté',
- 'Class:DataFlow/Attribute:dataflowtype_id' => 'Type de flux',
- 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Typologie du flux',
- 'Class:DataFlow/Attribute:status' => 'Etat',
- 'Class:DataFlow/Attribute:status+' => '',
+ 'Class:DataFlow/Attribute:dataflowtype_id' => 'Type du flux',
+ 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Ces valeurs sont gérées dans une typologie',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Protocole',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Protocole utilisé par le flux. Ces valeurs sont gérées dans une typologie',
+ 'Class:DataFlow/Attribute:documentation_url' => 'Lien vers la documentation',
+ 'Class:DataFlow/Attribute:documentation_url+' => 'URL vers la documentation du flux de données',
+ 'Class:DataFlow/Attribute:last_change_date' => 'Dernière mise à jour',
+ 'Class:DataFlow/Attribute:last_change_date+' => 'Date de la dernière mise à jour du logiciel ou de la configuration du flux de données',
+ 'Class:DataFlow/Attribute:status' => 'État',
+ 'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => 'actif',
'Class:DataFlow/Attribute:status/Value:inactive' => 'inactif',
'Class:DataFlow/Attribute:execution_frequency' => 'Fréquence d\'exécution',
@@ -66,26 +72,15 @@ Dict::Add('FR FR', 'French', 'Français', [
'Class:DataFlow/Attribute:execution_frequency/Value:monthly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:yearly' => 'annuelle',
'Class:DataFlow/Attribute:execution_frequency/Value:yearly+' => '',
- 'Class:DataFlow/Attribute:documents_list+' => 'Eg: technical specifications, runbooks, etc.',
- 'Class:DataFlow/Attribute:contacts_list+' => 'Eg: flow owner, technical support, etc.',
+ 'Class:DataFlow/Attribute:documents_list+' => 'Ex: spécifications techniques, runbooks, etc.',
+ 'Class:DataFlow/Attribute:contacts_list+' => 'Ex: propriétaire du flux, support technique, etc.',
'Class:DataFlow/Error:CheckSource' => 'La source d\'un flux de données ne peut pas être un flux de données elle-même. Choisissez un autre CI source que %1$s',
'Class:DataFlow/Error:CheckDestination' => 'La destination d\'un flux de données ne peut pas être un flux de données elle-même. Choisissez un autre CI destination que %1$s',
'Class:DataFlowType' => 'Type de flux',
'Class:DataFlowType+' => 'Typologie des flux de données',
-/*
- 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname',
- 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Nom complet',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Classe finale',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
- 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname',
- 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Nom complet',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Classe finale',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
-*/
+ 'Class:DataFlowProtocol' => 'Protocole de flux',
+ 'Class:DataFlowProtocol+' => 'Typologie des protocoles de flux',
+
]);
diff --git a/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php
index 8fb4db4ccb..7bbe05e760 100644
--- a/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php
+++ b/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php
@@ -45,7 +45,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Class:DataFlow/Attribute:destination_impact/Value:no' => 'Nee',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Als de gegevensstroom stopt, heeft dit geen gevolgen voor de bestemming.',
'Class:DataFlow/Attribute:dataflowtype_id' => 'Type',
- 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Soort gegevensstroom',
+ 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type~~',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Flowprotocol',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol~~',
+ 'Class:DataFlow/Attribute:documentation_url' => 'Documentatie-URL',
+ 'Class:DataFlow/Attribute:documentation_url+' => 'URL naar de documentatie van de gegevensstroom',
+ 'Class:DataFlow/Attribute:last_change_date' => 'Datum laatste wijziging',
+ 'Class:DataFlow/Attribute:last_change_date+' => 'Datum van de laatste wijziging van de software of configuratie van de gegevensstroom',
'Class:DataFlow/Attribute:status' => 'Status',
'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => 'Actief',
@@ -74,4 +80,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Class:DataFlowType' => 'Soort gegevensstroom',
'Class:DataFlowType+' => '',
+ 'Class:DataFlowProtocol' => 'Gegevensstroomprotocol',
+ 'Class:DataFlowProtocol+' => 'Typologie van gegevensstroomprotocol',
+
]);
diff --git a/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php
index 8272f172d4..b63612d4ec 100644
--- a/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php
+++ b/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php
@@ -49,7 +49,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:DataFlow/Attribute:destination_impact/Value:no' => 'нет',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Если поток останавливается, назначение не подвержено влиянию',
'Class:DataFlow/Attribute:dataflowtype_id' => 'Тип потока',
- 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Типология потока.',
+ 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type~~',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Протокол потока',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol~~',
+ 'Class:DataFlow/Attribute:documentation_url' => 'Ссылка на документацию',
+ 'Class:DataFlow/Attribute:documentation_url+' => 'Ссылка на документацию потока данных',
+ 'Class:DataFlow/Attribute:last_change_date' => 'Дата последнего изменения',
+ 'Class:DataFlow/Attribute:last_change_date+' => 'Дата последнего изменения программного обеспечения или конфигурации потока данных',
'Class:DataFlow/Attribute:status' => 'Статус',
'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => 'активен',
@@ -78,18 +84,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:DataFlowType' => 'Тип потока данных',
'Class:DataFlowType+' => 'Типология потоков данных',
-/*
- 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname',
- 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
- 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname',
- 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
-*/
+ 'Class:DataFlowProtocol' => 'Протокол потока данных',
+ 'Class:DataFlowProtocol+' => 'Типология протоколов потоков данных',
+
]);
diff --git a/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php
index 863ceef69b..3abf975186 100644
--- a/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php
+++ b/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php
@@ -9,11 +9,11 @@
Dict::Add('ZH CN', 'Chinese', '简体中文', [
- 'Relation:dataflows/Description' => 'DataFlows between CIs~~',
- 'Relation:dataflows/DownStream' => 'Outbound flows...',
- 'Relation:dataflows/DownStream+' => 'Outbound flows map from',
- 'Relation:dataflows/UpStream' => 'Inbound flows...',
- 'Relation:dataflows/UpStream+' => 'Inbound flows map to',
+ 'Relation:dataflows/Description' => '配置项之间的数据流',
+ 'Relation:dataflows/DownStream' => '出站数据流...',
+ 'Relation:dataflows/DownStream+' => '出站数据流图,源自',
+ 'Relation:dataflows/UpStream' => '入站数据流...',
+ 'Relation:dataflows/UpStream+' => '入站数据流图,指向',
'Class:FunctionalCI/Attribute:dataflows' => '数据流',
'Class:FunctionalCI/Attribute:dataflows+' => '该对象作为源或目标的数据流',
@@ -24,7 +24,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [
'DataFlow:moreinfo' => '数据流详情',
'Class:DataFlow' => '数据流',
- 'Class:DataFlow+' => 'For application flow for example~~',
+ 'Class:DataFlow+' => '例如应用数据流',
'Class:DataFlow/Name' => '%1$s',
'Class:DataFlow/Attribute:name' => '名称',
'Class:DataFlow/Attribute:name+' => '已传输的数据',
@@ -45,7 +45,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [
'Class:DataFlow/Attribute:destination_impact/Value:no' => '否',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => '如果数据流停止,目标不受影响',
'Class:DataFlow/Attribute:dataflowtype_id' => '数据流类型',
- 'Class:DataFlow/Attribute:dataflowtype_id+' => '数据流的分类',
+ 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type~~',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id' => '数据流协议',
+ 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol~~',
+ 'Class:DataFlow/Attribute:documentation_url' => '文档链接',
+ 'Class:DataFlow/Attribute:documentation_url+' => '数据流文档链接',
+ 'Class:DataFlow/Attribute:last_change_date' => '最后修改日期',
+ 'Class:DataFlow/Attribute:last_change_date+' => '数据流软件或配置的最后修改时间',
'Class:DataFlow/Attribute:status' => '状态',
'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => '启用',
@@ -68,24 +74,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [
'Class:DataFlow/Attribute:execution_frequency/Value:yearly+' => '',
'Class:DataFlow/Attribute:documents_list+' => '例如: 技术规范, 操作手册等.',
'Class:DataFlow/Attribute:contacts_list+' => '例如: 数据流所有者, 技术支持等.',
- 'Class:DataFlow/Error:CheckSource' => 'The source of a data flow cannot be a data flow itself. Choose another source CI than %1$s~~',
- 'Class:DataFlow/Error:CheckDestination' => 'The destination of a data flow cannot be a data flow itself. Choose another destination CI than %1$s~~',
+ 'Class:DataFlow/Error:CheckSource' => '数据流的源头不能是数据流本身。请选择一个不同的源配置项,而不是 %1$s',
+ 'Class:DataFlow/Error:CheckDestination' => '数据流的目标不能是数据流本身。请选择一个不同的目标配置项,而不是 %1$s',
'Class:DataFlowType' => '数据流类型',
'Class:DataFlowType+' => '数据流的分类',
-/*
- 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname',
- 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class',
- 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete',
- 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
- 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname',
- 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class',
- 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete',
- 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
-*/
+ 'Class:DataFlowProtocol' => '数据流协议',
+ 'Class:DataFlowProtocol+' => '数据流协议的分类',
+
]);
diff --git a/datamodels/2.x/itop-flow-map/module.itop-flow-map.php b/datamodels/2.x/itop-flow-map/module.itop-flow-map.php
index dc0d8a0333..13e251f68c 100644
--- a/datamodels/2.x/itop-flow-map/module.itop-flow-map.php
+++ b/datamodels/2.x/itop-flow-map/module.itop-flow-map.php
@@ -31,7 +31,8 @@ SetupWebPage::AddModule(
],
'data.struct' => [
- 'data/data.itop-flow-map.en_us.xml',
+ 'data/data.itop-dataflowtype.xml',
+ 'data/data.itop-dataflowprotocol.xml',
],
'data.sample' => [
// add your sample data XML files here,