Need some correct vocabulary - interfaces

Helo again world.
If an interface cannot be instantiated with the new keyword, what is it about interfaces that allows one to use an interface name as a data type when declaring an object?
Thank you one and all.
Ciao for now.

Hello.
Imagine a class like this one:
class A
implements StartValue
implements EndValue
private:
int start, end;
Then you have the interfaces:
interface StartTime
void setStart(int);
interface EndTime
void setEnd(int);
Theese interfaces define different ways to interact with an object.
Then consider another class:
class B
private:
StartValue start;
public:
void Initialize()
start = (StartValue) new A();
start.setStart(1234);
Now class B declares a variable with the datatype StartValue. The variable is able to hold a reference to any object that can be interacted with using the StartValue interface.
B.Initialize() will instantiate class A, and put a reference to the new object into the 'start' variable.
This way, any code that follows in class B does not need to know what kind of object that is put into the
'start' variable, as long as that object does implement StartValue.
Now, if you try to compile the above code, you get errors saying that you cannot instantiate class A.
This is because the class definition states that class A implements two interfaces, but I have not yet written
the implementation of those interfaces. I need to add the two methods to class A:
class A
implements StartValue
implements EndValue
private:
int start, end;
public:
void setStart(int newValue) { start = newValue);
void setEnd(int newValue) { start = newValue);
I hopes that you can get something out of this 'tour'.
If you have been coded a lot of C++, you might think of this as multiple class inheritance, having StartValue
and EndValue as abstract classes and setStart and setEnd as pure virtual functions.
If you have been coded COM under winodws, then you should really have no problem with the concepts
INTERFACE and OBJECT, as they work the same way as in java.
Best regards,
Ivar Svendsen

Similar Messages

  • DO i need some extra hardware interface for receving both Audio and video

    hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
    but my code is working fine for either one at a time.
    DO i need some extra hardware interface for receving both Audio and video. im using code AVTransmit and AVReceive found from this site only
    After running TX
    i give Dsound:// & vfw://0 in Media Locater only sound is received and no vedio
    and when i give vfw://0 in Media Locater only live video is transmited.
    im using JMF1.1.2e.
    if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
    transmiter/server side code .first run TX on server
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.media.rtp.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    public class Tx extends JFrame implements ActionListener, KeyListener,
    MouseListener, WindowListener {
    Vector targets;
    JList list;
    JButton startXmit;
    JButton rtcp;
    JButton update;
    JButton expiration;
    JButton statistics;
    JButton addTarget;
    JButton removeTarget;
    JTextField tf_remote_address;
    JTextField tf_remote_data_port;
    JTextField tf_media_file;
    JTextField tf_data_port;
    TargetListModel listModel;
    AVTransmitter avTransmitter;
    RTCPViewer rtcpViewer;
    JCheckBox cb_loop;
    Config config;
    public Tx() {
    setTitle( "JMF/RTP Transmitter");
         config= new Config();
         GridBagLayout gridBagLayout= new GridBagLayout();
         GridBagConstraints gbc;
         JPanel p= new JPanel();
         p.setLayout( gridBagLayout);
         JPanel localPanel= createLocalPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.gridwidth= 2;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
         p.add( localPanel);
         JPanel targetPanel= createTargetPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 1;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
    p.add( targetPanel);
         JPanel mediaPanel= createMediaPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 2;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
    p.add( mediaPanel);
    JPanel buttonPanel= new JPanel();
    rtcp= new JButton( "RTCP Monitor");
    update= new JButton( "Transmission Status");
         update.setEnabled( false);
         rtcp.addActionListener( this);
         update.addActionListener( this);
         buttonPanel.add( rtcp);
         buttonPanel.add( update);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 3;
    gbc.gridwidth= 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
         p.add( buttonPanel);
    getContentPane().add( p);
         list.addMouseListener( this);
         addWindowListener( this);
    pack();
    setVisible( true);
    private JPanel createMediaPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "Media Locator:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_media_file= new JTextField( 35);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
         p.add( tf_media_file);
         tf_media_file.setText( config.media_locator);
         cb_loop= new JCheckBox( "loop");
         startXmit= new JButton( "Start Transmission");
         startXmit.setEnabled( true);
         startXmit.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 2;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
         p.add( cb_loop);
         cb_loop.setSelected( true);
         cb_loop.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
         p.add( startXmit);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
         p.setBorder( titledBorder);
         return p;
    private JPanel createTargetPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         targets= new Vector();
         for( int i= 0; i < config.targets.size(); i++) {
         targets.addElement( config.targets.elementAt( i));
    listModel= new TargetListModel( targets);
    list= new JList( listModel);
         list.addKeyListener( this);
         list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    JScrollPane scrollPane= new JScrollPane( list,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
         p.add( scrollPane);
    JPanel p1= new JPanel();
         p1.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_address= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
         p1.add( tf_remote_address);
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
         p1.add( tf_remote_data_port);     
    JPanel p2= new JPanel();
    addTarget= new JButton( "Add Target");     
    removeTarget= new JButton( "Remove Target");
         p2.add( addTarget);
         p2.add( removeTarget);
         addTarget.addActionListener( this);
         removeTarget.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.gridwidth= 2;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 20,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
         p1.add( p2);
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
         p.add( p1);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
         p.setBorder( titledBorder);
         return p;
    private JPanel createLocalPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         JTextField tf_local_host= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
         p.add( tf_local_host);
         try {
    String host= InetAddress.getLocalHost().getHostAddress();     
         tf_local_host.setText( host);
         } catch( UnknownHostException e) {
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
         p.add( tf_data_port);
         tf_data_port.setText( config.local_data_port);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
         p.setBorder( titledBorder);
         return p;
    public void actionPerformed( ActionEvent event) {
    Object source= event.getSource();
         if( source == addTarget) {
         String ip= tf_remote_address.getText().trim();
         String port= tf_remote_data_port.getText().trim();
         String localPort= tf_data_port.getText().trim();
         addTargetToList( localPort, ip, port);
         if( avTransmitter != null) {
         avTransmitter.addTarget( ip, port);
         } else if( source == removeTarget) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              if( avTransmitter != null) {
         avTransmitter.removeTarget( target.ip, target.port);
              targets.removeElement( target);
              listModel.setData( targets);          
         } else if( source == startXmit) {
         if( startXmit.getLabel().equals( "Start Transmission")) {          
         int data_port= new Integer( tf_data_port.getText()).intValue();
              avTransmitter= new AVTransmitter( this, data_port);
         avTransmitter.start( tf_media_file.getText().trim(), targets);          
              avTransmitter.setLooping( cb_loop.isSelected());
         startXmit.setLabel( "Stop Transmission");
         } else if( startXmit.getLabel().equals( "Stop Transmission")) {
              avTransmitter.stop();
              avTransmitter= null;
              removeNonBaseTargets();
              listModel.setData( targets);
         startXmit.setLabel( "Start Transmission");          
         } else if( source == rtcp) {
         if( rtcpViewer == null) {
         rtcpViewer= new RTCPViewer();
         } else {
              rtcpViewer.setVisible( true);
              rtcpViewer.toFront();
         } else if( source == cb_loop) {
         if( avTransmitter != null) {
              avTransmitter.setLooping( cb_loop.isSelected());
    private void removeNonBaseTargets() {
         String localPort= tf_data_port.getText().trim();
         for( int i= targets.size(); i > 0;) {
         Target target= (Target) targets.elementAt( i - 1);
         if( !target.localPort.equals( localPort)) {
    targets.removeElement( target);
         i--;
    public void addTargetToList( String localPort,
                             String ip, String port) {     
    ListUpdater listUpdater= new ListUpdater( localPort, ip,
                                  port, listModel, targets);
    SwingUtilities.invokeLater( listUpdater);           
    public void rtcpReport( String report) {
         if( rtcpViewer != null) {
         rtcpViewer.report( report);
    public void windowClosing( WindowEvent event) {
         config.local_data_port= tf_data_port.getText().trim();
         config.targets= new Vector();
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( config.local_data_port)) {
              config.addTarget( target.ip, target.port);
         config.media_locator= tf_media_file.getText().trim();
         config.write();
    System.exit( 0);
    public void windowClosed( WindowEvent event) {
    public void windowDeiconified( WindowEvent event) {
    public void windowIconified( WindowEvent event) {
    public void windowActivated( WindowEvent event) {
    public void windowDeactivated( WindowEvent event) {
    public void windowOpened( WindowEvent event) {
    public void keyPressed( KeyEvent event) {
    public void keyReleased( KeyEvent event) {
    Object source= event.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
    public void keyTyped( KeyEvent event) {
    public void mousePressed( MouseEvent e) {
    public void mouseReleased( MouseEvent e) {
    public void mouseEntered( MouseEvent e) {
    public void mouseExited( MouseEvent e) {
    public void mouseClicked( MouseEvent e) {
    Object source= e.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              tf_remote_address.setText( target.ip);
              tf_remote_data_port.setText( target.port);
         int index= list.locationToIndex( e.getPoint());
    public static void main( String[] args) {
    new Tx();
    class TargetListModel extends AbstractListModel {
    private Vector options;
    public TargetListModel( Vector options) {
         this.options= options;
    public int getSize() {
         int size;
         if( options == null) {
         size= 0;
         } else {
         size= options.size();
         return size;
    public Object getElementAt( int index) {
    String name;
    if( index < getSize()) {
         Target o= (Target)options.elementAt( index);
    name= o.localPort + " ---> " + o.ip + ":" + o.port;
         } else {
         name= null;
         return name;
    public void setData( Vector data) {
         options= data;
         fireContentsChanged( this, 0, data.size());
    class ListUpdater implements Runnable {
    String localPort, ip, port;
    TargetListModel listModel;
    Vector targets;
    public ListUpdater( String localPort, String ip, String port,
                   TargetListModel listModel, Vector targets) {
         this.localPort= localPort;
         this.ip= ip;
         this.port= port;
         this.listModel= listModel;
         this.targets= targets;
    public void run() {
    Target target= new Target( localPort, ip, port);
         if( !targetExists( localPort, ip, port)) {
         targets.addElement( target);
    listModel.setData( targets);
    public boolean targetExists( String localPort, String ip, String port) {
         boolean exists= false;
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( localPort)
         && target.ip.equals( ip)
              && target.port.equals( port)) {          
              exists= true;
         break;
         return exists;
    >>>>>>>>>>>>>>>>>
    import java.awt.*;
    import java.io.*;
    import java.net.InetAddress;
    import java.util.*;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import javax.media.control.TrackControl;
    import javax.media.control.QualityControl;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
    ControllerListener {
    // Input MediaLocator
    // Can be a file or http or capture source
    private MediaLocator locator;
    private String ipAddress;
    private int portBase;
    private Processor processor = null;
    private RTPManager rtpMgrs[];
    private int localPorts[];
    private DataSource dataOutput = null;
    private int local_data_port;
    private Tx tx;
    public AVTransmitter( Tx tx, int data_port) {
         this.tx= tx;
         local_data_port= data_port;
    * Starts the transmission. Returns null if transmission started ok.
    * Otherwise it returns a string with the reason why the setup failed.
    public synchronized String start( String filename, Vector targets) {
         String result;
         locator= new MediaLocator( filename);
         // Create a processor for the specified media locator
         // and program it to output JPEG/RTP
         result = createProcessor();
         if (result != null) {
         return result;
         // Create an RTP session to transmit the output of the
         // processor to the specified IP address and port no.
         result = createTransmitter( targets);
         if (result != null) {
         processor.close();
         processor = null;
         return result;
         // Start the transmission
         processor.start();
         return null;
    * Use the RTPManager API to create sessions for each media
    * track of the processor.
    private String createTransmitter( Vector targets) {
         // Cheated. Should have checked the type.
         PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
         PushBufferStream pbss[] = pbds.getStreams();
         rtpMgrs = new RTPManager[pbss.length];
         localPorts = new int[ pbss.length];
         SessionAddress localAddr, destAddr;
         InetAddress ipAddr;
         SendStream sendStream;
         int port;
         SourceDescription srcDesList[];
         for (int i = 0; i < pbss.length; i++) {
         // for (int i = 0; i < 1; i++) {
         try {
              rtpMgrs[i] = RTPManager.newInstance();     
              port = local_data_port + 2*i;
              localPorts[ i]= port;
              localAddr = new SessionAddress( InetAddress.getLocalHost(),
                                  port);
              rtpMgrs.initialize( localAddr);          
              rtpMgrs[i].addReceiveStreamListener(this);
              rtpMgrs[i].addRemoteListener(this);
         for( int k= 0; k < targets.size(); k++) {
              Target target= (Target) targets.elementAt( k);
              int targetPort= new Integer( target.port).intValue();
              addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
              sendStream = rtpMgrs[i].createSendStream(dataOutput, i);          
              sendStream.start();
         } catch (Exception e) {
              e.printStackTrace();
              return e.getMessage();
         return null;
    public void addTarget( String ip, String port) {
         for (int i= 0; i < rtpMgrs.length; i++) {
         int targetPort= new Integer( port).intValue();
         addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
    public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
         try {
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         mgr.addTarget( addr);
         tx.addTargetToList( localPort + "", ip, port + "");
         } catch( Exception e) {
         e.printStackTrace();
    public void removeTarget( String ip, String port) {
         try {     
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
         } catch( Exception e) {
         e.printStackTrace();
    boolean looping= true;
    public void controllerUpdate( ControllerEvent ce) {
         System.out.println( ce);
         if( ce instanceof DurationUpdateEvent) {
         Time duration= ((DurationUpdateEvent) ce).getDuration();
         System.out.println( "duration: " + duration.getSeconds());
         } else if( ce instanceof EndOfMediaEvent) {
         System.out.println( "END OF MEDIA - looping=" + looping);
         if( looping) {
         processor.setMediaTime( new Time( 0));
              processor.start();
    public void setLooping( boolean flag) {
         looping= flag;
    public void update( ReceiveStreamEvent event) {
         String timestamp= getTimestamp();
         StringBuffer sb= new StringBuffer();
         if( event instanceof InactiveReceiveStreamEvent) {
         sb.append( timestamp + " Inactive Receive Stream");
         } else if( event instanceof ByeEvent) {
         sb.append( timestamp + " Bye");
         } else {
         System.out.println( "ReceiveStreamEvent: "+ event);
         tx.rtcpReport( sb.toString());     
    public void update( RemoteEvent event) {     
         String timestamp= getTimestamp();
         if( event instanceof ReceiverReportEvent) {
         ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
         StringBuffer sb= new StringBuffer();
         sb.append( timestamp + " RR");
         if( rr != null) {
              Participant participant= rr.getParticipant();
              if( participant != null) {
              sb.append( " from " + participant.getCNAME());
              sb.append( " ssrc=" + rr.getSSRC());
              } else {
              sb.append( " ssrc=" + rr.getSSRC());
              tx.rtcpReport( sb.toString());
         } else {
         System.out.println( "RemoteEvent: " + event);
    private String getTimestamp() {
         String timestamp;
         Calendar calendar= Calendar.getInstance();
         int hour= calendar.get( Calendar.HOUR_OF_DAY);
         String hourStr= formatTime( hour);
         int minute= calendar.get( Calendar.MINUTE);
         String minuteStr= formatTime( minute);
         int second= calendar.get( Calendar.SECOND);
         String secondStr= formatTime( second);
         timestamp= hourStr + ":" + minuteStr + ":" + secondStr;     
         return timestamp;
    private String formatTime( int time) {     
         String timeStr;
         if( time < 10) {
         timeStr= "0" + time;
         } else {
         timeStr= "" + time;
         return timeStr;
    * Stops the transmission if already started
    public void stop() {
         synchronized (this) {
         if (processor != null) {
              processor.stop();
              processor.close();
              processor = null;
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTargets( "Session ended.");
              rtpMgrs[ i].dispose();
    public String createProcessor() {
         if (locator == null) {
         return "Locator is null";
         DataSource ds;
         DataSource clone;
         try {
         ds = javax.media.Manager.createDataSource(locator);
         } catch (Exception e) {
         return "Couldn't create DataSource";
         // Try to create a processor to handle the input media locator
         try {
         processor = javax.media.Manager.createProcessor(ds);
         processor.addControllerListener( this);     
         } catch (NoProcessorException npe) {
         return "Couldn't create processor";
         } catch (IOException ioe) {
         return "IOException creating processor";
         // Wait for it to configure
         boolean result = waitForState(processor, Processor.Configured);
         if (result == false)
         return "Couldn't configure processor";
         // Get the tracks from the processor
         TrackControl [] tracks = processor.getTrackControls();
         // Do we have atleast one track?
         if (tracks == null || tracks.length < 1)
         return "Couldn't find tracks in processor";
         // Set the output content descriptor to RAW_RTP
         // This will limit the supported formats reported from
         // Track.getSupportedFormats to only valid RTP formats.
         ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
         processor.setContentDescriptor(cd);
         Format supported[];
         Format chosen;
         boolean atLeastOneTrack = false;
         // Program the tracks.
         for (int i = 0; i < tracks.length; i++) {
         Format format = tracks[i].getFormat();
         if (tracks[i].isEnabled()) {
              supported = tracks[i].getSupportedFormats();
              // We've set the output content to the RAW_RTP.
              // So all the supported formats should work with RTP.
              // We'll just pick the first one.
              if (supported.length > 0) {
              if (supported[0] instanceof VideoFormat) {
                   // For video formats, we should double check the
                   // sizes since not all formats work in all sizes.
                   chosen = checkForVideoSizes(tracks[i].getFormat(),
                                       supported[0]);
              } else
                   chosen = supported[0];
              tracks[i].setFormat(chosen);
              System.err.println("Track " + i + " is set to transmit as:");
              System.err.println(" " + chosen);
              atLeastOneTrack = true;
              } else
              tracks[i].setEnabled(false);
         } else
              tracks[i].setEnabled(false);
         if (!atLeastOneTrack)
         return "Couldn't set any of the tracks to a valid RTP format";
         // Realize the processor. This will internally create a flow
         // graph and attempt to create an output datasource for JPEG/RTP
         // audio frames.
         result = waitForState(processor, Controller.Realized);
         if (result == false)
         return "Couldn't realize processor";
         // Set the JPEG quality to .5.
         setJPEGQuality(processor, 0.5f);
         // Get the output data source of the processor
         dataOutput = processor.getDataOutput();
         return null;
    static SessionAddress destAddr1, destAddr2;
    * For JPEG and H263, we know that they only work for particular
    * sizes. So we'll perform extra checking here to make sure they
    * are of the right sizes.
    Format checkForVideoSizes(Format original, Format supported) {
         int width, height;
         Dimension size = ((VideoFormat)original).getSize();
         Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
         Format h263Fmt = new Format(VideoFormat.H263_RTP);
         if (supported.matches(jpegFmt)) {
         // For JPEG, make sure width and height are divisible by 8.
         width = (size.width % 8 == 0 ? size.width :
                        (int)(size.width / 8) * 8);
         height = (size.height % 8 == 0 ? size.height :
                        (int)(size.height / 8) * 8);
         } else if (supported.matches(h263Fmt)) {
         // For H.263, we only support some specific sizes.
         if (size.width < 128) {
              width = 128;
              height = 96;
         } else if (size.width < 176) {
              width = 176;
              height = 144;
         } else {
              width = 352;
              height = 288;
         } else {
         // We don't know this particular format. We'll just
         // leave it alone then.
         return supported;
         return (new VideoFormat(null,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        null,
                        Format.NOT_SPECIFIED)).intersects(supported);
    * Setting the encoding quality to the specified value on the JPEG encoder.
    * 0.5 is a good default.
    void setJPEGQuality(Player p, float val) {
         Control cs[] = p.getControls();
         QualityControl qc = null;
         VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
         // Loop through the controls to find the Quality control for
         // the JPEG encoder.
         for (int i = 0; i < cs.length; i++) {
         if (cs[i] instanceof QualityControl &&
              cs[i] instanceof Owned) {
              Object owner = ((Owned)cs[i]).getOwner();
              // Check to see if the owner is a Codec.
              // Then check for the output format.
              if (owner instanceof Codec) {
              Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
              for (int j = 0; j < fmts.length; j++) {
                   if (fmts[j].matches(jpegFmt)) {
                   qc = (QualityControl)cs[i];
                   qc.setQuality(val);
                   System.err.println("- Setting quality to " +
                             val + " on " + qc);
                   break;
              if (qc != null)
              break;
    * Convenience methods to handle processor's state changes.
    private Integer stateLock = new Integer(0);
    private boolean failed = false;
    Integer getStateLock() {
         return stateLock;
    void setFailed() {
         failed = true;
    private synchronized boolean waitForState(Processor p, int state) {
         p.addControllerListener(new StateListener());
         failed = false;
         // Call the required method on the processor
         if (state == Processor.Configured) {
         p.configure();
         } else if (state == Processor.Realized) {
         p.realize();
         // Wait until we get an event that confirms the
         // success of the method, or a failure event.
         // See StateListener inner class
         while (p.getState() < state && !failed) {
         synchronized (getStateLock()) {
              try {
              getStateLock().wait();
              } catch (InterruptedException ie) {
              return false;
         if (failed)
         return false;
         else
         return true;
    * Inner Classes
    class StateListener implements ControllerListener {
         public void controllerUpdate(ControllerEvent ce) {
         // If there was an error during configure or
         // realiz

    I do this all the time, I put my MBP to a 60 inch Sharp. If you have the video working do the simple thing first. Check to make sure your sound is on your TV and Mac. Then if that doesn't work go to System Prefrences and under sound go to a tab called Output and see if your TV is listed and if it is change it to that setting
    Hope It Works

  • I Need some info about interfacing the PC or laptop to Spectrum analyzer using Labview

    we need to control  the spectrum analyzer using an interface   that will    be   developed  using  Labview  .
    Spectrum analyzer will be connected to tha PC using RS 232C and the waveform observed will be seen in the PC interface of spectrum analyzer.
    Pls send some info regarding dis.

    Using a spectrum analyzer with LabVIEW is a pretty common application, my first program 15 years ago did this. What we need to know to help you though is what model spectrum analyzer are you planning on using? Most of the ones I'm familiar with use the GPIB interface rather than RS232, but that isn't a major issue, the spectrum analyzers command set is the important one. There are a lot of LabVIEW drivers available for a larger number of analyzers, here on the National Instruments' site. Although most use the GPIB interface (or ethernet), they can be used as a starting point to develop an RS232 driver if one isn't available, assuming that there is a driver for the model that you have, or a closely related one (manufacturers frequently use similar command sets within a model type).
    So, what type analyzer are you using, and what types of things are you planning on doing with it?
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Need help correcting message error number

    Hello, i need help correcting message number for running archiving test runs.
    05.08.2011 08:31:42 Message number 999999 reached. Log is full                                BL           252          E
    05.08.2011 08:31:42 Job cancelled after system exception ERROR_MESSAGE                        00           564          A
    Any help wopuld be appreciated.
    Regards.

    Summary
    Symptom
    One or several database tables of the application log contain too many entries.
    The following database tables belong to the application log:
    - BALHDR (all releases)
    - BALHDRP(< 4.6C)
    - BALM   (< 4.6C)
    - BALMP  (< 4.6C)
    - BALC   (< 4.6C)
    - BALDAT  (>= 4.6C)
    - BAL_INDX (all releases)
    Other terms
    RSSLG200,
    RSSLGK90,
    SLG2,
    application log,
    log
    delete,
    performance
    Reason and Prerequisites
    The application log is a tool to collect, save and display logs.
    Many different applications collect messages in the application log which contain information or messages for the end user. The application automatically log serves as a temporary storage for messages. The logs are written on the database but they are not automatically deleted.
    There is no general procedure for switching the application log on or off. Some applications provide this option or they offer the option of reducing the number of entries created. (See Notes 91519, 183960, 141244).
    The expiration date of application logs
    A log usually has an expiration date, which is set by the application, that calls the 'Application log' tool. If the application log does not set an expiration date, the 'Application log' tool sets the expiration date as 12/31/2098 or 12/31/9999,depending on the release, which allows the logs to stay in the system for as long as possible. The end user cannot set the expiration date. The expiration date does not mean that logs which have reached that date will automatically be deleted. It is used to control the deletion of logs when you call the Deletion report. The DEL_BEFORE flag in the BALHDR table determines whether or not the log can be deleted even before the expiration date is reached.
    DEL_BEFORE= SPACE means that the log can be deleted before the expiration date is reached. (Default value)
    DEL_BEFORE='X' means that the log can only be deleted after the expiration date.
    Solution
    Deleting the logs of the application log.
    Releases >= 4.6A:
    =====================================================================
    In Releases >= 4.6A, use Transaction SLG2.
    On the selection screen you can restrict the amount of logs to be deleted:
    The 'Object' and 'Subobject' fields specify the application area in which the logs were written (see F4 Help).
    The 'External Identification' field specifies the number which was          provided for this log by the application.
    o  If you also want to delete logs which have not reached the expiration date you must set the option "Also logs which can be deleted before the expiration date".
    Select 'Help with application' in Transaction SLG2 for further explanation of the procedure for deleting.
    SLG2 is a report transaction. The corresponding report is SBAL_DELETE. At regular intervals, this can be scheduled as a background job.
    Releases < 4.6A:
    =====================================================================
    For Releases < 4.6A, note the following instructions:
    In general, the deletion of application logs can be carried out in two steps:
    1. Report RSSLG200: Deletion of all logs which expired:
    Use report RSSLG200 to delete all logs whose expiration date is reached or exceeded. (This report is not yet available in the standard in Release 3.0F. In this case, the report can be installed in advance; see corrections attached to this note).
    As of Release 3.1H, Report RSSLG210 is also available. This report allows the definition of a job that runs regularly and deletes such logs.
    2. Report RSSLGK90: Deleting all logs for which a deletion is allowed before expiration:
    Sometimes, step 1 does not delete enough logs. The reason for this might be that the expiration date of the logs is too far in the future or that no expiration date has been defined at all (in this case, depending
    on the release, the assumed expiration date is 12/31/2098 or 12/31/9999)
    Use report RSSLGK90 for these logs.
    When you execute this report, you can restrict the logs to be deleted in a selection screen:
    The fields 'Object' and 'Subobject' specify the application area which wrote the logs (see F4 help).
    The field 'External number' indicates the number which was assigned by the application for this log.
    Field 'Log class' indicates the importance of the log.
    NOTE: By default, this field contains the value '4', this means only logs with additional information. If you want to delete all logs, enter the value '1' in this field. All logs with log class '1' or higher will then be deleted.
    The fields 'To date' and 'Until time' refer to the creation date of a log.
    If you enter 12/31/1998 and 23:59:59, you get all logs created in and before 1998
    NOTES:
    Client-dependency:
    Note that the application log tables are client-dependent. Therefore, you must delete data in each client.
    Which applications create entires in the application log:
    To determine which applications create the logs, look in Table BALHDR to see which objects the logs were created for ( Transaction SE16, Table BALHDR, Field OBJECT). You can find the text description for the object in Table BALOBJT. The application is usually derived from the name and text of the object. The log is displayed in Transaction SL61. The display is restricted to certain objects, among other things.
    Database error:
    If very many data exists on the DB, Report RSSLGK90 might cause problems. In this case, implement Note 138715.
    In very rare cases a dump is created even after Note 138715 was implemented:
        ABAP/4 runtime error  DBIF_RSQL_SQL_ERROR
        SQL error 1555 occurred accessing table "BALHDR "
        Database error text...: "ORA-01555: snapshot too old
    If you cannot correct the error by means of database utilities, Note 368700 provides a way to bypass this error.
    Report RSSLG200 can also run into problems. In this case, use the correction for Report RSSLG200 attached to this Note.
    Expiration date in Report RSSLGK90:
    There are logs on the database which may only be deleted explicitly after the expiration date (flag DEL_BEFORE = 'X' in table BALHDR). These logs are not deleted in advance by report RSSLGK90. Since, however, this flag is used very rarely, you can ignore this data.
    Restriction of the quantity of log data by the application:
    To avoid large quantities of logs from different applications, also refer to the following notes:
    - 91519
    - 183960
    - 141244
    Archiving logs:
    As of Release 6.20, it has been possible to archive logs.
    The logs are archived via archiving object BC_SBAL.
    The archiving programs are started via Transaction SARA (archive administration).
    Via Support Packages, the archiving of application logs has been made available for Releases 4.6C (SAPKB46C27), 4.6D (SAPKB46D17), and 6.10 (SAPKB61011) as well.
    Header Data
    Release Status: Released for Customer
    Released on: 04.08.2005  13:55:45
    Master Language: German
    Priority: Recommendations/additional info
    Category: Consulting
    Primary Component: BC-SRV-BAL Basis Application Log
    Affected Releases
    Software
    Component Release From
    Release To
    Release And
    subsequent
    SAP_APPL 30 30F 31I  
    SAP_APPL 40 40A 40B  
    SAP_APPL 45 45A 45B  
    SAP_BASIS 46 46A 46D X
    SAP_BASIS 60 610 640 X
    Corrections Instructions
    Correction
    Instruction Valid
    from Valid
    to Software
    Component Last
    Modifcation
    158903 30F 30F SAP_APPL 16.05.2000  07:13:08
    162069 31H 45B SAP_APPL 16.05.2000  07:16:07
    Related Notes
    1009281 - LAW: Runtime error CONNE_IMPORT_WRONG_COMP_TYPE
    856006 - Mass processing saves unnecessary logs
    737696 - Add. info on upgrade to SAP R/3 Enterprise 4.70 Ext. 2 SR1
    706478 - Preventing Basis tables from increasing considerably
    637683 - Add info about upgrade to SAP R/3 Enterprise Core 4.70 Ext 2
    587896 - Add. info on upgrade to SAP R/3 Enterprise Core 4.70 SR1
    540019 - Report RJBTPRLO does not work correctly
    400687 - Delete application log: DBIF_RSQL_INVALID_CURSOR
    390062 - Additional information about upgrading to 4.6C SR2
    370601 - Composite SAP note: APO 3.0 and 3.1 performance
    365602 - M/AM: Sales agent determination log - perf.
    327285 - Additions to upgrade to 4.6C SR1
    183960 - ALE: Deactivating application logs for data transfers
    141244 - Deactivating the application log during data transfer
    138715 - RSSLGK90: Too many lock entries in the database
    118314 - Installing the interface to a separate EH&S
    91519 - Deleting logs of the application log
    Print Selected Notes (PDF) 
    Attributes
    Attribute Value
    Transaction codes BALC
    Transaction codes BALM
    Transaction codes CLEAR
    Transaction codes HIER
    Transaction codes SARA
    Transaction codes

  • I need some information about drivers

    Hi all, I am developing an acquisition data system for biomedical
    signals and I need to transmit this data from my hardware to PC using the
    USB port. For this, I am writing a device driver for Windows 98 that receive
    data and put it in a memory buffer. I have a VI which graphs this data in
    LabView 5.0. The problem is that I don´t know to use this driver in LabView.
    For now, I think to use a "code interface node" with code writen in C or a
    "call library function" with a DLL. But I need some help with the "code
    interface node" because this VI don´t use a .c file. Shortly, I apreciate
    some help with this VI or some idea for use the USB port in LabView. Thanks.
    Tomás

    In <2j_j3.1889$[email protected]> =?iso-8859-1?B?VG9t4XMgU3XhcmV6?= writes:
    > Hi all, I am developing an acquisition data system for biomedical
    >signals and I need to transmit this data from my hardware to PC using the
    >USB port. For this, I am writing a device driver for Windows 98
    ^^^^^^ ^^^^^^ ^^^^^^^ ^^
    That's not a trivial step. I would write a small C/C++ program that
    exercises your driver (for robustness) just to be sure it's working
    right first without crashing your system.
    >The problem is that I don't know to use this driver in LabView.
    >For now, I think to use a "code interface node" with code writen in C or a
    >"call library function" with a DLL.
    That's correct. _After_ you got your C/C
    ++ test program (and USB
    driver) above working, then you can convert this little test program
    into a DLL or CIN, which can interface with LabView. A DLL might be
    easier (slightly) to write, but the CIN will work faster with LabView
    and can be designed to be reentrant. The Code Interface Reference
    Manual should guide you. Remember, this is a task for an _experienced_
    C programmer. You'll need to use handles to pointers into all your
    dynamic arrays and such passed into LabView.
    After you got your CIN or DLL written, you can use a special CIN
    function node to "link" (or bind) your CIN object into LabView's VI
    diagram.
    SOME THOUGHTS:
    There are many hardware devices already on the market today that come
    with Windows 98 drivers and DLL (or even CIN) libraries that would work
    immediately with LabView. Why don't you save yourself three months of
    work and simply buy one of these?
    /\ Mark M Mehl, alias Superticker (Supertickler to some)
    <><> Internet: [email protected]
    \/ Preferred
    UUCP: uunet!iastate.edu!mehl
    Disclaimer: You got to be kidding; who would want to claim anything I said?

  • I need some information about jre 1.5 and jre 1.6.

    Hello guys,
    I need some information about jre 1.5 and jre 1.6.
    Suppose if i have jre 1.5 customized with "additional language support" installed in my my desktop, and later on i install jre 1.6. will this jre over write all the esisting settings which was present in jre 1.5?
    In short will the version upgrades disable the features of the old Version even though the old version is present in the desktop?
    Thanks in advance for your answers.

    In <2j_j3.1889$[email protected]> =?iso-8859-1?B?VG9t4XMgU3XhcmV6?= writes:
    > Hi all, I am developing an acquisition data system for biomedical
    >signals and I need to transmit this data from my hardware to PC using the
    >USB port. For this, I am writing a device driver for Windows 98
    ^^^^^^ ^^^^^^ ^^^^^^^ ^^
    That's not a trivial step. I would write a small C/C++ program that
    exercises your driver (for robustness) just to be sure it's working
    right first without crashing your system.
    >The problem is that I don't know to use this driver in LabView.
    >For now, I think to use a "code interface node" with code writen in C or a
    >"call library function" with a DLL.
    That's correct. _After_ you got your C/C
    ++ test program (and USB
    driver) above working, then you can convert this little test program
    into a DLL or CIN, which can interface with LabView. A DLL might be
    easier (slightly) to write, but the CIN will work faster with LabView
    and can be designed to be reentrant. The Code Interface Reference
    Manual should guide you. Remember, this is a task for an _experienced_
    C programmer. You'll need to use handles to pointers into all your
    dynamic arrays and such passed into LabView.
    After you got your CIN or DLL written, you can use a special CIN
    function node to "link" (or bind) your CIN object into LabView's VI
    diagram.
    SOME THOUGHTS:
    There are many hardware devices already on the market today that come
    with Windows 98 drivers and DLL (or even CIN) libraries that would work
    immediately with LabView. Why don't you save yourself three months of
    work and simply buy one of these?
    /\ Mark M Mehl, alias Superticker (Supertickler to some)
    <><> Internet: [email protected]
    \/ Preferred
    UUCP: uunet!iastate.edu!mehl
    Disclaimer: You got to be kidding; who would want to claim anything I said?

  • Some problem about SAP R/3 ~ I need some detail solutions and suggests

    I need some detail solutions and suggests about below these problems:
    Problem 1: SAP Management Console cannot start successfully
    •     Problem 1.1: Click on SAP Management Console, but yellow light continues for a long period of time.
    •     Problem 1.2: In DOS, startsap command cannot start SAP R/3.
    •     Problem 1.3: Oracle 9i database automatically shutdown by itself.
    •     Problem 1.4: There is very low disk storage left (say less than 50MB) in the hard disk where Oracle 9i database is installed in the server.
    Problem 2: Problems in User Maintenance and Security of the SAP R/3 System
    •     Problem 2.1: Super user account password was lost (e.g. SAP* password was lost)
    •     Problem 2.2: Super users DDIC and SAP* were dropped in table usr02 in Oracle.
    •     Problem 2.3: Some users have been locked or deleted by an ABAP programmer who has been granted with almost superuser profiles.  For example, an ABAP programmer has been granted a profile of SAP_ALL and SAP_NEW but the system administrator would like to restrict all programmers form using SU01, SU02, SM01, so that no programmers can maintain other user's accounts.
    Problem 3: Problems in the configuration of client copy
    •     Problem 3.1: A copied client from the Client 000 cannot be customized.
    •     Problem 3.2: No sample data in IDES after a successful client copy.
    •     Problem 3.3: Logging on without being authorized.  A new client is created and client copied and transported successfully.  However, anyone can log into the system using user SAP* with the default password PASS.
    Problem 4:  Problems in the installation of SAP R/3 Server
    •     Problem 4.1: Computer Name of the SAP R/3 server has been changed after the full installation of Oracle 9i and SAP R/3.
    •     Problem 4.2: A network card of a server was faulty and it was replaced by a new network card but the SAP R/3 license was expired.
    •     Problem 4.3: You would like to reinstall SAP R/3 on a server which has previously installed with SAP R/3 but the same error message appears during the re-installation.
    Problem 5: Problems in the backup and recovery of Oracle 9i Database
    •     Problem 5.1: A redo log file was lost and the database could not be started.
    •     Problem 5.2: A group of data files were accidentally deleted and the database could not be started.
    •     Problem 5.3: Both the online redo log files and archived redo log files have been damaged.
    Problem 6: General problems regarding the general operations and the connection to the SAP R/3 System
    •     Problem 6.1: After a reboot of the Windows 2003 Server, SAP service is not automatically started.
    •     Problem 6.2: Some users complained that the performance of SAP R/3 is really very slow.
    •     Problem 6.3: A user complained that his/her password was correct but he/she could not lock on the client because it was locked.

    Problem 2
    2.1  If user account of the sap* is lost u can retrive by loging into os level as sidadm type this command
    DELETE  SAP<sid>.USR02 where BNAME='SAP*' AND MANDT=100
    This 100 is the client in which u want to delete the sap*
    after that restart the server and login as sap* with the default password as pass
    there is also another way of doing this if needed u can catch me at [email protected]

  • New to Solaris administration - Need some help with some issues

    Hello all,
    I am a new to Solaris administration and need some assistance with a few things. I was going to make separate posts but decided it would be easy to keep track of in one. I really do not know much about the OS but I do have a little Linux background so that might help me out. I am going to number my problems to keep them sorted, so here we go.
    The machine:
    Sunfire V880
    4x 73GB HDs
    PCI dual fiber channel host adapter
    Attached RAID array:
    Sun StorEdge T3 Array with 9x 73GB HDs
    Sun DDS4 Tape Drive in a Unipack
    OS: Solaris 5.10
    Updates: Updated everything except 2 patches (Updating is a real pain isn't it? At least it seems that way to me.)
    1. So I might as well start with the update issues! These 2 updates will not install:
    -PostgreSQL 8.2 source code, (137004-02)
    Utility used to install the update failed with exit code {0}.
    -Patch for mediaLib in solaris, (121620-03)
    Install of update failed. Utility used to install the update is not able to save files. Utility used to install the update failed with exit code 4.
    No idea why the PostgreSQL update is not working, but the medialib patch seems to not have enough hard drive space.
    2. Where are all the drives? I don't know how to find the RAID box or the other 3 internal hard drives. When I installed the OS, I think I installed it on only one hard drive and that might be part of the reason why the medialibe update above says that I don't have enough space.
    3. I probably need more space for the OS and updates, is there a way to "add" space onto the hard drive that currently is running the OS?
    3. Once I see the other hard drives I wish to combine them to make a RAID 0 and RAID 5 array, how do I go about doing that?
    4. How can I find/see the tape drive?
    5. Does my swap space really need to be 64GB? I know the book I have read suggests it, but I only made it 5GB because it didn't seem to make sense to make it 64GB.
    Thank you in advance for the help. I know these are a lot of questions to ask but please go easy on me :)
    rjbanker
    Edited by: rjbanker on Mar 7, 2008 8:21 AM

    SolarisSAinPA*
    1.
    -PostgreSQL 8.2 source code, (137004-02)
    Utility used to install the update failed with exit code {0}.
    Exit code 0 means there were no errors. When you run showrev -p 137004-02, does your system show that the patch is installed? You can check the log for a particular patch add attempt in /var/sadm/patch/+patch_num_rev+1- A bunch of stuff shows up, here is a portion (I am not entirely sure what it means, there must be a least a page of stuff like this):
    Patch: 121081-08 Obsoletes: Requires: 121453-02 Incompatibles: Packages: SUNWc cccrr, SUNWccccr, SUNWccfw, SUNWccsign, SUNWcctpx, SUNWccinv, SUNWccccfg, SUNWcc fwctrl
    Patch: 122231-01 Obsoletes: Requires: 121453-02 Incompatibles: Packages: SUNWc ctpx
    Patch: 120932-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcctpx
    Patch: 123123-02 Obsoletes: Requires: Incompatibles: Packages: SUNWccinv
    Patch: 121118-12 Obsoletes: Requires: 121453-02 Incompatibles: Packages: SUNWc smauth, SUNWppror, SUNWpprou, SUNWupdatemgru, SUNWupdatemgrr, SUNWppro-plugin-su nos-base
    2.
    Where are all the drives? I don't know how to find the RAID box or the other 3 internal hard drives. When I >installed the OS, I think I installed it on only one hard drive and that might be part of the reason why the >medialibe update above says that I don't have enough space.
    When you run format command, how many drives are listed? Identify your root drive (compare with output of df command you ran earlier) Please post here.2. Output of df-hk, looks like I ran out of room. Should I just go ahead and reinstall the OS?
    Filesystem size used avail capacity Mounted on
    /dev/dsk/c1t0d0s0 5.9G 5.4G 378M 94% /
    /devices 0K 0K 0K 0% /devices
    ctfs 0K 0K 0K 0% /system/contract
    proc 0K 0K 0K 0% /proc
    mnttab 0K 0K 0K 0% /etc/mnttab
    swap 42G 1.3M 42G 1% /etc/svc/volatile
    objfs 0K 0K 0K 0% /system/object
    /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
    5.9G 5.4G 378M 94% /platform/sun4u-us3/lib/libc_psr.so.1
    /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
    5.9G 5.4G 378M 94% /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
    fd 0K 0K 0K 0% /dev/fd
    swap 42G 1.1M 42G 1% /tmp
    swap 42G 32K 42G 1% /var/run
    /dev/dsk/c1t0d0s7 46G 47M 46G 1% /export/home
    3. So I guess the general consensus is to reinstall the OS, is that correct?
    4. There is nothing in \dev\rmt, and unfortunately I don't have a tape to test it with!
    5. I guess 5GB will be ok for what we do.
    Alan.pae*
    1. I think the above text might explain why it failed, although I don't know how to correct it.
    2. Output of format:
    # mount
    / on /dev/dsk/c1t0d0s0 read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=1d80008 on Mon Mar 10 10:56:51 2008
    /devices on /devices read/write/setuid/devices/dev=4dc0000 on Mon Mar 10 10:56:19 2008
    /system/contract on ctfs read/write/setuid/devices/dev=4e00001 on Mon Mar 10 10:56:19 2008
    /proc on proc read/write/setuid/devices/dev=4e40000 on Mon Mar 10 10:56:19 2008
    /etc/mnttab on mnttab read/write/setuid/devices/dev=4e80001 on Mon Mar 10 10:56:19 2008
    /etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=4ec0001 on Mon Mar 10 10:56:19 2008
    /system/object on objfs read/write/setuid/devices/dev=4f00001 on Mon Mar 10 10:56:19 2008
    /platform/sun4u-us3/lib/libc_psr.so.1 on /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 read/write/setuid/devices/dev=1d80008 on Mon Mar 10 10:56:50 2008
    /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1 on /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1 read/write/setuid/devices/dev=1d80008 on Mon Mar 10 10:56:50 2008
    /dev/fd on fd read/write/setuid/devices/dev=50c0001 on Mon Mar 10 10:56:51 2008
    /tmp on swap read/write/setuid/devices/xattr/dev=4ec0002 on Mon Mar 10 10:56:52 2008
    /var/run on swap read/write/setuid/devices/xattr/dev=4ec0003 on Mon Mar 10 10:56:52 2008
    /export/home on /dev/dsk/c1t0d0s7 read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=1d8000f on Mon Mar 10 10:56:57 2008
    3. Judging by the above text I will be doing a reinstall huh?
    4. Actually I am not familiar with tape backups let alone solaris backup apps! Any suggestions? (Preferably free, have to cut down on costs.)
    5. No comment
    Thanks for the help, hope to hear from you again!
    rjbanker

  • I need some advice on a small servers network please !!

    hi every one.
    i need a small help please.
    i have a collage project that is upgrading a network and my part is the server's network. actually it is 65servers, windows and non-win.
    i wish to know what are the important issues that should be considered in connecting the servers with the rest of the enterprise?
    i thought of some,but i need some deatails how to start working on it;
    pls add any more or try to explain what do you think should be done in it:
    *trafic analysis, but where?
    *redundancy and failure backup
    *security
    *authorization, is VLANs sufficiant?
    *server loads, how to calculate it?
    Is there a special topology for server networks?or layering?
    regards;
    naif

    There is a layered model for building infrastructure
    core layer
    distribution layer
    access layer
    The core layer needs to be fast most of the time layer 2 on some optical systems
    Then you have the distribution layer. this is where you connect your servers and traffic analysing on layer 3. (like Cat6500 switches)
    Then the access layer thats where you connect the end nodes. (like Cat4500 switches or 2950)
    It is wise to segment your network into different VLAN's Like a seperate server VLAN and some client VLAN's, number of client VLAN's depents on the number of end nodes.
    You can use multi layer switches (a MSFC card in 6500 switch) for routing between the VLAN's
    For redundancy you can use for example 2 6500 switches with MSFC where you implement HSRP to have redundant gateways for clients and servers
    For security you have to create some access-lists on the VLAN interfaces on the MSFC so you can implement traffic filtering between VLAN's
    Do you also have a internet connection (firewallzone) in that case create a sepearate VLAN in which you connect the (PIX)firewall.
    Do you need any more information?
    Regards,
    Maarten

  • Need some help in creating Search Help for standard screen/field

    I need some help in adding a search-help to a standard screen-field.
    Transaction Code - PP01,
    Plan Version - Current Plan (PLVAR = '01'),
    Object Type - Position ( OTYPE = 'S'),
    Click on Infotype Name - Object ( Infotype 1000) and Create.
    I need to add search help to fields Object Abbr (P1000-SHORT) / Object Name (P1000-STEXT).
    I want to create one custom table with fields, Position Abb, Position Name, Job. Position Abb should be Primary Key. And when object type is Position (S), I should be able to press F4 for Object Abb/Object Name fields and should return Position Abbr and Position Name.
    I specify again, I have to add a new search help to standard screen/field and not to enhance it.
    This is HR specific transaction. If someone has done similar thing with some other transation, please let me know.
    There is no existing search help for these fields. If sm1 ever tried or has an idea how to add new search help to a standard screen/field.
    It's urgent.
    Thanks in advace. Suitable answers will be rewarded

    Hi Pradeep,
    Please have a look into the below site which might be useful
    Enhancing a Standard Search Help
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/daeda0d7-0701-0010-8caa-
    edc983384237
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee93446011d189700000e8322d00/frameset.htm
    A search help exit is a function module for making the input help process described by the search help more flexible than possible with the standard version.
    This function module must have the same interface as function module F4IF_SHLP_EXIT_EXAMPLE. The search help exit may also have further optional parameters (in particular any EXPORTING parameters).
    A search help exit is called at certain timepoints in the input help process.
    Note: The source text and long documentation of the above-specified function module (including the long documentation about the parameters) contain information about using search help exits.
    Function modules are provided in the function library for operations that are frequently executed in search help exits. The names of these function modules begin with the prefix F4UT_. These function modules can either be used directly as search help exits or used within other search help exits. You can find precise instructions for use in the long documentation for the corresponding function module.
    During the input help process, a number of timepoints are defined that each define the beginning of an important operation of the input help process.
    If the input help process is defined with a search help having a search help exit, this search help exit is called at each of these timepoints. If required, the search help exit can also influence the process and even determine that the process should be continued at a different timepoint.
    timepoints
    The following timepoints are defined:
    1. SELONE
    Call before selecting an elementary search help. The possible elementary search helps are already in SHLP_TAB. This timepoint can be used in a search help exit of a collective search help to restrict the selection possibilities for the elementary search helps.
    Entries that are deleted from SHLP_TAB in this step are not offered in the elementary search help selection. If there is only one entry remaining in SHLP_TAB, the dialog box for selecting elementary search helps is skipped. You may not change the next timepoint.
    The timepoint is not accessed again if another elementary search help is to be selected during the dialog.
    2. PRESEL1
    After selecting an elementary search help. Table INTERFACE has not yet been copied to table SELOPT at this timepoint in the definition of the search help (type SHLP_DESCR_T). This means that you can still influence the attachment of the search help to the screen here. (Table INTERFACE contains the information about how the search help parameters are related to the screen fields).
    3. PRESEL
    Before sending the dialog box for restricting values. This timepoint is suitable for predefining the value restriction or for completely suppressing or copying the dialog.
    4. SELECT
    Before selecting the values. If you do not want the default selection, you should copy this timepoint with a search help exit. DISP should be set as the next timepoint.
    5. DISP
    Before displaying the hit list. This timepoint is suitable for restricting the values to be displayed, e.g. depending on authorizations.
    6. RETURN (usually as return value for the next timepoint)
    The RETURN timepoint should be returned as the next step if a single hit was selected in a search help exit.
    It can make sense to change the F4 flow at this timepoint if control of the process sequence of the Transaction should depend on the selected value (typical example: setting SET/GET parameters). However, you should note that the process will then depend on whether a value was entered manually or with an input help.
    7. RETTOP
    You only go to this timepoint if the input help is controlled by a collective search help. It directly follows the timepoint RETURN. The search help exit of the collective search help, however, is called at timepoint RETTOP.
    8. EXIT (only for return as next timepoint)
    The EXIT timepoint should be returned as the next step if the user had the opportunity to terminate the dialog within the search help exit.
    9. CREATE
    The CREATE timepoint is only accessed if the user selects the function "Create new values". This function is only available if field CUSTTAB of the control string CALLCONTROL was given a value not equal to SPACE earlier on.
    The name of the (customizing) table to be maintained is normally entered there. The next step returned after CREATE should be SELECT so that the newly entered value can be selected and then displayed.
    10. APP1, APP2, APP3
    If further pushbuttons are introduced in the hit list with function module F4UT_LIST_EXIT, these timepoints are introduced. They are accessed when the user presses the corresponding pushbutton.
    Note: If the F4 help is controlled by a collective search help, the search help exit of the collective search help is called at timepoints SELONE and RETTOP. (RETTOP only if the user selects a value.) At all other timepoints the search help exit of the selected elementary search help is called.
    If the F4 help is controlled by an elementary search help, timepoint RETTOP is not executed. The search help exit of the elementary search help is called at timepoint SELONE (at the
    F4IF_SHLP_EXIT_EXAMPLE
    This module has been created as an example for the interface and design of Search help exits in Search help.
    All the interface parameters defined here are mandatory for a function module to be used as a search help exit, because the calling program does not know which parameters are actually used internally.
    A search help exit is called repeatedly in connection with several
    events during the F4 process. The relevant step of the process is passed on in the CALLCONTROL step. If the module is intended to perform only a few modifications before the step, CALLCONTROL-STEP should remain unchanged.
    However, if the step is performed completely by the module, the following step must be returned in CALLCONTROL-STEP.
    The module must react with an immediate EXIT to all steps that it does not know or does not want to handle.
    Hope this info will help you.
    ***Reward points if found useful
    Regards,
    Naresh

  • Need Some help in Developing an ALV report ..Plz help me

    Hi Experts I am basic learner to ABAP Here I need some help in developing a Delivery *** Invoice Report....Please help me by spending a little time..
    Tables are VBAK VBAP LIPS LIKP   and Document floe table is VBFA
      SELECT VBELN VKORG VTWEG SPART
        FROM VBAK
        INTO TABLE I_VBAK
        WHERE VBELN IN S_VBELN.
      IF I_VBAK IS NOT INITIAL .
        SELECT VBELN POSNR MATKL POSAR WERKS
          FROM VBAP
          INTO TABLE I_VBAP
          FOR ALL ENTRIES IN I_VBAK
          WHERE VBELN = I_VBAK-VBELN.
      ENDIF.
      IF I_VBAP IS NOT INITIAL.
        SELECT * FROM LIPS
          INTO CORRESPONDING FIELDS OF TABLE I_LIPS
          WHERE VGBEL = VBAP-VBELN
          AND VGPOS = VBAP-POSNR.
      ENDIF.
      IF I_LIPS IS NOT INITIAL.
        SELECT VBELN VSTEL VKORG KUNNR
        FROM LIKP
        INTO TABLE I_LIKP.
      ENDIF.
    Moderator message : Outsourcing is not allowed, don't expect others to correct your source code. Thread locked.
    Edited by: Vinod Kumar on Aug 1, 2011 5:43 PM

    hi ,
      Look in this link
      <a href="http://help.sap.com/saphelp_nw04/helpdata/en/b3/0ef3e8396111d5b2e80050da4c74dc/frameset.htm">http://help.sap.com/saphelp_nw04/helpdata/en/b3/0ef3e8396111d5b2e80050da4c74dc/frameset.htm</a>
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/21/894eeee0b911d4b2d90050da4c74dc/content.htm">http://help.sap.com/saphelp_nw04/helpdata/en/21/894eeee0b911d4b2d90050da4c74dc/content.htm</a>
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/80/1a62bfe07211d2acb80000e829fbfe/content.htm">http://help.sap.com/saphelp_nw04/helpdata/en/80/1a62bfe07211d2acb80000e829fbfe/content.htm</a>
    Regards
    Renjith Kumar

  • My airport problem has returned big time --Need some Help!!

    Aloha once again:
    I though that this was fixed by simply changing channels on my airport router, but that fix only lasted for a few days, but now it's back and even worse. Let me give you some background on this problem. Here's my original message concerning the problem:
    I have my Airport Router connected to the Internet via DSLcable. I then tie my two computers into the internet via their airport cards. For about 6 months this system has been working just fine. Recently my desktop computer quit listening to the router and can no longer connect to the internet. It shows no signal strength and the name of the network on the Airport is not seen in the "connect to internet" panel. The same Airport works just fine on my LapTop and I am using it right now to get this message off to the internet.
    I have fixed permissions, removed the airport card and cleaned the connector, the antenna plug and removed the system configuration folder from library preferences all to no avail!
    This problem has been hounding me, intermittently, for over a year now What can I do to remedy this??? HELP!!!!
    Dan Page
    Maui, Hawaii
    The suggestion to change channels, that came from this original request, worked but just for a very short time. Now I have to shut down my computer overnight to get connected and then it only lasts for several hours and the connection quits.
    I thought maybe heat was a problem, but the last time it happened I opened the computer and played a large fan right on the card. This did not help. I shut it down for the night and it was fine the next morning for about 2 hours.
    One new data point; if I turn off just the airport on my laptop computer overnight, that will fix the problem for a short time also.
    Still need some help!!!
    Dan

    First, power off both the Time Capsule and AirPort Express.
    Wait a few minutes, then power up the Time Capsule first, and let it run for a few minutes.
    Temporarily, move the AirPort Express to the same room or close proximity to the AirPort Express and power it up.
    If the Express powers up correctly, power it off again and move it approximately half the distance between the Time Capsule and the general area that needs more wireless coverage. Try to minimize obstructions like walls, ceiling, heavy furniture, etc as much as possible. 
    Please report on your results.

  • I'm trying to re-install itunes 10.7 on PC.  I'm getting an error code saying i need a 64 bit not a 32 bit. I'm stuck.  Need some help.

    I'm trying to re-install itunes 10.7 on my PC. I'm getting an error code saying I need a 64 bitn not a 32 bit.  I'm stuck.  Need some help

    Hi Jon,
    The "correct" name for an iTunes Library file is iTunes Library.itl. Nearly all updates to iTunes involve some upgrade the library file. The pre-upgrade file is moved into the Previous iTunes Libraries folder, stamped with the date of the upgrade, and then used to construct a new library incorporating any changes that have been made to the data structure for the new build. Should this upgrade go wrong you can usually copy the archived file back into the main iTunes folder, give it the correct name, start iTunes and iTunes will do the upgrade over again. Like this...
    Sometimes when iTunes isn't shut down properly the active library file gets corrupted. If you start iTunes in this state you may be prompted to locate a valid library file. It looks like you have connected to a much older library file at some point. What is less clear is if this is a recent event or an older one.
    I suggest you search the entire computer for all files of the form *.itl. Ideally we need to find the most recently modified one that isn't corrupt, place it in the main iTunes folder, rename it as iTunes Library.itl and connect to it. Having placed a suitable library file in the correct location and renamed it, click the icon to start iTunes and then immediately press and hold down the left shift key. Keep holding until asked to create or choose a library. Click choose and browse to the renamed/relocated library file. If that file won't work close iTunes, and try another in the fashion shown in the diagram until you find one that is satisfactory. No need to use the shift-start-iTunes trick again as this time each new file will be on the same path.
    Once you've found the best of the available libraries you can use a tool called iTunes Folder Watch to catch up with any changes since the backup file was created, i.e., add in the new files, or delete the entries for tracks that have been removed from the media folder.
    If for some reason the restored library contains broken links to the media I have a script called FindTracks that can repair them.
    When you get it all working make a backup!
    tt2

  • I am considering buying a new MAC laptop to run LOGIC for composition and band live/recording, but which one is best as I do not want to spend too much money? Does it have a line in and how do you monitor sound? Will I need adaptors and a interface?

    Can anybody help?
    I am considering buying a new MAC laptop to run LOGIC for composition and band live/recording, but which one is best as I do not want to spend too much money?
    Does it have a line in and how do you monitor sound?
    Will I need adaptors and an interface?
    Also, I am guessing as Logic only runs on MAC surely then they would not the best spec to recommend to run it?
    I see all the upgrades as additional memory or a faster process?
    Is a retina screen necessary, and why flash based storage against a 1TB hard drive, and a i5 instead of an i7
    The main reason for this purchase is to play live and use backing tracks and record found sounds and make creative songs.
    I hope you can provide some valuable feedback, as I am a longtime MAC user and see upgrades and changes happen regularly but the most important thing is the songs not the equipment.
    I have £500 already and willing to add another 500 to 700 pounds, then software extra.

    Can anybody help?
    I am considering buying a new MAC laptop to run LOGIC for composition and band live/recording, but which one is best as I do not want to spend too much money?
    Does it have a line in and how do you monitor sound?
    Will I need adaptors and an interface?
    Also, I am guessing as Logic only runs on MAC surely then they would not the best spec to recommend to run it?
    I see all the upgrades as additional memory or a faster process?
    Is a retina screen necessary, and why flash based storage against a 1TB hard drive, and a i5 instead of an i7
    The main reason for this purchase is to play live and use backing tracks and record found sounds and make creative songs.
    I hope you can provide some valuable feedback, as I am a longtime MAC user and see upgrades and changes happen regularly but the most important thing is the songs not the equipment.
    I have £500 already and willing to add another 500 to 700 pounds, then software extra.

  • I need a correction for this ...!!!!

    i came up with a recusive method but it has some inefficiency .. if i create an object of type int ,say 1234567 it will work properly, but if the int was say 1000000 or 1000001 it will return 1,0 and 1,1 ,respectively ... and here is the code .. i need a correction
    ===========================================================
    public class intComma
    public static String putComma(int x)
    String st = x+"" ;
    int L = st.length() ;
    if (L<= 3)
    return st;
    else
    if (L%3 == 1)
    return st.charAt(0)+","+putComma(Integer.parseInt(st.substring(1)));
    else if (L%3 == 2)
    return st.substring(0,2)+","+ putComma(Integer.parseInt(st.substring(2)));
    else
    return st.substring(0,3)+","+ putComma(Integer.parseInt(st.substring(3)));
    public static void main(String[] args)
    System.out.println(putComma(1234567));
    System.out.println(putComma(1000000)); // here is the problem
    System.out.println(putComma(1000001)); // here is the problem
    }

    you mean for this:
    http://forum.java.sun.com/thread.jspa?threadID=784872

Maybe you are looking for

  • Re; Getting data from a live web site, based on geo-location.

    re; Getting data from a live web site, based on geo-location. Approx 4 minutes 25 seconds into this YouTube Adobe ELearning video for Common JavaScript Interface in Adobe Captivate 8, the topic of extracting data from a live web site http://api.openw

  • External Drive Limit?

    I'm running into issues with connected external drives that I'm hoping someone will have some suggestions. I have been running my late 2007 2.6 GHz MacBook Pro for a year and a half with 3 external Firewire drives, 2 of which are virtually always in

  • How to know the splitted invoiced amount for the services in a PO?

    Hello SAPients! Scenario: I have a PO with one item, this Item has 3 services attached, this one item of the PO has been invoiced. I need to split the invoiced amount into its corresponding amounts for each of the services. Is there a transaction cod

  • Can't download app from AppStore on iPhone 4s.

    I'm using iPhone 4S. Today i experience one specific problem. I wanted to download one free app on my iPhone and the download "started", and never finished. App was on my iPhone, but it wasn't downloaded, just App (witt download stuatus on)  and unde

  • Sum of two columns

    Hi guys i need to insert one column in a row with forumla as col1+col2. how can i do that in simple tabular report. My two columns in XML are like this:- <T_AMT>240.6</T_AMT> <TAX_AMT>0</TAX_AMT> Can i use substring function while creating template i