Post on 06-Jan-2018
description
transcript
http://www.azsharepointpros.com
BUSINESS DATA CATALOG OVERVIEW
Arizona SharePoint Professionals Group
Thomas BaerSenior Consultant, Statêratbaer@statera.com
http://www.azsharepointpros.com
What is the business data catalog?
Surface data from back-end server applications with out any code
Metadata Model Describe the API of the business application
Applications registered by administrators
http://www.azsharepointpros.com
Why The Business Data Catalog?
Integrate other systems with SharePoint sites
Reporting dashboards Line of business applications
Integrate Business Data Catalog data into hybrid Windows Forms Applications
Search for data in other systems via the SharePoint Search service
Save the time, cost, and monotony of writing yet another data layer!
http://www.azsharepointpros.com
Typical Projects
Surface existing back end data in out-of-the-box Web parts
INTERMEDIATE ADVANCEDSIMPLE
Index data to make it searchable
Use columns
Create dashboards
Use custom code to integrate data inside
other applications
http://www.azsharepointpros.com
Overview of Components
Metadata
Business Data Catalog
Web Parts Lists Search User
ProfilesCustom Apps
Database
WS Proxy ADO.NET
Web Service
SQL Server, Oracle, OLEDB, ODBC
BizTalk Server, SAP, Siebel, Legacy, …
List store
SearchIndex
Profile Store
http://www.azsharepointpros.com
HOW DOES ONE CONNECT AN APPLICATION TO THE BDC?
http://www.azsharepointpros.com
DEVELOPMENT LIFECYCLEWRITE METADATA, NOT CODE
1. Analyst defines business requirements
2. IT Pro / developer writes and tests application definition (metadata)
3. IT Pro uploads application definition 4. Analyst builds solution using
business data features
http://www.azsharepointpros.com
Every MetadataObject has a Properties collectionBusiness Data Features make use of certain annotationsYou can extend the metadata for your own applications
Application DefinitionsProperties
<Entity Name=“Customer”> <Properties> <Property Name=“Title”>CustomerName</Property> </Properties> ...</Entity>
http://www.azsharepointpros.com
One method of an entity is designated the Finder, another the SpecificFinderFinder returns a collection of instances given a set of filtersSpecificFinder returns a single instance given a key
Application DefinitionsFinder Methods
<Entity Name=“Customer”> <Methods> <Method Name=“GetCustomer”> <MethodInstance Type=“Finder” ... /> ... </Method> </Methods></Entity>
http://www.azsharepointpros.com
Control the data finders returnAnnotations on a Method’s input parametersDeclare which inputs users can overrideVarious types: wildcard, exact match, …System filters allow BDC to securely set values, e.g., user token
Application DefinitionsFilters
<Method Name=“GetCustomer”> <FilterDescriptors> <FilterDescriptor Name=“Region” Type=“ExactMatch”/> </FilterDescriptors> <Parameters> <Parameter Name=“Region” Direction=“In”> <TypeDescriptor ... AssociatedFilter=“Region”/> ...</Method>
http://www.azsharepointpros.com
Model relationships between entitiesHas one or more source entities and one destination entityIs a method instanceTakes source instance(s) and returns a destination instance
Application DefinitionsAssociations
<Association Name=“CustomerToOrder“
AssociationMethodName=“GetOrdersByCustomer“> <SourceEntity Name=“Customer"/> <DestinationEntity Name=“Order"/></Association>
http://www.azsharepointpros.com
Full-text search any applicationBDC crawl protocol has two phases
ID Enumeration: Fetch all entity instance IDsDetail fetch: Fetch details for each instance
IDEnumerator returns the IDsSpecificFinder returns the details
Application DefinitionsIDEnumerators And Search
<Method Name=“GetCustomerIDs”> <Parameters> ... </Parameters> <MethodInstance Type=“IDEnumerator” ... /></Method>
http://www.azsharepointpros.com
Link, don’t replicateScenarios so far are read-only
Where should business logic reside?For writes, link to existing app UI, web forms, etc.Actions are links that travel everywhere with an entityUsers can take action in context
Application DefinitionsActions
<Entity> <Actions> <Action Name=“Edit” Url=“http://customerweb/edit.aspx”/> </Actions></Entity>
http://www.azsharepointpros.com
Use custom actions to take users to:Server-side InfoPath formsCustom ASP.NET pagesThe LOB vendor’s own Web interfaceBack to the business logic question
Logic probably already resides somewhere why duplicate
What About Write-back?
Demo
http://www.azsharepointpros.com