{"id":24509,"date":"2024-02-15T14:53:34","date_gmt":"2024-02-15T22:53:34","guid":{"rendered":"https:\/\/docs.extraview.com\/v25\/book\/values-and-parameters-1\/"},"modified":"2025-03-06T09:45:50","modified_gmt":"2025-03-06T17:45:50","slug":"values-and-parameters-1","status":"publish","type":"page","link":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/","title":{"rendered":"Values and Parameters"},"content":{"rendered":"<h3>Values<\/h3>\n<p>Typically, you follow the following steps to manipulate values:<\/p>\n<ul>\n<li>Start by using the information contained within the with form parameters<\/li>\n<li>Add in manipulation of UDFs, and other internal objects<\/li>\n<li>Then move to read-only database access, used for, say, select lists<\/li>\n<li>Then move on to mail list updates<\/li>\n<\/ul>\n<h4>Defining and Manipulating Screen Parameters<\/h4>\n<p>You must work with fields that have been created within the Design Center or Data Dictionary. In addition, before a field appears within the parameters for a form, it must have been placed on that layout.<\/p>\n<h4>Value types<\/h4>\n<ul>\n<li>String<\/li>\n<li>String array<\/li>\n<li>Calendar<\/li>\n<li>Calendar arrays.<\/li>\n<\/ul>\n<p>All values are normally stored in Maps and HashMaps.<\/p>\n<h4>Manipulation of Values<\/h4>\n<p>The FormParameters value for <span class=\"fixedWidthFont\">p_assigned_to<\/span> is not frequently used.<\/p>\n<p>The most frequent method of manipulating values is to use a HashMap, indexed by the field name from the form on the web page. For example:<\/p>\n<p><span class=\"fixedWidthFont\">fp.get(&#8220;p_assigned_to&#8221;)<\/span><\/p>\n<p>The key to the HashMap is the same as the data dictionary field name. For example:<\/p>\n<p><span class=\"fixedWidthFont\">values.get(&#8220;ASSIGNED_TO&#8221;)<\/span><\/p>\n<h3>Parameters<\/h3>\n<p>A fundamental part of understanding how to code with User Custom methods within ExtraView is to follow how ExtraView places fields on screen layouts, such as the <em>add<\/em> issue screen or the <em>edit<\/em> screen. This is done by processing a series of parameters that are passed between the server and the client browser. The parameters are created within the ExtraView servlet, passed within HTML to the browser, handled by the browser, then submitted back to the servlet where they are processed. When processed in User Custom code, the programmer gets the parameter information from the FormParameters object that ExtraView creates. ExtraView creates a new FormParameters object for each request it receives from the web browser.<\/p>\n<p>As an example, let us view how ExtraView processes the following user interactions once they have signed on to ExtraView:<\/p>\n<ul>\n<li>Select the <b>Home<\/b> navigation bar button, and navigating to the <em>Home Page<\/em> screen<\/li>\n<li>Select the <b>Add<\/b> navigation bar button, and navigating to the the <em>Add Issue<\/em> screen<\/li>\n<li>Complete entering fields on the <em>Add Issue<\/em> screen<\/li>\n<li>Select the <b>Add to Database<\/b> button<\/li>\n<li>The user is placed on the <em>New Issue Verification<\/em> screen.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"\/v25\/extraview-media\/images\/uc\/add_screen.png\" width=\"100%\" \/><\/p>\n<p>Explained fully in the Administration Guide, the format and placing of all the fields on the <em>Add Issue<\/em> screen is maintained in the Design Center for the <em>Add Issue<\/em> screen, shown following:<\/p>\n<p><img decoding=\"async\" src=\"\/v25\/extraview-media\/images\/uc\/design_center.png\" width=\"100%\" \/><\/p>\n<p>The following excerpt from a debug session shows how ExtraView moved through the sequence of drawing the <em>Add Issue<\/em> layout in the browser:<\/p>\n<pre class=\"code\">SRQ:Parms:p_option = HomeDisplay                    \nSRQ:Parms:p_action = doDisplay                      \nSRQ:                                                \nSRQ:Parms:p_option = security.LoginDisplay          \nSRQ:Parms:p_action = getMenu                        \nSRQ:                                                \nSRQ:Parms:p_option = Display                        \nSRQ:Parms:p_action = doAddDisplay                   \nSRQ:                                                \nSRQ:Parms:p_email_customer = unchecked              \nSRQ:Parms:p_area = 5                                \nSRQ:Parms:p_generate_email = unchecked              \nSRQ:Parms:p_cc_email_EVDISPLAY =                    \nSRQ:Parms:p_customer_company = 1456               \nSRQ:Parms:p_category = SOFTWARE\nSRQ:Parms:p_date_created =                          \nSRQ:Parms:p_cc_email =                              \nSRQ:Parms:p_originator = BSMITH                        \nSRQ:Parms:p_comments =                              \nSRQ:Parms:p_option = Display                        \nSRQ:Parms:p_short_descr = User cannot sign in unless a proper connection to the \ndatabase is established\nSRQ:Parms:finished = drawingPage                    \nSRQ:Parms:p_date_open =                             \nSRQ:Parms:p_project = %25SMHww                      \nSRQ:Parms:p_module_id = 5326                     \nSRQ:Parms:p_assigned_to = BSMITH\nSRQ:Parms:p_owner = G.GOLDBERG\nSRQ:Parms:p_platform = 643\nSRQ:Parms:p_release_found = {NULL}\nSRQ:Parms:p_description = This is the description of the issue ....\nSRQ:Parms:p_product_name = TRACKER_ENT                \nSRQ:Parms:p_status = NEW\nSRQ:Parms:p_screenshot = {NULL}\nSRQ:Parms:p_action = doAddDisplay                   \nSRQ:Parms:stateVar = insert                         \nSRQ:Parms:p_from_option = Display\nSRQ:Parms:p_priority = P3                       \nSRQ:Parms:p_from_action = doAddConfirmDisplay       \nSRQ:Parms:p_timestamp =                             \nSRQ:                                                \nSRQ:Parms:p_option = Display                        \nSRQ:Parms:p_action = doAddConfirmDisplay\n<\/pre>\n<p>Note that parameters with a null value were passed with a value of <span class=\"fixedWidthFont\">{NULL}<\/span>. Also notice that list values are passed with the ID value of the list, not by using the title. This is because lists may contain duplicate titles, but the list ID&#8217;s are unique. However, do not rely on using list ID values within your user custom program as these will change if you export the system metadata and import this into another instances. You should use code in your user custom program to extract the list ID&#8217;s from the database in the constructor of your user custom class.<\/p>\n<p>Once the issue is added to the database, a verification screen is displayed, which will look similar to the following:<\/p>\n<p><img decoding=\"async\" src=\"\/v25\/extraview-media\/images\/uc\/verification.png\" width=\"100%\" \/><\/p>\n<p>ExtraView&#8217;s standard functionality after submitting a new issue is to display the verification screen. You may control this functionality in user custom code, by altering the value of the form parameter named ADD_CONFIRM_PAGE. If you set this to a value of NO, the verification screen is bypassed. You should set this value in the user custom exit named <span class=\"fixedWidthFont\">preAddDisplay<\/span>.<\/p>\n<p>To understand this in more detail, let\u2019s look at one individual parameter, and follow its trail. Let\u2019s analyze the parameter named p_short_descr which maps to the field labeled Title, and with a value of <b>User cannot sign in unless a proper connection to the database is established<\/b> on the <em>Add Issue<\/em> verification screen.<\/p>\n<ul>\n<li>The parameter\u2019s name is p_short_descr<\/li>\n<li>The parameter\u2019s value is <b>User cannot sign in unless a proper connection to the database is established<\/b><\/li>\n<li>The parameter corresponds to the Title field on the New Issue Summary screen<\/li>\n<li>The name in the data dictionary is SHORT_DESCR<\/li>\n<li>The display title of the field in the data dictionary is Title<\/li>\n<li>The value of the field on the <em>Add Issue<\/em> Summary screen is <b>User cannot sign in unless a proper connection to the database is established<\/b><\/li>\n<\/ul>\n<h4>Parameter Naming Convention<\/h4>\n<ul>\n<li>All parameter names start with <b>p_<\/b><\/li>\n<li>The part of the name following the <b>p_<\/b> must be a valid database field name. For example, <span class=\"fixedWidthFont\">p_short_descr<\/span> is the name of the parameter that refers to the data dictionary field named <span class=\"fixedWidthFont\">short_descr <\/span><\/li>\n<\/ul>\n<h3>Sample Class File<\/h3>\n<p>This is a very simple example of a user custom class file. It is not a real-world example, but intended to show the basic structure of a user custom class file.<\/p>\n<pre class=\"code\">package com.extraview.usercustom;\n\nimport java.util.ArrayList;\nimport com.extraview.applogic.problem.Problem;\nimport com.extraview.presentation.ProblemFormParam;\nimport com.extraview.util.SesameSession;\nimport com.extraview.util.TextManager;\n\npublic class MyCompany\n    extends UserCustom {\n\n  public String ucEditPreUpdate(\n      Problem pOldProblem,\tArrayList pOldReleases,\n      ArrayList pOldModules,\t ArrayList pOldUdfs,\n      Problem pNewProblem,\tArrayList pNewReleases,\n      ArrayList pNewModules,\tArrayList pNewUdfs,\n      SesameSession session,\tProblemFormParam pfp) {\n    \/\/ this sample implements a new business rule that ensures the user\n    \/\/ enters text into the COMMENTS field when altering the status of\n    \/\/ an issue on the edit screen\n\n    String errText = null;\n    if (TextManager.isStringInvisible( (String) pfp.get(\"COMMENTS\"))) {\n      if (pNewProblem.getStatus() != null\n       &amp;&amp; (pOldProblem.getStatus() == null \n       || !pOldProblem.getStatus().equals( pNewProblem.getStatus()))) {\n        return \"Comments are required when the status changes.\";\n      }\n    }\n    return null;\n  }\n}\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Values Typically, you follow the following steps to manipulate values: Start by using the information contained within the with form parameters Add in manipulation of UDFs, and other internal objects Then move to read-only database access, used for, say, select lists Then move on to mail list updates Defining and Manipulating Screen Parameters You must&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":24503,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_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-24509","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>Values and Parameters - 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\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Values and Parameters - Product Documentation\" \/>\n<meta property=\"og:description\" content=\"Values Typically, you follow the following steps to manipulate values: Start by using the information contained within the with form parameters Add in manipulation of UDFs, and other internal objects Then move to read-only database access, used for, say, select lists Then move on to mail list updates Defining and Manipulating Screen Parameters You must...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Product Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-06T17:45: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=\"6 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\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/\",\"url\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/\",\"name\":\"Values and Parameters - Product Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\"},\"datePublished\":\"2024-02-15T22:53:34+00:00\",\"dateModified\":\"2025-03-06T17:45:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-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\":\"User Custom Guide\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Java Interface\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Values and Parameters\"}]},{\"@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":"Values and Parameters - 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\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/","og_locale":"en_US","og_type":"article","og_title":"Values and Parameters - Product Documentation","og_description":"Values Typically, you follow the following steps to manipulate values: Start by using the information contained within the with form parameters Add in manipulation of UDFs, and other internal objects Then move to read-only database access, used for, say, select lists Then move on to mail list updates Defining and Manipulating Screen Parameters You must...","og_url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/","og_site_name":"Product Documentation","article_modified_time":"2025-03-06T17:45:50+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/","url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/","name":"Values and Parameters - Product Documentation","isPartOf":{"@id":"https:\/\/docs.extraview.com\/v25\/#website"},"datePublished":"2024-02-15T22:53:34+00:00","dateModified":"2025-03-06T17:45:50+00:00","breadcrumb":{"@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/values-and-parameters-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":"User Custom Guide","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/"},{"@type":"ListItem","position":4,"name":"Java Interface","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/"},{"@type":"ListItem","position":5,"name":"Values and Parameters"}]},{"@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\/24509","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=24509"}],"version-history":[{"count":0,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24509\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24503"}],"wp:attachment":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/media?parent=24509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}