SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
(ATS4-DEV07) How to Build a
Custom Search Panel for Accelrys
             ELN
                                     David Pirkle
               Principal Software Engineer, R & D
                      david.pirkle@accelrys.com
The information on the roadmap and future software development efforts are
intended to outline general product direction and should not be relied on in making
a purchasing decision.
Demo
 • Searching capabilities within Accelrys
   ELN
Overview of Notebook Searching
• Available searches
    –   Standard
    –   Advanced
    –   Full Text
    –   Properties
    –   Chemistry
• These return Vault object types that can be displayed in the accompanying grid:
    –   Document
    –   DocumentTemplate
    –   Form
    –   Folder
• Queries can be saved for future use
• Custom searches with accompanying user interfaces can be added
Developing a Search Extension

• Create the search extension assembly by implementing
  the IQueryBuilderGrid interface
• Add information to the
  SearchExtensionService.SearchExtensions Application
  Permission to let the system know about the new search
  type
• When finished with development, publish the assembly
  for the new search type to Vault
The Development Environment

• Create a Visual Studio project to build a class assembly
   – Set the target platform to .NET 3.5
   – Set the target CPU to x86
   – While debugging, set the build output directory to the ADM
     deployment directory
   – Sign the assembly
Demo
 • An implementation of the
   IQueryBuilderGrid interface
The IQueryBuilderGrid Interface

• Implement the methods required by the IQueryBuilderGrid
  interface:
   –   UserControl returns the search panel UI (use lazy initialization)
   –   DisplayName returns the text to display in the Name dropdown menu
   –   IsInputValid validates query before it is executed
   –   ExecuteQueryRequest allows the UI to trigger a search
   –   BuildQuery() returns the Query the user has specified
   –   IsQueryCompatible used to find a panel to load a query
   –   LoadQuery() loads a saved query into the UI
   –   Configuration used for admin-supplied configuration (described later)
Demo
 • Possible ways to create the Query
Building the Query
•   Query
     – Container of information necessary to generate a SQL query to send to Vault
     – Includes QueryConditions, QueryClauses and a SQLGenerator
     – “select” fields either defined programmatically or generated by the SQLGenerator
•   QueryCondition (derived from QueryClause)
     – Generates the “from” and “where” portions of a SQL statement using QueryViews, QueryFields and
       QueryComparisonOperators
•   QueryView and QueryField
     – Generates the “from” portion of a SQL statement
     – Can be generated and passed into the QueryCondition or the QueryCondition can generate them
       using the names of the view and fields
•   QueryComparisonOperators
     – Used in QueryConditions to generate the “where” portion of the SQL statement
•   QueryConditionExtensions
     – Simplify the use of QueryConditions
SQL Generators
•   Derive from the abstract base class QuerySQLGenerator
•   VaultContentQuerySQLGenerator - the default
     – Retrieves information about a Vault object or the parent of an object
     – Retrieved information limited to VaultObject_obj View
     – Used by the advanced query builder
•   ChemistryQuerySQLGenerator
     – Used specifically with the chemistry query builder

•   VaultObjectPropertiesQuerySQLGenerator
     – Can be used to search any of the Views
•   PropertiesQuerySQLGenerator
     – Similar to VaultObjectPropertiesQuerySQLGenerator but knows how to separate Quantities into
       QueryConditions for both value and unit
     – For use with the search grid, the VaultObject_obj fields to select are (in the following order):
       SourceRepositoryID, DocumentID, VaultID
Search Extension Configuration

• Modify the SearchExtensionService.SearchExtensions
  application permission
   – Add to SearchExtensionTypes to let the SearchExtensionService
     know a new search type exists
   – Specify the assembly-qualified name of the search extension
     class as the “class”
   – (Optional) Add a configuration data node using as the Name the
     “key” supplied in SearchExtensionTypes
Search Extension Configuration
Search Extension Configuration
Publishing the Search Extension
• Assemblies are stored in Vault by “fully-qualified assembly name”
   – Meaning it includes version information
   – Need to change the assembly version numbers before publishing the new
     assembly
• Can’t un-publish an assembly
   – To “undo” a publish, you need to advance the version number and publish
     again
   – Also update the version number in the permission configuration
   – Use a source control system to maintain old source code versions
• See the Accelrys ELN Developer’s Guide section on “Publishing a
  Custom .NET Assembly”
Summary
• Presented the way in which the search panel in Accelrys ELN
  can be extended
   – Create an assembly containing a class that implements the
     IQueryBuilderGrid interface
   – Configure a new search extension in the
     SearchExtensionService.SearchExtensions application permission
   – Publish the assembly to Vault
• Resource
   – Accelrys ELN Developer’s Guide
      • Section entitled “Creating a New Search Type”
      • Section entitled “Publishing a Custom .NET Assembly”

Weitere ähnliche Inhalte

Was ist angesagt?

Less06 users
Less06 usersLess06 users
Less06 usersImran Ali
 
Sqlite
SqliteSqlite
SqliteKumar
 
Less03 db dbca
Less03 db dbcaLess03 db dbca
Less03 db dbcaImran Ali
 
Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)Manish kumar
 
Introduction4 SQLite
Introduction4 SQLiteIntroduction4 SQLite
Introduction4 SQLiteStanley Huang
 
6. oracle exadata security trend ecs (final)
6. oracle exadata security   trend ecs (final)6. oracle exadata security   trend ecs (final)
6. oracle exadata security trend ecs (final)Doina Draganescu
 
A brief introduction to SQLite PPT
A brief introduction to SQLite PPTA brief introduction to SQLite PPT
A brief introduction to SQLite PPTJavaTpoint
 
Android Storage - Internal and External Storages
Android Storage - Internal and External StoragesAndroid Storage - Internal and External Storages
Android Storage - Internal and External StoragesWilliam Lee
 
[Android] Data Storage
[Android] Data Storage[Android] Data Storage
[Android] Data StorageNikmesoft Ltd
 
香港六合彩
香港六合彩香港六合彩
香港六合彩iewsxc
 
Securing Search Data in the Cloud
Securing Search Data in the CloudSecuring Search Data in the Cloud
Securing Search Data in the CloudSearchStax
 
Less01 db architecture
Less01 db architectureLess01 db architecture
Less01 db architectureImran Ali
 
Elastic beanstalk
Elastic beanstalkElastic beanstalk
Elastic beanstalkParag Patil
 

Was ist angesagt? (14)

Less06 users
Less06 usersLess06 users
Less06 users
 
Sqlite
SqliteSqlite
Sqlite
 
Less03 db dbca
Less03 db dbcaLess03 db dbca
Less03 db dbca
 
Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)
 
Introduction4 SQLite
Introduction4 SQLiteIntroduction4 SQLite
Introduction4 SQLite
 
6. oracle exadata security trend ecs (final)
6. oracle exadata security   trend ecs (final)6. oracle exadata security   trend ecs (final)
6. oracle exadata security trend ecs (final)
 
A brief introduction to SQLite PPT
A brief introduction to SQLite PPTA brief introduction to SQLite PPT
A brief introduction to SQLite PPT
 
Android Storage - Internal and External Storages
Android Storage - Internal and External StoragesAndroid Storage - Internal and External Storages
Android Storage - Internal and External Storages
 
[Android] Data Storage
[Android] Data Storage[Android] Data Storage
[Android] Data Storage
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
SQL Views
SQL ViewsSQL Views
SQL Views
 
Securing Search Data in the Cloud
Securing Search Data in the CloudSecuring Search Data in the Cloud
Securing Search Data in the Cloud
 
Less01 db architecture
Less01 db architectureLess01 db architecture
Less01 db architecture
 
Elastic beanstalk
Elastic beanstalkElastic beanstalk
Elastic beanstalk
 

Andere mochten auch

Data Pipelining and Workflow Management for Materials Science Applications
Data Pipelining and Workflow Management for Materials Science ApplicationsData Pipelining and Workflow Management for Materials Science Applications
Data Pipelining and Workflow Management for Materials Science ApplicationsBIOVIA
 
(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager
(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager
(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment ManagerBIOVIA
 
Unraveling the Secrets of Graphene by Multiscale Simulations
Unraveling the Secrets of Graphene by Multiscale SimulationsUnraveling the Secrets of Graphene by Multiscale Simulations
Unraveling the Secrets of Graphene by Multiscale SimulationsBIOVIA
 
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper DiveBIOVIA
 
(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot
(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot
(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline PilotBIOVIA
 
(ATS4-PLAT06) Considerations for sizing and deployment
(ATS4-PLAT06) Considerations for sizing and deployment(ATS4-PLAT06) Considerations for sizing and deployment
(ATS4-PLAT06) Considerations for sizing and deploymentBIOVIA
 
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...BIOVIA
 
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL RoutingBIOVIA
 
(ATS3-PLAT04) Database Connectivity for Application Development
(ATS3-PLAT04) Database Connectivity for Application Development(ATS3-PLAT04) Database Connectivity for Application Development
(ATS3-PLAT04) Database Connectivity for Application DevelopmentBIOVIA
 
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0BIOVIA
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server PerformanceBIOVIA
 
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...BIOVIA
 
(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform
(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform
(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise PlatformBIOVIA
 
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application DeliveryBIOVIA
 
(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environment(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environmentBIOVIA
 
(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizationsBIOVIA
 
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...BIOVIA
 
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol AuthorsBIOVIA
 

Andere mochten auch (18)

Data Pipelining and Workflow Management for Materials Science Applications
Data Pipelining and Workflow Management for Materials Science ApplicationsData Pipelining and Workflow Management for Materials Science Applications
Data Pipelining and Workflow Management for Materials Science Applications
 
(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager
(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager
(ATS4-APP08) Managing Notebook Configurations with Accelrys Deployment Manager
 
Unraveling the Secrets of Graphene by Multiscale Simulations
Unraveling the Secrets of Graphene by Multiscale SimulationsUnraveling the Secrets of Graphene by Multiscale Simulations
Unraveling the Secrets of Graphene by Multiscale Simulations
 
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
 
(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot
(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot
(ATS3-APP05) Building Symyx Notebook dashboards with Pipeline Pilot
 
(ATS4-PLAT06) Considerations for sizing and deployment
(ATS4-PLAT06) Considerations for sizing and deployment(ATS4-PLAT06) Considerations for sizing and deployment
(ATS4-PLAT06) Considerations for sizing and deployment
 
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
 
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
 
(ATS3-PLAT04) Database Connectivity for Application Development
(ATS3-PLAT04) Database Connectivity for Application Development(ATS3-PLAT04) Database Connectivity for Application Development
(ATS3-PLAT04) Database Connectivity for Application Development
 
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
 
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
 
(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform
(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform
(ATS3-APP06) Integrating Lab Equipment with the Accelrys Enterprise Platform
 
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
 
(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environment(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environment
 
(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations
 
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
 
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
 

Ähnlich wie (ATS4-DEV07) How to Build a Custom Search Panel for Symyx Notebook

Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIKubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIPT Datacomm Diangraha
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015Oro Inc.
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?BillCavaUs
 
Container orchestration k8s azure kubernetes services
Container orchestration  k8s azure kubernetes servicesContainer orchestration  k8s azure kubernetes services
Container orchestration k8s azure kubernetes servicesRajesh Kolla
 
(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADM(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADMBIOVIA
 
Zure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training dayZure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training dayOkko Oulasvirta
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearchErhwen Kuo
 
World2016_T5_S5_SQLServerFunctionalOverview
World2016_T5_S5_SQLServerFunctionalOverviewWorld2016_T5_S5_SQLServerFunctionalOverview
World2016_T5_S5_SQLServerFunctionalOverviewFarah Omer
 
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve contentOpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve contentAlkacon Software GmbH & Co. KG
 
Building Custom Adapters 3.7
Building Custom Adapters 3.7Building Custom Adapters 3.7
Building Custom Adapters 3.7StephenKardian
 
Examiness hints and tips from the trenches
Examiness hints and tips from the trenchesExaminess hints and tips from the trenches
Examiness hints and tips from the trenchesIsmail Mayat
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Trisha Gee
 
Java 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceJava 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceTrisha Gee
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO DevsWO Community
 
Apache DeltaSpike
Apache DeltaSpikeApache DeltaSpike
Apache DeltaSpikeos890
 

Ähnlich wie (ATS4-DEV07) How to Build a Custom Search Panel for Symyx Notebook (20)

Azure data lake sql konf 2016
Azure data lake   sql konf 2016Azure data lake   sql konf 2016
Azure data lake sql konf 2016
 
CodeIgniter & MVC
CodeIgniter & MVCCodeIgniter & MVC
CodeIgniter & MVC
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIKubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
 
Container orchestration k8s azure kubernetes services
Container orchestration  k8s azure kubernetes servicesContainer orchestration  k8s azure kubernetes services
Container orchestration k8s azure kubernetes services
 
(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADM(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADM
 
Zure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training dayZure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training day
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
World2016_T5_S5_SQLServerFunctionalOverview
World2016_T5_S5_SQLServerFunctionalOverviewWorld2016_T5_S5_SQLServerFunctionalOverview
World2016_T5_S5_SQLServerFunctionalOverview
 
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve contentOpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
 
Building Custom Adapters 3.7
Building Custom Adapters 3.7Building Custom Adapters 3.7
Building Custom Adapters 3.7
 
Azure ARM Template
Azure ARM TemplateAzure ARM Template
Azure ARM Template
 
Examiness hints and tips from the trenches
Examiness hints and tips from the trenchesExaminess hints and tips from the trenches
Examiness hints and tips from the trenches
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)
 
Java 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceJava 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx France
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
Apache DeltaSpike
Apache DeltaSpikeApache DeltaSpike
Apache DeltaSpike
 

Mehr von BIOVIA

ScienceCloud: Collaborative Workflows in Biologics R&D
ScienceCloud: Collaborative Workflows in Biologics R&DScienceCloud: Collaborative Workflows in Biologics R&D
ScienceCloud: Collaborative Workflows in Biologics R&DBIOVIA
 
(ATS6-PLAT03) What's behind Discngine collections
(ATS6-PLAT03) What's behind Discngine collections(ATS6-PLAT03) What's behind Discngine collections
(ATS6-PLAT03) What's behind Discngine collectionsBIOVIA
 
(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...
(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...
(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...BIOVIA
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP PerformanceBIOVIA
 
(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9BIOVIA
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service BIOVIA
 
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol ValidationBIOVIA
 
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...BIOVIA
 
(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOSBIOVIA
 
(ATS6-GS01) Welcome
(ATS6-GS01) Welcome (ATS6-GS01) Welcome
(ATS6-GS01) Welcome BIOVIA
 
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful APIBIOVIA
 
(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home page(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home pageBIOVIA
 
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting CollectionBIOVIA
 
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...BIOVIA
 
(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEP(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEPBIOVIA
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application StrategiesBIOVIA
 
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...BIOVIA
 
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration    (ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration BIOVIA
 
(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics
(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics
(ATS6-APP04) Flexible Data Capture for Improved Laboratory ErgonomicsBIOVIA
 
(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot
(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot
(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline PilotBIOVIA
 

Mehr von BIOVIA (20)

ScienceCloud: Collaborative Workflows in Biologics R&D
ScienceCloud: Collaborative Workflows in Biologics R&DScienceCloud: Collaborative Workflows in Biologics R&D
ScienceCloud: Collaborative Workflows in Biologics R&D
 
(ATS6-PLAT03) What's behind Discngine collections
(ATS6-PLAT03) What's behind Discngine collections(ATS6-PLAT03) What's behind Discngine collections
(ATS6-PLAT03) What's behind Discngine collections
 
(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...
(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...
(ATS6-PLAT09) Deploying Applications on load balanced AEP servers for high av...
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance
 
(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
 
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
 
(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS
 
(ATS6-GS01) Welcome
(ATS6-GS01) Welcome (ATS6-GS01) Welcome
(ATS6-GS01) Welcome
 
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
 
(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home page(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home page
 
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
 
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
 
(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEP(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEP
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
 
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration    (ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
 
(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics
(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics
(ATS6-APP04) Flexible Data Capture for Improved Laboratory Ergonomics
 
(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot
(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot
(ATS6-APP03) Thomson Rueters Content used in Acclrys Pipeline Pilot
 

(ATS4-DEV07) How to Build a Custom Search Panel for Symyx Notebook

  • 1. (ATS4-DEV07) How to Build a Custom Search Panel for Accelrys ELN David Pirkle Principal Software Engineer, R & D david.pirkle@accelrys.com
  • 2. The information on the roadmap and future software development efforts are intended to outline general product direction and should not be relied on in making a purchasing decision.
  • 3. Demo • Searching capabilities within Accelrys ELN
  • 4. Overview of Notebook Searching • Available searches – Standard – Advanced – Full Text – Properties – Chemistry • These return Vault object types that can be displayed in the accompanying grid: – Document – DocumentTemplate – Form – Folder • Queries can be saved for future use • Custom searches with accompanying user interfaces can be added
  • 5. Developing a Search Extension • Create the search extension assembly by implementing the IQueryBuilderGrid interface • Add information to the SearchExtensionService.SearchExtensions Application Permission to let the system know about the new search type • When finished with development, publish the assembly for the new search type to Vault
  • 6. The Development Environment • Create a Visual Studio project to build a class assembly – Set the target platform to .NET 3.5 – Set the target CPU to x86 – While debugging, set the build output directory to the ADM deployment directory – Sign the assembly
  • 7. Demo • An implementation of the IQueryBuilderGrid interface
  • 8. The IQueryBuilderGrid Interface • Implement the methods required by the IQueryBuilderGrid interface: – UserControl returns the search panel UI (use lazy initialization) – DisplayName returns the text to display in the Name dropdown menu – IsInputValid validates query before it is executed – ExecuteQueryRequest allows the UI to trigger a search – BuildQuery() returns the Query the user has specified – IsQueryCompatible used to find a panel to load a query – LoadQuery() loads a saved query into the UI – Configuration used for admin-supplied configuration (described later)
  • 9. Demo • Possible ways to create the Query
  • 10. Building the Query • Query – Container of information necessary to generate a SQL query to send to Vault – Includes QueryConditions, QueryClauses and a SQLGenerator – “select” fields either defined programmatically or generated by the SQLGenerator • QueryCondition (derived from QueryClause) – Generates the “from” and “where” portions of a SQL statement using QueryViews, QueryFields and QueryComparisonOperators • QueryView and QueryField – Generates the “from” portion of a SQL statement – Can be generated and passed into the QueryCondition or the QueryCondition can generate them using the names of the view and fields • QueryComparisonOperators – Used in QueryConditions to generate the “where” portion of the SQL statement • QueryConditionExtensions – Simplify the use of QueryConditions
  • 11. SQL Generators • Derive from the abstract base class QuerySQLGenerator • VaultContentQuerySQLGenerator - the default – Retrieves information about a Vault object or the parent of an object – Retrieved information limited to VaultObject_obj View – Used by the advanced query builder • ChemistryQuerySQLGenerator – Used specifically with the chemistry query builder • VaultObjectPropertiesQuerySQLGenerator – Can be used to search any of the Views • PropertiesQuerySQLGenerator – Similar to VaultObjectPropertiesQuerySQLGenerator but knows how to separate Quantities into QueryConditions for both value and unit – For use with the search grid, the VaultObject_obj fields to select are (in the following order): SourceRepositoryID, DocumentID, VaultID
  • 12. Search Extension Configuration • Modify the SearchExtensionService.SearchExtensions application permission – Add to SearchExtensionTypes to let the SearchExtensionService know a new search type exists – Specify the assembly-qualified name of the search extension class as the “class” – (Optional) Add a configuration data node using as the Name the “key” supplied in SearchExtensionTypes
  • 15. Publishing the Search Extension • Assemblies are stored in Vault by “fully-qualified assembly name” – Meaning it includes version information – Need to change the assembly version numbers before publishing the new assembly • Can’t un-publish an assembly – To “undo” a publish, you need to advance the version number and publish again – Also update the version number in the permission configuration – Use a source control system to maintain old source code versions • See the Accelrys ELN Developer’s Guide section on “Publishing a Custom .NET Assembly”
  • 16. Summary • Presented the way in which the search panel in Accelrys ELN can be extended – Create an assembly containing a class that implements the IQueryBuilderGrid interface – Configure a new search extension in the SearchExtensionService.SearchExtensions application permission – Publish the assembly to Vault • Resource – Accelrys ELN Developer’s Guide • Section entitled “Creating a New Search Type” • Section entitled “Publishing a Custom .NET Assembly”