Bods problem
i was taken source datasource as bw and target as hana and schema in hana is my own created..the replication will be successfull...
i waas taken source datasource as ecc and target as hana and schema in hana is my own created but replication is failed it is showing error like below screenshot..please help
Is the SLT RFC connection working fine ?
Similar Messages
-
DS run longer with scheduled job as compare to manual run
I have scheduled a job through Management Console (MC) to run everyday once at
certain time. After some time, maybe after 15 days of running, the execution
time has increased to double from 17 mins to 67 mins by one time jump. After
that, the job kept running and spent 67 mins to complete.
The nature of the job is to generate around 400 output flat files from a
source db2 table. Under efficient running time, 1 file took around 2 seconds to
generate. But now it became taking 8 seconds to generate one file. The data
volume and nature of the source table didn't change, so that was not the root
cause of increasing time.
I have done several investigations and the results as such:
1) I scheduled again this job at MC to run for testing, it would take 67 mins
to complete. However, if I manually run this job thorough MC, it would take
17 mins efficient time to run.
2) I replicated this job to a second job as a copy. Then I scheduled this
copied job at MC to run, it would take 67 mins to run. But if I manually run
this job through MC, it will take 17 mins to run.
3) I created another test repo and load this job in. I scheduled the job to
run at this new repo, it would take 67 mins to run. If I manually run the job
through MC, it only took 17 mins to run.
4) Finally, I manually executed the job through unix job scripts command,
which is one of the scheduled job entry in the cron file, such as
./DI__4c553b0d_6fe5_4083_8655_11cb0fe230f4_2_r_3_w_n_6_40.sh, the job also would take 17
mins to run to finish.
5) I have recreated the repo to make it clean and reload back the jobs and
recreated again the schedule. Yet it still took 67 mins to run scheduled job.
Therefore, the conclusion is why it takes longer time to run by scheduling
method as compare to manually running method?
Please provide me a way to troubleshoot this problem. Thank you.
OS : HPUX 11.31
DS : BusinessObjects Data Services 12.1.1.0
databasee : DB2 9.1Yesterday we had done another test and indirectly made the problem to go
away. We changed the generated output flat file directory from current directory
of /fdminst/cmbc/fdm_d/bds/gl to /fdminst/cmbc/fdm_d/bds/config directory to
run, to see any difference would make. We changed the directory pointing
inside Substitution Parameter Configurations windows. Surprisingly, job had
started to run fast and completed in 15 minutes and not 67 minutes anymore.
Then we shifted back and pointed the output directory back to original
/fdminst/cmbc/fdm_d/bds/gl and the job has started to run fast ever since and all
completed in 15 minutes. Even we created ad hoc schedule to run and it was
still running fast.
We not sure why it was solved by shifting directory away and shifting back,
and whether this had to do with BODS problem or HP Unix system environment
problem. Nonetheless, the job is started to run normally and fast now as we
test. -
Problem in retreiving string 1020 using ms sql in BODI sql query
I am taking a column from ms sql using select statement in bodi like
$temp=sql('ds_stage',select x from table A where X>1);
print('[$temp]');
it is printing the value upto 1020 characters of my data,after that it is not showing the remaining data.
I tried printing the sql statement directly in print statement rather than assigning it to a variable,
I tried casting teh value in select statemet like cast(x as text) or varchar and more.. nothing works..
no change in the result.
is that problem with BODI ? same query give full 1500 characters in ms sql but it doesnt come in BODI
I do not understand the problem.
ThanksI assume from your message that you are attempting to
deploy your application into OC4J - you're probably
implicitly using the inbuilt OC4J if your using JSPs.
If so, try placing the jdbc jars into the <JDEVHOME>\lib directory
and referencing them from the j2ee\home\application.xml
file:
use lines like:
<library path="../../../lib/msbase.jar" />
regards, Karl -
I have coded like this
$TEXT_LINE_VALUE = sql( 'ds_stage','SELECT text_line FROM MANAGEMENT_LONGTEXT where ROOT = 43004003');
in sql the value is having 1500 characters ,but in bodi it is returning 1020 characters only..
the length of $text_line_value is 8000 which I have declared (This may not be the problem),
I tried printing it like this too
print( sql( 'ds_stage','SELECT text_line FROM MANAGEMENT_LONGTEXT where ROOT = 43004003') );(here is the real problem)
In the trace also I can see only 1020 characters...
what is the maximum limit a sql transform can return in bodi??Try the same SELECT statement in SQL SERVER. (if that is your database). Copy and paste the retreived string into a notepad. It shows only 1020 characters.
Cannot blame BODI for this
What if the string length is more that 2040? How about this?
$G_String_Start = 1;
$G_String_Limit = 1020;
$G_String = '';
while($G_String_Limit <= 8000)
begin
$G_String = $G_String||sql('DATASTORE','SELECT substring(STRING, [$G_String_Start],[$G_String_Limit]) FROM STRING_TABLE');
$G_String_Start = $G_String_Start + 1020;
$G_String_Limit = $G_String_Limit + 1020;
end
print($G_String);
Regards,
Suneer. -
Problem with BODS and TERADATA bulkload Utilities
Hi,
While loading data into VARCHAR column by using MLOAD/FLOAD Bulkload utilities, we have observed that NULL values are getting loaded as BLANKS.
It seems that this issue is happening only with CHAR/VARCHAR data. With all other data types like DATE or INTEGER, NULL values are getting loaded as NULLs only.
I should have used "INDICATOR" if I am loading data through MLOAD Script directly, to handle this issue.
But through BODS, I am not sure how I can handle the conversion of NULL values to BLANKS for CHAR/VARCHAR datatypes with MLOAD/FASTLOAD utilties.
Any input on this issue is much appraciated.
Regards,
SudhakarI had similar problem while migrating in one of my earlier projects. Hope you have tried following
Full Rebuild of Index
Install Archiver Replication Exception component
Finally you can export part by part based on say Content Type and import on your QA.
regards,
deepak -
Facing problem which starting a real time services BODS Management Console
Hello All ,
I am facing a issue while starting the real time services from managment console
Error Log
Log: error_10_05_2011.log
(12.2) 10-05-11 11:05:55 (E) (1700:2324) Unknown: SP(NewService2, INDRMD36Q2:3501):flowThread() could not start real time job (BODI-300101)
List of congiurations done
1) Access Server configured and able to ping as well
2)Real time job create in BODS designer and can see that in management console
Note :
ETL tool : BODS
DB : Oracle
Any help is highly aprreciated
Thanks,
RishiRishi -
I think below URL can help you for the same.
https://wiki.sdn.sap.com/wiki/display/BOBJ/Settingupthe+Service
thx
Deep -
Hello
I'm a new user of Multisym and I am trying to get a Bode Plot, where the input to the circuit is a current source (not a voltage source), please see the attached file. Any ideas?
Best Regards,
David
Attachments:
Simulation.ms12 244 KBHi David,
In order to use the Bode Plotter tool with a current source:
1. Place a current probe on the current source
2. Connect the other end (output) of the current source to the input of the Bode plotter
I have created that setup in your original file (see attached)
Regards,
Puneet Mehra
Attachments:
Simulation - modified.ms12 846 KB -
BODI 11.7.3 - Custom Function Problem
Could someone please tell me what I am doing wrong here? I am hitting walls each time I think I have it right.
I wrote a custom function to select min(record id) from a list of about 15000 records where the record id may match many other fact ids.
I am using BODI V 11.7.3 with parameters and variables declared all over the place. I am able to get only 1 record to return when I know I should get over 2000 to return.
I have all screen shots and details available via word doc for additional assistance. But let me lay out the custom function:
$p_i_last_used = lookup_ext([table, 'no_cache', 'min'], [interaction_id], [null], [call_fact_id,'=',$in_call_fact_id, row_id, '=', $in_row_id, interaction_id, '<>' $p_i_last_used], [interaction_id], [$out_interaction_id]);
return $p_i_last_used || $out_interaction_id;
On the left side I have parameters set up
- anything with "in" is inward
- "out" is outward
- $p_i_last_used is in/out
Then I go back into my Work Flow - declare variables and parameters. Then set up my lookup function call within the query look up to take in the Call_Fact_ID, ROW_ID, and set $p_i_last_used as -1 or 0.
I am able to see only 1 record return. Like it is not going thru all 15K records.
TIA.
Edited by: Margot Bowen on Nov 20, 2008 1:29 AM1. Yes, 12.2 finally suports the rfc.ini file, one reason was for the load balancing.
2. Yes, you are right, one datastore is bound to one application server in 11.7. However, this one apllication server could submit the ABAP as a spool job rather than executing it in dialog mode and then you have your load balancing again. Checkout the datastore property "execute in background". -
Problem with mail displaying message bodies
I'm having problems with Mail displaying the body of an email. It will show the headers and that's all. I've turned on the raw format and can see everything so I know it's getting the emails ok.
I'm running my own mail server using IMAP. I also use two other email clients. Squirrelmail and Thunderbird on Windows 7. Both Squirrelmail and Thunderbird display the emails fine, but Mail on my Mac doesn't work.
Any suggestions???
Thanks!!Anyone have anything on this??
-
IPhone 5 locksreen is green. Do any bod have the same problem?
When my iphone is locked and i press the homebutton i get a green shine under the slider. Is this normal or should i send my iphone back?
Battery life will depend heavily on what you're doing with it. The advertised battery life is a maximum, achievable through extreme measures like turning off wifi and Bluetooth, turning the screen brightness to minimum, turning the sound off and running only very low-demand apps. If you're getting up to 6 hours while not maximizing your power-savings, you're not seeing anything unusual.
-
Can any bod sol thıs problem?
Hi..I wore some text editor ..and found some codes for highlighting ...My text editor has menu bar and 3 menus..Open ,save and exit..it works well. but in cods of highlighting there is a window too whit out any menubar..ext..I want to use my window with menubar instead of this window...i tryed to connecet them ..but allways i see window of SyntaxText class... What I must do? My class which i wrote JText ..i must delete some thing but i couldnt find..does any body can help me?
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
class SyntaxTest extends DefaultStyledDocument
Element rootElement;
String wordSeparators = ",:;.()[]{}+-/*%=!&|~^@? ";
Vector keywords = new Vector();;
SimpleAttributeSet keyword;
public SyntaxTest()
rootElement= this.getDefaultRootElement();
keyword = new SimpleAttributeSet();
StyleConstants.setForeground(keyword, Color.blue);
keywords.add( "abstract" );
keywords.add( "boolean" );
keywords.add( "break" );
keywords.add( "byte" );
keywords.add( "case" );
keywords.add( "catch" );
keywords.add( "char" );
keywords.add( "class" );
keywords.add( "continue" );
keywords.add( "default" );
keywords.add( "do" );
keywords.add( "double" );
keywords.add( "else" );
keywords.add( "extends" );
keywords.add( "false" );
keywords.add( "final" );
keywords.add( "finally" );
keywords.add( "float" );
keywords.add( "for" );
keywords.add( "if" );
keywords.add( "implements" );
keywords.add( "import" );
keywords.add( "instanceof" );
keywords.add( "int" );
keywords.add( "interface" );
keywords.add( "long" );
keywords.add( "native" );
keywords.add( "new" );
keywords.add( "null" );
keywords.add( "package" );
keywords.add( "private" );
keywords.add( "protected" );
keywords.add( "public" );
keywords.add( "return" );
keywords.add( "short" );
keywords.add( "static" );
keywords.add( "super" );
keywords.add( "switch" );
keywords.add( "synchronized" );
keywords.add( "this" );
keywords.add( "throw" );
keywords.add( "throws" );
keywords.add( "true" );
keywords.add( "try" );
keywords.add( "void" );
keywords.add( "volatile" );
keywords.add( "while" );
public void insertString(int offset, String str, AttributeSet a) throws BadLocationException
super.insertString(offset, str, a);
int startOfLine = rootElement.getElement(rootElement.getElementIndex(offset)).getStartOffset();
int endOfLine = rootElement.getElement(rootElement.getElementIndex(offset+str.length())).getEndOffset() -1;
//highlight the changed line
highlightKeyword(this.getText(0,this.getLength()), startOfLine, endOfLine);
public void remove(int offset, int length) throws BadLocationException
super.remove(offset, length);
int startOfLine = rootElement.getElement(rootElement.getElementIndex(offset)).getStartOffset();
int endOfLine = rootElement.getElement(rootElement.getElementIndex(offset+length)).getEndOffset() -1;
//highlight the changed line
highlightKeyword(this.getText(0,this.getLength()), startOfLine, endOfLine);
public void highlightKeyword(String content,int startOffset, int endOffset)
char character;
int tokenEnd;
while (startOffset < endOffset)
tokenEnd = startOffset;
//find next wordSeparator
while(tokenEnd < endOffset)
character = content.charAt(tokenEnd);
if(wordSeparators.indexOf(character) > -1)
break;
else
tokenEnd++;
//check for keyword
String token = content.substring(startOffset,tokenEnd).trim();
if(keywords.contains(token))
this.setCharacterAttributes(startOffset, token.length(), keyword, true);
startOffset = tokenEnd+1;
public class JText extends JFrame{
private JTextPane textarea ;
private JFileChooser fileChooser = new JFileChooser();
private Action open =new OpenAction() ;
private Action save = new SaveAction();
private Action exit = new ExitAction();
public static void main(String args[])
JFrame f = new JFrame();
JTextPane pane = new JTextPane(new SyntaxTest());
JScrollPane scrollPane = new JScrollPane(pane);
f.setContentPane(scrollPane);
f.setSize(600,400);
f.setVisible(true);
//Text Area
public JText(){
JPanel content = new JPanel();
//Menu Bar
JMenuBar menu=new JMenuBar();
JMenu file=menu.add(new JMenu("FILE"));
file.setMnemonic('F');
file.add(open);
file.add(save);
file.addSeparator();
file.add(exit);
setContentPane(content);
setJMenuBar(menu);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Project");
pack();
setLocationRelativeTo(null);
setVisible(true);
class OpenAction extends AbstractAction {
//============================================= constructor
public OpenAction() {
super("Open...");
putValue(MNEMONIC_KEY, new Integer('O'));
//========================================= actionPerformed
public void actionPerformed(ActionEvent e) {
int retval = fileChooser.showOpenDialog(JText.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
try {
FileReader reader = new FileReader(f);
textarea.read(reader, ""); // Use TextComponent read
} catch (IOException ioex) {
System.out.println(e);
System.exit(1);
class SaveAction extends AbstractAction {
//============================================= constructor
SaveAction() {
super("Save...");
putValue(MNEMONIC_KEY, new Integer('S'));
//========================================= actionPerformed
public void actionPerformed(ActionEvent e) {
int retval = fileChooser.showSaveDialog(JText.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(f);
textarea.write(writer); // Use TextComponent write
} catch (IOException ioex) {
JOptionPane.showMessageDialog(JText.this, ioex);
System.exit(1);
class ExitAction extends AbstractAction {
//============================================= constructor
public ExitAction() {
super("Exit");
putValue(MNEMONIC_KEY, new Integer('X'));
//========================================= actionPerformed
public void actionPerformed(ActionEvent e) {
System.exit(0);
}import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
class SyntaxTest extends DefaultStyledDocument
Element rootElement;
String wordSeparators = ",:;.()[]{}+-/*%=!&|~^@? ";
Vector keywords = new Vector();;
SimpleAttributeSet keyword;
public SyntaxTest()
rootElement= this.getDefaultRootElement();
keyword = new SimpleAttributeSet();
StyleConstants.setForeground(keyword, Color.blue);
keywords.add( "abstract" );
keywords.add( "boolean" );
keywords.add( "break" );
keywords.add( "byte" );
keywords.add( "case" );
keywords.add( "catch" );
keywords.add( "char" );
keywords.add( "class" );
keywords.add( "continue" );
keywords.add( "default" );
keywords.add( "do" );
keywords.add( "double" );
keywords.add( "else" );
keywords.add( "extends" );
keywords.add( "false" );
keywords.add( "final" );
keywords.add( "finally" );
keywords.add( "float" );
keywords.add( "for" );
keywords.add( "if" );
keywords.add( "implements" );
keywords.add( "import" );
keywords.add( "instanceof" );
keywords.add( "int" );
keywords.add( "interface" );
keywords.add( "long" );
keywords.add( "native" );
keywords.add( "new" );
keywords.add( "null" );
keywords.add( "package" );
keywords.add( "private" );
keywords.add( "protected" );
keywords.add( "public" );
keywords.add( "return" );
keywords.add( "short" );
keywords.add( "static" );
keywords.add( "super" );
keywords.add( "switch" );
keywords.add( "synchronized" );
keywords.add( "this" );
keywords.add( "throw" );
keywords.add( "throws" );
keywords.add( "true" );
keywords.add( "try" );
keywords.add( "void" );
keywords.add( "volatile" );
keywords.add( "while" );
public void insertString(int offset, String str, AttributeSet a) throws BadLocationException
super.insertString(offset, str, a);
int startOfLine = rootElement.getElement(rootElement.getElementIndex(offset)).getStartOffset();
int endOfLine = rootElement.getElement(rootElement.getElementIndex(offset+str.length())).getEndOffset() -1;
//highlight the changed line
highlightKeyword(this.getText(0,this.getLength()), startOfLine, endOfLine);
public void remove(int offset, int length) throws BadLocationException
super.remove(offset, length);
int startOfLine = rootElement.getElement(rootElement.getElementIndex(offset)).getStartOffset();
int endOfLine = rootElement.getElement(rootElement.getElementIndex(offset+length)).getEndOffset() -1;
//highlight the changed line
highlightKeyword(this.getText(0,this.getLength()), startOfLine, endOfLine);
public void highlightKeyword(String content,int startOffset, int endOffset)
char character;
int tokenEnd;
while (startOffset < endOffset)
tokenEnd = startOffset;
//find next wordSeparator
while(tokenEnd < endOffset)
character = content.charAt(tokenEnd);
if(wordSeparators.indexOf(character) > -1)
break;
else
tokenEnd++;
//check for keyword
String token = content.substring(startOffset,tokenEnd).trim();
if(keywords.contains(token))
this.setCharacterAttributes(startOffset, token.length(), keyword, true);
startOffset = tokenEnd+1;
public class JText extends JFrame{
private JTextPane textarea ;
private JFileChooser fileChooser = new JFileChooser();
private Action open =new OpenAction() ;
private Action save = new SaveAction();
private Action exit = new ExitAction();
public static void main(String args[])
JFrame f = new JFrame();
JTextPane pane = new JTextPane(new SyntaxTest());
JScrollPane scrollPane = new JScrollPane(pane);
f.setContentPane(scrollPane);
f.setSize(600,400);
f.setVisible(true);
//Text Area
public JText(){
JPanel content = new JPanel();
//Menu Bar
JMenuBar menu=new JMenuBar();
JMenu file=menu.add(new JMenu("FILE"));
file.setMnemonic('F');
file.add(open);
file.add(save);
file.addSeparator();
file.add(exit);
setContentPane(content);
setJMenuBar(menu);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Project");
pack();
setLocationRelativeTo(null);
setVisible(true);
class OpenAction extends AbstractAction {
//============================================= constructor
public OpenAction() {
super("Open...");
putValue(MNEMONIC_KEY, new Integer('O'));
//========================================= actionPerformed
public void actionPerformed(ActionEvent e) {
int retval = fileChooser.showOpenDialog(JText.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
try {
FileReader reader = new FileReader(f);
textarea.read(reader, ""); // Use TextComponent read
} catch (IOException ioex) {
System.out.println(e);
System.exit(1);
class SaveAction extends AbstractAction {
//============================================= constructor
SaveAction() {
super("Save...");
putValue(MNEMONIC_KEY, new Integer('S'));
//========================================= actionPerformed
public void actionPerformed(ActionEvent e) {
int retval = fileChooser.showSaveDialog(JText.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(f);
textarea.write(writer); // Use TextComponent write
} catch (IOException ioex) {
JOptionPane.showMessageDialog(JText.this, ioex);
System.exit(1);
class ExitAction extends AbstractAction {
//============================================= constructor
public ExitAction() {
super("Exit");
putValue(MNEMONIC_KEY, new Integer('X'));
//========================================= actionPerformed
public void actionPerformed(ActionEvent e) {
System.exit(0);
} -
BODS 3.1 : SAP R/3 data extraction -What is the difference in 2 dataflows?
Hi.
Can anyone advise as to what is the difference in using the data extraction flow for extracting Data from SAP R/3 ?
1)DF1 >> SAPR/3 (R3/Table -query transformation-dat file) >>query transformation >> target
This ABAP flow generates a ABAP program and a dat file.
We can also upload this program and run jobs as execute preloaded option on datastore.
This works fine.
2) We also can pull the SAP R/3 table directly.
DF2>>SAPR/3 table (this has a red arrow like in OHD) >> Query transformation >> target
THIS ALSO Works fine. And we are able to see the data directly into oracle.
Which can also be scheduled on a job.
BUT am unable to understand the purpose of using the different types of data extraction flows.
When to use which type of flow for data extraction.
Advantage / disadvantage - over the 2 data flows.
What we are not understanding is that :
if we can directly pull data from R/3 table directly thro a query transformation into the target table,
why use the Flow of creating a R/3 data flow,
and then do a query transformation again
and then populate the target database?
There might be some practical reasons for using these 2 different types of flows in doing the data extraction. Which I would like to understand. Can anyone advise please.
Many thanks
indu
Edited by: Indumathy Narayanan on Aug 22, 2011 3:25 PMHi Jeff.
Greetings. And many thanks for your response.
Generally we pull the entire SAP R/3 table thro query transformation into oracle.
For which we use R/3 data flow and the ABAP program, which we upload on the R/3 system
so as to be able to use the option of Execute preloaded - and run the jobs.
Since we do not have any control on our R/3 servers nor we have anyone on ABAP programming,
we do not do anything at the SAP R/3 level
I was doing this trial and error testing on our Worflows for our new requirement
WF 1 : which has some 15 R/3 TABLES.
For each table we have created a separate Dataflow.
And finally in between in some dataflows, wherein, the SAP tables which had lot of rows, i decided to pull it directly,
by-passing the ABAP flow.
And still the entire work flow and data extraction happens ok.
In fact i tried creating a new sample data flow and tested.
Using direct download and - and also execute preloaded.
I did not see any major difference in time taken for data extraction;
Because anyhow we pull the entire Table, then choose whatever we want to bring into oracle thro a view for our BO reporting or aggregate and then bring data as a table for Universe consumption.
Actually, I was looking at other options to avoid this ABAP generation - and the R/3 data flow because we are having problems on our dev and qa environments - giving delimiter errors. Whereas in production it works fine. Production environment is a old set up of BODS 3.1. QA and Dev are relatively new enviornments of BODS. Which is having this delimiter error.
I did not understand how to resolve it as per this post : https://cw.sdn.sap.com/cw/ideas/2596
And trying to resolve this problem, I ended up with the option of trying to pull directly the R/3 table. Without using ABAP workflow. Just by trial and error of each and every drag and drop option. Because we had to urgently do a POC and deliver the data for the entire e recruiting module of SAP.
I dont know whether i could do this direct pulling of data - for the new job which i have created,
which has 2 workflows with 15 Dataflows in each worflow.
And and push this job into production.
And also whether i could by-pass this ABAP flow and do a direct pulling of R/3 data, in all the Dataflows in the future for ANY of our SAP R/3 data extraction requirement. And this technical understanding is not clear to us as regards the difference between the 2 flows. And being new to this whole of ETL - I just wanted to know the pros and cons of this particular data extraction.
As advised I shall check the schedules for a week, and then we shall move it probably into production.
Thanks again.
Kind Regards
Indu
Edited by: Indumathy Narayanan on Aug 22, 2011 7:02 PM -
We use Thunderbird with the email header list (Inbox, etc) in an upper pane, and the body of the highlighted email in a separate lower viewer pane.
We compact files whenever asked by the software.
In a long list of emails, I click on one header (at the top of the list) to view it in the pane below. Once in a while, the headers get mixed up and do not preview the proper email in the viewer pane.
I will highlight and view an email, and then delete it. When this glitch occurs, the body of the deleted email appears in the lower pane when I click on the next email header in the upper pane list. The viewer pane should be showing me the new body of the just-highlighted email, but instead it shows the deleted body of the previously-viewed email. Once that new header is clicked, and the wrong body appears in the viewer pane, the proper email body disappears forever. I have to call my customer to have them resend.
If I click on other emails further down the list, the same body (of the deleted email) continues to show up each time, and all the correct bodies of all the clicked headers are gone. So, phone calls have to happen to ask all the affected emails to be resent. (So, we have learned to stop as soon as we see it happen the first time.)
The only way we have found to fix this is to close Thunderbird, and then reboot the computer. When Thunderbird is re-opened, the problem goes away. But any lost email bodies are permanently gone.
We can't seem to find any strange set of events that make this happen. It appears random, and varied. Sometimes every week, sometimes not for months.
This happens on 2 computers. One is a 2 year old PC (Compaq), and one is a 3 year old HP Probook laptop. Both currently using Thunderbird 24.5.0. Both run Windows 7. Both have lots of memory. Both are very stable machines with very few problems. Seems to be more prevalent on the Compaq desktop than the HP Probook.
Please help.
Thanks in advance.Do you organise your email into separate folders, or do you just let it accumulate in the Inbox?
I would strongly advise you not to let it sit in the Inbox.
When you see this happening, try right-click on the affected folder, select '''Properties''' then '''Repair Folder'''.
Large folders (actually, a folder in Thunderbird is stored as a file, so it is sensitive to file size limits set by the underlying file system) can be problematic. This is one reason not to let messages collect in one folder. I use Thunderbird's Archive folders so that accumulated mails over several years can happily coexist because they are effectively stored in many small folders. No single mail store folder then exceeds the 2GB or 4GB sizes that have been known to stress the OS. I appreciate that current builds of Thunderbird and a modern 64-bit OS should be able to cope, but practically I find it slows down when given huge files, so I err towards a pragmatic solution; a large number of not very big files.
Archives are searchable, and a Saved Search folder can give you a virtual composite folder allowing access to the entire Archive. -
Unknown problem with JSP, JavaScript - Pls help
Hi Friends,
I am facing a strange problem. Explained it below. Kindly help me as it is really affecting my work. Thanks in advance.
I am working on building a web application using jsp, servlet, ejb. the IDE used is WSAD 5.1.2.
I have the below :
1 JSP - Input page - for user input entry
2. Java script1 - For all client side validations
Java script2 - For handling the data submission to servlet (as selected by user)
Javascript3 - Header & Menu Bar
3 Servlet - This actually retrieves the values from the hidden parameters, sets them in session and redirects the control back to the jsp.
Logic for one small iteration : Two drop downs are there. On selecting the first drop down the second drop down should be populated and the first drop down should display the user selected value.
1. When the user selects the first drop down onchange() event gets fired which calls a method in the javascript.
2. In the javascript I set the value of a hidden form field to the selected combo index and submit the form to the servlet
3. In the servlet, I retrieve the hidden request parameter (Index),
set the index in session. Do my business logic based on the value of the index. Set the collection (to be displayed) in second drop down in session.
4. Send the response back to the JSP.
5. In the JSP, we have a method which is called during the onload() event of the body
6. This method sets the user selected values in appropriate controls(by taking from session)
Problem faced: I have a javascript which creates the menu bar for my application and this i've included it in my jsp. I dont know whats wrong with this javascript, when it is commented out the page works perfectly fine. Both the user selected value and the collection are loaded exactly as expected. But when it is included the collection is loaded in the second drop down but the selected index of the first drop down is not set - the drop down gets reset to the default value.
Also on body load of my jsp, I call a javascript method which sets the current date in one text field of my form. Even this is not working fine when I include this javascript. I don't see any script error in this javascript in my browser though. Strange but guess something basic :(
I'm sure there is nothing to do with session. I've tried printing the entire flow. The Servlet sets the values correctly in session and they are also correctly available in the JSP page. The JSP also gets loaded with the user selected values but something happens on page load which clears the values to default.
Am also confused in what way javascript is related to this, coz when I remove it things are working fine.
Am really helpless here pls do the needful. any help is appreciated.
Header.js [which includes the menu bar code]
document.write("<!-- COMMON HEADER CODE -->")
document.write(" <table id='mplPageHeader' cellspacing='0' cellpadding='2' border='0'>")
document.write(" <tr> ")
document.write(" <td rowspan='2' bgcolor='#FFFFFF' width='1%'>")
document.write(" <a href='http://www.web.com' target='_top'>")
document.write(" <img src='./images/ford.gif' alt='BLogistics' border='0'>")
document.write(" </a> ")
document.write(" </td>")
document.write(" <td rowspan='2' class='appTitle' title='Mp' width='1%'>MP&L</td>")
document.write(" <td class='appTitle' title='M R'>M R</td>")
document.write(" <td class='pageIdentifier'>"+' '+"</td>");
document.write(" </tr>")
document.write(" <tr>")
document.write(" <td class='pageTitle' nowrap></td>");
document.write(" <td class='dateInfo' nowrap>Thu Jan 22 2004 12:24 PM</td>")
document.write(" </tr>")
document.write(" </table>")
document.write("<!-- Display Menu Items -->")
document.write("<div id='navigationMenu'>")
document.write(" <script type='text/javascript' src='./javascript/MRmenuItem.js'></script>")
document.write(" <script type='text/javascript' src='./javascript/menuScript.js'></script>")
document.write("</div>")-------------------------------------------------------
Menu Bar Code
var AgntUsr=navigator.userAgent.toLowerCase();
var AppVer=navigator.appVersion.toLowerCase();
var DomYes=document.getElementById?1:0,NavYes=AgntUsr.indexOf("mozilla")!=-1&&AgntUsr.indexOf("compatible")==-1?1:0,ExpYes=AgntUsr.indexOf("msie")!=-1?1:0,Opr=AgntUsr.indexOf("opera")!=-1?1:0;
var DomNav=DomYes&&NavYes?1:0,DomExp=DomYes&&ExpYes?1:0;
var Nav4=NavYes&&!DomYes&&document.layers?1:0,Exp4=ExpYes&&!DomYes&&document.all?1:0;
var MacCom=(AppVer.indexOf("mac")!= -1)?1:0,MacExp4=(MacCom&&AppVer.indexOf("msie 4")!= -1)?1:0,Mac4=(MacCom&&(Nav4||Exp4))?1:0;
var Exp5=AppVer.indexOf("msie 5")!= -1?1:0,Fltr=(AppVer.indexOf("msie 6")!= -1||AppVer.indexOf("msie 7")!= -1)?1:0,MacExp5=(MacCom&&Exp5)?1:0,PosStrt=(NavYes||ExpYes)&&!Opr?1:0;
var RmbrNow=null,FLoc,ScLoc,DcLoc,SWinW,SWinH,FWinW,FWinH,SLdAgnWin,FColW,SColW,DColW,RLvl=0,FrstCreat=1,Ldd=0,Crtd=0,IniFlg,AcrssFrms=1,FrstCntnr=null,CurOvr=null,CloseTmr=null,CntrTxt,TxtClose,ImgStr,ShwFlg=0,M_StrtTp=StartTop,M_StrtLft=StartLeft,StaticPos=0,LftXtra=DomNav?LeftPaddng:0,TpXtra=DomNav?TopPaddng:0,FStr="",M_Hide=Nav4?"hide":"hidden",M_Show=Nav4?"show":"visible",Par=MenuUsesFrames?parent:window,Doc=Par.document,Bod=Doc.body,Trigger=NavYes?Par:Bod;
var Ztop=100,InitLdd=0,P_X=DomYes?"px":"";
var OpnTmr=null;
if(PosStrt){if(MacExp4||MacExp5)LdTmr=setInterval("ChckInitLd()",100);
else{if(Trigger.onload)Dummy=Trigger.onload;
if(DomNav)Trigger.addEventListener("load",Go,false);
else Trigger.onload=Go}}
function ChckInitLd(){
InitLdd=(MenuUsesFrames)?(Par.document.readyState=="complete"&&Par.frames[FirstLineFrame].document.readyState=="complete"&&Par.frames[SecLineFrame].document.readyState=="complete")?1:0:(Par.document.readyState=="complete")?1:0;
if(InitLdd){clearInterval(LdTmr);Go()}}
function Dummy(){return}
function CnclSlct(){return false}
function RePos(){
FWinW=ExpYes?FLoc.document.body.clientWidth:FLoc.innerWidth;
FWinH=ExpYes?FLoc.document.body.clientHeight:FLoc.innerHeight;
SWinW=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
SWinH=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
if(MenuCentered.indexOf("justify")!=-1&&FirstLineHorizontal){
ClcJus();
var P=FrstCntnr.FrstMbr,W=Menu1[5],a=BorderBtwnMain?NoOffFirstLineMenus+1:2,i;
FrstCntnr.style.width=NoOffFirstLineMenus*W+a*BorderWidthMain+P_X;
for(i=0;i<NoOffFirstLineMenus;i++){
P.style.width=W-(P.value.indexOf("<")==-1?LftXtra:0)+P_X;
if(P.ai&&!RightToLeft)
P.ai.style.left=BottomUp?W-BorderColor-2+P_X:W-Arrws[4]-2+P_X;
P=P.PrvMbr
StaticPos=-1;
ClcRl();
if(TargetLoc)ClcTrgt();ClcLft();ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft);
if(RememberStatus)StMnu()}
function NavUnLdd(){Ldd=0;Crtd=0;SetMenu="0"}
function UnLdd(){
NavUnLdd();
if(ExpYes){var M=FrstCntnr?FrstCntnr.FrstMbr:null;
while(M!=null){if(M.CCn){MakeNull(M.CCn);M.CCn=null}
M=M.PrvMbr}}
if(!Nav4){LdTmr=setInterval("ChckLdd()",100)}}
function UnLddTotal(){MakeNull(FrstCntnr);FrstCntnr=RmbrNow=FLoc=ScLoc=DcLoc=SLdAgnWin=CurOvr=CloseTmr=Doc=Bod=Trigger=null}
function MakeNull(P){
var M=P.FrstMbr,Mi;
while(M!=null){Mi=M;
if(M.CCn){MakeNull(M.CCn);M.CCn=null}
M.Cntnr=null;M=M.PrvMbr;Mi.PrvMbr=null;Mi=null}
P.FrstMbr=null}
function ChckLdd(){
if(!ExpYes){if(ScLoc.document.body){clearInterval(LdTmr);Go()}}
else if(ScLoc.document.readyState=="complete"){if(LdTmr)clearInterval(LdTmr);Go()}}
function NavLdd(e){if(e.target!=self)routeEvent(e);if(e.target==ScLoc)Go()}
function ReDoWhole(){if(AppVer.indexOf("4.0")==-1)Doc.location.reload();else if(SWinW!=ScLoc.innerWidth||SWinH!=ScLoc.innerHeight||FWinW!=FLoc.innerWidth||FWinH!=FLoc.innerHeight)Doc.location.reload()}
function Go(){
if(!Ldd&&PosStrt){
BeforeStart();
Crtd=0;Ldd=1;
FLoc=MenuUsesFrames?parent.frames[FirstLineFrame]:window;
ScLoc=MenuUsesFrames?parent.frames[SecLineFrame]:window;
DcLoc=MenuUsesFrames?parent.frames[DocTargetFrame]:window;
if(MenuUsesFrames){
if(!FLoc){FLoc=ScLoc;if(!FLoc){FLoc=ScLoc=DcLoc;if(!FLoc)FLoc=ScLoc=DcLoc=window}}
if(!ScLoc){ScLoc=DcLoc;if(!ScLoc)ScLoc=DcLoc=FLoc}
if(!DcLoc)DcLoc=ScLoc}
if(FLoc==ScLoc)AcrssFrms=0;
if(AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1;
FWinW=ExpYes?FLoc.document.body.clientWidth:FLoc.innerWidth;
FWinH=ExpYes?FLoc.document.body.clientHeight:FLoc.innerHeight;
SWinW=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
SWinH=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
FColW=Nav4?FLoc.document:FLoc.document.body;
SColW=Nav4?ScLoc.document:ScLoc.document.body;
DColW=Nav4?DcLoc.document:ScLoc.document.body;
if(TakeOverBgColor){
if(ExpYes&&MacCom)FColW.style.backgroundColor=AcrssFrms?SColW.bgColor:DColW.bgColor;
else FColW.bgColor=AcrssFrms?SColW.bgColor:DColW.bgColor}
if(MenuCentered.indexOf("justify")!=-1&&FirstLineHorizontal)ClcJus();
if(FrstCreat||FLoc==ScLoc)FrstCntnr=CreateMenuStructure("Menu",NoOffFirstLineMenus,null);
else CreateMenuStructureAgain("Menu",NoOffFirstLineMenus);
ClcRl();
if(TargetLoc)ClcTrgt();ClcLft();ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft);
IniFlg=1;Initiate();Crtd=1;
SLdAgnWin=ExpYes?ScLoc.document.body:ScLoc;SLdAgnWin.onunload=Nav4?NavUnLdd:UnLdd;
if(ExpYes)Trigger.onunload=UnLddTotal;
Trigger.onresize=Nav4?ReDoWhole:RePos;
AfterBuild();
if(RememberStatus)StMnu();
if(Nav4&&FrstCreat){Trigger.captureEvents(Event.LOAD);Trigger.onload=NavLdd}
if(FrstCreat)Dummy();FrstCreat=0;
if(MenuVerticalCentered=="static"&&!AcrssFrms)setInterval("KeepPos()",250) }}
function KeepPos(){
var TS=ExpYes?FLoc.document.body.scrollTop:FLoc.pageYOffset;
if(TS!=StaticPos){var FCSt=Nav4?FrstCntnr:FrstCntnr.style;
FrstCntnr.OrgTop=StartTop+TS;FCSt.top=FrstCntnr.OrgTop+P_X;StaticPos=TS}}
function ClcRl(){
StartTop=M_StrtTp<1&&M_StrtTp>0?M_StrtTp*FWinH:M_StrtTp;
StartLeft=M_StrtLft<1&&M_StrtLft>0?M_StrtLft*FWinW:M_StrtLft}
function ClcJus(){
var a=BorderBtwnMain?NoOffFirstLineMenus+1:2,Sz=Math.round((PartOfWindow*FWinW-a*BorderWidthMain)/NoOffFirstLineMenus),i,j;
for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval("Menu"+i);j[5]=Sz}
StartLeft=0}
function ClcTrgt(){
var TLoc=Nav4?FLoc.document.layers[TargetLoc]:DomYes?FLoc.document.getElementById(TargetLoc):FLoc.document.all[TargetLoc];
if(DomYes){while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}}
else{StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}}
function ClcLft(){
if(MenuCentered.indexOf("left")==-1){
var Sz=FWinW-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
StartLeft+=MenuCentered.indexOf("right")!=-1?Sz:Sz/2;
if(StartLeft<0)StartLeft=0}}
function ClcTp(){
if(MenuVerticalCentered!="top"&&MenuVerticalCentered!="static"){
var Sz=FWinH-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
StartTop+=MenuVerticalCentered=="bottom"?Sz:Sz/2;
if(StartTop<0)StartTop=0}}
function PosMenu(Ct,Tp,Lt){
RLvl++;
var Ti,Li,Hi,Mb=Ct.FrstMbr,CStl=!Nav4?Ct.style:Ct,MStl=!Nav4?Mb.style:Mb,PadL=Mb.value.indexOf("<")==-1?LftXtra:0,PadT=Mb.value.indexOf("<")==-1?TpXtra:0,MWt=!Nav4?parseInt(MStl.width)+PadL:MStl.clip.width,MHt=!Nav4?parseInt(MStl.height)+PadT:MStl.clip.height,CWt=!Nav4?parseInt(CStl.width):CStl.clip.width,CHt=!Nav4?parseInt(CStl.height):CStl.clip.height,CCw,CCh,STp,SLt;
var BRW=RLvl==1?BorderWidthMain:BorderWidthSub,BTWn=RLvl==1?BorderBtwnMain:BorderBtwnSub;
if(RLvl==1&&AcrssFrms)!MenuFramesVertical?Tp=BottomUp?0:FWinH-CHt+(Nav4?MacCom?-2:4:0):Lt=RightToLeft?0:FWinW-CWt+(Nav4?MacCom?-2:4:0);
if(RLvl==2&&AcrssFrms)!MenuFramesVertical?Tp=BottomUp?SWinH-CHt+(Nav4?MacCom?-2:4:0):0:Lt=RightToLeft?SWinW-CWt:0;
if(RLvl==2){Tp+=VerCorrect;Lt+=HorCorrect}
CStl.top=RLvl==1?Tp+P_X:0;Ct.OrgTop=Tp;
CStl.left=RLvl==1?Lt+P_X:0;Ct.OrgLeft=Lt;
if(RLvl==1&&FirstLineHorizontal){Hi=1;Li=CWt-MWt-2*BRW;Ti=0}
else{Hi=Li=0;Ti=CHt-MHt-2*BRW}
while(Mb!=null){
MStl.left=Li+BRW+P_X;
MStl.top=Ti+BRW+P_X;
if(Nav4)Mb.CLyr.moveTo(Li+BRW,Ti+BRW);
if(Mb.CCn){if(RightToLeft)CCw=Nav4?Mb.CCn.clip.width:parseInt(Mb.CCn.style.width);
if(BottomUp)CCh=Nav4?Mb.CCn.clip.height:parseInt(Mb.CCn.style.height);
if(Hi){STp=BottomUp?Ti-CCh:Ti+MHt+2*BRW;SLt=RightToLeft?Li+MWt-CCw:Li}
else{SLt=RightToLeft?Li-CCw+ChildOverlap*MWt+BRW:Li+(1-ChildOverlap)*MWt;
STp=RLvl==1&&AcrssFrms?BottomUp?Ti-CCh+MHt:Ti:BottomUp?Ti-CCh+(1-ChildVerticalOverlap)*MHt+2*BRW:Ti+ChildVerticalOverlap*MHt+BRW}
PosMenu(Mb.CCn,STp,SLt)}
Mb=Mb.PrvMbr;
if(Mb){ MStl=!Nav4?Mb.style:Mb;PadL=Mb.value.indexOf("<")==-1?LftXtra:0;
PadT=Mb.value.indexOf("<")==-1?TpXtra:0;
MWt=!Nav4?parseInt(MStl.width)+PadL:MStl.clip.width;
MHt=!Nav4?parseInt(MStl.height)+PadT:MStl.clip.height;
Hi?Li-=BTWn?(MWt+BRW):(MWt):Ti-=BTWn?(MHt+BRW):MHt}}
status="Ready";RLvl--}
function StMnu(){
if(!Crtd)return;
var i,Pntr=FrstCntnr,Str=ScLoc.SetMenu?ScLoc.SetMenu:"0";
while(Str.indexOf("_")!=-1&&RememberStatus==1){
i=Pntr.NrItms-parseInt(Str.substring(0,Str.indexOf("_")));
Str=Str.slice(Str.indexOf("_")+1);
Pntr=Pntr.FrstMbr;
for(i;i;i--)Pntr=Pntr.PrvMbr;
if(Nav4)Pntr.CLyr.OM();
else Pntr.OM();
Pntr=Pntr.CCn}
i=Pntr.NrItms-parseInt(Str);
Pntr=Pntr.FrstMbr;
for(i;i;i--)Pntr=Pntr.PrvMbr;
if(RmbrNow!=null){SetItem(RmbrNow,0);RmbrNow.Clckd=0}
if(Pntr!=null){SetItem(Pntr,1);Pntr.Clckd=1;
if(RememberStatus==1){if(Nav4)Pntr.CLyr.OM();else Pntr.OM()}}
RmbrNow=Pntr;
ClrAllChlds(FrstCntnr.FrstMbr);
Rmbr(FrstCntnr)}
function Initiate(){
if(IniFlg&&Ldd){Init(FrstCntnr);IniFlg=0;if(RememberStatus)Rmbr(FrstCntnr);if(ShwFlg)AfterCloseAll();ShwFlg=0}}
function Rmbr(CntPtr){
var Mbr=CntPtr.FrstMbr,St;
while(Mbr!=null){
if(Mbr.DoRmbr){
HiliteItem(Mbr);
if(Mbr.CCn&&RememberStatus==1){St=Nav4?Mbr.CCn:Mbr.CCn.style;St.visibility=M_Show;Rmbr(Mbr.CCn)}
break}
else Mbr=Mbr.PrvMbr}}
function Init(CPt){
var Mb=CPt.FrstMbr,MCSt=Nav4?CPt:CPt.style;
RLvl++;MCSt.visibility=RLvl==1?M_Show:M_Hide;CPt.Shw=RLvl==1?1:0;
while(Mb!=null){if(Mb.Hilite)LowItem(Mb);if(Mb.CCn)Init(Mb.CCn);Mb=Mb.PrvMbr}
RLvl--}
function ClrAllChlds(Pt){
var PSt,Pc;
while(Pt){if(Pt.Hilite){Pc=Nav4?Pt.CLyr:Pt;if(Pc!=CurOvr){LowItem(Pt)}
if(Pt.CCn){PSt=Nav4?Pt.CCn:Pt.CCn.style;if(Pc!=CurOvr){PSt.visibility=M_Hide;Pt.CCn.Shw=0}ClrAllChlds(Pt.CCn.FrstMbr)}
break}
Pt=Pt.PrvMbr}}
function SetItem(Pntr,x){while(Pntr!=null){Pntr.DoRmbr=x;Pntr=Nav4?Pntr.CLyr.Ctnr.Cllr:Pntr.Ctnr.Cllr}}
function GoTo(){
var HP=Nav4?this.LLyr:this;
if(HP.Arr[1]){status="";LowItem(HP);IniFlg=1;Initiate();
HP.Arr[1].indexOf("javascript:")!=-1?eval(HP.Arr[1]):DcLoc.location.href=BaseHref+HP.Arr[1]}}
function HiliteItem(P){
if(Nav4){ if(P.ro)P.document.images[P.rid].src=P.ri2;
else{
P.bgColor = HighBgColor;
if(P.value.indexOf("<img")==-1){P.document.write(P.Ovalue);P.document.close()}}}
else{
if(P.ro){var Lc=P.Lvl==1?FLoc:ScLoc;Lc.document.images[P.rid].src=P.ri2}
else{
P.style.backgroundColor=HighBgColor;
P.style.color=FontHighColor;
P.Hilite=1
function LowItem(P){
P.Hilite=0;
if(P.ro){if(Nav4)P.document.images[P.rid].src=P.ri1;
else{var Lc=P.Lvl==1?FLoc:ScLoc;Lc.document.images[P.rid].src=P.ri1}}
else{
if(Nav4){
P.bgColor=LowBgColor;
if(P.value.indexOf("<img")==-1){P.document.write(P.value);P.document.close()}}
else{
P.style.backgroundColor=LowBgColor;
P.style.color=FontLowColor;
function OpenMenu(){
if(!Ldd||!Crtd)return;
if(OpnTmr)clearTimeout(OpnTmr);
var P=Nav4?this.LLyr:this;
if(P.NofChlds&&!P.CCn){
RLvl=this.Lvl;
P.CCn=CreateMenuStructure(P.MN+"_",P.NofChlds,P);
var Ti,Li,Hi;
var MStl=!Nav4?P.style:P;
var PadL=P.value.indexOf("<")==-1?LftXtra:0;
var PadT=P.value.indexOf("<")==-1?TpXtra:0;
var MWt=!Nav4?parseInt(MStl.width)+PadL:MStl.clip.width;
var MHt=!Nav4?parseInt(MStl.height)+PadT:MStl.clip.height;
var CCw,CCh,STp,SLt;
var BRW=RLvl==1?BorderWidthMain:BorderWidthSub;
if(RightToLeft)CCw=Nav4?P.CCn.clip.width:parseInt(P.CCn.style.width);
if(BottomUp)CCh=Nav4?P.CCn.clip.height:parseInt(P.CCn.style.height);
if(RLvl==1&&FirstLineHorizontal){Hi=1;Li=(Nav4?P.left:parseInt(P.style.left))-BRW;Ti=0}
else{Hi=Li=0;Ti=(Nav4?P.top:parseInt(P.style.top))-BRW}
if(Hi){STp=BottomUp?Ti-CCh:Ti+MHt+2*BRW;SLt=RightToLeft?Li+MWt-CCw:Li}
else{SLt=RightToLeft?Li-CCw+ChildOverlap*MWt+BRW:Li+(1-ChildOverlap)*MWt;
STp=RLvl==1&&AcrssFrms?BottomUp?Ti-CCh+MHt:Ti:BottomUp?Ti-CCh+(1-ChildVerticalOverlap)*MHt+2*BRW:Ti+ChildVerticalOverlap*MHt+BRW}
PosMenu(P.CCn,STp,SLt);
RLvl=0}
var CCnt=Nav4?this.LLyr.CCn:this.CCn,HP=Nav4?this.LLyr:this;
CurOvr=this;IniFlg=0;ClrAllChlds(this.Ctnr.FrstMbr);
if(!HP.Hilite)HiliteItem(HP);
if(CCnt!=null&&!CCnt.Shw)RememberStatus?Unfld():OpnTmr=setTimeout("Unfld()",UnfoldDelay);
//alert(HP.value);
status=HP.value;
function Unfld(){
var P=CurOvr;
var TS=ExpYes?ScLoc.document.body.scrollTop:ScLoc.pageYOffset,LS=ExpYes?ScLoc.document.body.scrollLeft:ScLoc.pageXOffset,CCnt=Nav4?P.LLyr.CCn:P.CCn,THt=Nav4?P.clip.height:parseInt(P.style.height),TWt=Nav4?P.clip.width:parseInt(P.style.width),TLt=AcrssFrms&&P.Lvl==1&&!FirstLineHorizontal?0:Nav4?P.Ctnr.left:parseInt(P.Ctnr.style.left),TTp=AcrssFrms&&P.Lvl==1&&FirstLineHorizontal?0:Nav4?P.Ctnr.top:parseInt(P.Ctnr.style.top);
// TS != 0 is only needed if the menu DIVs are positioned relative to the body.
// We've made them positioned relative to div#navigationMenu which causes
// a problem if TS is based on how the body is scrolled. So set TS to zero.
// Note: the code below will adjust the final top offset based on the height of
// the menu bar so the dropdown appears below (and not on top of) the nav bar.
TS = 0;
var CCW=Nav4?P.LLyr.CCn.clip.width:parseInt(P.CCn.style.width),CCH=Nav4?P.LLyr.CCn.clip.height:parseInt(P.CCn.style.height),CCSt=Nav4?P.LLyr.CCn:P.CCn.style,SLt=AcrssFrms&&P.Lvl==1?CCnt.OrgLeft+TLt+LS:CCnt.OrgLeft+TLt,STp=AcrssFrms&&P.Lvl==1?CCnt.OrgTop+TTp+TS:CCnt.OrgTop+TTp;
if(!ShwFlg){ShwFlg=1;BeforeFirstOpen()}
if(MenuWrap){
if(RightToLeft){if(SLt<LS)SLt=P.Lvl==1?LS:SLt+(CCW+(1-2*ChildOverlap)*TWt);if(SLt+CCW>SWinW+LS)SLt=SWinW+LS-CCW}
else{if(SLt+CCW>SWinW+LS)SLt=P.Lvl==1?SWinW+LS-CCW:SLt-(CCW+(1-2*ChildOverlap)*TWt);if(SLt<LS)SLt=LS}
if(BottomUp){if(STp<TS)STp=P.Lvl==1?TS:STp+(CCH-(1-2*ChildVerticalOverlap)*THt);if(STp+CCH>SWinH+TS)STp=SWinH+TS-CCH+(Nav4?4:0)}
else{if(STp+CCH>TS+SWinH)STp=P.Lvl==1?STp=TS+SWinH-CCH:STp-CCH+(1-2*ChildVerticalOverlap)*THt;if(STp<TS)STp=TS}}
CCSt.top=STp+P_X;CCSt.left=SLt+P_X;
if(Fltr&&MenuSlide){P.CCn.filters[0].Apply();P.CCn.filters[0].play()}
CCSt.visibility=M_Show}
function OpenMenuClick(){
if(!Ldd||!Crtd)return;
var HP=Nav4?this.LLyr:this;CurOvr=this;
IniFlg=0;ClrAllChlds(this.Ctnr.FrstMbr);HiliteItem(HP);
function CloseMenu(){
if(!Ldd||!Crtd)return;
status="";
if(this==CurOvr){if(OpnTmr)clearTimeout(OpnTmr);if(CloseTmr)clearTimeout(CloseTmr);IniFlg=1;CloseTmr=setTimeout("Initiate(CurOvr)",DissapearDelay)}}
function CntnrSetUp(W,H,NoOff,WMu,Mc){
var x=BorderColor;
this.FrstMbr=null;this.NrItms=NoOff;this.Cllr=Mc;this.Shw=0;
this.OrgLeft=this.OrgTop=0;
if(Nav4){if(x)this.bgColor=x;this.visibility="hide";this.resizeTo(W,H)}
else{if(x)this.style.backgroundColor=x;this.style.width=W+P_X;this.style.height=H+P_X;
if(!NavYes)this.style.zIndex=RLvl+Ztop;
if(Fltr){FStr="";if(MenuSlide&&RLvl!=1)FStr=MenuSlide;if(MenuShadow)FStr+=MenuShadow;
if(MenuOpacity)FStr+=MenuOpacity;if(FStr!="")this.style.filter=FStr}}}
function MbrSetUp(MbC,PrMmbr,WMu,Wd,Ht,Nofs){
var Lctn=RLvl==1?FLoc:ScLoc,Tfld=this.Arr[0],t,T,L,W,H,S,a;
this.PrvMbr=PrMmbr;this.Lvl=RLvl;this.Ctnr=MbC;this.CCn=null;this.ai=null;this.Hilite=0;this.DoRmbr=0;
this.Clckd=0;this.OM=OpenMenu;this.style.overflow="hidden";
this.MN=WMu;this.NofChlds=Nofs;
this.style.cursor=(this.Arr[1]||(RLvl==1&&UnfoldsOnClick))?ExpYes?"hand":"pointer":"default";this.ro=0;
if(Tfld.indexOf("rollover")!=-1){this.ro=1;this.ri1=Tfld.substring(Tfld.indexOf("?")+1,Tfld.lastIndexOf("?"));
this.ri2=Tfld.substring(Tfld.lastIndexOf("?")+1,Tfld.length);this.rid=WMu+"i";
Tfld="<img src=\""+this.ri1+"\" name=\""+this.rid+"\" width=\""+Wd+"\" height=\""+Ht+"\">"}
this.value=Tfld;
this.style.color=FontLowColor;
this.style.fontFamily=FontFamily;
this.style.fontSize = FontSize + "pt";
this.style.fontWeight="normal";
this.style.fontStyle="normal";
this.style.backgroundColor=LowBgColor;
if (WMu.length > 6)
{ MenuTextCentered = 'left';}
else
{MenuTextCentered = 'center';}
this.style.textAlign=MenuTextCentered;
if(this.Arr[2])this.style.backgroundImage="url(\""+this.Arr[2]+"\")";
if(Tfld.indexOf("<")==-1){this.style.width=Wd-LftXtra+P_X;this.style.height=Ht-TpXtra+P_X;this.style.paddingLeft=LeftPaddng+P_X;this.style.paddingTop=TopPaddng+P_X}
else{this.style.width=Wd+P_X;this.style.height=Ht+P_X}
if(Tfld.indexOf("<")==-1&&DomYes){t=Lctn.document.createTextNode(Tfld);this.appendChild(t)}
else this.innerHTML=Tfld;
if(this.Arr[3]){a=RLvl==1&&FirstLineHorizontal?BottomUp?9:3:RightToLeft?6:0;
if(Arrws[a]!=""){S=Arrws[a];W=Arrws[a+1];H=Arrws[a+2];T=RLvl==1&&FirstLineHorizontal?BottomUp?2:Ht-H-2:(Ht-H)/2;L=RightToLeft?2:Wd-W-2;
if(DomYes){t=Lctn.document.createElement("img");this.appendChild(t);
t.style.position="absolute";t.src=S;t.style.width=W+P_X;t.style.height=H+P_X;t.style.top=T+P_X;t.style.left=L+P_X}
else{Tfld+="<div id=\""+WMu+"_im\" style=\"position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit\"><img src=\""+S+"\"></div>";
this.innerHTML=Tfld;t=Lctn.document.all[WMu+"_im"]}
this.ai=t}}
if(ExpYes){this.onselectstart=CnclSlct;this.onmouseover=RLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
this.onmouseout=CloseMenu;this.onclick=RLvl==1&&UnfoldsOnClick&&this.Arr[3]?OpenMenu:GoTo}
else{RLvl==1&&UnfoldsOnClick?this.addEventListener("mouseover",OpenMenuClick,false):this.addEventListener("mouseover",OpenMenu,false);
this.addEventListener("mouseout",CloseMenu,false);
RLvl==1&&UnfoldsOnClick&&this.Arr[3]?this.addEventListener("click",OpenMenu,false):this.addEventListener("click",GoTo,false)}}
function NavMbrSetUp(MbC,PrMmbr,WMu,Wd,Ht,Nofs){
var a;
this.value=this.Arr[0];this.ro=0;
if(this.value.indexOf("rollover")!=-1){
this.ro=1;this.ri1=this.value.substring(this.value.indexOf("?")+1,this.value.lastIndexOf("?"));
this.ri2=this.value.substring(this.value.lastIndexOf("?")+1,this.value.length);this.rid=WMu+"i";
this.value="<img src=\""+this.ri1+"\" name=\""+this.rid+"\">"}
CntrTxt="<div align=\""+MenuTextCentered+"\">";
TxtClose="</font>"+ "</div>";
if(LeftPaddng&&this.value.indexOf("<")==-1&&MenuTextCentered=="left")this.value="�\;"+this.value;
this.Ovalue=this.value;
this.value=this.value.fontcolor(FontLowColor);
this.Ovalue=this.Ovalue.fontcolor(FontHighColor);
this.value=CntrTxt+"<font face=\""+FontFamily+"\" point-size=\""+FontSize+"\">"+this.value+TxtClose;
this.Ovalue=CntrTxt+"<font face=\""+FontFamily+"\" point-size=\""+FontSize+"\">"+this.Ovalue+TxtClose;
this.CCn=null;this.PrvMbr=PrMmbr;this.Hilite=0;this.DoRmbr=0;this.Clckd=0;this.visibility="inherit";
this.MN=WMu;this.NofChlds=Nofs;
this.bgColor=LowBgColor;
this.resizeTo(Wd,Ht);
if(!AcrssFrms&&this.Arr[2])this.background.src=this.Arr[2];
this.document.write(this.value);this.document.close();
this.CLyr=new Layer(Wd,MbC);
this.CLyr.Lvl=RLvl;this.CLyr.visibility="inherit";
this.CLyr.onmouseover=RLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;this.CLyr.onmouseout=CloseMenu;
this.CLyr.captureEvents(Event.MOUSEUP);this.CLyr.onmouseup=RLvl==1&&UnfoldsOnClick&&this.Arr[3]?OpenMenu:GoTo;
this.CLyr.OM=OpenMenu;
this.CLyr.LLyr=this;this.CLyr.resizeTo(Wd,Ht);this.CLyr.Ctnr=MbC;
if(this.Arr[3]){a=RLvl==1&&FirstLineHorizontal?BottomUp?9:3:RightToLeft?6:0;
if(Arrws[a]!=""){this.CLyr.ILyr=new Layer(Arrws[a+1],this.CLyr);this.CLyr.ILyr.visibility="inherit";
this.CLyr.ILyr.top=RLvl==1&&FirstLineHorizontal?BottomUp?2:Ht-Arrws[a+2]-2:(Ht-Arrws[a+2])/2;
this.CLyr.ILyr.left=RightToLeft?2:Wd-Arrws[a+1]-2;this.CLyr.ILyr.width=Arrws[a+1];this.CLyr.ILyr.height=Arrws[a+2];
ImgStr="<img src=\""+Arrws[a]+"\" width=\""+Arrws[a+1]+"\" height=\""+Arrws[a+2]+"\">";
this.CLyr.ILyr.document.write(ImgStr);this.CLyr.ILyr.document.close()}}}
function CreateMenuStructure(MNm,No,Mcllr){
status="Building menu";RLvl++;
var i,NOs,Mbr,W=0,H=0,PMb=null,WMnu=MNm+"1",MWd=eval(WMnu+"[5]"),MHt=eval(WMnu+"[4]"),Lctn=RLvl==1?FLoc:ScLoc;
var BRW=RLvl==1?BorderWidthMain:BorderWidthSub,BTWn=RLvl==1?BorderBtwnMain:BorderBtwnSub;
if(RLvl==1&&FirstLineHorizontal){
for(i=1;i<No+1;i++){WMnu=MNm+eval(i);W=eval(WMnu+"[5]")?W+eval(WMnu+"[5]"):W+MWd}
W=BTWn?W+(No+1)*BRW:W+2*BRW;H=MHt+2*BRW}
else{for(i=1;i<No+1;i++){WMnu=MNm+eval(i);H=eval(WMnu+"[4]")?H+eval(WMnu+"[4]"):H+MHt}
H=BTWn?H+(No+1)*BRW:H+2*BRW;W=MWd+2*BRW}
if(DomYes){var MbC=Lctn.document.createElement("div");MbC.style.position="absolute";MbC.style.visibility="hidden";Lctn.document.getElementById("navigationMenu").appendChild(MbC)}
else{if(Nav4)var MbC=new Layer(W,Lctn);
else{WMnu+="c";Lctn.document.body.insertAdjacentHTML("AfterBegin","<div id=\""+WMnu+"\" style=\"visibility:hidden; position:absolute;\"><\/div>");
var MbC=Lctn.document.all[WMnu]}}
MbC.SetUp=CntnrSetUp;MbC.SetUp(W,H,No,MNm+"1",Mcllr);
if(Exp4){MbC.InnerString="";
for(i=1;i<No+1;i++){WMnu=MNm+eval(i);MbC.InnerString+="<div id=\""+WMnu+"\" style=\"position:absolute;\"><\/div>"}
MbC.innerHTML=MbC.InnerString}
for(i=1;i<No+1;i++){WMnu=MNm+eval(i);NOs=eval(WMnu+"[3]");
W=RLvl==1&&FirstLineHorizontal?eval(WMnu+"[5]")?eval(WMnu+"[5]"):MWd:MWd;
H=RLvl==1&&FirstLineHorizontal?MHt:eval(WMnu+"[4]")?eval(WMnu+"[4]"):MHt;
if(DomYes){Mbr=Lctn.document.createElement("div"); Mbr.style.position="absolute";Mbr.style.visibility="inherit";MbC.appendChild(Mbr)}
else Mbr=Nav4?new Layer(W,MbC):Lctn.document.all[WMnu];
Mbr.Arr=eval(WMnu);
Mbr.SetUp=Nav4?NavMbrSetUp:MbrSetUp;Mbr.SetUp(MbC,PMb,WMnu,W,H,NOs);
if(NOs&&!BuildOnDemand){Mbr.CCn=CreateMenuStructure(WMnu+"_",NOs,Mbr)}
PMb=Mbr}
MbC.FrstMbr=Mbr;
RLvl--;
return(MbC)}
function CreateMenuStructureAgain(MNm,No){
if(!BuildOnDemand){
var i,WMnu,NOs,PMb,Mbr=FrstCntnr.FrstMbr;RLvl++;
for(i=No;i>0;i--){WMnu=MNm+eval(i);NOs=eval(WMnu+"[3]");PMb=Mbr;if(NOs)Mbr.CCn=CreateMenuStructure(WMnu+"_",NOs,Mbr);Mbr=Mbr.PrvMbr}
RLvl--}
else{ var Mbr=FrstCntnr.FrstMbr;
while(Mbr){Mbr.CCn=null;Mbr=Mbr.PrvMbr}}}Hi thanks...As you said I am performing only on onload event..only thing i am confused is if i remove the javacript MRHeader.js everything works fine...am totally confused...pls help
Here is my JSP code for my input page
<%@page import="java.util.*" %>
<%@page import="com.ford.mr.*" %>
<HTML>
<HEAD>
<link href="./css/mplstyle.css" rel="STYLESHEET" type="text/css">
<title>Input Frame</title>
<link type="text/css" rel="STYLESHEET" href="./css/classic.css">
<STYLE>
.vis1 { visibility:visible }
.vis2 { visibility:hidden }
</STYLE>
<%--
MRIFValidation.js contains the java script for the following requirement:
1. Setting the current date in date to compare
2. All input frame client validations.
E.g Plant id should not be empty.
--%>
<script type="text/javascript" src="./javascript/MRIFValidation.js"> </script>
<%--
MRR2HandleDropdown.js is the javascript for the input frame server side actions
It has many functions related to drop down populating and rendering the data
to user from server.
--%>
<script language="javascript" src="./javascript/MRR2HandleDropdown.js"> </script>
<%--
MRheader.js is the javascript which displays the header for our application
plus it has an internal call to MRMenuItem.js and menuscript.js which
builds the menu bar for our application
Issue is here - On commenting the below the previously entered user
inputs are displayed correctly. Else they are not displayed.
--%>
<script language="javascript" src="./javascript/MRheader.js"> </script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
a:visited {
color: #0000FF;
.style1 {font-weight: bold}
.style2 {color: #FF0000}
body {
background-color: #FFFFFF;
-->
</style>
<%--
Declaring all the JSP variables used in the page
These variables are used for holding the session parameters
and are used while setting the selected values in the screen.
--%>
<%!
// HTTPSession object
HttpSession sess;
// To hold session Variables //
// Selected plant index
String plantIndex;
// Selected supplier index
String supplierIndex;
// Selected part index
String partIndex;
// List of plant codes
Vector plantCodes = new Vector();
// List of supplier codes
Vector supplierCodes = new Vector();
// List of part codes
Vector partCodes = new Vector();
// To hold the part description for the selected part
String partDescription;
// List of release numbers matching the selected plant, supplier & part
Vector releaseNumbers = new Vector();
// Type of release - Weekly / Daily
String releaseType;
// Selected release1 index
String release1Index;
// Selected release2 index
String release2Index;
// Holds the issue date 1 corresponding to release 1 selected
String issueDate1;
// Holds the issue date 2 corresponding to release 2 selected
String issueDate2;
// List of matching release numbers to the entered issue date1 (Might be one or two
// in case if amended release exist)
Vector matchingRelease1Number = new Vector();
// List of matching release numbers to the entered issue date2 (Might be one or two
// in case if amended release exist)
Vector matchingRelease2Number = new Vector();
// Size of matchingRelease1Number collection
int matchingRelease1Size = 0;
// Size of matchingRelease2Number collection
int matchingRelease2Size = 0;
// Boolean flags to hold if amended release exists in the release numbers
// matching the issue dates entered by user.
boolean amendedRelease1Exist;
boolean amendedRelease2Exist;
String pageName = "";
%>
<%--
The below code does the following:
1. Fetches the various values available in session
2. Stores the same in various JSP variables for access within the page
--%>
<%
System.out.println("In input frame page");
sess = request.getSession(true);
if(sess != null) {
System.out.println("Session id in input frame: "+ sess.getId());
plantIndex = (String) sess.getAttribute("selectedPlantIndex");
supplierIndex = (String) sess.getAttribute("selectedSupplierIndex");
partIndex = (String) sess.getAttribute("selectedPartIndex");
//plantCodes = (Vector) sess.getAttribute("plantCodes");
supplierCodes = (Vector) sess.getAttribute("supplierCodes");
partCodes = (Vector) sess.getAttribute("partCodes");
partDescription = (String) sess.getAttribute("partDescription");
releaseNumbers = (Vector) sess.getAttribute("releaseNumbers");
releaseType = (String) sess.getAttribute("releaseType");
release1Index = (String) sess.getAttribute("selectedRelease1Index");
release2Index =(String) sess.getAttribute("selectedRelease2Index");
issueDate1 = (String) sess.getAttribute("issueDate1");
issueDate2 = (String) sess.getAttribute("issueDate2");
matchingRelease1Number = (Vector) sess.getAttribute("correspondingRelease1Number");
matchingRelease2Number = (Vector) sess.getAttribute("correspondingRelease2Number");
System.out.println("Displaying values in session *******************");
Enumeration enum = sess.getAttributeNames();
while(enum.hasMoreElements()) {
String elementName = (String) enum.nextElement();
System.out.println("element:"+ elementName+": Value: "+ sess.getAttribute(elementName));
System.out.println("Plant Index JSP variable:"+ plantIndex);
%>
<%--
This code is used for getting the plant codes from
the DB. Currently it is hardcoded.
--%>
<%
MRR2GetPlantCodes obj = new MRR2GetPlantCodes();
plantCodes = obj.getPlantCodes();
%>
<%--
The below two blocks are used to iterate through matchingRelease1Number & matchingRelease2Number
and checks if it has amended release. If yes, sets a boolean flag.
matchingRelease1Number & matchingRelease2Number are two collections which
contains the release number(s) matching the inputted issue date
--%>
<%
// Code to set boolean flag amendedRelease1Exist
if(matchingRelease1Number != null) {
Iterator relIter = matchingRelease1Number.iterator();
while(relIter.hasNext()) {
if( ((String)relIter.next()).endsWith("A") ) {
amendedRelease1Exist = true;
// Code to set boolean flag amendedRelease2Exist
if(matchingRelease2Number != null) {
Iterator relIter = matchingRelease2Number.iterator();
while(relIter.hasNext()) {
if( ((String)relIter.next()).endsWith("A") ) {
amendedRelease2Exist = true;
%>
<%--
The below script has one method fillDropDown which is used for setting the
values of the various I/P controls to user selected values:
It sets the below selected values:
1. Plant Index, Supplier Index, Part Index, Part description
2. Release Type (Daily / weekly)
3. Release 1 Index, Release 2 Index
4. Issue date1 & Issue date2
--%>
<script language="javascript">
function fillDropDown(field) {
with(field) {
var partD = "<%=partDescription%>"
<% System.out.println("Loading the index values in input frame......");%>
// inputform.country.selectedIndex = inputform.hiddencountry.value
// Loading plant Index, supplier Index, part index and part description to selected values
<% if(plantIndex != null && !plantIndex.equals("")) {%>
inputframe.plant.selectedIndex = "<%=Integer.parseInt(plantIndex)%>"
<% System.out.println("Selected Plant Index after loading:"+plantIndex);} %>
<% if(supplierIndex != null && !supplierIndex.equals("")) { System.out.println("****Supplier Index not equals null..."+Integer.parseInt(supplierIndex)); %>
inputframe.supplier.selectedIndex = "<%=Integer.parseInt(supplierIndex)%>"
<% } %>
<% if(partIndex != null && !partIndex.equals("")) { %>
inputframe.part.selectedIndex = "<%=Integer.parseInt(partIndex)%>"
<% } %>
<% if(partDescription != null && !partDescription.equals("")) { %>
document.getElementById("partDescription").innerHTML = partD
<% } %>
// Making the default release type selection as done by user
<% if(releaseType != null && !"".equals(releaseType)) {
if("daily".equals(releaseType)) {%>
inputframe.release[0].checked = "checked"
<% //isDaily = true;
} else { %>
inputframe.release[1].checked = "checked"
<% //isWeekly = true;
} %>
<%--
The below code is used to fetch the session variable issueDate1
& issueDate2 (based on the release numbers selected)
and sets the same in two text fields.
--%>
<% if(issueDate1 != null && !issueDate1.equals("")) { %>
inputframe.issueDate1.value = "<%=issueDate1%>"
<% } %>
<% if(issueDate2 != null && !issueDate2.equals("")) { %>
inputframe.issueDate2.value = "<%=issueDate2%>"
<% } %>
<%--
Loading release drop down with the value matching with the entered issue date.
Scenario : User enters the issue date and the corresponding release number is
selected in drop down.
Logic 1:
1. Pass the issue date entered by user and get the matching release numbers
from EJB
2. Compare this with the combo collection and get the perfect match.
3. If more than one match is found take the one with amendment by default
4. Else get the matching one
5. Update the selected index of dropdown to this value
--%>
if(inputframe.release1.options.length > 0) {
var matchingCombo1Index = 0
var comboValue
var matchFound = "false"
var size
var amended = false;
var amendedReleaseExist = "<%=amendedRelease1Exist%>";
var firstValue = ""
var secondValue = ""
var amendedValue = ""
var j = 0
<%
if(matchingRelease1Number != null && matchingRelease1Number.size() != 0) {
Iterator iter = matchingRelease1Number.iterator();
matchingRelease1Size = matchingRelease1Number.size(); %>
size = "<%= matchingRelease1Size %>"
//alert("Size of collection to be matched:"+size)
<% while(iter.hasNext()) {
//String matchFound1 = "false";
String relValue = (String)iter.next();%>
//alert("Collection value under iteration:"+ "<%=relValue%>")
amended = "<%=relValue.endsWith("A")%>"
if(amended) {
amendedValue = "<%=relValue%>"
//alert("Collection value under iteration ends with A:"+amended)
var comb = "<%=relValue%>"
j = j + 1
for(var i = 0; i < inputframe.release1.options.length; i++) {
// breaking the for loop when matchingCombo1Index is set greater than 0
/*if(matchFound == true) {
break
comboValue = inputframe.release1.options.value
//alert("Combo value:->"+comboValue)
//alert("rel value in comparison:"+ comb);
if(comboValue == comb) {
if(size == 1) {
matchFound = "true";
if(size == 2) {
if(j == 1)
firstValue = comb
if(j == 2)
secondValue = comb
// The below if block shall be also kept as if((amended||(!amendedReleaseExist)==true)
// The below one perfectly works fine
if(amended || !amendedReleaseExist) {
matchFound = "true";
if(matchFound == "true") {
matchingCombo1Index = i
// alert("Matching combo index set to:"+ matchingCombo1Index)
inputframe.release1.selectedIndex = matchingCombo1Index
if(size == 2)
document.getElementById('errorArea').innerHTML = "There are"
+ " two release numbers for the particular Issue date."
+" Please select either one of the release numbers ("+firstValue+ " or "+secondValue+" )."
+" Default selection in the Release drop down is "+ amendedValue+ "."
matchingCombo1Index = 0;
matchFound = "false";
// Breaking the for loop
break;
<%
sess.removeAttribute("correspondingRelease1Number") ;
}%>
// Setting the selected release 1 index based on the logic done above.
if(matchingCombo1Index == 0) {
<% if(release1Index != null && !release1Index.equals("")) { matchingRelease1Number = null;%>
inputframe.release1.selectedIndex = "<%=Integer.parseInt(release1Index)%>"
<% } %>
<%--
Performing the above logic to select Release2 value
when the user enters issue date2
--%>
if(inputframe.release2.options.length > 0) {
var matchingCombo2Index = 0
var comboValue
var matchFound = "false"
var size
var amended = false;
var amendedReleaseExist = "<%=amendedRelease2Exist%>";
var firstValue = ""
var secondValue = ""
var amendedValue = ""
var j = 0
<%
if(matchingRelease2Number != null && matchingRelease2Number.size() != 0) {
Iterator iter = matchingRelease2Number.iterator();
matchingRelease2Size = matchingRelease2Number.size(); %>
size = "<%= matchingRelease2Size %>"
//alert("Size of collection to be matched:"+size)
<% while(iter.hasNext()) {
String matchFound1 = "false";
String relValue = (String)iter.next();%>
//alert("Collection value under iteration:"+ "<%=relValue%>")
amended = "<%=relValue.endsWith("A")%>"
if(amended) {
amendedValue = "<%=relValue%>"
//alert("Collection value under iteration ends with A:"+amended)
var comb = "<%=relValue%>"
j = j + 1
for(var i = 0; i < inputframe.release2.options.length; i++) {
// breaking the for loop when matchingCombo2Index is set greater than 0
/*if(matchFound == true) {
break
comboValue = inputframe.release2.options[i].value
//alert("Combo value:->"+comboValue)
//alert("rel value in comparison:"+ comb);
if(comboValue == comb) {
if(size == 1) {
matchFound = "true";
if(size == 2) {
if(j == 1)
firstValue = comb
if(j == 2)
secondValue = comb
// The below if block shall be also kept as if((amended||(!amendedReleaseExist)==true)
// The below one perfectly works fine
if(amended || !amendedRelease2Exist) {
matchFound = "true";
if(matchFound == "true") {
matchingCombo2Index = i
// alert("Matching combo index set to:"+ matchingCombo2Index)
inputframe.release2.selectedIndex = matchingCombo2Index
if(size == 2)
document.getElementById('errorArea').innerHTML = "There are"
+ " two release numbers for the particular Issue date."
+" Please select either one of the release numbers ("+firstValue+ " or "+secondValue+" )."
+" Default selection in the Release drop down is "+ amendedValue+ "."
matchingCombo2Index = 0;
matchFound = "false";
// Breaking the for loop
break;
<%
sess.removeAttribute("correspondingRelease2Number") ;
}%>
// Loading the selected release2 value in drop down
if(matchingCombo2Index == 0) {
<% if(release2Index != null && !release2Index.equals("")) { matchingRelease2Number = null;%>
inputframe.release2.selectedIndex = "<%=Integer.parseInt(release2Index)%>"
<% } %>
} // end of WITH
Logic 2: Not used
1. Pass the issue date entered by user and get the matching release numbers
2. Get the release numbers from session.
3. if release type is daily get the daily release numbers else get weekly release numbers
4. Compare the matching release numbers with daily / weekly release numbers collection
5. Find the match and update the selected index of drop down to this value
}// end of function
</script>
</HEAD>
<%-- Calling the two methods onload event of body --%>
<BODY onload="setCurrentDate(this);fillDropDown(this)"> -
Using the Execute Preloaded Option for ABAP Dataflows in SAP BODS
Hello All,
This is regarding the use of Advanced Option in SAP Application Type (ECC) Datastore settings in SAP BODS 4.2, where there are two options to select from for ABAP Execution Option property: (1)Generate and Execute and (2) Execute Preloaded. Since our ECC client is often locked by BASIS team even on DEV environment, we would like to make use of the second option 'Execute Preloaded' so that we could extract the data from ECC tables without having to ask the BASIS team to unlock the ECC client every time before extraction.
The problem is that we are getting an error upon generating and uploading the ABAP program to ECC client. I have searched the blogs and so far I have only found that there are certain ABAP programs or function modules that come with SAP BODS which need to be installed by BASIS team on ECC side to allow the ABAP dataflows to be generated and uploaded to ECC server. I would appreciate it if anyone could provide a list of which function modules BASIS needs to install on ECC or a blog that provides details around using this option.
So far, from the SAP BODS designer, we are performing below steps but getting an error upon generating and uploading the ABAP dataflow program:
1. Create a test ABAP Dataflow using SAP ECC datastore. Provide the ABAP program options.
2. Right click, select Generate ABAP Program.
3. Once the ABAP Program Generation Dialog box appears, check the box "Upload Generated Program".
4. Upon clicking OK, we are getting the following error:
The ABAP program <ZRTEST01> for ABAP data flow <RT_TEST_R3> (datastore <R3_DS>) was not uploaded: < RFC CallReceive error <Function /BODS/RFC_ABAP_INSTALL_AND_RUN: RFC_ABAP_MESSAGE- Exception condition "NOT_SUPPORTED_BY_GUI" trigger[SAP NWRFC 720][SAP Partner ### ][clientname][servername][accountname][4103]>. >.
Any help would be greatly appreciated.
Thanks,
RizwanAll,
The BASIS team reviewed steps provided in the BODS document and attempted to install the Function Modules but now none of the BODS jobs would work. All BODS jobs are being terminted with the Syntax Error error when extracting data from ECC using ABAP dataflows:
17740 16404 R3C-150412 06/17/2014 9:38:46 AM |Data flow RT_DF_TEST_PC207
17740 16404 R3C-150412 06/17/2014 9:38:46 AM RFC CallReceive error <Function /BODS/RFC_ABAP_INSTALL_AND_RUN: RFC_ABAP_RUNTIME_FAILURE-(Exception_Key: SYNTAX_ERROR)- Syntax
17740 16404 R3C-150412 06/17/2014 9:38:46 AM error in program /BODS/SAPLBODS .[SAP NWRFC 720][SAP Partner 740 ][DEV1][Server][account][4103]>.
22052 20572 R3C-150412 06/17/2014 9:38:46 AM |Data flow RT_DF_TEST_PC207
22052 20572 R3C-150412 06/17/2014 9:38:46 AM RFC CallReceive error <Function /BODS/RFC_ABAP_INSTALL_AND_RUN: RFC_ABAP_RUNTIME_FAILURE-(Exception_Key: SYNTAX_ERROR)- Syntax
22052 20572 R3C-150412 06/17/2014 9:38:46 AM error in program /BODS/SAPLBODS .[SAP NWRFC 720][SAP Partner 740 ][DEV1][Server][account][4103]>.
Maybe you are looking for
-
Any Ideas for Automating Repetitive Tasks in AA3?
I could really use some help if anyone has an idea. Many of the jobs I do monthly involve slicing up one or more audio files and saving the slices to their own folder with unique file names. There are SSOOOO many little things that have to be done to
-
Partial invoice distribution in sequence or proportionate
Hi All, We are are having an issue with partial invoice field in case of multiple account assignments. We are using extended classic scenario in SRM 4.0 In backend configuration for account assignment category, partial invoice for cost center has bee
-
Macbook Pro monitor hinge adjustment
Hello, does anyone know how to adjust the mbp monitor hinge by loosing up all the screws? video? picture? anything? been suffering by the small angle...close to 90 degree....jees....thank you for the help.
-
Need to call Apple USA on non-freephone number
Didn't really know where to post this. But after an age of problems with two faulty powerbooks, I placed a new order online and forgot to add in a printer to the order. It won't let me do it online, so I need to contact someone today before the order
-
Parameters in Init.ora for Materialized Views
Fellow Experts, Are there any other parameters that I need to insert in the init.ora besides QUERY_REWRITE_ENABLED and QUERY_REWRITE_INTEGRITY once I create a materialize view ? Thanks. Ray.