N°9643 - Dataflow: split protocol & type, add url and last change (#994)

This commit is contained in:
Vincent Dumas
2026-08-11 11:44:13 +02:00
committed by GitHub
parent c7c16f091b
commit 812f0b573d
9 changed files with 188 additions and 88 deletions

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<Set>
<DataFlowProtocol alias="DataFlowProtocol" id="1">
<name>HTTP</name>
</DataFlowProtocol>
<DataFlowProtocol alias="DataFlowProtocol" id="2">
<name>HTTPS</name>
</DataFlowProtocol>
<DataFlowProtocol alias="DataFlowProtocol" id="3">
<name>FTP</name>
</DataFlowProtocol>
<DataFlowProtocol alias="DataFlowProtocol" id="4">
<name>SFTP</name>
</DataFlowProtocol>
<DataFlowProtocol alias="DataFlowProtocol" id="5">
<name>AS2</name>
</DataFlowProtocol>
<DataFlowProtocol alias="DataFlowProtocol" id="6">
<name>X.400</name>
</DataFlowProtocol>
<DataFlowProtocol alias="DataFlowProtocol" id="7">
<name>FTPS</name>
</DataFlowProtocol>
</Set>

View File

@@ -1,24 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<Set>
<DataFlowType alias="DataFlowType" id="1">
<name>HTTP</name>
<name>REST API</name>
</DataFlowType>
<DataFlowType alias="DataFlowType" id="2">
<name>HTTPS</name>
<name>KAFKA</name>
</DataFlowType>
<DataFlowType alias="DataFlowType" id="3">
<name>FTP</name>
<name>JSON</name>
</DataFlowType>
<DataFlowType alias="DataFlowType" id="4">
<name>SFTP</name>
<name>XML</name>
</DataFlowType>
<DataFlowType alias="DataFlowType" id="5">
<name>AS2</name>
</DataFlowType>
<DataFlowType alias="DataFlowType" id="6">
<name>X.400</name>
</DataFlowType>
<DataFlowType alias="DataFlowType" id="7">
<name>FTPS</name>
<name>CSV</name>
</DataFlowType>
</Set>

View File

@@ -97,6 +97,31 @@
<on_target_delete>DEL_MANUAL</on_target_delete>
<tracking_level>all</tracking_level>
</field>
<field id="dataflowprotocol_id" xsi:type="AttributeExternalKey">
<sql>dataflowprotocol_id</sql>
<filter/>
<dependencies/>
<is_null_allowed>true</is_null_allowed>
<target_class>DataFlowProtocol</target_class>
<on_target_delete>DEL_MANUAL</on_target_delete>
<tracking_level>all</tracking_level>
</field>
<field id="documentation_url" xsi:type="AttributeURL">
<sql>documentation_url</sql>
<default_value/>
<target>_blank</target>
<dependencies/>
<validation_pattern/>
<is_null_allowed>true</is_null_allowed>
<tracking_level>all</tracking_level>
</field>
<field id="last_change_date" xsi:type="AttributeDate">
<sql>last_change_date</sql>
<default_value/>
<dependencies/>
<is_null_allowed>true</is_null_allowed>
<tracking_level>all</tracking_level>
</field>
<field id="status" xsi:type="AttributeEnum">
<sql>status</sql>
<values>
@@ -266,9 +291,12 @@
<item id="dataflowtype_id">
<rank>50</rank>
</item>
<item id="execution_frequency">
<item id="dataflowprotocol_id">
<rank>60</rank>
</item>
<item id="execution_frequency">
<rank>70</rank>
</item>
</items>
<rank>20</rank>
</item>
@@ -282,6 +310,9 @@
<item id="move2production">
<rank>10</rank>
</item>
<item id="last_change_date">
<rank>20</rank>
</item>
</items>
<rank>10</rank>
</item>
@@ -290,9 +321,12 @@
<item id="description">
<rank>10</rank>
</item>
<item id="groups_list">
<item id="documentation_url">
<rank>20</rank>
</item>
<item id="groups_list">
<rank>30</rank>
</item>
</items>
<rank>20</rank>
</item>
@@ -422,6 +456,60 @@
</details>
</presentation>
</class>
<class id="DataFlowProtocol" _delta="define">
<parent>Typology</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>false</abstract>
<db_table>dataflowprotocol</db_table>
<naming>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<reconciliation>
<attributes>
<attribute id="name"/>
<attribute id="finalclass"/>
</attributes>
</reconciliation>
<uniqueness_rules>
<rule id="name">
<attributes>
<attribute id="name"/>
</attributes>
<filter><![CDATA[]]></filter>
<disabled>false</disabled>
<is_blocking>true</is_blocking>
</rule>
</uniqueness_rules>
</properties>
<fields/>
<methods/>
<presentation>
<list>
<items>
<item id="finalclass">
<rank>10</rank>
</item>
</items>
</list>
<search>
<items>
<item id="name">
<rank>10</rank>
</item>
</items>
</search>
<details>
<items>
<item id="name">
<rank>10</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="FunctionalCI" _delta="must_exist">
<fields>
<field id="dataflows" xsi:type="AttributeDashboard" _delta="define">
@@ -628,6 +716,10 @@
<rank>23</rank>
<class>DataFlowType</class>
</dashlet>
<dashlet id="DataFlowProtocol" xsi:type="DashletBadge" _delta="define">
<rank>24</rank>
<class>DataFlowProtocol</class>
</dashlet>
</dashlets>
</cell>
</cells>

View File

@@ -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',
]);

View File

@@ -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',
]);

View File

@@ -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',
]);

View File

@@ -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+' => 'Типология протоколов потоков данных',
]);

View File

@@ -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+' => '数据流协议的分类',
]);

View File

@@ -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,