SlideShare a Scribd company logo
External Master Data in Alfresco: 
Integrating and Keeping Metadata 
Consistent Across Multiple Systems 
Oksana Kurysheva 
@aviriel 
Alexey Vasyukov 
@avasyukov
Who are we? 
Oksana Kurysheva 
@aviriel 
Project Manager / Trainer / 
Queen of the bees 
ITD Systems / Order of the 
Bee 
Alexey Vasyukov 
@avasyukov 
Chief Architect / Alvex Product 
Manager 
ITD Systems
Questions for the next 39 minutes 
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
5 Conclusion
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
5 Conclusion
What is Master Data?
Master data management is an integration between Alfresco and a complex set of 
third-party systems, that you are to meet when trying to use Alfresco in the wild.
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
Integrating Alfresco with external 
Master Data 
Complicated cases 
Out of the box implementation 
Data-list based implementation 
5 Conclusion 
3.1 
3.2
Constraints in the content model
Constraints in the content model 
Users can 
select a value 
from the list. 
+ 
Master data 
changes quite 
frequently. 
Business users 
do not like the 
idea to call IT 
every time they 
need new 
option in the 
drop-down list. 
-
1 What is Master Data? 
2 Storing Master Data in Alfresco 
Out of the box implementation 
Data-list based implementation 
3.1 
3.2 
3 
4 
Integrating Alfresco with external 
Master Data 
Complicated cases 
5 Conclusion
Data-list based implementation (1/5) 
• Simple solution 
• Several extensions to do it: 
• Tony Parzgnat implementation 
https://github.com/parzgnat/alfresco-value-assistance 
• Angel Borroy implementation 
https://github.com/keensoft/alfresco-datalist-constraints 
• Alvex releases older 2.1
<appearance> 
<field id=“dm:color”> 
<control template=“/form-controls/dynamic-dropdown.ftl”> 
<control-param name=“pickListName”>Color</control- param> 
</control> 
</field> 
</appearance> 
Data-list based implementation (2/5)
Data-list based implementation (3/5)
Solves basic issue quickly 
•Business users can edit constraints in browser! 
Data-list based implementation (4/5)
Updating a list 
of values 
Performance 
Permissions 
Share-Tier 
No native 
constraint 
Still no sync 
with external 
Master Data 
- 
Data-list based implementation (5/5)
1 What is Master Data? 
2 
3 
Storing Master Data in Alfresco 
The Good 
The Bad 
3.1 
3.2 
4 Complicated cases 
5 Conclusion 
External Master Data
External Master Data 
Assumptions: 
• Master data is in 3rd party systems. 
• These systems have remote APIs. 
Let's query them for reference data.
Architectural Choice 
Share Tier vs Repo Tier
Architectural Choice: Share-tier
Architectural Choice: Share-tier 
<field id=“alvexdt:contract”> 
<control template=“/alvex-masterData-select.ftl”> 
<control-param name=“url”> 
http://www.alvexsoftware.com/files/contacts_sample.json 
</control-param> 
<control-param name=“path”></control-param> 
<control-param name=“label”>contactCompany</control-param> 
<control-param name=“value”>contactCompany</control-param> 
</control> 
</field>
Architectural Choice: Repo Tier
Architectural Choice: Repo Tier 
<constraint name="alvexdt:docStatus" 
type="com.alvexcore.repo.masterdata.MasterDataConstraint"> 
<parameter name="dataSourceName"> 
<value>Test</value> 
</parameter> 
</constraint>
1 What is Master Data? 
2 Storing Master Data in Alfresco 
3 
The Good 
The Bad 
3.1 
3.2 
4 Complicated cases 
5 Conclusion 
External Master Data
External Master Data 
Quite obvious idea becomes tricky: 
• Live data vs Cached data 
• Performance and bottlenecks 
• Changes in reference data
Dilemma: Live Data vs Cached Data 
Always actual 
Simple 
implementation 
Slow network 
Service is 
unavailable? 
Live 
Data May be 
outdated 
Complex 
implementation 
Fast 
Always 
available 
Cached 
Data
Performance 
• Constraint is expected to be extremely fast 
• Just reading field with list constraint with N 
values causes N+1 call to Constraint class. 
• Caching of classifiers in Repo is not enough.
Changes in Reference Data 
Update items 
Processing 
Updates Leave old 
value in 
existing fields 
Migrate 
existing fields 
to the new one 
Processing 
Deletion 
Allow creating 
new data from 
Alfresco 
Add new 
data
Implementation Details (1/5)
Implementation Details (2/5)
Implementation Details (3/5)
Implementation Details (4/5)
Implementation Details (5/5)
Changes in Reference Data 
Update items 
Processing 
Updates Leave old 
value in 
existing fields 
Migrate 
existing fields 
to the new one 
Processing 
Deletion 
Allow creating 
new data from 
Alfresco 
Add new 
data
External Master Data: Demo
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
4.1 
4.2 
Handling Tree-Like Structures 
Constraints Inter-Dependencies 
4.3 
One-To-Many Relations 
5 
Conclusion
Complicated Cases 
Reference data is complex IRL: 
• Tree-like hierarchies 
• Inter-dependencies of constraints 
• One-to-many mapping (one master data 
object to many content object properties)
Handing Tree-Like Structures
Handing Tree-Like Structures 
• Jean Barmash implementation (2008) 
https://forums.alfresco.com/comment/80963#co 
mment-80963
Constraints Inter-Dependencies
One-To-Many Relations
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
5 Conclusion
Fear and Loathing Under The Hood
Getting forms
Getting forms
Validations on Node Create/Edit
Validations on Node Create/Edit
Fear and Loathing Under The Hood: Summary 
Overloaded components: 
• /api/formdefinition 
• MasterDataAwareScriptFormService 
• MasterDataAwareIntegrityChecker 
• MasterDataAwarePropertiesIntegrityEvent
Roadmap 
• Completely solve Complicated Cases 
• Extract Master Data from Alvex to a 
separate extension
Resources 
GitHub Repo: 
https://github.com/ITDSystems/alvex 
Contacts: 
@aviriel & @avasyukov & @alvexsoftware 
ping@itdhq.com

More Related Content

What's hot

CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
Mike North
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
Chris Tankersley
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
Dustin Ruehle
 
High Performance PL/SQL
High Performance PL/SQLHigh Performance PL/SQL
High Performance PL/SQL
Steven Feuerstein
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure Databricks
GoDataDriven
 
The Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheThe Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result Cache
Steven Feuerstein
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin production
Vinay Shukla
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
Coimbra JUG
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App Deployment
Axel Fontaine
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Tin Linn Soe
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Leandro Rosa
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
Phil Pursglove
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
Phill Sparks
 
Apache zeppelin 0.7.0 helium
Apache zeppelin 0.7.0   heliumApache zeppelin 0.7.0   helium
Apache zeppelin 0.7.0 helium
Ahyoung Ryu
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
Pavel Chunyayev
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018
Dennis Koch
 
Validating latest changes with XCI
Validating latest changes with XCIValidating latest changes with XCI
Validating latest changes with XCI
Victor Morales
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep Dive
Andreas Grabner
 
Coordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractCoordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud Contract
Omri Spector
 

What's hot (20)

CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
 
High Performance PL/SQL
High Performance PL/SQLHigh Performance PL/SQL
High Performance PL/SQL
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure Databricks
 
The Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheThe Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result Cache
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin production
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App Deployment
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
 
Apache zeppelin 0.7.0 helium
Apache zeppelin 0.7.0   heliumApache zeppelin 0.7.0   helium
Apache zeppelin 0.7.0 helium
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018
 
Validating latest changes with XCI
Validating latest changes with XCIValidating latest changes with XCI
Validating latest changes with XCI
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep Dive
 
Coordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractCoordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud Contract
 

Viewers also liked

Project Management with Alfresco
Project Management with AlfrescoProject Management with Alfresco
Project Management with Alfresco
ITD Systems
 
Orgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talkOrgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talk
ITD Systems
 
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
ITD Systems
 
Building a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for TalismaBuilding a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for Talisma
Neev Technologies
 
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment PortalCASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
Alfresco Software
 
PM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектомPM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектомITD Systems
 
Краткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и AlvexКраткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и Alvex
ITD Systems
 
ECM Adekva на платформе Alfresco
ECM Adekva на платформе AlfrescoECM Adekva на платформе Alfresco
ECM Adekva на платформе Alfresco
ADEKVA
 
Zia Fresh Project demo
Zia   Fresh Project demoZia   Fresh Project demo
Zia Fresh Project demo
Zia Consulting
 

Viewers also liked (9)

Project Management with Alfresco
Project Management with AlfrescoProject Management with Alfresco
Project Management with Alfresco
 
Orgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talkOrgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talk
 
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
 
Building a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for TalismaBuilding a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for Talisma
 
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment PortalCASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
 
PM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектомPM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектом
 
Краткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и AlvexКраткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и Alvex
 
ECM Adekva на платформе Alfresco
ECM Adekva на платформе AlfrescoECM Adekva на платформе Alfresco
ECM Adekva на платформе Alfresco
 
Zia Fresh Project demo
Zia   Fresh Project demoZia   Fresh Project demo
Zia Fresh Project demo
 

Similar to External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems

Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
Peter Eisentraut
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under control
Marcin Przepiórowski
 
OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2
vasuballa
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
Unmesh Baile
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
Unmesh Baile
 
C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2
Bill Liu
 
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataWhite Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
Perforce
 
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
Sandesh Rao
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
HostedbyConfluent
 
Changing platforms of Oracle database
Changing platforms of Oracle databaseChanging platforms of Oracle database
Changing platforms of Oracle database
Pawanbir Singh
 
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Performance Tuning Corporation
 
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
Databricks
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedIn
Amy W. Tang
 
MySQL optimisations of Docplanner services
MySQL optimisations of Docplanner servicesMySQL optimisations of Docplanner services
MySQL optimisations of Docplanner services
Tomasz Wójcik
 
3106741-MySQLStoredProcedures
3106741-MySQLStoredProcedures3106741-MySQLStoredProcedures
3106741-MySQLStoredProcedures
Márcio Antônio Moraes Reyes
 
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Priyanka Aash
 
Db2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallsDb2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfalls
sam2sung2
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngine
Green Egg Media
 
Exception & Database
Exception & DatabaseException & Database
Exception & Database
Jamshid Hashimi
 
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, DatabricksSpark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
GoDataDriven
 

Similar to External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems (20)

Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under control
 
OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2
 
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataWhite Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
 
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 
Changing platforms of Oracle database
Changing platforms of Oracle databaseChanging platforms of Oracle database
Changing platforms of Oracle database
 
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
 
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedIn
 
MySQL optimisations of Docplanner services
MySQL optimisations of Docplanner servicesMySQL optimisations of Docplanner services
MySQL optimisations of Docplanner services
 
3106741-MySQLStoredProcedures
3106741-MySQLStoredProcedures3106741-MySQLStoredProcedures
3106741-MySQLStoredProcedures
 
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
 
Db2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallsDb2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfalls
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngine
 
Exception & Database
Exception & DatabaseException & Database
Exception & Database
 
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, DatabricksSpark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
 

Recently uploaded

Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
my Pandit
 
How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....
How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....
How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....
Lacey Max
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
hartfordclub1
 
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Stone Art Hub
 
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
APCO
 
How to Buy an Engagement Ring.pcffbhfbfghfhptx
How to Buy an Engagement Ring.pcffbhfbfghfhptxHow to Buy an Engagement Ring.pcffbhfbfghfhptx
How to Buy an Engagement Ring.pcffbhfbfghfhptx
Charleston Alexander
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
ssuser567e2d
 
Garments ERP Software in Bangladesh _ Pridesys IT Ltd.pdf
Garments ERP Software in Bangladesh _ Pridesys IT Ltd.pdfGarments ERP Software in Bangladesh _ Pridesys IT Ltd.pdf
Garments ERP Software in Bangladesh _ Pridesys IT Ltd.pdf
Pridesys IT Ltd.
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
aragme
 
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...
Neil Horowitz
 
Pitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deckPitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deck
HajeJanKamps
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
sssourabhsharma
 
NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...
NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...
NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...
BBPMedia1
 
Cover Story - China's Investment Leader - Dr. Alyce SU
Cover Story - China's Investment Leader - Dr. Alyce SUCover Story - China's Investment Leader - Dr. Alyce SU
Cover Story - China's Investment Leader - Dr. Alyce SU
msthrill
 
Ellen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women Magazine
Ellen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women MagazineEllen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women Magazine
Ellen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women Magazine
CIOWomenMagazine
 
Call8328958814 satta matka Kalyan result satta guessing
Call8328958814 satta matka Kalyan result satta guessingCall8328958814 satta matka Kalyan result satta guessing
Call8328958814 satta matka Kalyan result satta guessing
➑➌➋➑➒➎➑➑➊➍
 
Profiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdfProfiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdf
TTop Threads
 
Innovative Uses of Revit in Urban Planning and Design
Innovative Uses of Revit in Urban Planning and DesignInnovative Uses of Revit in Urban Planning and Design
Innovative Uses of Revit in Urban Planning and Design
Chandresh Chudasama
 
Industrial Tech SW: Category Renewal and Creation
Industrial Tech SW:  Category Renewal and CreationIndustrial Tech SW:  Category Renewal and Creation
Industrial Tech SW: Category Renewal and Creation
Christian Dahlen
 

Recently uploaded (20)

Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
 
How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....
How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....
How are Lilac French Bulldogs Beauty Charming the World and Capturing Hearts....
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
 
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
 
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
 
How to Buy an Engagement Ring.pcffbhfbfghfhptx
How to Buy an Engagement Ring.pcffbhfbfghfhptxHow to Buy an Engagement Ring.pcffbhfbfghfhptx
How to Buy an Engagement Ring.pcffbhfbfghfhptx
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
 
Garments ERP Software in Bangladesh _ Pridesys IT Ltd.pdf
Garments ERP Software in Bangladesh _ Pridesys IT Ltd.pdfGarments ERP Software in Bangladesh _ Pridesys IT Ltd.pdf
Garments ERP Software in Bangladesh _ Pridesys IT Ltd.pdf
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
 
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...
 
Pitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deckPitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deck
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
 
NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...
NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...
NIMA2024 | De toegevoegde waarde van DEI en ESG in campagnes | Nathalie Lam |...
 
Cover Story - China's Investment Leader - Dr. Alyce SU
Cover Story - China's Investment Leader - Dr. Alyce SUCover Story - China's Investment Leader - Dr. Alyce SU
Cover Story - China's Investment Leader - Dr. Alyce SU
 
Ellen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women Magazine
Ellen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women MagazineEllen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women Magazine
Ellen Burstyn: From Detroit Dreamer to Hollywood Legend | CIO Women Magazine
 
Call8328958814 satta matka Kalyan result satta guessing
Call8328958814 satta matka Kalyan result satta guessingCall8328958814 satta matka Kalyan result satta guessing
Call8328958814 satta matka Kalyan result satta guessing
 
Profiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdfProfiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdf
 
Innovative Uses of Revit in Urban Planning and Design
Innovative Uses of Revit in Urban Planning and DesignInnovative Uses of Revit in Urban Planning and Design
Innovative Uses of Revit in Urban Planning and Design
 
Industrial Tech SW: Category Renewal and Creation
Industrial Tech SW:  Category Renewal and CreationIndustrial Tech SW:  Category Renewal and Creation
Industrial Tech SW: Category Renewal and Creation
 

External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems

  • 1. External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems Oksana Kurysheva @aviriel Alexey Vasyukov @avasyukov
  • 2. Who are we? Oksana Kurysheva @aviriel Project Manager / Trainer / Queen of the bees ITD Systems / Order of the Bee Alexey Vasyukov @avasyukov Chief Architect / Alvex Product Manager ITD Systems
  • 3. Questions for the next 39 minutes 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 5 Conclusion
  • 4. 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 5 Conclusion
  • 6. Master data management is an integration between Alfresco and a complex set of third-party systems, that you are to meet when trying to use Alfresco in the wild.
  • 7. 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco Integrating Alfresco with external Master Data Complicated cases Out of the box implementation Data-list based implementation 5 Conclusion 3.1 3.2
  • 8. Constraints in the content model
  • 9. Constraints in the content model Users can select a value from the list. + Master data changes quite frequently. Business users do not like the idea to call IT every time they need new option in the drop-down list. -
  • 10. 1 What is Master Data? 2 Storing Master Data in Alfresco Out of the box implementation Data-list based implementation 3.1 3.2 3 4 Integrating Alfresco with external Master Data Complicated cases 5 Conclusion
  • 11. Data-list based implementation (1/5) • Simple solution • Several extensions to do it: • Tony Parzgnat implementation https://github.com/parzgnat/alfresco-value-assistance • Angel Borroy implementation https://github.com/keensoft/alfresco-datalist-constraints • Alvex releases older 2.1
  • 12. <appearance> <field id=“dm:color”> <control template=“/form-controls/dynamic-dropdown.ftl”> <control-param name=“pickListName”>Color</control- param> </control> </field> </appearance> Data-list based implementation (2/5)
  • 14. Solves basic issue quickly •Business users can edit constraints in browser! Data-list based implementation (4/5)
  • 15. Updating a list of values Performance Permissions Share-Tier No native constraint Still no sync with external Master Data - Data-list based implementation (5/5)
  • 16. 1 What is Master Data? 2 3 Storing Master Data in Alfresco The Good The Bad 3.1 3.2 4 Complicated cases 5 Conclusion External Master Data
  • 17. External Master Data Assumptions: • Master data is in 3rd party systems. • These systems have remote APIs. Let's query them for reference data.
  • 18. Architectural Choice Share Tier vs Repo Tier
  • 20. Architectural Choice: Share-tier <field id=“alvexdt:contract”> <control template=“/alvex-masterData-select.ftl”> <control-param name=“url”> http://www.alvexsoftware.com/files/contacts_sample.json </control-param> <control-param name=“path”></control-param> <control-param name=“label”>contactCompany</control-param> <control-param name=“value”>contactCompany</control-param> </control> </field>
  • 22. Architectural Choice: Repo Tier <constraint name="alvexdt:docStatus" type="com.alvexcore.repo.masterdata.MasterDataConstraint"> <parameter name="dataSourceName"> <value>Test</value> </parameter> </constraint>
  • 23. 1 What is Master Data? 2 Storing Master Data in Alfresco 3 The Good The Bad 3.1 3.2 4 Complicated cases 5 Conclusion External Master Data
  • 24. External Master Data Quite obvious idea becomes tricky: • Live data vs Cached data • Performance and bottlenecks • Changes in reference data
  • 25. Dilemma: Live Data vs Cached Data Always actual Simple implementation Slow network Service is unavailable? Live Data May be outdated Complex implementation Fast Always available Cached Data
  • 26. Performance • Constraint is expected to be extremely fast • Just reading field with list constraint with N values causes N+1 call to Constraint class. • Caching of classifiers in Repo is not enough.
  • 27. Changes in Reference Data Update items Processing Updates Leave old value in existing fields Migrate existing fields to the new one Processing Deletion Allow creating new data from Alfresco Add new data
  • 33. Changes in Reference Data Update items Processing Updates Leave old value in existing fields Migrate existing fields to the new one Processing Deletion Allow creating new data from Alfresco Add new data
  • 35. 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 4.1 4.2 Handling Tree-Like Structures Constraints Inter-Dependencies 4.3 One-To-Many Relations 5 Conclusion
  • 36. Complicated Cases Reference data is complex IRL: • Tree-like hierarchies • Inter-dependencies of constraints • One-to-many mapping (one master data object to many content object properties)
  • 38. Handing Tree-Like Structures • Jean Barmash implementation (2008) https://forums.alfresco.com/comment/80963#co mment-80963
  • 41. 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 5 Conclusion
  • 42. Fear and Loathing Under The Hood
  • 45. Validations on Node Create/Edit
  • 46. Validations on Node Create/Edit
  • 47. Fear and Loathing Under The Hood: Summary Overloaded components: • /api/formdefinition • MasterDataAwareScriptFormService • MasterDataAwareIntegrityChecker • MasterDataAwarePropertiesIntegrityEvent
  • 48. Roadmap • Completely solve Complicated Cases • Extract Master Data from Alvex to a separate extension
  • 49. Resources GitHub Repo: https://github.com/ITDSystems/alvex Contacts: @aviriel & @avasyukov & @alvexsoftware ping@itdhq.com