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,
AnnCode 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.
- vikasHello,
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 ValdiviaHi 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
VimalrajHave 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
Mohanit 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.
thankshi 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.exeRecargable 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
VenkatHi 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 ylHi 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 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
-
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
-
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
-
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/