• No results found

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
49
0
0

Loading.... (view fulltext now)

Full text

(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

(3)

Questions for the next 39 minutes

What is Master Data?

1 2 3 4

Storing Master Data in Alfresco

External Master Data

Complicated cases

(4)

What is Master Data?

1 2 3 4

Storing Master Data in Alfresco

External Master Data

Complicated cases

(5)
(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)

What is Master Data?

1 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

(8)
(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)

What is Master Data?

1

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

(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

(12)

<appearance> <field id=“dm:color”> <control template=“/form-controls/dynamic-dropdown.ftl”> <control-param name=“pickListName”>Color</control-param> </control> </field> </appearance>

(13)
(14)

Solves basic issue quickly

• Business users can edit constraints in browser!

(15)

Updating a list of values Performance Permissions Share-Tier No native constraint Still no sync with external Master Data

-

(16)

What is Master Data?

1 2 3

Storing Master Data in Alfresco

The Good The Bad 3.1 3.2 4 Complicated cases 5 Conclusion

(17)

External Master Data

Assumptions:

• Master data is in 3rd party systems. • These systems have remote APIs.

(18)

Architectural Choice

(19)
(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>

(21)
(22)

Architectural Choice: Repo Tier <constraint name="alvexdt:docStatus" type="com.alvexcore.repo.masterdata.MasterDataConstraint"> <parameter name="dataSourceName"> <value>Test</value> </parameter> </constraint>

(23)

What is Master Data?

1

2 Storing Master Data in Alfresco 3 The Good The Bad 3.1 3.2 4 Complicated cases 5 Conclusion

(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.

(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

(28)
(29)
(30)
(31)
(32)
(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

(34)
(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

(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)

(37)
(38)

Handing Tree-Like Structures

• Jean Barmash implementation (2008)

https://forums.alfresco.com/comment/80963#co mment-80963

(39)
(40)
(41)

What is Master Data? 1

2 3 4

Storing Master Data in Alfresco External Master Data

Complicated cases

(42)
(43)
(44)
(45)
(46)
(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

(49)

Resources

GitHub Repo:

https://github.com/ITDSystems/alvex

Contacts:

@aviriel & @avasyukov & @alvexsoftware [email protected]

References

Related documents

According to the international experience, federal authorities can carry out six groups of functions for support of mechanisms of development of innovative

Performance analysis of four nonlinearity analysis methods using a model with variable complexity and application to uterine EMG signals... The documents may

Given the sensory disabilities and learning needs of the students attending Carl Sandburg Learning Center, the committee determined that the facility design should ensure that most

When the buyer does have this ability, one agreement which maximizes their joint surplus includes a revelation game for the cost of the preferred supplier and a reserve price in

This study suggests the feasibility and safety of using pure natural orifice transluminal endoscopic surgery for thyroidectomy through a subcutaneous route with the use of an

Then, to prevent any cross- contamination, it is recommended that a vacuum pump be connected to the output port of the G5Twin (keep the Input Valve closed and the Output Valve

Several inventory control strategies for airline includes material management and supply chain synchronization and outsourcing component management will also be discussed..

We show that there is a strong relationship between Omega performance mea- sures and the optimal holding of an investor under Cumulative Prospect Theory (CPT) with piecewise-power