Adding complex computed column at run-time fails in PB 12.6

I support a large 'vintage' application that was originally written in the late 90's, and has been migrated from version to version over the years.  Currently I'm working to get it working in PB 12.6 Classic, build 3506, migrating it from PB 11.5
The first issue I've come across is that PFC treeviews are not working properly.  After some debugging, I determined that the cause of the failure is the PFC code's creation of 'key' column in the datawindows being used to populate each level.
In the pfc_u_tv.of_createkey function, it looks at the linkages between the levels of a treeviews data, and then crafts an expression, and then uses that to create a computed column, which is subsequently used to uniquely identify the data.
The expression is a series of string concatenations, such as this:
expression='String(ctg_cd) + "#$%" + String(app_cd) + "#$%" + String(app_cd) + "#$%" + String(win_id) + "#$%" + String(ctg_cd) + "#$%"'
This expression is then used in a modify statement to create the new compute key column:
ls_rc = ads_obj.Modify("create compute(band=detail x='0' y='0' " + &
  "height='0' width='0' name=pfc_tvi_key " + ls_Exp + ")")
In earlier versions, this works, and when you do a getitemstring afterward you get a long concatenated value that PFC uses to uniquely identify treeview items.
Such as 'a/r#$%plcy#$%plcy#$%w_m_plcy_fncl_tran#$%a/r#$%'
However, in PB 12.6, only the first portion of the expression is processed.  There is no error returned from the Modify function, and the column is created, but the expression is only evaluating one part of the expression.  In this partiular case, it results in
'plcy'
I just noticed that this isn't the *first* item in the set of concatenated columns and string literals, which is interesting.  In any case, when the computed key values are not correct, the whole method PFC is using to populate and run the treeview falls apart, and you get all children under each parent, and selections on the treeview object do not work properly because the key column values are not unique.
I can copy the expression value from a debugging session, and use that to create a computed column at design time, pasting the expression in, and naming it the same as the created column (pfv_tvi_key), and this then allows the treeview to work properly.  However, this is a very cumbersome and problematic workaround.  The application has a lot of treeviews, with a very large number of datawindows operating as all the different types of items on different levels of different trees.  I don't think it's a practical workaround, and future maintenance would be very difficult.
bu the workaround still demonstrates it is not an issue with the syntax of the compute expression, just an issue with the way it is handled by PowerBuilder when a column is created at run time,vs. at design time.
Has anyone else encountered this issue?  I would think there are a fair number of older apps still around that are using PFC treeviews.
My next step will be to install PB 12.6 build 4011 and cross my fingers.  Other than that, perhaps try 12.5?

Updating the PFC layers has started to lead down a rabbit hole of hundreds and hundreds of errors.
Granted, many of these are probably rooted in a few ancestor issues.
But I'm not sure this will lead to a solution.
The problem lies in using a modify statement to create a computed column at run time containing an expression with multiple concatenated values.
If I look at the pfc_u_tv.of_createkey function from the newer PFC version, I see the same code there:
ls_rc = ads_obj.Modify("create compute(band=detail x='0' y='0' " + &
  "height='0' width='0' name=pfc_tvi_key " + ls_Exp + ")")
And the same code above it which creates the expression used in the modify.
So after doing all the patching for the new PFC version, I somehow suspect I'll still be facing the same datastore.modify problem.
Not to say that isn't a good thing to do, just not sure it addresses the root of the problem.

Similar Messages

  • Is it possible to create a column in run time?

    Hi,
    I created a application that connect with Access database. I just wonder is it possible for user to create a column in run time, because the application need this kind of interaction.
    Many thanks,
    Ann

    Code that does it is here:
    http://forum.java.sun.com/thread.jsp?forum=48&thread=453846&tstart=0&trange=15
    MOD

  • Adding panel into JDialog at run time problem

    Hi ,
    I am adding one component at a time into the jdialog at run time.
    What I do , when I launch jdialog instance first time I added one
    component into the jdialog. when OI press next button it removes this
    component and adding next one , but the problem is that is is not showing in the jdialog.
    Please give me any idea that
    How I can add component into jdialog at run time.
    Thaks In Advance.
    - vikas

    Hello,
    without source-code its difficult to understand where your problem is. The following sample code works 'fine':
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class AddCompoDialog extends JDialog {
         int compoCounter;
         public AddCompoDialog(){
              setLocationRelativeTo(null);
              setSize(300,300);
              JPanel mainPanel=new JPanel(new BorderLayout());
              JPanel buttonPanel =new JPanel();
              final JPanel compoPanel=new JPanel(new GridLayout(10,10));
              JButton newCompo=new JButton("add new Component");
              newCompo.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent e){
                        compoPanel.add(new JLabel("Compo #"+ ++compoCounter));
                        compoPanel.revalidate(); //Dont forget to relayout your container
              buttonPanel.add(newCompo);
              JButton close=new JButton("close Dialog");
              close.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent e) {
                        dispose();
              buttonPanel.add(close);
              mainPanel.add(buttonPanel,BorderLayout.NORTH);
              mainPanel.add(compoPanel);
              getContentPane().add(new JScrollPane(mainPanel));
         public static void main(String[] params) {
              new AddCompoDialog().setVisible(true);
    }Regards,
    Tim

  • BPS: How to filter Lead Columns at run time

    I need to know if there is a way to filter values for lead columns, after planning level and planning package where defined
    Example:
    Family | Material | Brand | Format | sales | cost | Margin
    F1      M1         B1      F1       100     80     20
    F1      M2         B1      F1        95     85     10
    F1      M2         B1      F2       105     90     15
    In this case the user wants to add 10% to sales and review how does it impact into margin, but he wants to apply it only to rows where Material is M1.
    So, he needs to use some kind of filter data (like Excel functionality) to select only the rows corresponding to material M1.
    After that, he wants to perform other filters over the other lead columns, and apply again some changes in the data columns.
    Somebody can help me with this requirement?
    Thanks in advance
    Message was edited by: Pamela Valdivia

    Hi Pamela,
    First of all you would need a variable for Material with Replacement type user defined values to be able to restrict the data for Material M1 when the layout is executed.
    For incrementing the sales by 10% you can create a Planning function which increases the sales amount by 10% and provide a button for the same in the User Planning Folder. You could also restrict the Planning function for Material M1 if you so desire.
    The benefit of the Planning function is that you can always "Undo" the operation if you have not saved/performed a subsequent operation. So as long as the user is applying some changes and undoing the same before the second change step the data is as it is, and for what changes the user would like to simulate you can create a Planning function and provide the option in the Planning folder.
    Hope it helps.
    Cheers
    Anurag

  • Adding selection screen elements at run time

    Hi,
    I have a selection screen with four drop down list which has 20 elements.
    When i select any element from drop down, i must be able to add some other UI in the same line.
    DD1
    DD2
    DD3
    DD4
    If i choose a first item in DD1,
    DD1 Lable1 IP1 lable2 IP2
    DD2
    DD3
    DD4
    these lables and input fields are not known till selecting the item.
    Will i be able to do this in selection screen?
    Thanks
    Vimalraj

    Have a look at this Report. you have to Capture events on User Command and modify the screen accordingly.
    REPORT  ztesttt.
    PARAMETERS: test1(10) TYPE c MODIF ID sc1,
                test2(10) TYPE c MODIF ID sc2,
                test3(10) TYPE c MODIF ID sc1,
                test4(10) TYPE c MODIF ID sc2.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-group1 = 'SC1'.
          screen-active = '1'.
          MODIFY SCREEN.
          CONTINUE.
        ENDIF.
        IF screen-group1 = 'SC2'.
          screen-ACTIVE = '0'.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.

  • Interactive Report - Compute columns

    Hi,
    Interactive report query is storing in a apex view - apex_application_page_ir.
    Like, if compute columns added in runtime, APEX is making a new query with compute columns. I want to know in which APEX view is having this query:
    I created a Interactive report (APEX 3.2.0) for the following query:
    select
    "EMPNO",
    "ENAME",
    "JOB",
    "MGR",
    "HIREDATE",
    "SAL",
    "COMM",
    "DEPTNO"
    from "EMP"
    In the run time, I added a compute column , now the query is as follows:
    select
    ROWID as apxws_row_pk,
    "EMPNO",
    "ENAME",
    "JOB",
    "MGR",
    "HIREDATE",
    "SAL",
    "COMM",
    "DEPTNO",
    "SAL" *10/100 "APXWS_CC_001",
    count(*) over () as apxws_row_cnt
    from (
    select * from (
    select
    "EMPNO",
    "ENAME",
    "JOB",
    "MGR",
    "HIREDATE",
    "SAL",
    "COMM",
    "DEPTNO"
    from "EMP"
    ) r
    ) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)
    order by ROWID
    Regards
    Mohan

    it is not the sql query its all about the report_columns in apex_application_page_ir
    in case anyone landed in this page

  • Add Jcombo in Jtable at run time

    hello,
    i want to add jcombo box in jtable every cell & i also add column in run time.proble is when i add new column that time last column combo is add but prievious column its remove automatic.
    so give me some code & where i can get see good example for add combo in jtable.
    thanks

    hi j-rg,
    It was really appreaciating to c ur reply, regarding the specific problem.Actually wht i was facing the peoblem, Am adding a colomn in the run time and in that column am adding a combo in each cells of that column.AS i was expecting am able to add a new colum in th erum time with the combo in each cells of that column,now when am adding another column in the run time am getting all the required things,but the problem is " in the previous cloumn am not getting that combo"(only the combo is been added in the last column).
    What am expecting is the combo should be there in each cell of the column(all columns)
    Am also sending the code wht am using, plz have a look below,
    df1.addColumn(result);
         TableColumn aa= tb1.getColumnModel().getColumn(tb1.getColumnCount()-1);
         aa.setCellEditor(new DefaultCellEditor(comboBox));
    wating for ur reply
    thanks and regards
    sandeep

  • LabView Run-Time Installation Failure

    Hi
    I am trying to install the LabVIEW Run-Time Engine 20112 under a Windows XP Professional 32-bit SP3 Versin 2002, but every time I open the executable file, the comand prompt returns the message "Program too big to fit in memory". The machine has 2Gb of RAM memory, with only 670Mb in use. The Hard disk has 17Gb of free space. I have also installed on the computer the LabVIEW Run-Time Engine 8.6.
    Could you support me in the installation ?
    Tanks
    Download Link:
    http://joule.ni.com/nidu/cds/view/p/id/2534/lang/en
    Executable file name:
    LVRTE2011f3std.exe

    Recargable wrote:
    Hello!
    I tried installing the last version of the Windows Installer and the problem persisted.
    First I was installing from a mounted ISO image as if it was a DVD inserted for the virtual Windows XP, so I tried installing from a copy of the ISO image in the virtual hard disk, which failed too. Then I tried installing the Windows Installer. Copy the installation files out of the ISO image didn't go well either. Finally, I copied the installation files to a usb flash memory, I installed the Virtual Machine Additions in the virtual Windows XP (because is necessary for reading usb flash memories) and I could perform the installation from the flash memory.
    I can't yet understand why the OS recognises the executable files correctly in this last case and not in the others. They are the same files!!
    Thanks!!
    Totally strange.  I have no ideas on that one, but glad you got it to work. 
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • What is the diffrence between java run time env and JVM ?

    I wrote an applet on computer that installed run time env J2SE 1.4 that is running ok.
    when i try to run the applet on diffrent mechine that has earlier version my applet didn't run ok.
    Isn't enught just to install JVM ?

    The target mechine requirements should be more then
    only JVM installed ?
    do I have to ask for updated Run Time Env installed
    also ?Yes, you have to. If your program has been developed taking advantage of a certain version of the JRE, then all people using your program must have at least that version of the JRE.

  • Changing data in the table control during run time of transaction F-28

    Dear Experts,
    in transaction F-28 of second screen of second column (Field Name: Assignment) currently the data is getting from BSEG table and populating this column of table control, now I have a requirement that the data should be get from the other ZTABLE and populate this column during run time instead of the data from BSEG table, please let me know your suggestions, if you guys feel it will be done using User Exit then please let me know the suitable exit for this.
    Best Regards
    Venkat

    Hi Venkat,
    Use the appropriate sort key in the GL to fill up the assignment field automatically.
    U can create ur new sort key through OB16
    Regards,
    Kiran

  • Run time Error : UNCAUGHT_EXCEPTION

    Hi Team
    Pls reply to resolve the below error
    When we are uploaded TB through flexible upload  and then Test run for Data Collection for that Cons unit, we got the below Run time error:
    Runtime Errors         UNCAUGHT_EXCEPTION                                                           Except.                CX_UCI_NO_CHECK     
    Short dump has not been completely stored                                                                               
    Short text                                                                               
    An exception occurred that was not caught.                                                   
    What happened?                                                                               
    The exception 'CX_UCI_NO_CHECK' was raised, but it was not caught anywhere                   
         along                                                                               
    the call hierarchy.                                                                               
    Since exceptions represent error situations and this error was not                           
        adequately responded to, the running ABAP program                                            
         'CL_UC_DATASTREAM==============CP' has to be                                                
        terminated.                                                                               
    Error analysis                                                                               
    An exception occurred which is explained in detail below.                                    
        The exception, which is assigned to class 'CX_UCI_NO_CHECK', was not caught and              
        therefore caused a runtime error.                                                            
        The reason for the exception is:                                                             
        An exception occurred                                                                               
    Missing Handling of Application Exception                                                        
        Program                                 UCUWB000                                             
    Trigger Location of Exception                                                                    
        Program                                 CL_UC_DATASTREAM==============CP                     
        Include                                 CL_UC_DATASTREAM==============CM003                  
        Row                                     150                                                  
        Module type                             (METHOD)                                             
        Module Name                             DTS_READ_TRANSACTION_DATA                            
    Source Code Extract                                                                               
    Line
    SourceCde                                                                               
    120
                 it_hry_field            = it_char_node                                         
      121
                 it_hry_field_attr       = it_char_attr_node                                    
      122
                 it_hry_node             = lt_hry_node                                          
      123
                 it_hry_attr_node        = lt_hry_attr_node                                     
      124
                 i_authority_check       = l_authority_check                                    
      125
                 i_keydate               = i_keydate                                            
      126
                 it_hry_nodename         = lt_hry_nodename                                      
      127
                 it_hry_attr_nodename    = lt_hry_attr_nodename                                 
      128
                 i_packagesize           = i_packagesize                                        
      129
                 i_cursor_mode           = i_cursor_mode                                        
      130
               importing                                                                        
      131
                 et_hry_data             = lt_hry_data                                          
      132
                 e_end_of_data           = e_done                                               
      133
                 et_message              = lt_message1                                          
      134
               changing                                                                               
    135
                 ct_data                 = ct_data                                              
      136
               exceptions                                                                       
      137
                 no_authorization        = 1.                                                   
      138
                                                                                    139
             if sy-subrc is not initial.                                                        
      140
               move-corresponding syst to ls_message2.                                          
      141
               raise exception type cx_uci_no_authorization                                     
      142
                  exporting ds_message = ls_message2.                                           
      143
             endif.                                                                               
    144
                                                                                    145
             if lt_message1 is not initial.                                                     
      146
               loop at lt_message1 into ls_message1.                                            
      147
                 move-corresponding ls_message1 to ls_message2.                                 
      148
                 insert ls_message2 into table lt_message2.                                     
      149
               endloop.                                                                         
    >>>>>
               raise exception type cx_uci_no_check                                             
      151
                  exporting dt_message = lt_message2.                                           
      152
             endif.                                                                               
    153
                                                                                    154
             call method dts_process_hry_result                                                 
      155
               exporting                                                                        
      156
                 it_hry_node          = lt_hry_node                                             
      157
                 it_hry_attr_node     = lt_hry_attr_node                                        
      158
                 it_hry_nodename      = lt_hry_nodename                                         
      159
                 it_hry_attr_nodename = lt_hry_attr_nodename                                    
      160
                 it_hry_data          = lt_hry_data                                             
      161
               importing                                                                        
      162
                 et_node_data         = et_node_data.                                           
      163
                                                                                    164
        call method lo_tx_data->read_data_from_infoprov                                      
      165
          exporting                                                                               
    166
            i_comp_s_field         = i_comp_s_char                                           
      167
            i_comp_s_kfig          = i_comp_s_kfig                                           
      168
            it_field               = it_char                                                 
      169
            it_kfig                = it_kfig                                                 
    Pls revert me immediately how to resolve the issue, i already do the following functionality as per OSS Note 1074424
    thanks & regards
    Madhu yl

    Hi Sanjyot,
    The solution is resolved by technical team ,
    I don't have suport documents to fulfill, they said they added data files and this run time occurs due to space problem
    Thanks
    Madhu
    Edited by: Madhu YL on Jun 10, 2009 1:32 PM

  • Installing LabVIEW Run-Time Engine 8.5.1

    I want to run saved VI's from one computer with LabVIEW 8.5 Professional Development (8.5) on another computer using the Run-Time Software.
    After installing LabVIEW Run-Time Engine 8.5 (LabVIEW85RuntimeEngineFull.exe from http://joule.ni.com/nidu/cds/view/p/id/861/lang/en), do I need to do anything else before running a saved VI created in LabVIEW 8.5 from another computer? I install the program, but the only options under programs-national instruments are:
    -data socket
    -License Manager
    When I installed LabVIEW DSC Run-Time System 7.1 on the same computer there was an shortcut under "programs-national instruments-" to LabVIEW DSC Run-Time System 7.1, which is what I need but for the Run-Time Engine 8.5 instead.

    Joseph is correct. The run-time engine is only for "stand-alone" executables created with the Application Builder (included in the Professional version or higher, or can be purchased separately if you have the Base package). To run a vi in the development environment, you need one of the LabView packages.
    Message Edited by Edjsch on 05-12-2008 01:48 PM
    Message Edited by Edjsch on 05-12-2008 01:48 PM

  • Run time engine, Error of type 1002208

    Hi,
    I want to build an exe  using LV 8.6 development (project builder).    When I finished the project in LV8.6 development, it works ok.  But When I copy the project (include the exe file) to the computer installed only run-time engine (standard) and Measurement & Automation Explorer, V4.0.0.3010, The screen indicates "  VI has an error of type 1002208, The full development version of LV is required to fix the errors."    Is there anything wrong when I build the application?  Thank you.
    Hsien
    Solved!
    Go to Solution.

    Hi Dennis,
      When i built the application, I didn't build an installer into the project.  I pretty much followed the HELP in LV 8.6 example: Build a stand-alone application.
    The vi is mainly to read the TC signal and voltage signal from the computer connected to a scxi-1000 chassis and modules (scxi-1102 etc.)    Yes, the vi called the sub vi (like DAQmx  Created Channel [AI Temperature-Thermocouple].vi; DAQmx read.vi etc.).  When I built the exe file, I have placed these vis into "always included" under "source file" category.  Thank you.
    Regards,
    Hsien

  • Errors processing after adding Computed Column to Time.

    Errors in the high-level relational engine. The 'Time' table is based on a named query, and contains one or more computed columns. A table based on a named query cannot contain computed columns. If the computed columns are necessary, add them to the query
    expression.
    Help me, pls! Thanks!

    Hi CUONGNV0207,
    According to your description, you get this error when processing cube. Right?
    As the error message mentioned, a table based on a named query cannot contain computed columns. If you create a computed column in this table, it will throw this error. In this scenario, please go to the DSV and check if that table is set up with named query.
    You can replace it with a DimTable in your database.
    Reference:
    cryptic error when processing cube
    Errors processing after adding Computed
    Column to Time
    If you have any question, please feel free to ask.
    Simon Hou
    TechNet Community Support

  • I have trouble in building stand-alone application, "you must intall Labview run-time engine on any computer on which you want to run this application"

    I have installed the LabVIEW 7.0 run time engine and checked all in the advanced setup on the installer setup slide. but I still get such a message saying that the target computer needs to have LabVIEW 7.0 run-time engine. What I want is a real stand-alone application even without having labview ... I used to think that's due to my program contains MATLAB nodes. But this is not true, since even without Matlab, it's still wrong. Please help, thanks!!!

    As was stated elsewhere, you have the option of building the runtime engine into your application when you build it. However, you can also create a "runtime engine application" by simply opening the application builder and doing a build without adding any source code files. The result is a small program (named lvrt.exe) that can run any LabVIEW code--whether or not its built into an executable.
    Such an application can be helpful if you are wanting to install several LV-based applications on the same computer in that it reduces the amount of redundant code on disk. All you have to do is make sure that Windows on the target computer associates the llb and vi file extensions with the runtime engine program.
    It can also be helpful during testing to run test code that isn't built into an executable.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

Maybe you are looking for

  • [SOLVED] Unable to login to root unless it's through another account.

    I'm fairly inexperienced with Linux and am having a frustrating problem. I've forgotten my root password (oh boy) and am experiencing some weird problems attempting to reset it. I have other accounts, which I can log in to, and they have sudo privile

  • Photoshop CC 2014, MAC OSX, I have no option to close a modified file without saving it - i.e. no "don't save".

    Hi there. I have an odd issue where when I open a file and make changes to it, I can't close the file by clicking the 'x' button, can't select "file close", can't "command W" or even quit or force quit photoshop until I have saved the file. It's very

  • Spam email not getting tagged

    Here's a log of an email: Sep 4 21:19:38 mydomain.net /usr/bin/amavisd[6650]: (06650-01) Passed SPAM, [69.42.169.127] [69.42.169.127] <[email protected]> -> <[email protected]>, quarantine: spam-er7xEOMadS3w.gz, Message-ID: <[email protected]>, mail_

  • The "Live view" does not show in dreamweaver CS 6

    Hi, I  cant find the live view button on dreamweaver's toolbar.. there is the code,split, design, and live but not live view.. There is also another problem concerning the live option which I'm hoping will disappear if I find the live view option.. T

  • Java update file missing

    Software update wants to install the Java for Mac OSx 10.4, Release 5. But: The update can't be installed because (and I quote): "Make sure you have permission to write to /Library/Caches/com.apple.SoftwareUpdate/swcdn.apple.com/content/downloads/13/