Extending a function with logic stored in a table?

Let's say I have a function with local variables and I have a select statement in it. This statement populates (using into) these variables, one of which contains a condition which has the name of some local variables in it. I would like for this to be evaluated. Is this possible?
for example, if I have variables named local_value1, local_value2 and local_condition and local_condition is loaded from a table column in which the expression is: local_value1 < local_value2
I'd then need to do a: if local_condition then blah....
I've been looking at ways to use execute immediate to do this, but it doesn't look like I can do that, as it wont do substitution of local variables, only bound variables.
I've done this with various scripting languages in the past, but I've not seen anything on the forums on how to do this with pl/sql.
Any suggestions?

wether this is really meaningful or not ... here is a way:
michaels>  CREATE TABLE demo_logic
( demo_logic_id NUMBER,
demo_logic_statement VARCHAR2(4000),
CONSTRAINT demo_logic_pk PRIMARY KEY (demo_logic_id) ENABLE
Table created.
michaels>  -- The data:
michaels>  INSERT INTO demo_logic
     VALUES (1, 'local_value1 < local_value2')
1 row created.
michaels>  INSERT INTO demo_logic
     VALUES (2, '(local_value1 = local_value2) or (local_value1 < 7)')
1 row created.
michaels>  -- Then the function:
michaels>  CREATE OR REPLACE FUNCTION func_demo (condition_id IN NUMBER)
   RETURN NUMBER
IS
   local_value1            NUMBER                                 := 5;
   local_value2            NUMBER                                 := 2;
   local_value_to_return   NUMBER                                 := 0;
   local_condition         demo_logic.demo_logic_statement%TYPE;
BEGIN
   SELECT demo_logic_statement
     INTO local_condition
     FROM demo_logic
    WHERE demo_logic_id = condition_id;
--next we would evaluate 'local_condition' and if true we would then continue and do more work
--and assign something to local_value_to_return.
   EXECUTE IMMEDIATE 'DECLARE
                        local_value1 number := :1;
                        local_value2 number := :2;
                      BEGIN
                        IF '
                     || local_condition
                     || ' THEN
                          :out := 1;
                        ELSE
                          :out := 0;
                        END IF;
                      END;
               USING local_value1, local_value2, OUT local_value_to_return;
   RETURN local_value_to_return;
END func_demo;
Function created.
michaels>  SELECT func_demo ('1') res
  FROM DUAL
       RES
         0
1 row selected.
michaels>  SELECT func_demo ('2') res
  FROM DUAL
       RES
         1

Similar Messages

  • Extended Rebate Functionality with Variable Keys

    Hello All,
    I am trying to find information on extended rebate functionality in 4.7. I have looked though white pages G72, G63, and G64 but have yet to find what I am looking for.
    Basically I want to be able to spread a rebate settlement (credit memos) to multiple partners in a customer hierarchy evenly based on their individual sales volume (instead of one Rebate recipient per agreement I want many based on customer hierarchy node).
    I also would like to spread the settlement against multiple materials.
    I have heard this is may be possible using the variable keys and structure S469 but for the life of me I cannot figure out if it is possible to do what I am asking.
    I really appreciate any help that can be extended to me.
    Thanks,
    Lance

    Hi Lance,
    thr price-conditions ( values or rabates ) are stored in Tables like S+++ ( S469).
    You want to have an access to a pricing table with other keys as you found in the standard system.
    Therefor : make you own S9++.
    there are the following steps:
    Check, if your key is in the selected keys for pricing - if not, add it there.
    The field must be in an apend of structure KOMG ( generally ) and KOMP ( for position fields ) or KOMK ( for header fields ).
    Create your own S9++ -- ( in Pricing, i have about 150 own pricing tables ).
    Next : go to the Customizing of the ?? German = Zugriffsfolge ?? for the condition.
    Here you can add up to 99 Zugriffe to get the condition. Here you need your new S9++ and you have to connect it with the fields.
    ( i have had problems with the 'little' number of 99. for one Condition i need up to 160 Zugriffe - i have split it up into 2 Conditions ).
    In one S9++ you can connect several fields to one Condition table.
    The customer - numer and the hierarchi - number and the recipienst-number - all fields are of the sae kind.
    In the Zugriffsfolgen, you can do  several Zugriffe for the same Table S9++ - but in the connection of the fields, you can variate the souce fields -- first Zugriff : Customer - number / secons Zugriff : Hierarchy 1 / ....
    With this method, you can also add customer fields of VBAP or VBAK into your pricing module.
    I hope, youve got an idea, where t go. see also in the SAP documentation - in german, i have picked many things out of the documentation.
    Hans

  • Does M-audios project mix I/O not function with Logic express 7.2 ?

    I am having lots of problems getting this working, and it suddenly occurs to me that this equipment may not work with the Express version. Anyone know?

    Scott,
    You bring music to my ears. A few questions (I'm sold at this point, just want these questions answered for sugar coating, I guess):
    1.) Does the Project Mix communicate effectively with Logic's 'MIDI Learn' feature? I tried utilizing this with M-Audio's Trigger Finger, but the Finger (or Logic, can't tell which) did not lock on to the assignment. Having any trouble with this?
    2.) Are there memory banks and is it easy to save all settings at any given point to certain bank? Ideally I'd like to have a different memory bank for each song, so an extensive inventory of blank memory would be very useful.
    3.) How's the LCD Screen? Really awesome or uncommunicative with the user (as in, do the abbreviations make it difficult to read, or is it fairly intuitive?)
    Thanks a lot. And Stash, your words are tight, too.

  • BRFplus: Functions with different Signatures for Decision Table

    Hi all,
    I am new to BRFplus and attempting to do some prototyping with it.
    I have created a Decision Table which defines valid combinations of width and thickness for a product.  The product id, width and thickness are the query columns; the results column is a boolean value that indicates if the combination is valid.
    I have successfuly created a Function that given product id, width and thickness returns whether the combination is valid.
    I now want to create another Function that given product id and width only (but not thickness) refers to the same Decision Table and returns whether the product id and width combination is valid.
    Is this possible ?  If so, how do I go about it ??
    I tried creating a new Function with this signature but I just get an error "Assigned expression uses Element WIDTH/Width which is not in the context ".
    Any comments or suggestions appreciated.
    Thanks,
    Grogan

    Hi, Grogan
    When you're talking about a Functio  you men a BRF+ function, don`t you?
    So, if you go to this function there is a tab called "Signature" , the second one....
    Have you tried to add your Element WIDTH to the Function signature and test again ?  
    May be the long text of the error message could help you as well.....
    Kind regards

  • Function with for loop and parameter table/column names ... syntax help

    I'm trying to create a function that returns the distinct values and counts from a user defined schema/table/column.
    The code below defines an object type [stats_on_column_obj] and creates a single table of this type [stats_on_column_tab].
    The function is supposed to take three input variables: p_schema_name, p_table_name, p_column_name and return a table (above).
    I can hard code a SELECT statement into the () ... but once I try to convert it to parameters & exec immediate I am stuck. The red section is where the issue is (i think).
    Oracle 10g.
    CREATE TYPE stats_on_column_obj IS OBJECT(
      COL_VAL      VARCHAR2(500),
      COL_VAL_CNT  NUMBER    (7)
    CREATE TYPE stats_on_column_tab IS TABLE OF stats_on_column_obj;
    CREATE OR REPLACE FUNCTION get_STATS_ON_COLUMN
       p_schema_name IN varchar2,
       p_table_name IN varchar2,
       p_column_name IN  varchar2
       RETURN STATS_ON_COLUMN_tab
    IS
       l_STATS_ON_COLUMN_tab   STATS_ON_COLUMN_tab := STATS_ON_COLUMN_tab ();
       n                       INTEGER := 0;
       str_select_tbl          varchar2(5000);
    BEGIN
       str_select_tbl := 'SELECT '||p_column_name||' as col_val, count(*) as col_val_cnt FROM '||p_schema_name||'.'||p_table_name||' group by '||p_column_name;
       FOR r IN (str_select_tbl)
       LOOP
          l_STATS_ON_COLUMN_tab.EXTEND;
          n := n + 1;
          l_STATS_ON_COLUMN_tab (n) := STATS_ON_COLUMN_obj (r.col_val, r.col_val_cnt);
       END LOOP ;
       RETURN l_STATS_ON_COLUMN_tab;
    END;
    [Error] PLS-00103 (124: 4): PLS-00103: Encountered the symbol "LOOP" when expecting one of the following:   * & - + / at mod remainder rem .. <an exponent (**)> ||   multiset year DAY_
    [Error] PLS-00103 (126: 9): PLS-00103: Encountered the symbol "=" when expecting one of the following:   constant exception <an identifier>   <a double-quoted delimited-identifier> table LONG_ double ref   char time timestam
    [Error] PLS-00103 (127: 29): PLS-00103: Encountered the symbol "(" when expecting one of the following:   constant exception <an identifier>   <a double-quoted delimited-identifier> table LONG_ double ref   char time timestam
    [Error] PLS-00103 (128: 4): PLS-00103: Encountered the symbol "END" when expecting one of the following:   begin function package pragma procedure subtype type use   <an identifier> <a double-quoted delimited-identifier> form
    SELECT * FROM TABLE (get_STATS_ON_COLUMN('SCHEMAS_X','TABLE_X','COLUMN_X'));

    SCOTT@orcl > CREATE OR REPLACE
      2    FUNCTION get_STATS_ON_COLUMN(
      3                                 p_schema_name IN varchar2,
      4                                 p_table_name IN varchar2,
      5                                 p_column_name IN  varchar2
      6                                )
      7      RETURN STATS_ON_COLUMN_tab
      8      IS
      9          v_STATS_ON_COLUMN_tab STATS_ON_COLUMN_tab := STATS_ON_COLUMN_tab ();
    10          v_n                   INTEGER := 0;
    11          v_str_select_tbl      VARCHAR2(5000);
    12      BEGIN
    13          v_str_select_tbl := 'SELECT stats_on_column_obj(' || p_column_name || ',count(*)) FROM ' ||
    14                              p_schema_name || '.' || p_table_name || ' group by ' || p_column_name;
    15      EXECUTE IMMEDIATE v_str_select_tbl
    16        BULK COLLECT
    17        INTO v_STATS_ON_COLUMN_tab;
    18       RETURN v_STATS_ON_COLUMN_tab;
    19  END;
    20  /
    Function created.
    SCOTT@orcl > select  *
      2            from  table(
      3                        get_STATS_ON_COLUMN(
      4                                            'SCOTT',
      5                                            'EMP',
      6                                            'JOB'
      7                                           )
      8                       )
      9  /
    COL_VAL              COL_VAL_CNT
    CLERK                          4
    SALESMAN                       4
    PRESIDENT                      1
    MANAGER                        3
    ANALYST                        2
    SCOTT@orcl >
    Or better change it to pipelined function.
    SY.

  • How to implement copy paste functionality with IE

    Hi Experts,
    I am working on jdev 11.1.1.6.0, I have requirement to implement copy & paste functionality with IE Browser in ADF table. I have followed below link to implement the functionality.
    http://one-size-doesnt-fit-all.blogspot.com/2011/04/aftable-restoring-basic-browser-copy.html
    But copy&functionality is working fine, but when table loading I lost vertical/horizontal scroll bar. Can any one suggest me what is wrong here/what i am missing here.
    My logic:
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:c="http://java.sun.com/jsp/jstl/core"
              xmlns:sni="/SNIDeclarativeComponentLib">
      <c:set var="tumuiBundle" value="#{adfBundle['sni.tum.view.TestUIBundle']}"/>
      <af:resource type="javascript">
        var globalLastVisitedField = null;
        function captureTableFieldName()
          return function (evt)
            evt.cancel();
            globalLastVisitedField = evt.getSource();
        function copyMenu(evt)
          if (globalLastVisitedField == null)
            alert("copyMenu() Error: No field could be
                                     identified to be in focus");
          else if (navigator.appName != "Microsoft Internet
                                     Explorer")
            alert("Copy function is only
                                     supported in Microsoft Internet Explorer");
          else
            var txt = globalLastVisitedField.getProperty("ItemValue");
            window.clipboardData.setData('Text', "" + txt);
          evt.cancel();
      </af:resource>
      <af:subform id="f1" defaultCommand="srchcb">
        <af:panelStretchLayout id="psl1" topHeight="auto" bottomHeight="auto"
                               styleClass="AFStretchWidth">
          <f:facet name="center">
            <af:panelCollection id="tab" styleClass="AFStretchWidth">
              <af:table value="#{bindings.TestVO.collectionModel}"
                        var="row"
                        rows="#{bindings.TestVO.rangeSize}"
                        emptyText="#{bindings.TestVO.viewable ? 'No data to display.' : 'Access Denied.'}"
                        fetchSize="#{bindings.TestVO.rangeSize}"
                        rowBandingInterval="1"
                        selectionListener="#{bindings.TestVO.collectionModel.makeCurrent}"
                        rowSelection="multiple"
                        id="Table" styleClass="AFStretchWidth"
                        contentDelivery="immediate">
                <f:facet name="contextMenu">
                  <af:popup id="pMenu" contentDelivery="lazyUncached">
                    <af:menu id="mMenu">
                      <af:commandMenuItem text="Copy" id="cmiCopy">
                        <af:clientListener method="copyMenu" type="action"/>
                      </af:commandMenuItem>
                    </af:menu>
                  </af:popup>
                </f:facet>
                <af:column sortProperty="Name" sortable="true"
                           headerText="#{bindings.TestVO.hints.Name.label}"
                           id="c33">
                  <af:outputText value="#{row.Name}" id="Nam">
                    <af:clientListener method="captureTableFieldName()"
                                       type="contextMenu"></af:clientListener>
                    <af:clientAttribute name="ItemValue"
                                        value="#{row.Name}"></af:clientAttribute>
                  </af:outputText>
       </af:column?
       </af:Table>
    -Thanks.

    Hi,
    I can't tell. What I can tell is that the code in the sample you reference for sure doesn't cause this - but it doesn't help you I guess.
    Btw.: Here is a solution that works on all browsers. The solution in the blog (Chris - please forgive me) is a bit awkward to be honest.
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/012-copy-table-cell-values-169137.pdf
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/tablecellcopypaste-168499.zip
    Frank

  • Problem extending standard ViewReceiptsSearchVO view object with logic on get method

    Hi All,
    EBS 12.1.3
    Database 11.2.0.3
    I am trying to extend the 3 VOs related to ViewReceiptsSearch.  I extended a seeded ViewReceiptsSearchVO view object.  I haven't made any changes yet, no columns added, nothing altered.  When I run this substitution, the "Received" column is null.  This column in the view used for the view object only selects NULL and uses the getter method for the attribute to populate the value.  The generated extension getter calls getAttributeInternal and skips the logic in the standard getter and the substituted view object is displaying the null in the screen.  The below discussion explains the problem very well except that the original posted had the issue in 11.5.10.2.  I am having this issue with 12.1.3.
    Problem extending standard view object with logic on get method
    The 3 VOs that I am having the problem are:
    ViewReceiptsSearchVO
    ViewReceiptsSearchReqVO
    ViewReceiptsSearchSupplierVO
    What do I need to do to get the "Received" column populated?  Please let me know any additional information you want to troubleshoot the issue.
    Thanks.

    Hi,
    Can you Please Share Extended ViewReceiptsSearchVO.xml and .jpx File?
    Thanks,
    Dilip

  • Help Needed With "Extend Marker" Function Not Working

    I have several Clips and used the "DV Start/Stop Detect" function to find the time code breaks, which seems to work well. I've now got a clip full of Segment markers.
    The problem arises when I try to use Extent Markers "Option + `" to make subclips. When I put the play head on a subsequent marker, the Marker/Extend function is grayed out.
    Extending a marker that I have created using the M key works perfectly.
    Why can I not use the Extend function on Segment Markers?
    Any help on this is greatly appreciated. I have 30 odd clips that I need to set up segments for, and doing it manually will add hours to my workload.
    Thanks
    Gary
    Dual G5 2.5 GHz Dual Core, 2.5 GB RAM, 500 GB HDD   Mac OS X (10.4.3)   Final Cut Studio FCP 5.0.4

    Thanks for the reply.
    I am completely aware of items 1 through 3, and never Extend markers in the Timeline. Only the Viewer.
    To perform an Extend Marker and avoid headaches, load the captured clip - the one with the video icon in the Browser - into the Viewer. Then, as you scrub along in the Viewer, Option-` as needed.
    That is precisely what I am doing.
    To Extend the marker I first double click the clip to load the entire clip into the Viewer, where all the Section markers are displayed. I then check Mark>Markers>Extend and the function is grayed out. However, if I move the playhead one frame prior to the Section marker, the previous Section marker extends to the frame prior to the new play head position.
    If I do this with manually entered markers (using the M key, creating Marker 1, 2, 3.... in sequence on the Viewer timeline), then the Previous marker is extended to the frame immediately prior the the current play head position - i.e. from Marker 1 to Marker 2. I do not have to move off the Marker 2 position to be able to extend Marker 1.
    Also, simply selecting all your Markers and either dragging them to another bin (or pressing Command-U) does not produce the needed subclips?
    Of this I am also aware. I find the Command-U process just confuses the issue, creating more clips to manage (others may disagree). I prefer to simply drag the "Subclips" directly from the Main clip into a Timeline.
    Because you're doing all this to get subclips, right? Or wrong?
    If I understand your reply correctly, I think you misunderstood my problem. I have been using subclips for several years, and find them VERY useful, especially with multi-camera shoots. So, I am quite familiar with creating and extending markers.
    I just started experimenting with the Detect feature and find it works quit well (most of the time). My problem is that the Segment markers created by the Detect process, do not perform the same as manually place markers, as far as the Extend marker function is concerned, anyway.
    BTW - By using the TC display in my Panasonic PV-GS400 Camera, and sending the FCP video via Firewire to the camera, the camera displays the TC on the captured clip, which I then rename the marker to for TC reference. As long as the Date/Time on the cameras are properly synced, syncing clips in the Timeline is a breeze!!
    Anyway, to clarify, my process is as follows:
    1. Capture a clip.
    2. Display the clip in the Viewer
    3. Select "DV Start/Stop Detect" and watch as the section markers appear in the Viewer.
    4. In Viewer, place play head on the first Section marker
    5. Press the M key to Edit Marker.
    6. Change the Name of the marker to the timecode of the Marker now displayed in the Camcorder window.
    7. Use Shift-Down Arrow to move to the next Section Marker
    8. Press Option+` to Extend the previous marker - which does not work and is grayed out in the Mark>Markers>Extend menu.
    9. Back to step 5.
    This process works perfectly with manually created markers. Because the Extend works if I move the play head one frame prior to the current Section marker, this tells me there is something "special" about the Section marker that disables the Extend function, unlike a manually created marker.
    BTW - If I delete the Section marker, and create a manual marker at the same frame, the Extend marker function works again. Again, indicating that Section markers are different somehow from manual Markers.
    Hopefully, this wordy explanation of my process clarifies my problem.
    Aside: The clips are supplied to me by a customer on a 500GB FW800 drive. FCP5 was used to capture the clips from the original Tapes (which I do not have access to). I am the editor for the project.
    Thanks again for the reply. It is greatly appreciated. If there is any other info that I have missed that will help figure this out, please let me know and I will post a response a quickly as possible.
    Gary

  • Is DIAdem script with Extended Classification functionality of DIAdem Professional executable by DIAdem Base?

    The Professional license adds 3D model data mapping and Extended Classification functionality to DIAdem. If I make a script that uses the 3D model data mapping functionality in DIAdem Professional it is possible to use this same script on a PC with only DIAdem Base (according to http://sine.ni.com/ds/app/doc/p/lang/nl/id/ds-263)
    Is this also true for the Extended Classification functionality? Is it possible to make a script with DIAdem Professional and execute this same script on a PC with only DIAdem Base to generate a report?
    Thanks,
    Roger

    Hi Roger,
    My understanding is that the VBScript you create that uses the extended classification function will work fine in DIAdem Base.
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments

  • Send back to author issue in HCMFP with extended notification functionality

    Hi,
    We are using HCM Forms and Processes in our project .When the Form is sent back to author by the manager, author receives the email using extended notification functionality where the author clicks on the link provided in the notification email to open the form.Till here everything working fine, but when the author sends  the form again for approval with required changes , the approver  could not see the latest changes in the form. He still see the old data. Please note standard Task TS04000020: PD Form Is Edited Again by Author is used in the workflow.
    We tried the same scenario, where author access the form through UWL, make necessary changes and send the form for approval. In this case,latest changes can be seen by approver without any issue.But, as per business we can not provide UWL and should use extended notification functionality only..
    Please help in resolving the issue with extended notification functionality as early as possible.
    Thanks,
    Pavan.

    Hi Viji,
    Regarding your question.. here is the business requirement.
    1. Author fills the HCM form , hit check and send button, so that workitem goes to approver's UWL.Author do not have portal, but performs this process from SAP GUI itself using the webdynpro link as shown below.
    https://  pint01.xxx.net:8043 /sap/bc/webdynpro/sap/asr_pd_process_execute?sap-wd-configId=ZXX_PD_PROCESS_EXECUTE
    2. Approver has buttons on the form to approve, reject or send back to author.
    3. When author hits the "send back to author" button, the work item (task TS04000020) will be created for the author.
    4. The notification email will be sent to author using the program SWN_SELSEN.The email contains a link as shown below to open, edit,check and send it again for approval.
    https:// pint01.xxx.net:8043 /sap/bc/webdynpro/sap/asr_process_execute?WI_ID=000000052545
    The problem here is, when the author makes changes and send the form for approval, the approver still see the old content only in the form.
    Thanks,
    Pavan.

  • Pipelined Function with execute immediate

    Hello Experts,
    I have created a Pipe lined function with execute immediate, due to below requirement;
    1) Columns in where clause is passed dynamically.
    2) I want to know the data stored into above dynamic columns.
    3) I want to use it in report, so I don't want to insert it into a table.
    I have created a TYPE, then through execute immediate i have got the query and result of that query will be stored in TYPE.
    But when calling the function i am getting
    ORA-00932: inconsistent datatypes: expected - got -
    Below is my function and type, let me know i am going wrong, and is my logic correct.
    CREATE OR REPLACE TYPE OBJ_FPD AS OBJECT
                      (LOW_PLAN_NO VARCHAR2 (40),
                       FPD VARCHAR2 (5),
                       SERIAL_NO NUMBER,
                       CEDIA_CODE VARCHAR2 (2),
                       DT DATE);
    CREATE OR REPLACE TYPE FPD_TBL_TYPE AS TABLE OF OBJ_FPD;
    CREATE OR REPLACE FUNCTION FUNC_GET_FPD_DATE (P_LOW_PLAN_NO    VARCHAR2,
                                                  P_CEDIA_CODE     VARCHAR2,
                                                  P_SERIAL_NO      NUMBER)
       RETURN FPD_TBL_TYPE
       PIPELINED
    AS
       CURSOR C1
       IS
              SELECT 'FPD' || LEVEL TBL_COL
                FROM DUAL
          CONNECT BY LEVEL <= 31;
       V_STR        VARCHAR2 (5000);
       V_TBL_TYPE   FPD_TBL_TYPE;
    BEGIN
       FOR X IN C1
       LOOP
          V_STR :=
                'SELECT A.low_PLAN_NO,
               A.FPD,
               A.SERIAL_NO,
               A.cedia_code,
               TO_DATE (
                     SUBSTR (FPD, 4, 5)
                  || ''/''
                  || TO_CHAR (C.low_PLAN_PERIOD_FROM, ''MM'')
                  || ''/''
                  || TO_CHAR (C.low_PLAN_PERIOD_FROM, ''RRRR''),
                  ''DD/MM/RRRR'')
                  DT FROM ( SELECT low_PLAN_NO, '
             || ''''
             || X.TBL_COL
             || ''''
             || ' FPD, '
             || X.TBL_COL
             || ' SPTS, SERIAL_NO, cedia_code FROM M_low_PLAN_DETAILS WHERE NVL('
             || X.TBL_COL
             || ',0) > 0 AND SERIAL_NO = '
             || P_SERIAL_NO
             || ' AND cedia_code = '
             || ''''
             || P_CEDIA_CODE
             || ''''
             || ' AND low_PLAN_NO = '
             || ''''
             || P_LOW_PLAN_NO
             || ''''
             || ') A,
               M_low_PLAN_DETAILS B,
               M_low_PLAN_MSTR C
         WHERE     A.low_PLAN_NO = B.low_PLAN_NO
               AND A.cedia_code = B.cedia_code
               AND A.SERIAL_NO = B.SERIAL_NO
               AND B.low_PLAN_NO = C.low_PLAN_NO
               AND B.CLIENT_CODE = C.CLIENT_CODE
               AND B.VARIANT_CODE = C.VARIANT_CODE
    CONNECT BY LEVEL <= SPTS';
          EXECUTE IMMEDIATE V_STR INTO V_TBL_TYPE;
          FOR I IN 1 .. V_TBL_TYPE.COUNT
          LOOP
             PIPE ROW (OBJ_FPD (V_TBL_TYPE (I).LOW_PLAN_NO,
                                V_TBL_TYPE (I).FPD,
                                V_TBL_TYPE (I).SERIAL_NO,
                                V_TBL_TYPE (I).CEDIA_CODE,
                                V_TBL_TYPE (I).DT));
          END LOOP;
       END LOOP;
       RETURN;
    EXCEPTION
       WHEN OTHERS
       THEN
          RAISE_APPLICATION_ERROR (-20000, SQLCODE || ' ' || SQLERRM);
          RAISE;
    END;Waiting for your views.
    Regards,

    Ora Ash wrote:
    Hello Experts,
    I have created a Pipe lined function with execute immediate, due to below requirement;
    1) Columns in where clause is passed dynamically.No, that's something you've introduced, and is due to poor database design. You appear to have columns on your table called FPD1, FPD2 ... FPD31. The columns do not need to be 'passed dynamically'
    2) I want to know the data stored into above dynamic columns.And you can know the data without it being dynamic.
    3) I want to use it in report, so I don't want to insert it into a table.That's fine, though there's no reason to use a pipelined function.
    You also have an pointless exception handler, which masks any real errors.
    I'm not quite sure what the point of your "connect by" is in your query as we don't have your tables or data or know for sure what the expected output is.
    However, in terms of handling the 'dynamic' part that you've introduced, then you would be looking at doing something along the following lines, using a static query that requires no poor dynamic code, and no pipelined function...
    with x as (select level as dy from dual connect by level <= 31)
    select a.low_plan_no
          ,a.fpd
          ,a.serial_no
          ,a.cedia_code
          ,trunc(c.low_plan_period_from)+a.dy-1 as dt
    from  (select low_plan_no
                 ,dy
                 ,'FPD'||dy as fpd
                 ,spts
                 ,serial_no
                 ,cedia_code
           from (
                 select low_plan_no
                       ,x.dy
                       ,case x.dy when 1 then fpd1
                                  when 2 then fpd2
                                  when 3 then fpd3
                                  when 4 then fpd4
                                  when 5 then fpd5
                                  when 6 then fpd6
                                  when 7 then fpd7
                                  when 8 then fpd8
                                  when 9 then fpd9
                                  when 10 then fpd10
                                  when 11 then fpd11
                                  when 12 then fpd12
                                  when 13 then fpd13
                                  when 14 then fpd14
                                  when 15 then fpd15
                                  when 16 then fpd16
                                  when 17 then fpd17
                                  when 18 then fpd18
                                  when 19 then fpd19
                                  when 20 then fpd20
                                  when 21 then fpd21
                                  when 22 then fpd22
                                  when 23 then fpd23
                                  when 24 then fpd24
                                  when 25 then fpd25
                                  when 26 then fpd26
                                  when 27 then fpd27
                                  when 28 then fpd28
                                  when 29 then fpd29
                                  when 30 then fpd30
                                  when 31 then fpd31
                        else null
                        end as spts
                       ,serial_no
                       ,cedia_code
                 from   x cross join m_low_plan_details
                 where  serial_no = p_serial_no
                 and    cedia_code = p_cedia_code
                 and    low_plan_no = p_low_plan_no
           where  nvl(spts,0) > 0
          ) A
          join m_low_plan_details B on (    A.low_plan_no = B.low_plan_no
                                        and A.cedia_code = B.cedia_code
                                        and A.serial_no = B.serial_no
          join m_low_plan_mstr C on (    B.low_plan_no = C.low_plan_no
                                     and B.client_code = C.client_code
                                     and B.variant_code = C.variant_code
    connect by level <= spts;... so just remind us again why you think it needs to be dynamic?

  • The Problems With Logic (as I see them) - PART TWO!

    Hello again,
    It seems to be a tradition now that as I compose on a track, I keep a text editor open so that I can jot down all the annoyances and problems that I encounter during my creative process... Anyone who missed the previous edition of this topic, please visit PART ONE, here:
    http://discussions.apple.com/message.jspa?messageID=3605456#3605456
    That said, here I give you "The Problems With Logic Part II":
    1. Logic should clear the playback buffer everytime you play. Quite often you start playing and there is trailing reverb/note events from various audio instruments and plug-ins.
    2. The sample edtor "save selection as" has no memory of where you previously were in the file browser.
    3. If you double click on a wave form, the sample editor opens up with the wave form you double clicked on... Great.. But now, if you go and double click on another wave form somewhere, it just takes you back to the sample editor with the same previous wave form selected (not great). This is incredibly annoying if you are attempting to save out certain edits-- Quite often you will end up saving 5 or 6 of the same exact waveform, thinking you were saving each individual one. GRR!
    4. Key commands.. if you try to assign a key command to something that is already used by another feature, you are presented with a window warning you that it already exists.. If you click cancel, then you can no longer enter any keys in the key field.. You are forced to close the key commands preferences window and start over.
    5. Key command window: You should be able to search by command.. For example, if I want to find out what "o" is assigned to, I should be able to search by O-- Further, you should be able to sort the key commands by clicking the column titles "key", "command" -- or "midi"... After all, we can sort by name, date, size, etc in the finder by clicking on these column titles.
    6. Tempo Tap feature-- I am quite confused by this. There should be a simple way to tap and define a tempo. When ever i try to do this, the tempo is only temporarily changed until I stop playing, and most of the time I get error alerts about trying to sync audio and midi (mind you, when there are absolutely no parts in the entire arrange window). The manual states that with "tempo recording" checked on the tempo interpreter window, that the taps will record tempo changes, but this does not work. I tried doing this, tapping the key command I defined to tempo tap (ctrl-shift-t), and I was tapping at various speeds-- many taps fast.. and Logic recorded tempos of 99-101bpm.. I was tapping atleast around 175-180bpm. I then tried tapping slowing, and Logic recorded tempos of 99-101 again... so this feature obviously is full of bugs.
    7. When loading songs, as soon as various plugins such as Kontakt, exs24 begin loading samples, it brings logic to the front. If you're working in the background in other applications while waiting for your songs to load, you are rudely interrupted from what you're doing (such as, selecting from a menu, typing a document, etc) only to be forced to watch a status bar fill up.. and then all key presses at that point become error beeps.
    8. Logic's sample memory easily becomes messed up and crazy. Quite often when using AU instruments such as BFD, Culture, and even Synthogy's Ivory. I will switch to that particular track to play on my keyboard, and each sample will be full of horrible pops and clicks-- the kind that destroy speakers. Other times, in a sample of a string for instance, all of a sudden after one second will be a pop and then the sample will be playing at a completely different pitch... I have to remove the AU instrument and reload it at this point.. This happens quite often. Logic should offer a 'buffer reset' so that you can just flash plugins but they reload whatever preset they were set to.
    9. Volume faders resolution are lame! There is no reason why you shouldnt be able to access +1.0, +1.1, +1.2, +1.3, +1.4, +1.5, +1.6, +1.7, +1.8, +1.9... Further the display is only so wide and you can't even read the decimal values for numbers -10 and lower. They just appear as 10.
    10. When a movie is open, and you are viewing the video output via FIREWIRE, there is a mini-floating window which contains the smpte, position, and movie start information-- However you cannot modify any of these values. You have to switch video output back to "WINDOW" to change the start position of the movie. This is obviously a bug.
    11. Changing the movie's start time is very user unfriendly. There should be a simple way to specify to start at a moment of time relative to SMPTE-- So you can just say "+9:15" for example, and it would take you in 9 minutes and 15 seconds, rather than how it is now where you have to think backwards from SMPTE code and subtract.
    12. You cannot view video as a window AND output to firewire. There is no reason why you shouldn't be able to do this. For example, if I wanted to output my video to a monitor in a vocal booth-- I can do this.. but I can't see what the vocalist is seeing on my own screen! This is just nonsense. You should be able to output to the screen (desktop mode or floating window) as well as an external firewire device.
    13. Saving a song with a movie open should mean that when you load that song, the movie should be up and exactly as it was prior to saving. As it is now you have to select "open movie again".
    14. There is still definitely a bug in track automation-- this was really bad back in version 4, but there is still something not quite right here where starting playback will not always guarantee that the automation data is being read.. And in my experiences it results in volumes being incorrect until you stop and play again, and in some cases it will not work at all unless you plot some automation points. This is an intermittent issue-- but quite often activated by placing an audio region from the audio window on a track (SEE VIDEO).
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/www/logicbugs/logicautomationbug.mov
    15. In the arrange window, sometimes when zoomed in tightly, all parts on a track are selected, and you think that only the part that you are looking at is selected.. you move this part, and now all of your parts are off. Logic should have some kind of visual aid to let you know when ever you are moving multiple selections... Something like, the parts you are moving will highlight a dfferent color or something... This is a similar problem I have with the loop area of the screen.. You can accidentally turn it on when in the matrix window, and have no idea unless you look down at the transport, but with me for example, my transport is at the very bottom of the screen and I am not looking there most of the time.
    16. Automation data, when two points are semi-close to each other, suddenly the value of the data is no longer shown.. I can understand that when you are zoomed out, and there is simply no space for this to visually appear, that's appropriate. But as it is now, it doesn't display this information when there is plenty of space for it to be visible.
    17. Logic should let you set audio track inputs to the various outputs (1-2, 3-4, etc) and buses.
    18. clicking on a track selects ALL parts. This is so so so annoying. How many times have I been editing voice over, and selecting a track, thinking I am shrinking the length of a part, and to find that ALL parts have been shrunk.. SO ANNOYING!!!! This needs to not happen, and there should be a simple way to right-click a track and it will have an option "select all regions"... also, when you click on a track and all parts are selected, if you horizontally zoom, logic zooms into the beginning of the track, rather than the song locator. I don't know what the LOGIC behind this is, but it's not very helpful, it actually is very frustrating.. Zooming should always move towards the song locator position.
    19. EXS 24 should have a "reverse/backwards" button so that samples played are backwards.
    20. Logic should offer a way to globally increase or decrease a specific automation type (especially volume) globally for all tracks... So if you have detailed crescendos that start at -3.8 and end at +1.6, you can add 3db to this and it will now be at 0.8 and end at 4.6.
    21. If you have multiple tracks of the same track (such as three Audio track #1's)-- say you are recording guitar parts, and just copying the track and muting the previous track as a method of maintaining multiple takes for later auditioning. If you draw automation volume data on this track (it appears on all 3 tracks), and then if you delete the audio from one of the muted tracks and tell logic to KEEP it, suddenly all automation data is gone. GRR!!!
    22. Several times I have opened Kontakt, and attempted to load an instrument while outputting a movie via firewire video to my monitor. As soon as I try to load the instrument, the firewire video output on my monitor goes crazy, and then comes back on.. Logic then crashes. This has happened 3 times randomly...
    23. UNDO does not work on every function. for example, if you change an output to bus 1 instead of 1-2, you cannot undo this. Undo should undo whatever the last command was, no matter what it was. This is what the word LOGICal is supposed to represent.
    24. Floating windows (as in plugin windows) should close with apple-w!!!
    25. *BUG* If you are in a part that is say 10 measures long, zoom in horizontally 100% in the matrix window-- You then isolate one specific quarter note pitch in the middle of this measure, and have cycle turned on, looping over this one quarter note, if you are not looking at this note event/loop region when you hit play, the display will jump to the beginning of the part and never show you this note event as it loops. However if you have the note event on screen when you hit play, then it will behave properly. This makes it extremely difficult and frustrating to perform detailed hyper-draw work. (SEE VIDEO)
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/www/logicbugs/logicloopbug.mov
    26. *BUG* Host Automation is not accurate. I assigned Kontakt's tune knob to C#000, and If I place a dip, the knob begins to move way before the automation data is even present.... So basically what I was trying to do, can't even be accomplished because Logic screws everything up by pitching the instrument too early... Such a shame.. By the way, I previously mentioned the importance of being able to display part data in the arrange window as matrix data (horizontal lines) rather than score data. Someone argued what good this would do-- Well this is a perfect example, if I am attempting to affect a particular section of a note with automation, I can't possible visually see where this is because the length is not described by the current score representation. Having a horizontal representation would solve this problem... (SEE VIDEO)
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/www/logicbugs/logicctrlchngbug.mov
    27. There should be a way to convert stereo samples to mono in the sample editor.
    28. When you view "as text" in the environmentt, you cannot drag an object to the arrange window-- Such as to create a bus track.. Now mind you I don't know why you can't just select "BUS" when editing a track in the arrange window in the first place, however there is no reason why 'view as text' should behave differently than when it's viewed as icons.
    29. When you drag a bus from the environment to the arrange window, it replaces whatever track was there. It should ADD a track instead of replace-- atleast there should be a preference for how this behaves.
    30. Occasionally when dragging a bus from the environment, there is some visual garbage in the track automation (see screenshot).
    31. There should be a way to LOAD and SAVE selections in the arrange window. Quite often when editing audio from a countless number of parts/regions, it becomes painful when you have to select and move 100s of audio files. There should be a way that you can just select a ton of regions and save that selection, and reload it at anytime. There are a few 'select' tools/options under the edit window, however they are song specific-- not track specific. So they are completely usesless for what I need.
    32. Logic should offer a feature to collect sysex data from midi devices so that patch names show up and can be selected via program change.
    33. When no track or part is selected, and you vertically zoom in, Logic should zoom into the center most track.. It behaves very oddly and zooms in more towards the top. This becomes extremely annoying when dealing with a sequence involving 100 tracks, and a part is selected but you scroll far below where the part is.. When you begin to zoom in, it takes you towards the selected part, yet it's not displayed on the screen and you have no reference for what you are even looking at. The rule should be this: If the part is on the screen, zooming vertically will bring you to it. If it's off the screen, you will zoom into the center track of whatever is currently on the screen.
    34. I mentioned this in a thread earlier... http://discussions.apple.com/thread.jspa?threadID=752485&tstart=0
    There is a bug when using the transform tool involving the 'position' variable. In my example, I was attempting to reverse the time placement of three chords, that occured in a part somewhere in the middle of my song. By selecting the measure start and end of this part, Logic was unable to select or operate with the transform tool (and I tried a variety of transform options). If I moved this part to the beginning of the song, then the transform tool would suddenly work. After some research, I found online someone had said "Position Time position of the event, referenced to the start of the MIDI Region (not of the song)."--- But if I still doubt this is true, because I then placed the part on a new track with no other data, and placed it in the middle of the sequence and in the transform tool under position I selected '1 1 1 1' to '5 5 5 5' as well i tried setting the position to 'all', and none of this worked. This obviously is a bug... If it's not then it's a very serious design flaw. The position should relate to measure numbers of a song, and nothing else.
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/video/transform.mov
    That is all for now...
    For those who firmly agree with me and all of the points that I have brought up now and in the past, I encourage you to contact Peggie Louie, (the Logic HR department contact) at (408) 996-1010 and suggest that she hire me as a consultant to help eliminate Logic's many annoyances. I have tried to pursue this heavily in the past, but sadly I was completely ignored by her on all levels. Maybe you all can help make a difference?
    Fighting the good fight,
    Patrick J. Collins
    http://collinatorstudios.com

    11. Changing the movie's start time is very user
    unfriendly. There should be a simple way to specify
    to start at a moment of time relative to SMPTE-- So
    you can just say "+9:15" for example, and it would
    take you in 9 minutes and 15 seconds, rather than how
    it is now where you have to think backwards from
    SMPTE code and subtract.
    For this one I'd suggest getting SMPTE calculator. Entering timecode numbers and having to add and subtract is not so difficult, and AFAIC part of a composer's gig. But what I would add, instead, is that it would be fantastic if Logic provided a timecode calculator (edit: even if it was in the form of a custom Logic widget).
    13. Saving a song with a movie open should mean that
    when you load that song, the movie should be up and
    exactly as it was prior to saving. As it is now you
    have to select "open movie again".
    This doesn't always happen. I've struggled with this for a long time, and I don't know why sometimes the movie will load and not other times. I would also add here that Logic should show the file pathname to the movie. Somewhere...
    18. clicking on a track selects ALL parts. This is
    so so so annoying.
    You can prevent this from happening if you have cycle turned on and set to a set of locators that "contain" the parts you might want to select en masse. I always work with cycle=on so this is not a problem.
    21. If you have multiple tracks of the same track
    (such as three Audio track #1's)-- say you are
    recording guitar parts, and just copying the track
    and muting the previous track as a method of
    maintaining multiple takes for later auditioning. If
    you draw automation volume data on this track (it
    appears on all 3 tracks), and then if you delete the
    audio from one of the muted tracks and tell logic to
    KEEP it, suddenly all automation data is gone.
    GRR!!!
    Never had that happen. In my experience, telling Logic to keep the data always works.
    23. UNDO does not work on every function. for
    example, if you change an output to bus 1 instead of
    1-2, you cannot undo this. Undo should undo whatever
    the last command was, no matter what it was. This is
    what the word LOGICal is supposed to represent.
    Undo in Logic is highly problematic for other reasons. Here, I think there should be a specific Environment Undo, just like there's a separate undo for audio edits.
    29. When you drag a bus from the environment to the
    arrange window, it replaces whatever track was there.
    It should ADD a track instead of replace-- atleast
    there should be a preference for how this behaves.
    Right. This is a matter of personal preference. But still there are other ways to get an object assigned to a track. The "thru tool", for instance. No dragging required.
    32. Logic should offer a feature to collect sysex
    data from midi devices so that patch names show up
    and can be selected via program change.
    My guess: considering how much sheer time it takes to write this kind of software, let alone debug it with every conceivable device, it's not likely this is going to happen.
    That is all for now...
    For those who firmly agree with me and all of the
    points that I have brought up now and in the past, I
    encourage you to contact Peggie Louie, (the Logic HR
    department contact) at (408) 996-1010 and suggest
    that she hire me as a consultant to help eliminate
    Logic's many annoyances. I have tried to pursue this
    heavily in the past, but sadly I was completely
    ignored by her on all levels. Maybe you all can help
    make a difference?
    Wait in line buddy!
    (LOL)
    I must say, I'm very impressed with your list and attention to detail. And I feel your pain, trust me. But many of the things you've listed are feature requests and not bugs. And some of the behaviors you've described I have yet to run across. So this is typical with Logic, that it can be operated in so many diverse ways that no two people run it in the same way, nor would two people conceive the program's capabilities in the same way. But I digress...
    I also think there's a certain amount of Logic convention that I don't think you've adopted yet, hence your wish for behaviors that don't yet exist.
    I don't disagree with most of your feature requests, and I'm (quite unfortunately) able to say that I'm familiar with most of these bugs and about 9 dozen more. But again, it's important to distinguish between bug, feature request, time to RTFM, and errant behavior that's experienced by a very limited number of users.
    There's no doubt that this program has its problems. In particular, your #1 re the playback buffer. And I'm glad you've brought many of the bugs into the light for people to read. Good work.

  • The problems with Logic (as I see them)

    Hello Everyone,
    Please keep in mind that I am writing this with the intention of expressing my frustrations, and what I feel would make Logic a better program. I realize not everyone will agree with the importance of what I say, but I am a firm believer of HAVING THE OPTIONS. Let the users choose what works for them and how they can best accomplish the tasks that they need to with their individual workflow.
    That being said, here is my list of Logic's faults and why I often call Logic "Illogic".
    General:
    * Logic should have a feature to automatically save your song every X number of minutes. Final Cut Pro does this, why doesn't Logic? It should prompt you "Logic can automatically save your project if you save it" (assuming the current file is 'autoload') to remind users that they should create a project name and save their work.
    * There should be a preference option for all windows to open as 'float'. Once upon a time holding option while double clicking parts would open them as a float (though having to hold down option every time in my opinion is an inconvenience, because I personally ALWAYS want my windows open as a float), however.. now in 7.2 that does not seem to work anymore. So, theoretically after you set your prefence to 'always float', then the when you hold option or control and click on a particular window, it will bring that window to the foreground...
    * The loop region at the top of the screen is larger than the time-line ruler tab. This is the #1 annoying thing about logic. so many times, I click on an area of the ruler tab to start playing at a specific section.. and somehow I ACCIDENTALLY click on the loop area... If I could ask for ANYTHING it would be that there is an option to disable LOOPING turning on and off from clicking up there. My 2nd request would be that the ruler tab be re-sizeable so that it can be larger than the loop area. This is especially the case for the matrix window where it default opens up to a sizing where the actual time line is so tiny, and the loop region is HUGE.... Every time I open a matrix window I have to resize this and again the loop area is 2x as big as the timeline area, so I end up wasting screen space just to avoid the annoying loop feature being trued on. My suggestion is, require that the loop button on the transport be the only way to turn on the loop feature (other than key commands), and only when it's turned on can loop points to be set. Why is the loop area so big anyway?!?!
    * Logic should offer a TALK BACK MIC button which will utilize the built-in apple microphone or iSight microphone and allow that to be sent to the audio interface. This would be an extremely useful feature for studio recording setups.
    * Starting logic takes approximately 5 minutes for me. It says "scanning exs24 instruments" for the majority of the time, and I admit my sample library is huge. however, my sample library has not changed in over a year. Why does logic have to continuously scan it??? Can it not make a reference of how many files, compare and if its larger-- then scan???
    Song Loading:
    * When audio files are not found during loading a song, it asks you the first time what you want to do "search", "manual", and "skip"... if you click "skip", and then it finds another missing file, it no longer presents you with the "SKIP" option.. but forces you to either search or skip all.. Let's say you have a project that used 5 audio files that are all missing because you had them on a different hard drive, but have copied the data somewhere else. The first two files it asks for you don't need.. but you know where the 3rd file is.. So your plan is to skip the first two files and then click manually for the 3rd.. but oh.. YOU CAN'T DO THAT! You have to find your first 2 files if you want to even have the option to locate your 3rd file... Unless you are planning to locate the files within the audio window-- but still, Logic should not be so unfriendly.
    Further, If you choose "manual", and what you're looking for isn't where you thought it was-- You realize you actually want to search for it.. So you click cancel and guess what.. It assumes you want to skip it, and so you either have to reload your project again, or deal with this in the audio window. Bottom line is this window should always have "Search", "Manual", "Skip", and "Skip All".
    * When you open another project, Logic DUMPS all of the audio instrument data in memory. This is one of the worst things about logic. If you are working between multiple files-- such as when scoring a film, and you are using different files for different cues, then this becomes a complete nightmare and a waste of your time. Logic should be assessing "What instruments are in common between these two projects"... And utilizing all audio instruments to the best of the machine's memory capacity. There is no reason for Logic to behave like this.. I've had to revert back to previous versions of the same song because some data was different, and I am just trying to visually compare various settings one from the other.. Just clicking from one project's window to the other requires me to have to wait 3-4 minutes while Logic loads all these audio instruments (WHICH ARE IDENTICAL IN BOTH PROJECTS BY THE WAY!!!).. This is just incredibly dumb, and creatively stifling.
    * BUG * -- Mind you, if you have two projects open, and you close one.. Logic begins loading all the audio instruments of the remaining project.. If you close that project as it's loading audio instruments, Logic will crash.
    Matrix Stuff:
    * BUG * If you have a part with lots of notes, and you begin to make a selection and scroll horizontally through all the content until then entire part is covered in the selection... After you release the mouse button and make this selection, quite often many random notes are unselected. This can be demonstrated by watching the following quicktime move:
    http://www.collinatorstudios.com/video/logicbug.mov
    * When you select a single note in the matrix window, it sounds.. This is a GREAT feature... However, when you make a selection of multiple of notes, they all sound at the same time.. This is just plain dumb. It once blew up my speakers... There is NO reason why a multiple selection would need to sound.. It's just dumb.. bad for your speakers, bad for your ears. The rule should be, if selection box = yes, then sound = no... else, sound = yes.
    * When viewing the matrix window while recording, all note events disappear until after recording stops. This is highly annoying (and illogical) as it causes confusion if you are relying on watching the note events in that part to know where you are supposed to come in.
    * The grid cannot be set to divisions other than 2 or 3. Musicians use 5 and 7!!! And also, can logic please offer an option to display the grid as NOTE symbols... It is much more musician friendly to see a 16th note with a 3 over it than "24". 24 means nothing to me as a musician.
    * Quantizing should allow custom input for tuplets.. So that users can quantize odd figures such as 13:4 for example.
    * If you move the song locator to a specific time location in the arrange window, and then double click a part to open it in the matrix window, the window is not opened to the locator's position. Thus causing annoyance and confusion as far as what the user is even looking at.
    * During horizontal scrolling of the window, the locator temporarily disappears, making it difficult to find where the locator is-- which usually is a marker for us to know what we are trying to find-- ESPECIALLY WHEN YOU OPEN A WINDOW AND IT'S NOT EVEN DISPLAYING THE SONG LOCATOR'S POSITION!!!
    * If you have two parts on the same arrange track, adjacent to each other and you enter the matrix window of the first part.. (assuming the link/chain icon is lit) When you scroll to the end of the note data, logic automatically takes you to the next part... The problem with this as it is, is that it does not take you to the FIRST note event of the text part, but rather continues to align the song locater with where ever it previously was (so you end up viewing somewhere further down in the next part).. To clarify, say you have a part what begins at MM-7 and ends at MM-14, the 2nd part begins at MM-15 and ends at MM-22.. If you begin scrolling the song locator past measure 15, then suddenly you see measure 22. When you really should be seeing measure 15. This is confusing and weird.
    * Every time you enter the matrix window of a part, the chain/link button is on. For me, this is incredibly annoying. There should be a way to set this so that the button's default is OFF...
    * When you move the mouse around the matrix window, whatever pitch corresponds to the vertical location of the mouse--- that particular key of the piano keyboard on the left side of the window should highlight so you could clearly see what note you are hovering over.. Logic tries to help with this by offering things like contrast options for C D E, but this clearly would be much more helpful.
    * With the velocity tool you can (MOST OFTEN ON ACCIDENT) double click on empty space in the window and cause all note events in all parts to appear on the screen-- Yet once you do this, you can't double click on a particular part's note to only display that part again. You have to switch to the arrow tool to do this. This is inconsistent and ILLOGICAL...
    ON A SIDE NOTE: PLEASE ENABLE A FUNCTION TO DISABLE THIS "ALL NOTES OF ALL PARTS APPEAR" when double clicking on empty space feature! I want NOTHING to happen when I double click within the matrix window... Make it a button within the window or just an option in the drop down menu only. * BY THE WAY * When you DO double click the background of the matrix window and multiple parts appear.. If you move notes of one part to match it up with other, it is incredibly slow. there is a 1-2 second pause each time you move a note move.. My g5 fan goes on each time I do this.. I'm sorry, there shouldn't be anything too CPU intensive to accomplish this simple task!!! I am only viewing 2 parts at the same time and it's slowing down my cpu...
    * Occasionally when I adjust note lengths, I accidentally double click on an actual note.. This opens the event list editor, and there is an intermittent bug where this note sounds-- and for some reason when the event list opens, the note sounds on top of itself a million times, so the result is a super loud flanged note which again, almost blows up my speakers and hurts my ears... PERSONALLY, I would like an option that DISABLES the note event list from opening by double clicking. Preferences currently has "double clicking a midi region opens: <selectable>"--- why not also have "double clicking a NOTE in matrix window does: <selectable>"-- and please allow "DO NOTHING" to be one of the options.
    * Why does the finger tool only change the end position of the note event??? Should this not be replaced with the bracket tool which appears automatically when using the arrow tool on closely zoomed in notes? This finger tool seems like an outdated old logic feature which has been replaced and improved upon. What would be nice is to have this bracket tool where we can be assured we are altering note start and end positions without moving things.
    * In the hyper-draw >> note velocity section--- This is highly annoying to work with... It's far from user friendly. first of all, to move a note's velocity position, you have to click on the "ball".. if you click on the line, it does nothing.. Because the ball is so small to begin with, quite often the user is going to miss the ball and somehow begin to "START LINE"-- Which is weird because it's activated by holding the mouse button down briefly. There really should be a "line tool" for this, because "START LINE" is too easily accidentally activated-- this is frustrating for the user. Most important though, these 'velocity markings' should be adjustable by clicking on the line as well-- not just the ball.. there should be a 2-3% area around each ball/line which logic will recognize as part of the ball/line so that it can easily be moved. I also feel that there should be some specific features for this section, such as a way to select multiple note velocities and apply a random pattern to them, or apply a logarithmic curve to the line tool. Yes, you can accomplish this stuff somewhat with the transform tool-- but this way would be more user friendly, and allow a lot more creative flow.
    Event list/Tempo list:
    * When one event is selected, by moving down X number, holding shift+clicking SHOULD select all events between those two points. However, the shift key for some reason acts as the OPTION key does in the finder-- (meaning it will only add one additional selection at a time).. This is highly inconsistent with the actual behavior of a Mac... Open a finder window and hold shift and click on items that are not vertically next to each other and a group is selected... Now do it in logic, and it causes GREAT frustration and annoyance. What happens if you have a million note events that you want to erase? You have to go page by page and click with shift on each one?? Or drag a selection and wait for logic to scroll you to where you want to go?????????? No thanks.
    Arrange stuff:
    * "REGIONAL CONTENT" (meaning the visual representation of note events) does not accurately depict the event data as note lengths cannot be visually identified. Everything shows up as a generic quarter note... My #1 suggestion is that regional content should be customizable so that you can view it in a miniature matrix data style. The biggest problem for me is that I cannot see where my notes end-- I can only see where they start, this makes it very difficult to identify what I am looking at.
    * Track automation data should only be inputable by the pencil tool. I cannot mention how many times automation data has accidentally altered when using the arrow tool. The pencil tool should allow you to raise and lower the lines reflecting automation data... What is the point using the pencil tool for automation if it's only function is to create "points" yet you can also create points with the arrow tool..??? Pencil tool should act as the arrow tool does in the sense that it raises or lowers automation data.
    * Recording preferences do not offer the option to automatically merge new part with existing part when a region is NOT selected. How annoying is it to have to select a part every time you want to record something just so it will be included in that original part!
    * Ruler at the top of the screen should also give an option for tuplets. 5, 7, etc.
    * When in record mode, if you click on the ruler to another time position, all audio instruments cut out and it takes approximately 3-4 seconds before tracks begin playing audio. This becomes very annoying if you are trying to do a pick up and want to just start 1 measure before hand.
    * There should be a way to EASILY (without having to cable two tracks together in the environment) temporarily link multiple tracks together so that automation data will be duplicated. So theoretically you can link 3-4 tracks together, and by adding automation data to one, you are adding it to all 4.
    * If a part is soloed, and you hit record. The part stops being soloed and you can no longer hear it. This makes it impossible to record a pick up on a soloed track unless it's locked, but it shouldn't need to be locked.
    * When you are zoomed in tightly, and you are trying to align notes within two parts on different tracks (meaning using the PSEUDO NOTATION DATA that appears in the part to align), there needs to be a VERTICAL line that snaps to the note closest to the mouse cursor. When trying to do this in parts that are a far vertical distance apart, it becomes VERY difficult to eye this alignment. Logic does this with automation data.. but for some reason they left it out for actual part alignment...
    * There should be a way to force the downbeat of a measure to occur at any given moment... What I mean by this, is composing for film is an absolute PAIN in Logic. Scenes, last for odd amounts of time, and Logic's reference manual claims that you can solve this by using various tempo tricks, however it is ineffective for the most part. What Logic needs is the ability where you can click on a drop down menu item within the arrange window and FORCE that where ever the song locator is, the rest of the measure is eliminated and a new measure downbeat occurs right there. This will allow you to always have new scenes on the downbeat of a measure without having to mess with your tempo and meter.
    Hyper Edit Window:
    * I can't even begin to comment on this... The hyper edit window is one of the worst things I have ever seen in a music/audio program. It is a horrible interface, you can't get it to do anything correctly without messing everything up. This thing needs a complete overhaul... I mean, just try to create a simple crescendo with note velocity and it will take you all night.. Try to add pitch bend data, and it adds note velocity data as well.. It's a total nightmare, and I would love to hear someone's practical application of this window.
    Score Window:
    * The method that the song position locator moves along with the notation is very strange. It is not at all how a person's eyes function when reading music. A much more logical approach to this would be for a transparent colored block of some type to highlight an entire measure, and each note head will glow as it sounds. The current way is so strange, it speeds up and slows down-- makes absolutely no sense, and it is more disruptive than anything.
    * When the Hyper Draw > note velocity area is exposed, if you use the velocity tool to increase/decrease a particular note's volume, the data in the hyper draw window does not update in real-time as you use the velocity tool. This behavior is inconsistent with the matrix > hyper draw's note velocity section-- where as in that area, the velocity ball/lines do update in realtime.
    EXS24:
    * when you are in many levels of subdirectories and you are auditioning instruments, it becomes very time consuming and annoying to have to continually trace through all the subdirectory paths. There should be a feature directly under the load instrument window that takes you to the subdirectory of the current instrument.
    * Seems when SONG SETTING > MIDI > "chase" is turned on... When starting sequences using audio instruments, (I am using a harp sample within the exs24), there is a latency hiccup upon starting, which is very disruptive when trying to listen to a short isolated moment in a composition. And I do want to chase note events in general-- but this present situation makes it difficult for me to work. I would suggest that you can specify tracks to exclude chasing.. Or fix the latency hiccup issue.
    Thank you.
    -Patrick
    http://collinatorstudios.com

    this is excellent patrick. can you number your points so that the thread can be discussed?
    1. yes
    2. ok
    3. great idea
    4. even better idea. you could set something up with aggreagate device i suppose but it would be better to have the feature to hand.
    5. you need to look into your project manager prefs. scan the paths and the links to the audio files will be saved meaning they will load up in a fraction of the time.
    6. yes this is nuts. you can skip all and sort it out with PM but then you shouldn't have to.
    7. this exists already. perhaps it ought to be a default but you need to set your esx prefs to 'keep common samples in memeory when switching songs'. then it will do just as you wish it to. you can also use the au lab in the devlopers kit which will allow you to load in au units etc seperately from logic, which logic can then access. this is a good way of getting around the 4 GB memory limit with logic too.
    8. ok, don't know about this bug.
    9. yep happens here too.
    10. doesn't worry me this one. you can turn off midi out.
    11. yes this is silly.
    12. well, i think this is something we can get used to. i am a musician and i am used to seeing '24'.
    13. you can already set up groove templates to allow for quantizing irrational tuplets. i do it all the time. i would like to see step input for irrational tuplets though.
    14. yes this is silly. the button for the KC 'content catch' is getting very worn out.
    15. ok.
    16. not sure i understand this one.
    17. yes this drives me nuts too. i have to lock screensets to get this to stay off.
    18. you can use KCs for 'go into/out of sequence' - but yeah.
    19. ok
    20. there are a couple of features that use old technology that cause hangs and poor performance. score is a good example of that. maybe the matrix is too. the score is being updated we assume with newer technology maybe the matrix will too.
    21. there are probably better ways of adjusting velocity than using matrix or hperdraw velocity. have you tried holding control-option and click dragging a note in score?
    22. as i pointed out in 20, this is an old feature. you could change things to be consistent with modern macs and annoy long term users such as myself, or leave them and let them be inconsistent to confuse newbies. i think depending on what it is we oldies could upgrade our work habits.
    23. this one doesn't worry me so much.
    24. good point (no pun intended).
    25. well, i find the opposite - that merging new parts to objects i have accidentally selected to be annoying. perhaps more detailed prefs?
    26. yep.
    27. this will be down to your audio settings. you can improve this lag but it will be dependant on the capabilities of your system.
    28. i don't know why this feature doesn't work in logic. it is supposed to have ti already and i just don't understand why it doesn't. maybe it will be fixed in the next upgrade.
    29. agreed.
    30. ok - i have other work flows for this but it would be nice.
    31. i don't agree that logic is a pain to score with to film, i do it nearly everyday. but you are discribing an interesting feature which might be worth discussing more. i think you might find yourself getting alarming and unmiscal results doing this that will end up having to be sorted out the conventional way. but its a good idea.
    32. oh yes.
    33. yeah - this could be improved.
    34. ok, well i wouldn't go about it this way, but yeah there is generally sticky spots with regards to updating of information al around logic.
    25. very very good idea.
    26. there are lots of problems with the chase function. very annoying. i certainly agree with this.
    in general, some of these could well be done as their own threads. some of the missing functionality may exist. if you can confirm a bug then you are on stronger ground when you submit feedback. but this list is full of fantastic ideas.

  • The best way to get help with logic

    I was posting in a thread on support for logic which appears to have been deleted. anyway, what I was going to say I think is useful info for people, so I'm going to post it anyway. to the mods - it doesn't contain any speculation about policies or anything like that. just an explanation of my views on the best way to deal with issues people have with logic, which I think is a valuable contribution to this forum.
    I think there's a need for perspective. when you buy an apple product you get 90 days of free phone support to get everything working nice and neat. you can call them whenever, and you could actually keep them on the phone all day if you wanted, making them explain to you how to copy a file, install microsoft office, or any number of little questions no matter how simple - what is that red button thingy in my window for?.. on top of that, you've got a 14 day dead on arrival period (or 10 days I can't remember) in which if your machine has any kind of hardware fault whatsoever it's exchanged for a totally new one, no questions asked. a lot of people complain that applecare is overpriced.. and if you think of it just as an extended warranty, then it is a little pricey. but if you are someone that could use a lot of phone support, then it's actually potentially a total bargain. the fact that 2 or more years after you bought a computer, you could still be calling them every single day, asking for any kind of advice on how to use anything on the machine, is quite something. many people on this forum have had problems when they made the mistake of upgrading to 10.4.9 without first creating a system clone or checking first with their 3rd party plug in vendors to make sure it was ok. so, with apple care, you could call them and keep a technician on the phone _all day_ talking you through step-by-step how to back up all of your user data, how to go through and preserve your preferences and any other specific settings you might not want to lose, and then how to rollback to an earlier OS version.. they'll hold your hand through the whole thing if you need them to.
    as for applecare support for pro apps like logic, I'd be the first person to agree that it's not great for anyone except beginners and first time users. if you look at what it takes to get even the highest level of logic certification, it's all pretty basic stuff. and logic doesn't exist in a vacuum, there is an entire universe of 3rd party software and hardware, as well as studio culture and advanced user techniques that are going to be totally invisible to some poor phone support guy at apple that did a logic 101. but it's not hard to see that apple are trying to promote a different kind of support culture, it's up to you to decide whether you want to buy into it or not.
    the idea is that they are able to provide basic setup support for new users, including troubleshooting. because it's a simpler level of support, at least they can do this well. so there's no reason why any new user with say a new imac and logic can't get up and running with the 90 days of phone support they get for free.
    but the thing is, for extremely high end pro users it's a different matter altogether. pro use of logic within the context of say, a studio or a film composition scenario is a very different world. it's almost a nonsense to imagine that apple could even hire people capable of giving useful support for this end of the spectrum, over the phone. there are so many variables, and so many things that require a very experienced studio person or in-work composer to even begin to understand the setup, let alone troubleshoot it. and it's a constantly evolving world, you actually have to be working in it and aware of developments on 3rd party fronts as well as changes in hardware.. not to mention even changes in the culture of studio production and the changed expectations that come from that. there's no way some poor little guy sitting at a help desk at apple can even hope to be privy to that kind of knowledge. it's already good enough that they don't outsource their support staff to india, let alone go out to studios and hire the very people with the skills that should be staying in the studio! not answering phones for apple.
    so, given this reality.. companies have two choices. they can either offer an email based support ticket system, which others do. but in my opinion.. this can just be frustrating and only a half-solution. sure you 'feel' like you are getting a response from the people that make the software and therefore must know it.. but it's not really the case due to what I said above. DAWs don't exist in a vacuum, and so much of what you need to understand to help people requires an intimate knowledge of the music industry in which they are working. you still won't get that from steinberg, even if they sort of answer your emails. the other problem is that this kind of system can mean sporadic answers, a lot of tail-chasing, and quite often you won't get an answer that helps you in the end anyway.
    the other model is to foster a strong user support culture. some people react in the wrong way to this idea.. they just think it's a big brush off from the manufacturer, saying we don't care, go sort it out yourselves.. but this isn't true. apple has a classification for pro resellers called 'apple solutions expert - audio'. what this means is that these dealers are recognised as audio specialists and they can receive extra support and training from apple for this. but more importantly than this.. most of them are music stores, or pro gear dealerships that are also mac and logic dealers. they already employ people that have worked or do work in the music industry, and are constantly on top of all of this stuff. apple encourages these dealers to run workshops, and to provide expert sales advice in the very niche area that logic is in, which they can do far better than some generic apple store ever could. but most importantly, they are encouraged to offer their own expert after-sales support and whatever other value-adding expertise they can, to get sales. because margins in computer gear are so tight nowadays, discounting is not really a viable option for these dealers to guarantee getting musicians to buy computers and logic setups from them. the only companies that can entice people with a lower price a big online wholesalers or big chain stores. so the best idea for these niche expert stores to get sales is to offer you their own experts to help with configuration, ongoing support and to generally make it a better idea that you bought your system from them rather than from some anonymous online store. I can see the wisdom of this.. it puts the support back out there on the ground where it's needed, and also where it can work best. apple could never hope to offer the same level of expertise in helping a film composer work through some issues with a specific interface or some highly specific issue they have with getting a task done. no big software manufacturer could do this anywhere near as well as people out there that have worked in studios or currently do work in studios. so in my opinion it's a far better model to foster this kind of support culture, along with training courses, books and training video support. also user forums like this one are possibly one of the most valuable ports of call anyone could ask for. apple couldn't replicate this with their own staff, even if they tried. and even if they made a system where some of the people close to logic development were able to answer emails, it would still be nowhere near as useful, as rapid or as capable of being up to speed with logic use out in the real world with 3rd pary gear, as any of these other methods are.
    the only thing I think they could do better would be to publish a list of known bugs which are officially recognised. this would help everyone and put an end to a lot of wasted time and speculation on if something is a bug totally to do with logic, or if it's a specific issue raised by a particular configuration.
    but really, in my view, a 3rd party support and training culture through a combination of specialist dealers, consultants that literally run a business setting up computers for pro-users and helping them keep it all working, online user-to-user forums and published materials really are the way forward.

    In all honesty this is currently the 3rd "logicboard" (motherboard)
    in my powerbook due to a design flaw regarding the 2nd memory slot....
    Yep. Mine failed five weeks after I bought it. However, I bought it for work and couldn't afford being without it for four weeks while they fixed it, so I had to live with it. My serial number did not entitle me to a replacement either, post Applecare.
    My firewire ports have burnt out from a third-party defective device (no hot-plugging involved)
    My screen is blotchy (my PW serial number did not entitle me to a replacement).
    My battery serial number did not entitle me to a replacement, and is not that good these days.
    My guaranteed Powerbook-compatible RAM is actually not, causing RAM related problems, most notably these days meaning that as soon as I switch to battery power, the laptop crashes, so I can only use mains power. The company I bought it from stopped taking my calls and wouldn't replace it after they replaced it once, so I'm stuck with it. And of course, only one ram slot is working, so I can't even use my original stick in the first slot, which would shift the dodgy stuff away from the lower system area.
    My power supply failed at the weak spot and caught fire. I managed to break apart the power supply and recable it so I didn't have to buy a new power supply, although the connection at the laptop end is loose (all the more fun that as soon as power is lost, the laptop crashes - see above). The power supply is held together with gaffa tape. Silver gaffer tape though, so it's still kind of 'Appley"...
    My internal hard drive is dying - four or five times now it clicks and won't power up, causing the laptop to die.
    One foot has fallen off (but glued back on).
    The lid is warped.
    The hinge is loosish.
    The S-Video adaptor cable is intermittent.
    But aside from all that, I have looked after it well, and I love it to death. Just as well, because it doesn't look like it will be that long...
    But it still "just works". Apart from the battery power obviously. And the ram slot. And the ram. And the screen. And the hard drive. And the firewire ports. And the feet.
    But everything apart from the main board, the screen, the case, the hard drive and the power supply works fine. So thats... er..
    Hmm.

  • How can I use JavaScript extention functions with Xalan for transforming XML with XSL

    While transforming standart XML and XSL files to HTML with this servlet:
    package mypackage1;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import java.net.URL;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.transform.stream.StreamResult;
    import org.mozilla.javascript;
    public class Servlet2 extends HttpServlet
    private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
    public void init(ServletConfig config) throws ServletException
    super.init(config);
    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
    try
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Source xmlSource = new StreamSource(new FileReader("c:/aaa.xml"));
    Source xslSource = new StreamSource(new FileReader("c:/bbb.xsl"));
    Transformer transformer = tFactory.newTransformer(xslSource);
    transformer.transform (xmlSource, new StreamResult(out));
    catch (Exception e)
    e.printStackTrace();
    everything is going ok,
    but when try to use javascript function in XSL file, for example like in this:
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
    xmlns:lxslt="http://xml.apache.org/xslt" xmlns:my-ext="ext1"
    extension-element-prefixes="my-ext">
    <lxslt:component prefix="my-ext"
    functions="getdate">
    <lxslt:script lang="javascript">
    function getdate() {
    var d = new Date();
    return d.toUTCString();
    </lxslt:script>
    </lxslt:component>
    <xsl:template match="/">
    <p><xsl:copy-of select="my-ext:getdate()"/></p>
    </xsl:template>
    </xsl:stylesheet>
    recieve error-message:
    XSL-1000: (Fatal Error) Error while parsing XSL file (Extension function namespace should start with 'http://www.oracle.com/XSL/Transform/java/'.).
    What kind of namespace I should specify?

    Hello, Paul.
    I'm sure you may not use JavaScript as a language for creating XSLT extention functions with Oracle XDK Parser. This is since parser might have JavaScript interpreter to work with JavaScript, but it has not.
    If you need to build any XSLT extention functions you must build them as Java class' static methods.
    After that, you define the usage of the class by mean of namespace declaration as:
    xmlns:your-ns="http://www.oracle.com/XSL/Transform/java/yourpackage.Yourclass"
    (Prefix "http://www.oracle.com/XSL/Transform/java/" may differs if you use non-Oracle XML parser)
    and use class' static method in XSLT:
    <xsl:value-of select="your-ns.staticMethodName(paramsIfAny)"/>
    In your case you may wish to use standard Date class:
    xmlns:date="http://www.oracle.com/XSL/Transform/java/java.util.Date"
    <xsl:value-of select="date:toString(date:new)"/>

Maybe you are looking for

  • Come on Apple - this is not enough!

    Come on Apple - this account mess has to be streamlined! Really! My setup: 3 different Macs, 2 iPhones, one iTunes Library, my wife, me. We both use all 3 Macs and have our own accounts on each machine. We have both our own MobileMe account. (Wife ha

  • WiFi no longer works on iPhone 3GS after 3.1 Update

    Well essentially the subject is all there is too it. I updated to iTunes 9 and iPhone OS 3.1 yesterday. I usually have wifi off at all times unless i want to use it to save battery life. I turned WiFi on and it wouldn't find my router. Any suggestion

  • Profit center wise customer balance Report with reference field

    Dear Experts I am using the report S_AC0_52000887 - Receivables: Profit Center but it does not show with reference. how can i see this report with reference. (e.g. reference field at the time of posting document) In the background of this report call

  • AirPlay to stream videos from websites

    I have an iPhone 4 that I just recently upgrade the iOS to 4.3 and I also have atv2 that it upgraded as well. I'm trying to stream some videos from a website and it only let's me stream the audio but ther is no picture on the tv. I thought with the n

  • How to deselect rows in multiple tables?

    I have a Form where in there are 4 tables? Each table contains one or more records.I need the user to select only one row from only one of the table . If any other row is slected from other table that has to be deselected. Can any body give me code f