Library module patterns
OutSystems Training
Topics
● Library module elements
● Library module patterns
○ Extension pattern
○ Connector pattern
● Granularity of APIs
Typical elements of Library modules
● Normalized API
● Exception Handling (avoid error codes)
Logic
● Single sign on and session logic
● Structures for inputs and outputs
Data ● Non core entities
● UI widgets (e.g. a calendar or an accordion)
UI ● Themes, layouts and exception flows
● Common Roles to a domain of users (e.g. Company roles for an intranet)
Roles
Extension pattern
Wrap an external library Wrap Entities from an external Database
- URL2PDF
- PurchaseOrder
Logic - ...
- POLine
Data
- Input/Output Structs - ...
- ...
Data
[Link] [Link]
.Net lib to generate PDF External DB
Connector pattern
Salesforce
•Account_Search
Connector •Account_Update
Logic •RenewSession
•...
•Account_Struct
•Opportunity_Struct
Data •...
Salesforce _IS
•Login
•Sforce_query
Logic •…
•Session_Struct
•Return_Object
Data •...
[Link]
Connector pattern
Salesforce
•Account_Search
Connector •Account_Update
Logic •RenewSession
•...
•Account_Struct
•Opportunity_Struct
Data •...
Salesforce _IS
•Login Extension to encapsulate external API
•Sforce_query
Logic •… ● Original API
•Session_Struct
● Input/Output Structures
•Return_Object
Data •...
[Link]
Connector pattern
Salesforce
Connector
•Account_Search Wrapper module for consumers
•Account_Update
Logic •RenewSession ● Match Use Cases and concepts
•...
● (Shared) session management
•Account_Struct ● Normalize business concepts
•Opportunity_Struct
Data •...
Salesforce _IS
•Login Extension to encapsulate external API
•Sforce_query
Logic •… ● Original API
•Session_Struct
● Input/Output Structures
•Return_Object
Data •...
[Link]
Granularity of APIs
Hundreds of APIs Create smaller APIs
and Structures per function area …
SAP_IS SAP_Fin_IS SAP_HR_IS SAP_MM_IS
SAP Split SAP
… to balance the granularity and avoid a single
bottleneck that affects too many consumers
Review
● Library module elements
● Library module patterns
○ Extension pattern
○ Connector pattern
● Granularity of APIs
Library module patterns
Thank you!