F4_if_ table _value _request

Hi all,
I am working on F4 int table vaue request, but he values are populating in f4 but automaticallly another screen is disabling that f4  screen.
How to resolve this issue .
will any body help me on this .
Regards,
Madhavi

see the following examle:
DATA: W_PROGNAME LIKE SY-REPID,
  W_SCR_NUM LIKE SY-DYNNR .
  DATA: RETURN_VALUES LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
  DATA: ITAB_DYNPFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
  T_DYNPFIELDS LIKE DYNPREAD.
  DATA: T_DYNAME LIKE D020S-PROG,
  T_DYNUMB LIKE D020S-DNUM.
  DATA: BEGIN OF INT_F4 OCCURS 0,
        KUNNR TYPE VBAK-KUNNR,
        VBELN TYPE VBAK-VBELN,
        AUDAT TYPE VBAK-AUDAT,
        END OF INT_F4.
SELECT KUNNR VBELN AUDAT
   INTO  TABLE INT_F4
   FROM VBAK
   UP TO 10 ROWS.
  CLEAR INT_F4.
****function module to get pop-up window of f4.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        = 'VBELN'
      DYNPPROG        = W_PROGNAME
      DYNPNR          = W_SCR_NUM
      DYNPROFIELD     = 'KUNNR'
      VALUE_ORG       = 'S'
    TABLES
      VALUE_TAB       = INT_F4
      RETURN_TAB      = RETURN_VALUES
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          = 3.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE .
    KUNNR = RETURN_VALUES-FIELDVAL.
  ENDIF.

Similar Messages

  • Error while creating temporary table

    Hi All,
    I am trying to integrate ODI and BAM . I have followed all the steps given in the guide.While creating interface i am getting the error while LKM is working.
    I am using LKM SQL to SQL and IKM Oracle BAM Insert ( as the inserted data should be captured after inserting).
    http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bam_odi.htm
    Please use this link for clarification.For me drop work table and create work table failed (C$ -work table). Anyone have any idea about this could you help me?
    Thanks in advance,
    Gnanaprakasam

    It seems the table(MMMORDERFILE_C$_REQUEST ) already exist in the work schema,so cant able to create and throw an error. can you tell me which KM you are using?

  • ODI....Interface Error

    Hi All,
    I am trying to create an XML file from staging tables
    I created several interfaces for loading target datastores for the XML which were reverse engineered from a DTD.
    The source tables are the staging tables.
    All of my interfaces are working except one.
    It shows an error while creating a work table....which I think is a temporary table which ODI creates while executing the interface.
    the one interface shows an error message
    0 : null : java.sql.SQLException: Table already exists: MMMORDERFILE_C$_REQUEST in statement [create table MMMORDERFILE_C$_REQUEST]
    java.sql.SQLException: Table already exists: MMMORDERFILE_C$_REQUEST in statement [create table MMMORDERFILE_C$_REQUEST]
         at com.sunopsis.jdbc.driver.xml.bq.executeUpdate(bq.java)
         at com.sunopsis.jdbc.driver.xml.br.executeUpdate(br.java)
         at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.i(e.java)
         at com.sunopsis.dwg.cmd.g.y(g.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Unknown Source)
    Thank you!

    It seems the table(MMMORDERFILE_C$_REQUEST ) already exist in the work schema,so cant able to create and throw an error. can you tell me which KM you are using?

  • Changing the size of a single field in runtime in table view

    Is it possible to change the row height to fit the entire text into the field for the column Exception text ?
    Is it possible to change the row height of the field exception text in run time, based on the amount of text it carries ??
    Please suggest.

    Hello,
    you can try to put the code similar to the one below in table iterator.
    METHOD if_htmlb_tableview_iterator~render_cell_start.
      DATA: lr_input TYPE REF TO cl_thtmlb_inputfield,
            lr_text TYPE REF TO cl_thtmlb_textview.
      IF p_column_key EQ 'ZLIKEATTRS'.
        lr_input ?= p_replacement_bee.
        lr_input->encode = abap_false.
        IF ( lr_input->disabled EQ 'TRUE' ) OR ( lr_input->disabled EQ abap_true )
          OR ( p_edit_mode IS INITIAL ).
    * --> input is readonly, instead of disabled input render text
          CREATE OBJECT lr_text.
          lr_text->id        = p_cell_id.
          lr_text->text      = lr_input->value.
          lr_text->_text     = lr_input->_value.
          lr_text->type      = lr_input->type.
          lr_text->_type     = lr_input->_value.
          lr_text->tooltip   = lr_input->tooltip.
          lr_text->align     = lr_input->alignment.
          lr_text->textdirection = lr_input->textdirection.
          lr_text->design    = 'VALUE'.                         "#EC NOTEXT
          lr_text->size      = lr_input->size.
          lr_text->width     = lr_input->width.
          IF lr_text->tooltip IS INITIAL.
            IF lr_input->_value IS NOT INITIAL.
              lr_text->_tooltip = lr_input->_value.
            ELSE.
              lr_text->tooltip = lr_input->value.
            ENDIF.
          ENDIF.
          lr_text->encode = abap_false.
          p_replacement_bee ?= lr_text.
        ENDIF.
      ENDIF.
    ENDMETHOD.
    In get method of your description column split the text into lines using <br> tag.
    Something like this:
    LOOP AT lt_attrs INTO lv_attr.
            CONCATENATE lv_value '<br>' lv_attr INTO lv_value.
        ENDLOOP.

  • How can I modify this script to return only certain rows of my mySQL table?

    Hi there,
    I have a php script that accesses a mySQL database and it was generated out of the Flex Builder wizard automatically. The script works great and there are no problems with it. It allows me to perform CRUD on a table by calling it from my Flex app. and it retrieves all the data and puts it into a nice MXML format.
    My question, currently when I call "findAll" to retrieve all the data in the table, well, it retrieves ALL the rows in the table. That's fine, but my table is starting to grow really large with thousands of rows.
    I want to modify this script so that I can pass a variable into it from Flex so that it only retrieves the rows that match the "$subscriber_id" variable that I pass. In this way the results are not the entire table's data, only the rows that match 'subscriber_id'.
    I know how to pass a variable from Flex into php and the code on the php side to pick it up would look like this:
    $subscriberID = $_POST['subscriberID'];
    Can anyone shed light as to the proper code modification in "findAll" which will take my $subscriberID variable and compare it to the 'subscriber_id' field and then only return those rows that match? I think it has something to do with lines 98 to 101.
    Any help is appreciated.
    <?php
    require_once(dirname(__FILE__) . "/2257safeDBconn.php");
    require_once(dirname(__FILE__) . "/functions.inc.php");
    require_once(dirname(__FILE__) . "/XmlSerializer.class.php");
    * This is the main PHP file that process the HTTP parameters,
    * performs the basic db operations (FIND, INSERT, UPDATE, DELETE)
    * and then serialize the response in an XML format.
    * XmlSerializer uses a PEAR xml parser to generate an xml response.
    * this takes a php array and generates an xml according to the following rules:
    * - the root tag name is called "response"
    * - if the current value is a hash, generate a tagname with the key value, recurse inside
    * - if the current value is an array, generated tags with the default value "row"
    * for example, we have the following array:
    * $arr = array(
    *      "data" => array(
    *           array("id_pol" => 1, "name_pol" => "name 1"),
    *           array("id_pol" => 2, "name_pol" => "name 2")
    *      "metadata" => array(
    *           "pageNum" => 1,
    *           "totalRows" => 345
    * we will get an xml of the following form
    * <?xml version="1.0" encoding="ISO-8859-1"?>
    * <response>
    *   <data>
    *     <row>
    *       <id_pol>1</id_pol>
    *       <name_pol>name 1</name_pol>
    *     </row>
    *     <row>
    *       <id_pol>2</id_pol>
    *       <name_pol>name 2</name_pol>
    *     </row>
    *   </data>
    *   <metadata>
    *     <totalRows>345</totalRows>
    *     <pageNum>1</pageNum>
    *   </metadata>
    * </response>
    * Please notice that the generated server side code does not have any
    * specific authentication mechanism in place.
    * The filter field. This is the only field that we will do filtering after.
    $filter_field = "subscriber_id";
    * we need to escape the value, so we need to know what it is
    * possible values: text, long, int, double, date, defined
    $filter_type = "text";
    * constructs and executes a sql select query against the selected database
    * can take the following parameters:
    * $_REQUEST["orderField"] - the field by which we do the ordering. MUST appear inside $fields.
    * $_REQUEST["orderValue"] - ASC or DESC. If neither, the default value is ASC
    * $_REQUEST["filter"] - the filter value
    * $_REQUEST["pageNum"] - the page index
    * $_REQUEST["pageSize"] - the page size (number of rows to return)
    * if neither pageNum and pageSize appear, we do a full select, no limit
    * returns : an array of the form
    * array (
    *           data => array(
    *                array('field1' => "value1", "field2" => "value2")
    *           metadata => array(
    *                "pageNum" => page_index,
    *                "totalRows" => number_of_rows
    function findAll() {
         global $conn, $filter_field, $filter_type;
          * the list of fields in the table. We need this to check that the sent value for the ordering is indeed correct.
         $fields = array('id','subscriber_id','lastName','firstName','birthdate','gender');
         $where = "";
         if (@$_REQUEST['filter'] != "") {
              $where = "WHERE " . $filter_field . " LIKE " . GetSQLValueStringForSelect(@$_REQUEST["filter"], $filter_type);     
         $order = "";
         if (@$_REQUEST["orderField"] != "" && in_array(@$_REQUEST["orderField"], $fields)) {
              $order = "ORDER BY " . @$_REQUEST["orderField"] . " " . (in_array(@$_REQUEST["orderDirection"], array("ASC", "DESC")) ? @$_REQUEST["orderDirection"] : "ASC");
         //calculate the number of rows in this table
         $rscount = mysql_query("SELECT count(*) AS cnt FROM `modelName` $where");
         $row_rscount = mysql_fetch_assoc($rscount);
         $totalrows = (int) $row_rscount["cnt"];
         //get the page number, and the page size
         $pageNum = (int)@$_REQUEST["pageNum"];
         $pageSize = (int)@$_REQUEST["pageSize"];
         //calculate the start row for the limit clause
         $start = $pageNum * $pageSize;
         //construct the query, using the where and order condition
         $query_recordset = "SELECT id,subscriber_id,lastName,firstName,birthdate,gender FROM `modelName` $where $order";
         //if we use pagination, add the limit clause
         if ($pageNum >= 0 && $pageSize > 0) {     
              $query_recordset = sprintf("%s LIMIT %d, %d", $query_recordset, $start, $pageSize);
         $recordset = mysql_query($query_recordset, $conn);
         //if we have rows in the table, loop through them and fill the array
         $toret = array();
         while ($row_recordset = mysql_fetch_assoc($recordset)) {
              array_push($toret, $row_recordset);
         //create the standard response structure
         $toret = array(
              "data" => $toret,
              "metadata" => array (
                   "totalRows" => $totalrows,
                   "pageNum" => $pageNum
         return $toret;
    * constructs and executes a sql count query against the selected database
    * can take the following parameters:
    * $_REQUEST["filter"] - the filter value
    * returns : an array of the form
    * array (
    *           data => number_of_rows,
    *           metadata => array()
    function rowCount() {
         global $conn, $filter_field, $filter_type;
         $where = "";
         if (@$_REQUEST['filter'] != "") {
              $where = "WHERE " . $filter_field . " LIKE " . GetSQLValueStringForSelect(@$_REQUEST["filter"], $filter_type);     
         //calculate the number of rows in this table
         $rscount = mysql_query("SELECT count(*) AS cnt FROM `modelName` $where");
         $row_rscount = mysql_fetch_assoc($rscount);
         $totalrows = (int) $row_rscount["cnt"];
         //create the standard response structure
         $toret = array(
              "data" => $totalrows,
              "metadata" => array()
         return $toret;

    Hi there,
    I have a php script that accesses a mySQL database and it was generated out of the Flex Builder wizard automatically. The script works great and there are no problems with it. It allows me to perform CRUD on a table by calling it from my Flex app. and it retrieves all the data and puts it into a nice MXML format.
    My question, currently when I call "findAll" to retrieve all the data in the table, well, it retrieves ALL the rows in the table. That's fine, but my table is starting to grow really large with thousands of rows.
    I want to modify this script so that I can pass a variable into it from Flex so that it only retrieves the rows that match the "$subscriber_id" variable that I pass. In this way the results are not the entire table's data, only the rows that match 'subscriber_id'.
    I know how to pass a variable from Flex into php and the code on the php side to pick it up would look like this:
    $subscriberID = $_POST['subscriberID'];
    Can anyone shed light as to the proper code modification in "findAll" which will take my $subscriberID variable and compare it to the 'subscriber_id' field and then only return those rows that match? I think it has something to do with lines 98 to 101.
    Any help is appreciated.
    <?php
    require_once(dirname(__FILE__) . "/2257safeDBconn.php");
    require_once(dirname(__FILE__) . "/functions.inc.php");
    require_once(dirname(__FILE__) . "/XmlSerializer.class.php");
    * This is the main PHP file that process the HTTP parameters,
    * performs the basic db operations (FIND, INSERT, UPDATE, DELETE)
    * and then serialize the response in an XML format.
    * XmlSerializer uses a PEAR xml parser to generate an xml response.
    * this takes a php array and generates an xml according to the following rules:
    * - the root tag name is called "response"
    * - if the current value is a hash, generate a tagname with the key value, recurse inside
    * - if the current value is an array, generated tags with the default value "row"
    * for example, we have the following array:
    * $arr = array(
    *      "data" => array(
    *           array("id_pol" => 1, "name_pol" => "name 1"),
    *           array("id_pol" => 2, "name_pol" => "name 2")
    *      "metadata" => array(
    *           "pageNum" => 1,
    *           "totalRows" => 345
    * we will get an xml of the following form
    * <?xml version="1.0" encoding="ISO-8859-1"?>
    * <response>
    *   <data>
    *     <row>
    *       <id_pol>1</id_pol>
    *       <name_pol>name 1</name_pol>
    *     </row>
    *     <row>
    *       <id_pol>2</id_pol>
    *       <name_pol>name 2</name_pol>
    *     </row>
    *   </data>
    *   <metadata>
    *     <totalRows>345</totalRows>
    *     <pageNum>1</pageNum>
    *   </metadata>
    * </response>
    * Please notice that the generated server side code does not have any
    * specific authentication mechanism in place.
    * The filter field. This is the only field that we will do filtering after.
    $filter_field = "subscriber_id";
    * we need to escape the value, so we need to know what it is
    * possible values: text, long, int, double, date, defined
    $filter_type = "text";
    * constructs and executes a sql select query against the selected database
    * can take the following parameters:
    * $_REQUEST["orderField"] - the field by which we do the ordering. MUST appear inside $fields.
    * $_REQUEST["orderValue"] - ASC or DESC. If neither, the default value is ASC
    * $_REQUEST["filter"] - the filter value
    * $_REQUEST["pageNum"] - the page index
    * $_REQUEST["pageSize"] - the page size (number of rows to return)
    * if neither pageNum and pageSize appear, we do a full select, no limit
    * returns : an array of the form
    * array (
    *           data => array(
    *                array('field1' => "value1", "field2" => "value2")
    *           metadata => array(
    *                "pageNum" => page_index,
    *                "totalRows" => number_of_rows
    function findAll() {
         global $conn, $filter_field, $filter_type;
          * the list of fields in the table. We need this to check that the sent value for the ordering is indeed correct.
         $fields = array('id','subscriber_id','lastName','firstName','birthdate','gender');
         $where = "";
         if (@$_REQUEST['filter'] != "") {
              $where = "WHERE " . $filter_field . " LIKE " . GetSQLValueStringForSelect(@$_REQUEST["filter"], $filter_type);     
         $order = "";
         if (@$_REQUEST["orderField"] != "" && in_array(@$_REQUEST["orderField"], $fields)) {
              $order = "ORDER BY " . @$_REQUEST["orderField"] . " " . (in_array(@$_REQUEST["orderDirection"], array("ASC", "DESC")) ? @$_REQUEST["orderDirection"] : "ASC");
         //calculate the number of rows in this table
         $rscount = mysql_query("SELECT count(*) AS cnt FROM `modelName` $where");
         $row_rscount = mysql_fetch_assoc($rscount);
         $totalrows = (int) $row_rscount["cnt"];
         //get the page number, and the page size
         $pageNum = (int)@$_REQUEST["pageNum"];
         $pageSize = (int)@$_REQUEST["pageSize"];
         //calculate the start row for the limit clause
         $start = $pageNum * $pageSize;
         //construct the query, using the where and order condition
         $query_recordset = "SELECT id,subscriber_id,lastName,firstName,birthdate,gender FROM `modelName` $where $order";
         //if we use pagination, add the limit clause
         if ($pageNum >= 0 && $pageSize > 0) {     
              $query_recordset = sprintf("%s LIMIT %d, %d", $query_recordset, $start, $pageSize);
         $recordset = mysql_query($query_recordset, $conn);
         //if we have rows in the table, loop through them and fill the array
         $toret = array();
         while ($row_recordset = mysql_fetch_assoc($recordset)) {
              array_push($toret, $row_recordset);
         //create the standard response structure
         $toret = array(
              "data" => $toret,
              "metadata" => array (
                   "totalRows" => $totalrows,
                   "pageNum" => $pageNum
         return $toret;
    * constructs and executes a sql count query against the selected database
    * can take the following parameters:
    * $_REQUEST["filter"] - the filter value
    * returns : an array of the form
    * array (
    *           data => number_of_rows,
    *           metadata => array()
    function rowCount() {
         global $conn, $filter_field, $filter_type;
         $where = "";
         if (@$_REQUEST['filter'] != "") {
              $where = "WHERE " . $filter_field . " LIKE " . GetSQLValueStringForSelect(@$_REQUEST["filter"], $filter_type);     
         //calculate the number of rows in this table
         $rscount = mysql_query("SELECT count(*) AS cnt FROM `modelName` $where");
         $row_rscount = mysql_fetch_assoc($rscount);
         $totalrows = (int) $row_rscount["cnt"];
         //create the standard response structure
         $toret = array(
              "data" => $totalrows,
              "metadata" => array()
         return $toret;

  • Unable to read edited cell values from table view 'LineEDIT' mode

    Hello Gurus,
    Need urgent help on Cell binding - Here's what I have:
    I have a bsp with one tableview for users to update shelf quantity.
    Selection mode is <b>Lineedit</b>. I used this only bcos in this I need not select a row to update it - let me know if this is wrong.
    Our users do not like to click on the row to select and edit it! I am not getting the edited values from the tableview.
    Although I am using a contoller and view, it's not really an MVC. Can someone please guide me on this?
    <b>
    code in IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS
    append initial line to p_column_definitions assigning <def>.
    <def>-columnname = 'SHLQTY'.
    <def>-title = 'Shelf Qty'.
    <def>-EDIT = 'X'.
    Code in IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START.
    p_replacement_bee = CL_HTMLB_INPUTFIELD=>FACTORY(
                                id        = p_cell_id
    *                            type      = 'DATE'
    *                            showhelp  = 'TRUE'
    *                            type       = 'QUAN'
                                VALUE      = val
                                cellvalue = 'TRUE'
                                _VALUE = P_CELL_BINDING )
    </b>
    I do not see anything coming in <b>P_CELL_BINDING</b> .
    Tableview in layout
    <b>
    <htmlb:tableView id                    = "result"
                           design                = "STANDARD"
                           headerText            = "Header Text"
                           filter                = "SERVER"
                           onNavigate            = "onMyNavigate"
                           selectionMode         = "lineedit"
                           emptyTableText        = "No records found!"
                           onRowSelection        = "onMyRowSelection"
                           allRowsEditable       = "TRUE"
                           selectedRowKeyTable   = "<%= rkTab %>"
                           table                 = "<%= datatab %>"
                           selectedRowIndexTable = "<%= sRTable %>"
                           iterator              = "<%= iterator %>"
                           visibleRowCount       = "10" >
          </htmlb:tableView>
    </b>
    I update an internal table Datatab with all the values I require.
    Any idea why the cell binding id not working?
    Many thanks in advance.
    Mike

    Hi Mike,
    databinding is not possible with application classes. There are just a nice way to handle "session variables". You can use them with MVC as well.
    Before MVC there was flow logic. Single formfield-values are receved e.g. when declared as page parameters. Values from tableViews are received e.g. in OnInputProcessing" by fetching the TV-Object from HTMLB_MANAGER and then calling methods like "GET_CELL_VALUE".
    DATA: tv          type ref to CL_HTMLB_TABLEVIEW,
          table_event type ref to CL_HTMLB_EVENT_TABLEVIEW.
    tv ?= CL_HTMLB_MANAGER=>GET_DATA( request = request
                                      name    = 'tableView'
                                      id      = 'mytv1' ).
    table_event = tv->data.
    myValue = table_event->get_cell_value( row_index  = 1 column_index = 1 ).
    good luck,
    stefan.

  • GROUP BY on a table with geometry

    Good evening
    This is an overview of my table
    Geometry_|_ID_GEO_|_Year_|_Value
    Polygon1_|__1______|_1999_|__5
    Polygon1_|__1______|_1999_|__7
    Polygon2_|__2______|_1999_|__4
    Polygon2_|__2______|_1999_|__12
    I would like to group this table by geometry and by year suming the value to obtain something like that:
    Geometry_|_ID_GEO_|_Year_|_Value
    Polygon1_|__1______|_1999_|__12
    Polygon2_|__2______|_1999_|__16
    I have written the following SQL statement which work perfectly:
    SELECT SUM(Value),ID_GEO FROM MyTable WHERE Year=1999 GROUP BY ID_GEO
    But when i add the Geometry field in the statement like:
    SELECT Geometry,SUM(Value),ID_GEO FROM MyTable WHERE Year=1999 GROUP BY ID_GEO
    It does not work anymore. I obtain an error: SQLState: 42000, ErrorCode: 979 which seems to be related to the Group by...
    The point is that i need the Geometry in the result query to then generate a map.
    I am using Oracle entreprise 10 with oracle Locator only.
    Can anyone help me? I don't understand why it does not work.
    Many thanks
    Sylvain

    I was faced with a similar issue more than a year ago. The solution for me was to create an user defined aggregate function: agg_first_geom. This will help aggragating your data by keeping/taking the first geometry. This of course is valid when you have a 1 to 1 relationship with one of the columns in your group by, which you confirmed earlier.
    Try it and see whether this could be of help.
    first create the type agg_geom_t and the function agg_first_geom. Once that is finished you should be able to have your SQL statement as follows:
    SELECT SUM(Value) as SUMOfValue ,ID_GEO, agg_first_geom(geometry) FROM MyTable WHERE Year=1999 GROUP BY ID_GEO
    create or replace type agg_geom_t as object (
        geom_agg mdsys.sdo_geometry,
        static function ODCIAggregateInitialize(sctx in out agg_geom_t)
            return number,
        member function ODCIAggregateIterate(self in out agg_geom_t,
            value in mdsys.sdo_geometry) return number,
        member function ODCIAggregateTerminate(self in agg_geom_t,
            return_value out mdsys.sdo_geometry, flags in number) return number,
        member function ODCIAggregateMerge(self in out agg_geom_t,
            ctx2 in agg_geom_t) return number
    create or replace type body agg_geom_t is
        static function ODCIAggregateInitialize(sctx in out agg_geom_t)
            return number is
        begin
            sctx := agg_geom_t(null);
            return ODCIConst.Success;
        end;
        member function ODCIAggregateIterate(
          self in out agg_geom_t, value in mdsys.sdo_geometry)
            return number is
        begin
            geom_agg := value;
            return ODCIConst.Success;
        end;
        member function ODCIAggregateTerminate(self in agg_geom_t,
            return_value out mdsys.sdo_geometry, flags in number) return number is
        begin
            return_value := geom_agg;
            return ODCIConst.Success;
        end;
        member function ODCIAggregateMerge(self in out agg_geom_t,
            ctx2 in agg_geom_t) return number is
        begin
         geom_agg := ctx2.geom_agg;
            return ODCIConst.Success;
        end;
    end;
    create or replace function agg_first_geom (input mdsys.sdo_geometry) return mdsys.sdo_geometry
        parallel_enable aggregate using agg_geom_t;
    commit;SELECT SUM(Value) as SUMOfValue ,ID_GEO, agg_first_geom(geometry) FROM MyTable WHERE Year=1999 GROUP BY ID_GEO

  • How to create a vertical bar chart from a table? (PHP, HTML and CSS)

    Hi everyone,
    I have created a table and wish to proceed to do it even better in terms of analysis pattern. I want
    to create a vertical bar chart from the created table but I dunno how to start it.
    Here is the code for the table:
    <?php
    $gpa11=$_REQUEST['gpa11'];
    $gpa12=$_REQUEST['gpa12'];
    $gpa21=$_REQUEST['gpa21'];
    $gpa22=$_REQUEST['gpa22'];
    $gpa31=$_REQUEST['gpa31'];
    $gpa32=$_REQUEST['gpa32'];
    $gpa41=$_REQUEST['gpa41'];
    $gpa42=$_REQUEST['gpa42'];
    $gpa51=$_REQUEST['gpa51'];
    $gpa52=$_REQUEST['gpa52'];
    ?>
    <!doctype html>
    <html lang="en">
       <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=1024">
          <title>Feng Mentor Mentee</title>
       </head>
       <body>
          <div id="wrapper">
             <div class="chart">
                <h3>GPA Performance Graph</h3>
                <table id="data-table" border="1" cellpadding="10" cellspacing="0"
                summary="The performance of students throughout the years in university">
                   <thead>
                      <tr>
                         <td> </td>
                         <th scope="col">Year 1</th>
                         <th scope="col">Year 2</th>
                         <th scope="col">Year 3</th>
                         <th scope="col">Year 4</th>
                         <th scope="col">Year 5</th>
                      </tr>
                   </thead>
                   <tbody>
                      <tr>
                         <th scope="row">Sem 1</th>
                         <td><?php echo $gpa11;?></td>
                         <td><?php echo $gpa21;?></td>
                         <td><?php echo $gpa31;?></td>
                         <td><?php echo $gpa41;?></td>
                         <td><?php echo $gpa51;?></td>
                      </tr>
                      <tr>
                         <th scope="row">Sem 2</th>
                         <td><?php echo $gpa12;?></td>
                         <td><?php echo $gpa22;?></td>
                         <td><?php echo $gpa32;?></td>
                         <td><?php echo $gpa42;?></td>
                         <td><?php echo $gpa52;?></td>
                      </tr>
                   </tbody>
                </table>
             </div>
          </div>
       </body>
    </html>
    Here's the look:
                                                              GPA Performance Graph                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
    Year 1
    Year 2
    Year 3
    Year 4
    Year 5
    Sem 1
    Sem 2
    Please help me on this because this is my 1st project on php.

    Hi
    Are you using BI query? If yes then follow the steps -
    1. Take Sales org in rows of BI query. & take invoice type & Key figure in Columns.
    2. In VC use this query & drag chart from the output of this query.
    3. Right click on chart & go to 'Configure Element'. There select Chart Type as 'Bar chart'
    4. Below that you will get default option as clustered, there you select 'Stacked'
    5. Create Data series as per your requirement.
    6. Arrange proper layout of the model & then deploy.
    You will get required output in stacked format.
    Regards
    Sandeep

  • MySQL query to connect to multiple tables

    The following is a code I made for a search page to search my database "***_members". I want the code to not only take the information from the table "bands", but also the table "venues". 
    I would also like the search to not only look for "name" but also other things in the database like "genre" or "pricing".
    Here is part of my code, I have put */*/* around the stuff that I tried that out but didn't help.
    if(isset($_REQUEST['submit'])) {
    $search = $_GET['search'];
    $terms = explode(" ", $search);
    $query = "SELECT * FROM bands WHERE ";
    */*/*$query = "SELECT * FROM venues WHERE ";*/*/*
    $i=0;
    foreach($terms as $each){
    $i++;
    if($i==1){
    $query .= "name */*/*AND genre*/*/* LIKE '%$each%' ";
    }else{
    $query .= "OR name */*/*AND genre*/*/* LIKE '%$each%' ";
    mysql_connect("*********","************","**********") or die("Could Not Connect To Server..!");
    mysql_select_db("*******_members");
    $query = mysql_query($query);
    $num = mysql_num_rows($query);
    if($num > 0 && $search!=""){
    echo "$num result(s) found for <b>$search</b>!<br />";
    while($row = mysql_fetch_assoc($query)){
    $id = $row['id'];
    $name = $row['name'];
    $ctsp = $row['ctsp'];
    $image = $row['image'];
    $genre = $row['genre'];
    $influ = $row['influ'];
    $location = $row['location'];
    $pricing = $row['pricing'];

    Here's the thing...if you want to create dynamic sites then you MUST learn SQL basics. SQL sytax is very specificy - you can't simply guess at it.
    Here's a good place to start:
    http://www.w3schools.com/SQl/default.asp
    If you want to select from more than one table, then you must join them. To join tables, they must have some relationship. You can either join them in the From clause, or as I prefer, in the Where clause. Also, you conditions in the where clause are incorrect.
    Here's an example:
    SELECT  * FROM bands, venues
    WHERE bands.venue_id = venues.venues_id AND
    (bands.genre LIKE  '%$each%' OR bands.name LIKE  '%$each%')

  • How to apply Foreign Keys on top of a Common Lookup table

    I have an issue where i am mandated to enforce RI on an applications database (a good thing). but I have several common lookup tables where many of the "codes" reside for many different code types. I also have the mandate that i cannot change the
    underlying DDL to make composite keys to match the codes table PK. I am currently looking at creating indexed views on top of the Codes table to seperate the logical tables it contains. This is several hundred views. Although doable is there another solution
    I am not seeing? I have scoured the web in search of an answer knowing I cannot be the only SQL developer in this situation. I do know that I do not want to write several hundred triggers to enforce RI. Table schema below, the CdValue column is the column
    that is used throughout the hundreds of tables that use this codes table, and their corresponding column is not named the same.
    CREATE TABLE dbo.CodesTable (
    PartyGrpId INT  NOT NULL
      , CdTyp  VARCHAR ( 8 ) NOT NULL
      , CompId INT  NOT NULL
      , CdValue VARCHAR ( 8 ) NOT NULL
      , CdValueDesc VARCHAR ( 255 ) NULL
      , AltValueDesc VARCHAR ( 100 ) NULL
      , DefaultInd CHAR ( 1 ) NULL
      , OrderNum SMALLINT NULL
      , ActiveCd CHAR ( 1 ) NULL
      , ExpireDtm SMALLDATETIME NULL
      , EffectDtm SMALLDATETIME NULL
      , ModById INT  NULL
      , ModDtm SMALLDATETIME NULL
      , CreateById INT  NULL
      , CreateDtm SMALLDATETIME NULL
      , CONSTRAINT PC_dbo_EcdDetail
        PRIMARY KEY CLUSTERED ( PartyGrpId ASC, CdTyp ASC, CompId ASC, CdValue ASC )
        ON FG_Data
    ) ON FG_Data;
    I did though run into one forum where a person brought up a great idea. Filtered Foreign Keys, what a novel concept, if it could work it would make so much less code to fix an issue like this. :)
    ALTER TABLE dbo.BusinessStatus WITH NOCHECK
    ADD CONSTRAINT FK_dbo_BusinessStatus_CodesTable FOREIGN KEY (LoanStsDtCd) REFERENCES dbo.CodesTable (CdValue) WHERE CdTyp = 'Status'
    U.S. Army Airborne! The only way to fly

    >> I have several common lookup tables where many of the "codes" reside for many different code types. <<
    No! This is called “Automobiles, S quids and Lady Gaga” SQL and laugh at you or fire you or both. A table is a set; a set has one and only one kind of element it it. This is the basis of RDBMS and First Normal Form. 
    This is so bad it has a name; OTLT for “One True Lookup Table” ;I give an example of how stupid this in one of my books where a Dewey Decimal Classification for Churches is the same as the ICD code for deformed testicles. 
    There is no such crap as a “generic_type_code” in RDBMS. It either a “<something in particular>_type” or a “<something in particular>_code” in data modeling and the ISO-11179 standards.
    You have more NULL-able columns in one table than you should have in an entire schema! 
    You have audit data (creation and modification) in the row under audit. This is both stupid and illegal. You cannot expose the audit trail to the data user by law. When you delete a row, you also destroy the audit trail –Doh! 
    You have no CHECK() constraint on the (effective_date, expiry_date) pair. 
    Putting “_table” in a table name is a design error called a “tibble” to make fun of how silly it. You might want to download the PDF of bad SQL code smells from Red Gate so you can avoid things like this. 
    >>  the CdValue column is the column that is used throughout the hundreds of tables that use this codes table, and their corresponding column is not named the same. <<
    “_value” and “_code” are both what ISO-1179 calls an attribute property. It is a silly as a list of adjectives without a noun. 
    Each encoding is a separate table in a valid schema, each with its own validation and verification. You have to stop doing this. This is fundamental!! 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • How to add a table (dynamic created) into a model attribute

    i have dynamically created an internal table. Generally i use model-binding in a stateful MVC-Application.
    Is there a possibiltity to transfer the dynamic table to a model. As far as i know generic attributes are not allowed in the modell class.
    Every hint welcome
    thx in advance

    By some miracle I do have this finally working.  I will warn you up front that the code is not the cleanest (I have stuff copied in from all over the place.  I probably have lots of unused variable references - but I am running out of time to clean it up further).  Also I don't have all the logic to support all your different possible dynamic structure types.  I always use SFLIGHT as my dyanmic structure.  Therefore you will have to adapt the coding to lookup the actual structure type in use.
    So I have a model that has an structure ITAB type ref to data.  In my Model initialization I go ahead and dynamically redfine this to my specific type:
    METHOD init.
      SELECT SINGLE * FROM sflight INTO CORRESPONDING FIELDS OF isflight.
      DATA: struct_type TYPE REF TO cl_abap_structdescr,
        tabletype TYPE REF TO cl_abap_tabledescr.
      struct_type ?= cl_abap_structdescr=>describe_by_name( 'SFLIGHT' ).
      CREATE DATA me->itab TYPE HANDLE struct_type.
    ENDMETHOD.
    Then in my View I have the following:
    <%@page language="abap" %>
    <%@extension name="htmlb" prefix="htmlb" %>
    <%@extension name="phtmlb" prefix="phtmlb" %>
    <%@extension name="bsp" prefix="bsp" %>
    <htmlb:content design="design2003" >
      <htmlb:page title=" " >
        <htmlb:form>
          <phtmlb:matrix width="100%" >
            <%
      field-symbols: <wa> type any.
      assign model->itab->* to <wa>.
    *  append initial line to <wa_itab> assigning <Wa>.
      data: descriptor type ref to CL_ABAP_STRUCTDESCR.
      descriptor ?= CL_ABAP_STRUCTDESCR=>describe_by_data( <wa> ).
      data: flddescr type DDFIELDS.
      flddescr = descriptor->GET_DDIC_FIELD_LIST( ).
      field-symbols: <wa_field> like line of flddescr.
      data: label type ref to cl_htmlb_label.
      data: input type ref to CL_HTMLB_INPUTFIELD.
      data: binding_string type string.
      "Loop through each field in the structure Definition
      loop at flddescr assigning <Wa_field>.
      clear label.
      clear input.
      concatenate '//model/itab.'
      <wa_field>-FIELDNAME
      into binding_string.
      label ?= cl_htmlb_label=>factory( _for = binding_string ).
      input ?= cl_htmlb_inputfield=>factory( _value = binding_string ).
            %>
            <phtmlb:matrixCell row    = "+1"
                               vAlign = "TOP" />
            <bsp:bee bee="<%= label %>" />
            <phtmlb:matrixCell col    = "+1"
                               vAlign = "TOP" />
            <bsp:bee bee="<%= input %>" />
            <%
      endloop.
            %>
          </phtmlb:matrix>
         <htmlb:button  id="Test" onClick="Test" text="Submit"/>
        </htmlb:form>
      </htmlb:page>
    The key to making this work are custom getter/setters.  In your model class, you can copy from the template methods (Like GETM_S_XYZ for the metadata structure method).  Copy them and remove the _ on the front of the name.  Then change XYZ to the name of the attribute you are binding for.  The following are my custom methods. 
    method get_m_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * method is supposed to return either info about a specific component
    * of a structure (component is not initial -> return ref to
    * if_bsp_metadata_simple) or the complete structure
    * (component is initial -> return ref to if_bsp_metadata_struct)
      data: l_attribute_ref type ref to data,
               l_attr_ref  type ref to data,
               l_exception     type ref to cx_root,
               l_ex            type ref to cx_sy_conversion_error,
               l_ex_bsp        type ref to cx_bsp_conversion_exception,
               l_ex2           type ref to cx_bsp_t100_exception,
               l_type          type i,
               l_index         type i,
               l_name          type string,
               l_component     type string,
               l_getter        type string.
      data: l_field_ref     type ref to data,
            l_dfies_wa      type dfies,
            rtti            type ref to cl_abap_elemdescr.
      data: crap type string,
              rest type string,
              t_index(10) type c.
      split attribute_path at '[' into crap rest.
      split rest           at ']' into t_index crap.
    ****Dummy Object to avoid dumps
      create object metadata type cl_bsp_metadata_simple
        exporting info = l_dfies_wa.
      call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
      data: l_dataref type string.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      rtti ?= cl_abap_typedescr=>describe_by_data_ref( field ).
      l_dfies_wa = rtti->get_ddic_field( ).
      clear metadata.
      create object metadata type cl_bsp_metadata_simple
        exporting info = l_dfies_wa.
    endmethod.
    method get_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * get the given value of the component of the struct, e.g.
    *  field-symbols: <l_comp> type any.
    *  assign component component of structure XYZ to <l_comp>.
    *  value = <l_comp>.
      data: l_attr_ref  type ref to data,
              l_field_ref type ref to data.
      data: l_attribute_ref type ref to data,
            l_exception     type ref to cx_root,
            l_ex            type ref to cx_sy_conversion_error,
            l_ex2           type ref to cx_bsp_t100_exception,
            l_type          type i,
            l_index         type i,
            l_name          type string,
            l_component     type string,
            l_getter        type string,
            rtti            type ref to cl_abap_elemdescr.
      field-symbols: <o_data> type any,
                     <n_data> type any.
    *Test
    call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
    * get a field reference for the assignment
      field-symbols: <wa> type any,
                     <l_comp> type any.
      assign me->itab->* to <wa>.
      assign component l_component of structure <wa> to <l_comp>.
      get reference of <l_comp> into l_field_ref.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      data: l_dataref type string.
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      assign l_field_ref->* to <o_data>.
      assign field->*       to <n_data>.
      move <o_data> to <n_data>.
    * call conversion routine
      try.
          value = if_bsp_model_util~convert_to_string(
            data_ref           = field
            attribute_path     = attribute_path
            no_conversion_exit = 0 ).
        catch cx_sy_conversion_error into l_ex.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex
              dummy     = value ).
        catch cx_bsp_t100_exception into l_ex2.
          me->errors->add_message_from_t100(
            condition = attribute_path
            msgid     = l_ex2->msgid
            msgno     = l_ex2->msgno
            msgty     = l_ex2->msgty
            p1        = l_ex2->msgv1
            p2        = l_ex2->msgv2
            p3        = l_ex2->msgv3
            p4        = l_ex2->msgv4
            dummy     = value ).
      endtry.
    endmethod.
    method set_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * assign the given value to the component of the struct, e.g.
    *  field-symbols: <l_comp> type any.
    *  assign component component of structure XYZ to <l_comp>.
    *  <l_comp> = value.
      data: l_attr_ref  type ref to data,
               l_field_ref type ref to data.
      data: l_attribute_ref type ref to data,
            l_exception     type ref to cx_root,
            l_ex            type ref to cx_sy_conversion_error,
            l_ex_bsp        type ref to cx_bsp_conversion_exception,
            l_ex2           type ref to cx_bsp_t100_exception,
            l_type          type i,
            l_index         type i,
            l_name          type string,
            l_component     type string,
            l_getter        type string,
            rtti            type ref to cl_abap_elemdescr.
      field-symbols: <o_data> type any,
                     <n_data> type any.
    *Test
      call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
    * get a field reference for the assignment
      field-symbols: <wa> type any,
                     <l_comp> type any.
      assign me->itab->* to <wa>.
      assign component l_component of structure <wa> to <l_comp>.
      get reference of <l_comp> into l_field_ref.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      data: l_dataref type string.
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      assign field->*       to <n_data>.
      move <l_comp> to <n_data>.
    * call conversion routine
      try.
          if_bsp_model_util~convert_from_string(
                               data_ref           = field
                               value              = value
                               attribute_path     = attribute_path
                               use_bsp_exceptions = abap_true
                               no_conversion_exit = 0 ).
        catch cx_sy_conversion_error into l_ex.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex
              dummy     = value ).
        catch cx_bsp_conversion_exception into l_ex_bsp.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex_bsp
              dummy     = value ).
        catch cx_bsp_t100_exception into l_ex2.
          me->errors->add_message_from_t100(
            condition = attribute_path
            msgid     = l_ex2->msgid
            msgno     = l_ex2->msgno
            msgty     = l_ex2->msgty
            p1        = l_ex2->msgv1
            p2        = l_ex2->msgv2
            p3        = l_ex2->msgv3
            p4        = l_ex2->msgv4
            dummy     = value ).
      endtry.
      if <n_data> is initial.
        clear <l_comp>.
      else.
        move <n_data> to <l_comp>.
      endif.
    endmethod.
    I know that is a LOT of nasty code without too much explanation.  I'm afriad there isn't time right now to expand on how it works too much.  Between my day job and trying to finish the BSP book, there just isn't much time left.  Like I said before there is a very large section in the book on this topic that hopefully explains it.  The book will be out in December or early January - but perhaps I will get some time before then to write up something on SDN about this.

  • Select count(x) on a table with many column numbers?

    Hi all,
    i have a table with physical data with 850 (!!) colums and
    ~1 Million rows.
    The select count(cycle)from test_table Statement is very, very slow
    WHY?
    The select count(cycle)from test_table is very fast by e.g 10 Colums. WHY?
    What has the number of columns, to do with the SELECT count(cyle).... statement?
    create test_table(
    cycle number primary key,
    stamp date,
    sensor 1 number,
    sensor 2 number,
    sensor_849 number,
    sensor_850 number);
    on W2K Oracle 9i Enterprise Edition Release 9.2.0.4.0 Production
    Can anybody help me?
    Many Thanks
    Achim

    hi lennert, hi all,
    many thanks for all the answers. I�m not an Oracle expert.
    Sorry for my english.
    Hi Lennert,
    you are right, what must i do to use the index in the
    query? Can you give me a pointer of direction, please?
    Many greetings
    Achim
    select count(*) from w4t.v_tfmc_3_blocktime;
    COUNT(*) ==> Table with 3 columns (very fast)
    306057
    Ausf�hrungsplan
    0 SELECT STATEMENT Optimizer=CHOOSE
    1 0 SORT (AGGREGATE)
    2 1 TABLE ACCESS (FULL) OF 'V_TFMC_3 _BLOCKTIME'    
    Statistiken
    0 recursive calls
    0 db block gets
    801 consistent gets
    794 physical reads
    0 redo size
    388 bytes sent via SQL*Net to client
    499 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    select count(*) from w4t.v_tfmc_3_value;
    COUNT(*)==> Table with 850 columns (very slow)
    64000
    Ausf�hrungsplan
    0 SELECT STATEMENT Optimizer=CHOOSE
    1 0 SORT (AGGREGATE)
    2 1 TABLE ACCESS (FULL) OF 'V_TFMC_3 _VALUE'    
    Statistiken
    1 recursive calls
    1 db block gets
    48410 consistent gets
    38791 physical reads
    13068 redo size
    387 bytes sent via SQL*Net to client
    499 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed

  • MB5B Report table for Open and Closing stock on date wise

    Hi Frds,
    I am trying get values of Open and Closing stock on date wise form the Table MARD and MBEW -Material Valuation but it does not match with MB5B reports,
    Could anyone suggest correct table to fetch the values Open and Closing stock on date wise for MB5B reports.
    Thanks
    Mohan M

    Hi,
    Please check the below links...
    Query for Opening And  Closing Stock
    Inventory Opening and Closing Stock
    open stock and closing stock
    Kuber

  • Error while dropping a table

    Hi All,
    i got an error while dropping a table which is
    ORA-00600: internal error code, arguments: [kghstack_free1], [kntgmvm: collst], [], [], [], [], [], [], [], [], [], []
    i know learnt that -600 error is related to dba. now how to proceed.
    thanks and regards,
    sri ram.

    00600 errors should be raised as service request with Oracle as it implies some internal bug.
    You can search oracle support first to see if anyone has had the same class of 00600 error, and then if not (and therefore no patch) raise your issue with Oracle.
    http://support.oracle.com

  • Logical level in Fact tables - best practice

    Hi all,
    I am currently working on a complex OBIEE project/solution where I am going straight to the production tables, so the fact (and dimension) tables are pretty complex since I am using more sources in the logical tables to increase performance. Anyway, what I am many times struggling with is the Logical Levels (in Content tab) where the level of each dimension is to be set. In a star schema (one-to-many) this is pretty straight forward and easy to set up, but when the Business Model (and physical model) gets more complex I sometimes struggle with the aggregates - to get them work/appear with different dimensions. (Using the menu "More" - "Get levels" does not allways give the best solution......far from). I have some combinations of left- and right outer join as well, making it even more complicated for the BI server.
    For instance - I have about 10-12 different dimensions - should all of them allways be connected to each fact table? Either on Detail or Total level. I can see the use of the logical levels when using aggregate fact tables (on quarter, month etc.), but is it better just to skip the logical level setup when no aggregate tables are used? Sometimes it seems like that is the easiest approach...
    Does anyone have a best practice concerning this issue? I have googled for this but I haven't found anything good yet. Any ideas/articles are highly appreciated.

    Hi User,
    For instance - I have about 10-12 different dimensions - should all of them always be connected to each fact table? Either on Detail or Total level.It not necessary to connect to all dimensions completely based on the report that you are creating ,but as a best practice we should maintain all at Detail level only,when you are mentioning any join conditions in physical layer
    for example for the sales table if u want to report at ProductDimension.ProductnameLevel then u should use detail level else total level(at Product,employee level)
    Get Levels. (Available only for fact tables) Changes aggregation content. If joins do not exist between fact table sources and dimension table sources (for example, if the same physical table is in both sources), the aggregation content determined by the administration tool will not include the aggregation content of this dimension.
    Source admin guide(get level definition)
    thanks,
    Saichand.v

Maybe you are looking for

  • Video out from MacBook Pro to HDTV - no solution?

    I've had this problem for over a year now and nobody has been able to help me solve it, not even the Apple guys. I need to get the video out from my MacBook Pro (Mini DisplayPort) to my HDTV which is an older model which only has Y/Pb/Pr analogue vid

  • Logic Pro 9.1.8 crashes when opening an old .iso file.

    Other similar files it opens just fine. It essentially loads through the plugins, and then saves and crashes. And now for the code dump: Process:         Logic Pro [97830] Path:            /Applications/Logic Pro.app/Contents/MacOS/Logic Pro Identifi

  • Newbie Question: Command for only Y or N in a column.

    I am just starting on SQL developer and need to know how to enter the command to change a table so that it will only accept a Y or N in the column. I know this is exceedingly simple but how do do it appears nowhere in my textbook. Thank you!

  • Library organization at upload

    When I upload cds into my library I would like for the tracks to stay in uploaded sequence. What I end up with is all the track 1's, 2's, 3's, etc stacked together with no song names showing and it makes it hard to transfer into play lists not knowin

  • In afghanistan

    Brought my ipod with me. Now I have a new laptop and all my photos are on my old ipod. How do I get them onto my new laptop? THANKS FOR ANY ADVICE. kee