Form Level Variable

I want to declare a form level variable and want to assign a value at WHEN-NEW-FORM-INSTANCE trigger and i want to use the same value in Program units as well as other form level and block level triggers. How to achieve this? Do i need to refer the variable with :Symbol? Thanks!

Chris,
There are a couple of ways to do this. As Ammad suggested, you can use a Global variable, but as you point out - Globals are visible to your Forms session unless you destroy the global. You can also use a Parameter as you have done or you can use a Control Block with a block item that will accept the type of data that will be stored in the variable. There are limitations with each of these options however.
With Globals, all variables are of CHAR datatype and are limited to 4000 bytes in Forms 10g and higher and 255 in Form 9i and lower. Any non-character value stored in a global must be converted back to it's native datatype when you read the value to ensure it is evaluated correctly. When globals are declared, they always reserve the max amount of memory needed to support the 255 or 4000 characters. If you use Globals, it is a good habit to use the Erase() built-in to destroy the Global when you are finished with it. Also with Globals it is possible to get a Runtime error if the Global has not been initialized before you reference it, but will NOT produce a compile time error.
Parameters and Control Block items are a little more flexible in that you can define the parameter's datatype as CHAR, DATE or NUMBER (check Forms Help for the max datatype values they can store). Parameters and Control block items also have properties which means they take up more memory resources because the properties of these items have to be loaded into memory in addition to the data.
I would recommend using Parameters over Globals for Forms specific variables because you have greater flexibility with the data types supported, however, I personally prefer to use a Forms Package Specification with Package Variables declared as this more flexible and only allocates the amount of memory needed to support the variable. When I have a situation that requires a variable be visible to the entire form, but doesn't need to be Global to the session, I will create a Package Spec called FORM_VARS in the Program Units node of the Object Navigator and declare the variables I need. I do not create a Package Body. For example:
PACKAGE FORM_VARS IS
   n_User_ID      NUMBER;
   v_User_Name  VARCHAR2(25);
END;You then reference the variables the same as you would for any Forms program unit.
BEGIN
   Forms_Vars.n_User_ID := 1234546;
   Forms_Vars.v_User_Name := 'John Doe';
END;Hope this helps,
Craig B-)
If someone's response is helpful or correct, please mark it accordingly.
Edited by: CraigB on Jun 28, 2010 11:17 AM

Similar Messages

  • Non-admin user cannot access Essbase server level variables

    Version 11.1.1.3
    Essbase Substitution variables are created at server level. Users are getting error in FR report that uses the Subsitution Variable -- Essbase Error(1051085): You do not have sufficient access to get this substitution variable. Also, users cannot access Substitution variable in SmartView. However, users can access variables created at database level. Users are provisioned as "Server Access" to Essbase and filter access to ASO application "MGTRPTG", where MGTRPTG is an ASO essbase application for reporting. We tried the same provisioning in two other environments and it seems to be working fine.
    User is type "Essbase and Planning" provisioned with essbase "server access", application mgtrptg "filter", Reporting and Analysis "analyst", "dynamic viewer" and "Explorer". In addition, it is given a filter "REP_DME_GALB" which restricts 2 dimensions (Division and Geography).
    Steps taken to resolve:
    1. Existing users were deprovisioned and reprovisioned with no effect.
    2. Created brand new identically provisioned users in Prod and QA. QA user can access the server level var and Prod user cannot
    3. Created a brand new server level variable in Prod and this cannot be accessed.
    4. All services have already been restarted several times.
    5. SR has been opened.
    Temporary workaround:
    By creating a duplicate of the same set of variables at the database level, the reports work. This can only be a temporary workaround as the client cannot be expected to maintain two sets of substitution variables since there are 3 applications using these server level variables.
    Thank you for any ideas!
    Jennifer

    You have stumbled on a defect which is resolved in the Hyperion Planning 9.3.1 patch 6 and above. If you have your planning preferences set to indent members it will cause forms which have page selections to show as invalid in SmartView.
    You can either patch Planning or turn off the preference. The patches are available from http://metalink3.oracle.com and require account which has been associated with your client ID.
    P.S. Usually it's not a good practice to use the admin id.
    Regards,
    -John
    Edited by: Jbooth on Nov 3, 2008 2:12 PM

  • Posting contact form to variable email address PHP

    Hi all, another one!
    I want the email address to be the hidden variable in the form below - variable higlighted in Red. What would I put for "$to ="?
    Any help would be appreciated.
    Tom
    <?php
    if (array_key_exists('send' , $_POST)) {
              // mail processing script
              // remove escape characters from POST array
    if (PHP_VERSION < 6 && get_magic_quotes_gpc()) {
      function stripslashes_deep($value) {
        $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
        return $value;
      $_POST = array_map('stripslashes_deep', $_POST);
    $to = '';
              $subject = '';
              //list expected fields
              $expected = array('name', 'email', 'comments');
              //set required fields
              $required = array('name', 'comments');
              //create empty array for any missing fields
              $missing = array();
              // assume that there is nothing suspect
              $suspect = false;
              // create a pattern to locate suspect phrases
              $pattern = '/Content-Type:|Bcc:|Cc:/i';
                // function to check for suspect phrases
      function isSuspect($val, $pattern, &$suspect) {
        // if the variable is an array, loop through each element
              // and pass it recursively back to the same function
              if (is_array($val)) {
          foreach ($val as $item) {
                  isSuspect($item, $pattern, $suspect);
                } else {
          // if one of the suspect phrases is found, set Boolean to true
                if (preg_match($pattern, $val)) {
            $suspect = true;
              // check  the $_POST array and any subarrays for suspect content
              isSuspect($_POST, $pattern, $suspect);
              if ($suspect) {
                        $mailSent = false;
                        unset($missing);
              } else {
              //proces the $_POST Variables
              foreach ($_POST as $key => $value) {
                        //assign temporary variable and strip whitespace if not an array
                        $temp = is_array($value) ? $value: trim($value);
                        //if empty and required, add to $missing array
                        if (empty($temp) && in_array($key, $required)) {
                                  array_push($missing, $key);
                        } elseif (in_array($key, $expected)) {
                                  //otherwise, assign to a variable of the same name as $key
                                  ${$key} = $temp;
              // validate the email address
      if (!empty($email)) {
        // regex to identify illegal characters in email address
        $checkEmail = '/^[^@]+@[^\s\r\n\'";,@%]+$/';
              // reject the email address if it doesn't match
        if (!preg_match($checkEmail, $email)) {
          $suspect = true;
          $mailSent = false;
          unset($missing);
              //go ahead ONLY if not suspect and all required fields OK
              if (!$suspect && empty($missing)) {
              // build the message
              $message = "Name: $name\r\n\r\n";
              $message .= "Email: $email\r\n\r\n";
              $message .= "Message: $comments\r\n\r\n";
              //limit line length to 70 characters
              $message = wordwrap($message, 70);
              //Create aditional headers
              $headers = "From: Website Enquiry\r\n";
              $headers .= 'Content-Type: text/plain; charset=utf-8';
              if (!empty($email)) {
              $headers .= "\r\nReply-To: $email";
              //send it
              $mailSent = mail($to, $subject, $message, $headers);
              if ($mailSent) {
                        //$missing is no longer needed if the email is sent, so unset it
                        unset($missing);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <?php
    if ($_POST && $mailSent) { ?>
    <META HTTP-EQUIV="Refresh" CONTENT="5;URL=index.php">
    <?php } ?>
    <title></title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <link href="style/style.css" rel="stylesheet" type="text/css" />
    <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-11804201-5']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    </script>
    </head>
    <body<?php if ($_POST && $mailSent){ ?> onLoad="redirect()"<?php } ?>>
    <img src="images/photography/background.jpg" alt="Jack Wilesmith Furniture Design" class="bg" id="bg" />
    <div id="container">
      <div id="Header">
      </div>
      <div id="content">
    <?php
    if ($_POST && isset($missing) && !empty($missing)) {
              ?>
        <p class="warning"><strong>Please complete the missing item(s) indicated.</strong></p><br />
        <?php
    } elseif ($_POST && !$mailSent) {
              ?>
        <p class="warning"><strong>Sorry, there was a problem sending your message, please try again later. </strong></p><br />
              <?php
    } elseif ($_POST && $mailSent) {
              ?>
        <p><strong>Your Message has been sent succesfully - <strong>You will be redirected in 5 seconds</strong></strong></p><br />
    <SCRIPT LANGUAGE="JavaScript"><!--
    function redirect () { setTimeout("go_now()",5000); }
    function go_now ()   { window.location.href = "index.php"; }
    //--></SCRIPT>
        <?php } ?>
        <form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <p>
          <label for="name">Name:</label><br />
          <input name="name" type="text" class="textInput" id="name"
          <?php if (isset($missing)) {
    echo 'value="' . htmlentities($_POST['name'], ENT_COMPAT, 'UTF-8') . '"';
    ?>
          /> <?php
                if (isset($missing) && in_array('name', $missing)) {?> <span class="warning">Please enter your name</span><?php } ?>
        </p><br />
        <p>
          <label for="email">Email:</label><br />
          <span id="sprytextfield1">
          <input name="email" type="text" class="textInput" id="email"
          <?php if (isset($missing)) {
    echo 'value="' . htmlentities($_POST['email'], ENT_COMPAT, 'UTF-8') . '"';
    ?>
          />
    <span class="textfieldInvalidFormatMsg">Invalid format.</span></span>
          <?php
                if (isset($missing) && in_array('email', $missing)) {?> <span class="warning">Please enter your Email Address</span><?php } ?>
        </p><br />
        <legend></legend>
        <p>
          <label for="comments">Message:</label><br />
          <textarea name="comments" id="comments" cols="45" rows="5"><?php if (isset($missing)) {
                        echo htmlentities($_POST['comments'], ENT_COMPAT, 'UTF-8');
                } ?></textarea><?php
                if (isset($missing) && in_array('comments', $missing)) {?> <span class="warning">Please enter a Message</span><?php } ?>
        </p><br />
        <p class="clearIt">
          <input name="send" type="submit" id="send" value="Send message" />
        </p>
         <input name="email" type="hidden" id="email" value="[email protected]" />
    </form>
    </div>
    </div>
    <script type="text/javascript">
    <!--
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "email", {isRequired:false, hint:"[email protected]"});
    //-->
    </script>
    </body>
    </html>

    Lovely, simple but beautiful!
    Thanks for that.
    T

  • How can I use Server level variables in a business model based report

    hi gems..
    I have declared one server level variable in the BI Analytics repository.
    Now I have made one business model based report.
    In one column I want to use that server level varible.
    I go to the formula tab of that column and then clicked on variable--> session --> put the name of the variable and click ok.
    But when i viewed the report, it is not showing the dates, rather it is showing the date format I chosed i.e DD-MMM-YYYY.
    please help..

    actually the previous problem got resolved...
    Now when I am trying to apply a filter on a particular column using that server variable, then it is showing that the varible has no value definition.
    I have clicked on the filter tab of that column-->add-->variables-->session variables-->then I put the name of the variable-->click OK.
    the following error is comming-
    Error Codes: YQCO4T56:OPR4ONWY:U9IM8TAC:OI2DL65P
    Odbc driver returned an error (SQLExecDirectW).
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 23005] The repository variable, Variable_name, has no value definition. (HY000)
    I have made that server variable from manage-->variables-->(right click) create new initialisation block-->gave the name and wrote the query and aslo gave the connection pool name and test that and it worked fine..

  • Sorting at Form Level

    Dear All,
    thanx for my earliar queries, tahnx a lot.
    i am working on Forms 6i / Oracle 8i.Actaully, i need to sort some records on form level, which i got populated in the form one-by-one by the primary key.
    pls, suggest me how to proceed.
    Inderjeet Singh

    It's not Forms that does the sorting, but the database. That's why you modify the ORDER BY clause of the block; Forms passes it to the database which modifies the query accordingly.
    So one option is to base your block on a view, which can include your derived field. This is useful for sorting on things like foreign key lookups.
    If the thing you want to sort is not in the database, then you can implement your sort using PL/SQL and manipulating the blocks using the block and record built-ins.
    Regards,
    Robin Zimmermann
    Forms Product Management

  • Duplicate item checking failed in Form level-urgent

    Hi all
    i have creation page with advanced table
    i need to restrict the duplication at form level as well as save button
    in some cases the validation is failed
    if ("CodeValidation".equals(pageContext.getParameter(EVENT_PARAM)))
    itemcode = vo.getCurrentRow().getAttribute("ItemCode").toString();//advanced table multiple records come
    am.xxItemCodeValidation(itemcode);//checking the item validation at databse level
    am.xxdupitemcode(itemcode);
    method in am
    public void xxdupitemcode(String itemcode)
    System.out.println("The item code is.........."+itemcode);
    int count = 0;
    xxcrmNewItemVOImpl vo = getxxcrmNewItemVO1();
    vo.executeQuery();
    System.out.println("the row are" + vo.getAllRowsInRange().length);
    Row r[] = vo.getAllRowsInRange();
    int n = vo.getAllRowsInRange().length;
    for (int i = 0; i < n; i++)
    System.out.println("entered into this block......for loop" + count);
    if (itemcode.equals(r.getAttribute("ItemCode")))
    System.out.println("entered into this block......" + count);
    count = count + 1;
    System.out.println("the count is........."+count);
    if (count > 1)
    throw new OAException("Duplicate Item found plz change the item",
    OAException.ERROR);
    } else
    System.out.println("Exception block....... ");
    in save button i am calling
    if ("Save".equals(pageContext.getParameter(EVENT_PARAM)))
    am.xxdupitemcode(itemcode);
    am.invokeMethod("xxsavetr");
    in which case it is failing is
    in first row user enter
    ROW-ITEMCODE
    1-A
    2-A
    3-B
    4-B
    in second row and 4 th row exception is raised but user didnt change the itemcode and proceed for next steps
    IN SAVE BUTTON EXCEPTION IS RAISED
    but user will go to 4 th row and B should be change as C and click on save
    records are saving with duplication item of A
    but i need to restrict in save button also
    how its posible
    Regards
    Sreekanth

    Sreekanth,
    The correct way to check for duplicates is to check it both in the VO/EO cache as well as the database. It is possible the user entered duplicate value in the current session. In that case you should first check within the existing VO rows if the values are duplicated or not (in case all the database rows are already queried, you might not need to run an explicit query, otherwise another validation VO needs to be executed to check for duplicates).
    Regards
    Sumit

  • PDF forms - underlined variable text

    Hello Everyone,
    I am trying to create a PDF form with variable text fields in Acrobat 9 Pro and I see there are very limited possibilities in the text formatting. I can specify font, size, color, border, but there is missing any option how to switch on the underlining of the text. Is there any way how to achieve this?
    Thanks in advance for any hint.
    Regards,
    Jan

    You can add some JavaScript to your script that imports the data from the database and format the inserted text by using the span object to apply the underline property. The following ecample is from the Acrobat JavaScript API Reference.
    Example
    Write rich text to a rich text field using various properties. See the Field object  
    richValue property for more details and examples.
    var f = this.getField("myRichField");
    // Create an array to hold the Span objects
    var spans = new Array();
    // Each Span object is an object, so we must create one
    spans[0] = new Object();
    spans[0].alignment = "center";
    spans[0].text = "The answer is x";
    spans[1] = new Object();
    spans[1].text = "2/3";
    spans[1].superscript = true;
    spans[2] = new Object();
    spans[2].superscript = false;
    spans[2].text = ". ";
    spans[3] = new Object();
    spans[3].underline = true;
    spans[3].text = "Did you get it right?";
    spans[3].fontStyle = "italic";
    spans[3].textColor = color.red;
    // Now assign our array of Span objects to the field using // field.richValue
    f.richValue = spans;

  • Is it possible to make a fillable form have variable fields - so if you select a radio button it triggers a different form field to be seen depending on which radio button is selected??

    Is it possible to make a fillable form have variable fields - so if you select a radio button it triggers a different form field to be seen depending on which radio button is selected??

    Yes, one needs to use some custom JavaScript code to control the other fields' properties.
    Disabling (graying-out) Form Fields by Thom Parker

  • Block level trigger vs form level trigger

    Hello.
    I want to know what is better - to use block or form trigger?
    I have many blocks in my form. I need to write custom code in (for example) key-crerec trigger.
    Should i put trigger into each block or should i create one at form level like:
    if :system.current_block = 'BLOCK1' then
    create_record;
    elsif...
    end if;
    Thanks.
    Message was edited by:
    DejanH

    Hello,
    If you have to handle this stuff in more than one block, it seems more generic to put the code in a form-level trigger if you don't want to duplicate it several times.
    Francois

  • Project level variables in OSB

    Is there any way we can declare project level variables or global variables that are visible to all the projects in OSB?? If yes,the how can they b used??

    OSB is stateless and can not remember variables outside a running process instance.
    However you can have a solution similar to global/project level variables if they are static.
    What you can do is create an XSL or XQuery with your variables defined as elements in the XML and inside Proxy service if you need to refer to these variables just call that XQuery/XSLT for that element.
    A use case where this scenario can be used is for defining log levels. You can have a config XQ for each project and define the value of log level element for each project in that XQuery. Inside a Proxy service just call this XQ and fetch the LogLevel and log accordingly. This is also useful in migrating between dev/test/production environments. You can have different values of LogLevel in the XQ in different environments so that you dont need to change the code in proxy service when you move from one environment to other and also you dont need to change in each and every proxy if you need to change the level of logging.

  • Ontext menu at form level text items

    Hi, I want to know how we can create a context menu at form level text items.
    like i want a context menu at column level for following options copy, hide, show, set filter, find, sort in ascending and descending order.
    I will be highly obliged.

    Hello,
    Create an internal menu (popup menu node in your form module), then attach its name to the corresponding item (fonctionnal -> popup menu)
    Francois

  • When-validate-item at form level do not fire

    Hi, I wrote a when-validate-item at form level to do same check in all items of a screen and note that this trigger do not fire when executing the form. does someone know why this form-level when-validate item do not fire. Are there some conditions i probably forgot to have? Thnaks very much.

    Hi, if you also have a validate-item trigger on the item itself, this may be overriding the form-level validate item.
    At the ITEM-LEVEL:
    if a when-validate-item trigger exists and the Execution Hierarchy property of the trigger is set to override then the item-level trigger will fire instead of any trigger by the same name at any higher scope.
    So make sure you do not have validate-item triggers at the item or block level that may be overriding the form-level when-validate-item.
    To see the properties of a trigger, highlight the trigger and press F4
    Hope this helps!

  • Form level v/s item level trigger in oracle forms

    Hello Experts,
                  I am new in oracle forms.I am using forms 11g with weblogic server 10.3.5 at windows 7.I am very confused between Form level and item level triggers.What is the sense of use of when-button-pressed trigger at item level & form level.If I have this trigger form level then how could I check that is fired.
    Thank  You
    regards
    aaditya

    979801 wrote:
    Hello Experts,
                  I am new in oracle forms.I am using forms 11g with weblogic server 10.3.5 at windows 7.I am very confused between Form level and item level triggers.What is the sense of use of when-button-pressed trigger at item level & form level.If I have this trigger form level then how could I check that is fired.
    Thank  You
    regards
    aaditya
    You need to clear you concept first..
    Form level Trigger: code applied all respective item within the form
    Item level Trigger: code applies for only the item that has the code.
    try in a form and you will see the difference.
    Hamid

  • Upload single level variable cost in SNP PPM in mass by MASSD

    Hi experts,
    I am trying to upload single level variable cost in SNP PPM in mass by MASSD by following selections:-
    Selection
    Object Type:- PPM
    Selction Criteria:-
    Component:- Plan        Attrib:- Use of Plan
    Component:- Plan        Attrib:- Plan
    Components & Attributes to be Maintained
    Component:- Plan        Attrib:- Var.Sing.Lvl Costs
    While maintaining the cost, under selection criteria, compoment: PLAN and attribute: PLAN I am unable to maintain multiple plan names.
    The single level variable cost that I have to maintain for all these plans is the same and therefore was trying to use transaction MASSD
    Can you please throw some light on how multiple PLAN selections can be done?
    Regards
    Chetan

    DEAR GURUS,
    *There is a question regarding the resoucre  consumptions  relevant to PDS in SNP,*
    ****The inputs are:****
    ****1) Base Qty= 7700 TH****
    ****2) Set Up =45 MIN****
    ****Resource consumed by operation activity is 112 207 seconds = 31,17 hours.****
    ****Unfortunately we didnu2019t understand how this figure is calculated.****
    ****Can you please help us in this****

  • Error CL_RSR_REQUEST and form TEXT_ELEMENTS_GET: VARIABLE

    Hi Experts,
    Iam working on 3.1 system, When i tried to execute a Query. I got the following error.
    <b>CL_RSR_REQUEST and form TEXT_ELEMENTS_GET: VARIABLE</b>
    should i apply any SAP notes for this?
    How to correct this? any ideas.
    Thanks
    SP

    Apply OSS Notes: 885886 and 858458

Maybe you are looking for

  • Can I prepopulate a Word document or PDF?

    This application is for a home health agency. There is an extensive form that needs to be filled out periodically called a CMS-485. There are tons of fields and lots of formatting to the document. I currently have the document in Word format. We main

  • Downloading ios5, after download window says network connection timed out. whats happening here ?

    Trying to download ios5, at the end of the download a window will tell me that my network connection has timed out. can anyone help me please ?

  • CFDOCUMENT for multiple PDF files

    We have about ten thousand records and have to create one PDF file which includes all these records. Did indexing for the tables. I have CFLOOP around the CFDOCUMENT and am trying to run the file.It never works. I got an error 500 null (saw it for th

  • Catch Error message from WLI Process

    Hi, I have a big application developed with WLI and I wanna know if there is a way to recive error messagem from this application throught the ALSB. The ALSB call a WLI jpd procces by BussinesProxy. For example, when occurs a database error into JPD

  • The camera from my iphone 4s has some purple lines

    When I open my iPhone camera app is shows purple  lines. They are really small lines not really big they are only in the camera app not all over the screen,so when i take a picture it shoes them on the picture, Does anyone know if apple will rellace