{"id":24458,"date":"2024-02-15T14:53:34","date_gmt":"2024-02-15T22:53:34","guid":{"rendered":"https:\/\/docs.extraview.com\/v25\/book\/capabilities-1\/"},"modified":"2025-02-19T09:52:50","modified_gmt":"2025-02-19T17:52:50","slug":"capabilities-1","status":"publish","type":"page","link":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/","title":{"rendered":"Capabilities"},"content":{"rendered":"<p>Like all ExtraView features, integrating ExtraView with Perforce is configurable, and there is no fixed method for providing integration between the two products. ExtraView Corporation provides a sample integration with the code for the integration, based upon a summary of best practices seen across multiple customers. However, it is simple to adapt this best practice and adopt your own methods.<\/p>\n<p>The following is a summary of how the integration may be used:<\/p>\n<table class=\"border\">\n<tbody>\n<tr class=\"tableHeaderRow\">\n<td>\n\t\t\t\tExtraView Activity<\/td>\n<td>\n\t\t\t\tEffect<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tAdd Issue<\/td>\n<td>\n\t\t\t\tCreation of new issues in ExtraView may trigger the creation of new Perforce jobs. Perforce job creation can be conditional upon the selection of one or more configurable field values in ExtraView. Alternatively, new ExtraView issues may be linked to existing jobs in Perforce<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tEdit Issue<\/td>\n<td>\n\t\t\t\tWhen issues in ExtraView are updated, the corresponding Perforce job (or jobs) is also updated, e.g. values entered in mapped fields are replicated in the Perforce job<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tClose Issue<\/td>\n<td>\n\t\t\t\tWhen the status of an ExtraView issue is changed to Closed, the Integration Daemon can be easily configured to update the status of the corresponding Perforce job. This is an example of the use of the replication facilities rather than a standalone feature<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tReopen Issue<\/td>\n<td>\n\t\t\t\tWhen the status of an ExtraView issue is changed from Closed back to Open, the Integration Daemon can be easily configured to update the status of the corresponding Perforce job. This is an example of the use of the replication facilities rather than a standalone feature<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tChange Status<\/td>\n<td>\n\t\t\t\tSince submission of an associated changelist changes the status of a Perforce job to Closed, the Integration Daemon captures ExtraView status other than Open and Closed by utilizing an ExtraView-specific Perforce jobspec field called EVstatus. Whenever the status of an ExtraView issue is updated to a new value, the Perforce job EVstatus field is updated to reflect the current ExtraView status. Note that EVStatus has no special meaning, it is simply a field that can be replicated. The field may be any available field<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tCreate \/ Edit Job<\/td>\n<td>\n\t\t\t\tWhen a job is created or edited in Perforce, it may be mapped to an existing issue in ExtraView, or a corresponding issue is automatically created in ExtraView if none already exists. If a new issue is created, the Perforce Job is subsequently updated to reflect the issue ID in ExtraView<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tSubmit Changelist<\/td>\n<td>\n\t\t\t\tWhen a changelist is submitted that fixes one or more jobs, the corresponding ExtraView issues may be updated with the job status, the changelist description, other fields and resulting diffs. Diffs may be uploaded to ExtraView as an attachment to the affected issues or as comments. All field mappings are configurable, according to your needs<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tClose Job<\/td>\n<td>\n\t\t\t\tWhen a job is Closed in Perforce, the Integration Daemon can be easily configured to update the status of the corresponding ExtraView issue<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tOpen Job<\/td>\n<td>\n\t\t\t\tWhen a job status is set to Open in Perforce, the Integration Daemon can be easily configured to update the status of the corresponding ExtraView issue<\/td>\n<\/tr>\n<tr>\n<td>\n\t\t\t\tUpdate EVstatus<\/td>\n<td>\n\t\t\t\tWhen the EVstatus field of a Perforce job is edited to reflect another mapped status in ExtraView, the ExtraView issue status is updated accordingly. This is an example of the use of the replication facilities, rather than a standalone feature<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Like all ExtraView features, integrating ExtraView with Perforce is configurable, and there is no fixed method for providing integration between the two products. ExtraView Corporation provides a sample integration with the code for the integration, based upon a summary of best practices seen across multiple customers. However, it is simple to adapt this best practice&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":24457,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_lmt_disableupdate":"no","_lmt_disable":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-24458","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Capabilities - Product Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capabilities - Product Documentation\" \/>\n<meta property=\"og:description\" content=\"Like all ExtraView features, integrating ExtraView with Perforce is configurable, and there is no fixed method for providing integration between the two products. ExtraView Corporation provides a sample integration with the code for the integration, based upon a summary of best practices seen across multiple customers. However, it is simple to adapt this best practice...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Product Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-19T17:52:50+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/\",\"url\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/\",\"name\":\"Capabilities - Product Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\"},\"datePublished\":\"2024-02-15T22:53:34+00:00\",\"dateModified\":\"2025-02-19T17:52:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/docs.extraview.com\/v25\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ExtraView 25\",\"item\":\"https:\/\/docs.extraview.com\/v25\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Integration Guides\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Perforce Integration Guide\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Capabilities\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\",\"url\":\"https:\/\/docs.extraview.com\/v25\/\",\"name\":\"ExtraView Product Documentation\",\"description\":\"ExtraView Documentation\",\"publisher\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/docs.extraview.com\/v25\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#organization\",\"name\":\"ExtraView Corporation\",\"url\":\"https:\/\/docs.extraview.com\/v25\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png\",\"contentUrl\":\"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png\",\"width\":512,\"height\":512,\"caption\":\"ExtraView Corporation\"},\"image\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Capabilities - Product Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/","og_locale":"en_US","og_type":"article","og_title":"Capabilities - Product Documentation","og_description":"Like all ExtraView features, integrating ExtraView with Perforce is configurable, and there is no fixed method for providing integration between the two products. ExtraView Corporation provides a sample integration with the code for the integration, based upon a summary of best practices seen across multiple customers. However, it is simple to adapt this best practice...","og_url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/","og_site_name":"Product Documentation","article_modified_time":"2025-02-19T17:52:50+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/","url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/","name":"Capabilities - Product Documentation","isPartOf":{"@id":"https:\/\/docs.extraview.com\/v25\/#website"},"datePublished":"2024-02-15T22:53:34+00:00","dateModified":"2025-02-19T17:52:50+00:00","breadcrumb":{"@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/capabilities-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/docs.extraview.com\/v25\/"},{"@type":"ListItem","position":2,"name":"ExtraView 25","item":"https:\/\/docs.extraview.com\/v25\/"},{"@type":"ListItem","position":3,"name":"Integration Guides","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/"},{"@type":"ListItem","position":4,"name":"Perforce Integration Guide","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/integration-guides-1\/perforce-integration-guide-1\/"},{"@type":"ListItem","position":5,"name":"Capabilities"}]},{"@type":"WebSite","@id":"https:\/\/docs.extraview.com\/v25\/#website","url":"https:\/\/docs.extraview.com\/v25\/","name":"ExtraView Product Documentation","description":"ExtraView Documentation","publisher":{"@id":"https:\/\/docs.extraview.com\/v25\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/docs.extraview.com\/v25\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/docs.extraview.com\/v25\/#organization","name":"ExtraView Corporation","url":"https:\/\/docs.extraview.com\/v25\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/","url":"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png","contentUrl":"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png","width":512,"height":512,"caption":"ExtraView Corporation"},"image":{"@id":"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/"}}]}},"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"carl.koppel","author_link":"https:\/\/docs.extraview.com\/v25\/author\/carl-koppel\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/comments?post=24458"}],"version-history":[{"count":0,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24458\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24457"}],"wp:attachment":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/media?parent=24458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}