Comparison operator while doing a Read ITab

Hi Friends,
I am working on a report which takes an uploaded vendor data(legacy data) and compares the SAP Vendor master with names.
So in legacy data itab i have following fields
VendorNum
Name
Address
I retrieve all sap vendors in another Itab_sap and want to show a report of matching vendors with name.
Here i am doing a read on Itab_legacy by looping on itab_sap.
loop at itab_sap into wa_sap.
read itab_legacy into wa_legacy
with key name = wa_sap-name1.
If sy-subrc eq 0.
I am taking this into another itab for matching.
endif.
endloop.
but problem is i have to match with name even if name is half matching.
Eg. If legacy itab is having a name like 'SAP AG' and
data in sap has name1 = 'SAP' still i have to consider such records as matching records.
So can i use control statement like CP in my read statement. I tried but its giving syntax error and i think its not possible in a read statement with key cp.
Is there any better way of doing this?
I can not afford to do a loop inside a loop as data is very large.
Regards,
Simha

Hi,
If the number of entries in legacy and Vendor master are same then we can go ahead with loop and read. But here the entires may differ. For this after getting the entires of the legacy data intot he internal table cehck the SY-TFILL or SY-DBCNT ie number of the records in internal table and also cehck the number of r entires in Vendor master.
First try to filter the values then check for the where condition.
DO N times.// No. of record times
read table......
ENDDO.
Or
Loop at t_ekpo. // item table
w_tabix =  sy-tabix.
Read table t_ekko with key ebeln = t_ekpo-ebeln
if sy-subrc = 0.
do your own code...
endif.
read table t_ekpo index w_tabix.
do your own code .....
endloop.
this way we have to do it.
Loop and read is a gud practice.
Use the Substring concept Or String Pattern (CS /CA /CPetc)
while checking the condition.. move the value to be in other field then we can use the CP/CS.
In your example move the value of SAP table to other field and then while reading the legacy data.
use the CS pr CP in this field
Thanks & Regards,
Chandralekha.

Similar Messages

  • StringIndexOutofBounds Exception while doing FTP operation

    Hello, I got this exception at run time when I am doing my FTP operations
    java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:455)
    at FTPConnection.getFullServerReply(FTPConnection.java:312)
    at FTPConnection.getServerReply(FTPConnection.java:296)
    at FTPConnection.executeCommand(FTPConnection.java:329)
    at FTPConnection.login(FTPConnection.java:107)
    at JEditor$FTPUpload.checkTF(JEditor.java:2755)
    at JEditor$FTPUpload.actionPerformed(JEditor.java:2783)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
    67)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
    ctButton.java:1820)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:419)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    istener.java:258)
    at java.awt.Component.processMouseEvent(Component.java:5021)
    at java.awt.Component.processEvent(Component.java:4818)
    at java.awt.Container.processEvent(Container.java:1380)
    at java.awt.Component.dispatchEventImpl(Component.java:3526)
    at java.awt.Container.dispatchEventImpl(Container.java:1437)
    at java.awt.Component.dispatchEvent(Component.java:3367)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3214
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2929)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2859)
    at java.awt.Container.dispatchEventImpl(Container.java:1423)
    at java.awt.Window.dispatchEventImpl(Window.java:1566)
    at java.awt.Component.dispatchEvent(Component.java:3367)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:190)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
    The file that I used for my FTP is
    * File: FTPConnection.java
    * Author: Bret Taylor <[email protected]>
    * $Id$
    * Parts of this code were adopted from a variety of other FTP classes the
    * author has encountered that he was not completely satisfied with. If you
    * think more thanks are due to any particular author than is given, please
    * let him know. With that caveat, this class can be freely distributed and
    * modified as long as Bret Taylor is given credit in the source code comments.
    import java.io.*;
    import java.net.*;
    import java.util.*;
    * <p>A wrapper for the network and command protocols needed for the most common
    * FTP commands. Standard usage looks something like this:</p>
    * <pre> FTPConnection connection = new FTPConnection();
    * try {
    * if (connection.connect(host)) {
    * if (connection.login(username, password)) {
    * connection.downloadFile(serverFileName);
    * connection.uploadFile(localFileName);
    * connection.disconnect();
    * } catch (UnknownHostException e) {
    * // handle unknown host
    * } catch (IOException e) {
    * // handle I/O exception
    * }</pre>
    * <p>Most FTP commands are wrapped by easy-to-use methods, but in case clients
    * need more flexibility, you can execute commands directly using the methods
    * executeCommand and
    * executeDataCommand,
    * the latter of which is used for commands that require an open data port.</p>
    * @author Bret Taylor
    * @version 1.0
    public class FTPConnection extends Object {
         * If this flag is on, we print out debugging information to stdout during
         * execution. Useful for debugging the FTP class and seeing the server's
         * responses directly.
         private static boolean PRINT_DEBUG_INFO = false;
         * Connects to the given FTP host on port 21, the default FTP port.
         public boolean connect(String host)
              throws UnknownHostException, IOException
              return connect(host, 21);
         * Connects to the given FTP host on the given port.
         public boolean connect(String host, int port)
              throws UnknownHostException, IOException
              connectionSocket = new Socket(host, port);
              outputStream = new PrintStream(connectionSocket.getOutputStream());
              inputStream = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
              if (!isPositiveCompleteResponse(getServerReply())){
                   disconnect();
                   return false;
              return true;
         * Disconnects from the host to which we are currently connected.
         public void disconnect()
              if (outputStream != null) {
                   try {
                        outputStream.close();
                        inputStream.close();
                        connectionSocket.close();
                   } catch (IOException e) {}
                   outputStream = null;
                   inputStream = null;
                   connectionSocket = null;
         * Wrapper for the commands <code>user [username]</code> and <code>pass
         * [password]</code>.
         public boolean login(String username, String password)
              throws IOException
              int response = executeCommand("user " + username);
              if (!isPositiveIntermediateResponse(response)) return false;
              response = executeCommand("pass " + password);
              return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>cwd [directory]</code>.
         public boolean changeDirectory(String directory)
              throws IOException
              int response = executeCommand("cwd " + directory);
              return isPositiveCompleteResponse(response);
         * Wrapper for the commands <code>rnfr [oldName]</code> and <code>rnto
         * [newName]</code>.
         public boolean renameFile(String oldName, String newName)
              throws IOException
              int response = executeCommand("rnfr " + oldName);
              if (!isPositiveIntermediateResponse(response)) return false;
              response = executeCommand("rnto " + newName);
              return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>mkd [directory]</code>.
         public boolean makeDirectory(String directory)
              throws IOException
              int response = executeCommand("mkd " + directory);
              return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>rmd [directory]</code>.
         public boolean removeDirectory(String directory)
              throws IOException
              int response = executeCommand("rmd " + directory);
              return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>cdup</code>.
         public boolean parentDirectory()
              throws IOException
              int response = executeCommand("cdup");
              return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>dele [fileName]</code>.
         public boolean deleteFile(String fileName)
              throws IOException
              int response = executeCommand("dele " + fileName);
              return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>pwd</code>.
         public String getCurrentDirectory()
              throws IOException
              String response = getExecutionResponse("pwd");
              StringTokenizer strtok = new StringTokenizer(response);
              // Get rid of the first token, which is the return code
              if (strtok.countTokens() < 2) return null;
              strtok.nextToken();
              String directoryName = strtok.nextToken();
              // Most servers surround the directory name with quotation marks
              int strlen = directoryName.length();
              if (strlen == 0) return null;
              if (directoryName.charAt(0) == '\"') {
                   directoryName = directoryName.substring(1);
                   strlen--;
              if (directoryName.charAt(strlen - 1) == '\"')
                   return directoryName.substring(0, strlen - 1);
              return directoryName;
         * Wrapper for the command <code>syst</code>.
         public String getSystemType()
              throws IOException
              return excludeCode(getExecutionResponse("syst"));
         * Wrapper for the command <code>mdtm [fileName]</code>. If the file does
         * not exist, we return -1;
         public long getModificationTime(String fileName)
              throws IOException
              String response = excludeCode(getExecutionResponse("mdtm " + fileName));
              try {
                   return Long.parseLong(response);
              } catch (Exception e) {
                   return -1L;
         * Wrapper for the command <code>size [fileName]</code>. If the file does
         * not exist, we return -1;
         public long getFileSize(String fileName)
              throws IOException
              String response = excludeCode(getExecutionResponse("size " + fileName));
              try {
                   return Long.parseLong(response);
              } catch (Exception e) {
                   return -1L;
         * Wrapper for the command <code>retr [fileName]</code>.
         public boolean downloadFile(String fileName)
              throws IOException
              return readDataToFile("retr " + fileName, fileName);
         * Wrapper for the command <code>retr [serverPath]</code>. The local file
         * path to which we will write is given by <code>localPath</code>.
         public boolean downloadFile(String serverPath, String localPath)
              throws IOException
              return readDataToFile("retr " + serverPath, localPath);
         * Wrapper for the command <code>stor [fileName]</code>.
         public boolean uploadFile(String fileName)
              throws IOException
              return writeDataFromFile("stor " + fileName, fileName);
         * Wrapper for the command <code>stor [localPath]</code>. The server file
         * path to which we will write is given by <code>serverPath</code>.
         public boolean uploadFile(String serverPath, String localPath)
              throws IOException
              return writeDataFromFile("stor " + serverPath, localPath);
         * Set the restart point for the next download or upload operation. This
         * lets clients resume interrupted uploads or downloads.
         public void setRestartPoint(int point)
              restartPoint = point;
              debugPrint("Restart noted");
         * Gets server reply code from the control port after an ftp command has
         * been executed. It knows the last line of the response because it begins
         * with a 3 digit number and a space, (a dash instead of a space would be a
         * continuation).
         private int getServerReply()
              throws IOException
              return Integer.parseInt(getFullServerReply().substring(0, 3));
         * Gets server reply string from the control port after an ftp command has
         * been executed. This consists only of the last line of the response,
         * and only the part after the response code.
         private String getFullServerReply()
              throws IOException
              String reply;
              do {
                   reply = inputStream.readLine();
                   debugPrint(reply);
              } while(!(Character.isDigit(reply.charAt(0)) &&
                        Character.isDigit(reply.charAt(1)) &&
              Character.isDigit(reply.charAt(2)) &&
                        reply.charAt(3) == ' '));
              return reply;
         * Executes the given FTP command on our current connection, returning the
         * three digit response code from the server. This method only works for
         * commands that do not require an additional data port.
         public int executeCommand(String command)
              throws IOException
              outputStream.println(command);
              return getServerReply();
         * Executes the given FTP command on our current connection, returning the
         * last line of the server's response. Useful for commands that return
         * one line of information.
         public String getExecutionResponse(String command)
              throws IOException
              outputStream.println(command);
              return getFullServerReply();
         * Executes the given ftpd command on the server and writes the results
         * returned on the data port to the file with the given name, returning true
         * if the server indicates that the operation was successful.
         public boolean readDataToFile(String command, String fileName)
              throws IOException
              // Open the local file
              RandomAccessFile outfile = new RandomAccessFile(fileName, "rw");
              // Do restart if desired
              if (restartPoint != 0) {
                   debugPrint("Seeking to " + restartPoint);
                   outfile.seek(restartPoint);
              // Convert the RandomAccessFile to an OutputStream
              FileOutputStream fileStream = new FileOutputStream(outfile.getFD());
              boolean success = executeDataCommand(command, fileStream);
              outfile.close();
              return success;
         * Executes the given ftpd command on the server and writes the contents
         * of the given file to the server on an opened data port, returning true
         * if the server indicates that the operation was successful.
         public boolean writeDataFromFile(String command, String fileName)
              throws IOException
              // Open the local file
              RandomAccessFile infile = new RandomAccessFile(fileName, "r");
              // Do restart if desired
              if (restartPoint != 0) {
                   debugPrint("Seeking to " + restartPoint);
                   infile.seek(restartPoint);
              // Convert the RandomAccessFile to an InputStream
              FileInputStream fileStream = new FileInputStream(infile.getFD());
              boolean success = executeDataCommand(command, fileStream);
              infile.close();
              return success;
         * Executes the given ftpd command on the server and writes the results
         * returned on the data port to the given OutputStream, returning true
         * if the server indicates that the operation was successful.
         public boolean executeDataCommand(String command, OutputStream out)
              throws IOException
              // Open a data socket on this computer
              ServerSocket serverSocket = new ServerSocket(0);
              if (!setupDataPort(command, serverSocket)) return false;
              Socket clientSocket = serverSocket.accept();
              // Transfer the data
              InputStream in = clientSocket.getInputStream();
              transferData(in, out);
              // Clean up the data structures
              in.close();
              clientSocket.close();
              serverSocket.close();
              return isPositiveCompleteResponse(getServerReply());     
         * Executes the given ftpd command on the server and writes the contents
         * of the given InputStream to the server on an opened data port, returning
         * true if the server indicates that the operation was successful.
         public boolean executeDataCommand(String command, InputStream in)
              throws IOException
              // Open a data socket on this computer
              ServerSocket serverSocket = new ServerSocket(0);
              if (!setupDataPort(command, serverSocket)) return false;
              Socket clientSocket = serverSocket.accept();
              // Transfer the data
              OutputStream out = clientSocket.getOutputStream();
              transferData(in, out);
              // Clean up the data structures
              out.close();
              clientSocket.close();
              serverSocket.close();
              return isPositiveCompleteResponse(getServerReply());     
         * Transfers the data from the given input stream to the given output
         * stream until we reach the end of the stream.
         private void transferData(InputStream in, OutputStream out)
              throws IOException
              byte b[] = new byte[1024]; // 1K blocks I guess
              int amount;
              // Read the data into the file
              while ((amount = in.read(b)) > 0) {
                   out.write(b, 0, amount);
         * Executes the given ftpd command on the server and writes the results
         * returned on the data port to the given FilterOutputStream, returning true
         * if the server indicates that the operation was successful.
         private boolean setupDataPort(String command, ServerSocket serverSocket)
              throws IOException
              // Send our local data port to the server
              if (!openPort(serverSocket)) return false;
              // Set binary type transfer
              outputStream.println("type i");
              if (!isPositiveCompleteResponse(getServerReply())) {
                   debugPrint("Could not set transfer type");
                   return false;
              // If we have a restart point, send that information
              if (restartPoint != 0) {
                   outputStream.println("rest " + restartPoint);
                   restartPoint = 0;
                   // TODO: Interpret server response here
                   getServerReply();
              // Send the command
              outputStream.println(command);
              return isPositivePreliminaryResponse(getServerReply());
         * Get IP address and port number from serverSocket and send them via the
         * <code>port</code> command to the ftp server, returning true if we get a
         * valid response from the server, returning true if the server indicates
         * that the operation was successful.
         private boolean openPort(ServerSocket serverSocket)
              throws IOException
              int localport = serverSocket.getLocalPort();
              // get local ip address
              InetAddress inetaddress = serverSocket.getInetAddress();
              InetAddress localip;
              try {
                   localip = inetaddress.getLocalHost();
              } catch(UnknownHostException e) {
                   debugPrint("Can't get local host");
                   return false;
              // get ip address in high byte order
              byte[] addrbytes = localip.getAddress();
              // tell server what port we are listening on
              short addrshorts[] = new short[4];
              // problem: bytes greater than 127 are printed as negative numbers
              for(int i = 0; i <= 3; i++) {
                   addrshorts[i] = addrbytes;
                   if (addrshorts[i] < 0)
                        addrshorts[i] += 256;
              outputStream.println("port " + addrshorts[0] + "," + addrshorts[1] +
              "," + addrshorts[2] + "," + addrshorts[3] + "," +
              ((localport & 0xff00) >> 8) + "," +
              (localport & 0x00ff));
              return isPositiveCompleteResponse(getServerReply());
         * True if the given response code is in the 100-199 range.
         private boolean isPositivePreliminaryResponse(int response)
              return (response >= 100 && response < 200);
         * True if the given response code is in the 300-399 range.
         private boolean isPositiveIntermediateResponse(int response)
              return (response >= 300 && response < 400);
         * True if the given response code is in the 200-299 range.
         private boolean isPositiveCompleteResponse(int response)
              return (response >= 200 && response < 300);
         * True if the given response code is in the 400-499 range.
         private boolean isTransientNegativeResponse(int response)
              return (response >= 400 && response < 500);
         * True if the given response code is in the 500-599 range.
         private boolean isPermanentNegativeResponse(int response)
              return (response >= 500 && response < 600);
         * Eliminates the response code at the beginning of the response string.
         private String excludeCode(String response)
              if (response.length() < 5) return response;
              return response.substring(4);
         * Prints debugging information to stdout if the private flag
         * <code>PRINT_DEBUG_INFO</code> is turned on.
         private void debugPrint(String message) {
              if (PRINT_DEBUG_INFO) System.err.println(message);
         * The socket through which we are connected to the FTP server.
         private Socket connectionSocket = null;
         * The socket output stream.
         private PrintStream outputStream = null;
         * The socket input stream.
         private BufferedReader inputStream = null;
         * The offset at which we resume a file transfer.
         private long restartPoint = 0L;
    Please help me where am I wrong?
    Thanks

    I would guess the error happens at this line:
    } while(!(Character.isDigit(reply.charAt(0)) && ...
    because apparently reply.length() is 0 at the point of failure, so charAt(0) is beyond the end of the string. You need to check the length first.

  • The name of my wireless network in the form of my modem router is not read from the iPhone, while the first era.Il my ipad does not read the network but I surf the internet. Why? What can I do?

    The name of my wireless network in the form of my modem router is not read from the iPhone, while the first era.Il my ipad does not read the network but I surf the internet. Why? What can I do?

    Can I use this DIR-635 to extend the WiFi network of the "Belgacom" WiFi?
    To answer this question correctly, a user would need to have a DIR-635 router connected by Ethernet to a Belgacom router.
    If you think about it, the chances of another user who has these two same devices configured this way and also being on an Apple support forum to see your post are about zero.
    The following might work, but you will not know until you try.
    Configure the DIR-635 to provide a wireless network that uses the exact same wireless network name, exact same wireless security and exact same password as the Belgacom wireless router. Make sure that the DIR-635 is configured in Bridge Mode.
    Can I purchase and set-up an Apple Airport Express or Apple Airport Extreme on my level 1 (the ethernet cable running from level 2 to level 1 could plug-into either of those)
    The AirPort Express or AirPort Extreme would need to be configured exactly the same way as mentioned above.
    (What is the difference in the 2 -- one is about twice the price of the other…)
    http://www.apple.com/wifi/

  • Error while doing MIRO-Overflow for arithmetical operation (type P) in prog

    Hi ,
    I am getting the error while doing the MIRO  as below-
    Runtime Errors         COMPUTE_BCD_OVERFLOW
    Exception              CX_SY_ARITHMETIC_OVERFLOW
    Date and Time          20.05.2009 10:07:03
    Short text
         Overflow during the arithmetical operation (type P) in program "SAPLMRMC".
    What happened?
         Error in the ABAP Application Program
         The current ABAP program "SAPLMRMC" had to be terminated because it has
         come across a statement that unfortunately cannot be executed.
    What can you do?
         Note down which actions and inputs caused the error.
         To process the problem further, contact you SAP system
         administrator.
         Using Transaction ST22 for ABAP Dump Analysis, you can look
         at and manage termination messages, and you can also
         keep them for a long time.
    Error analysis
         An exception occurred that is explained in detail below.
         The exception, which is assigned to class 'CX_SY_ARITHMETIC_OVERFLOW', was not
          caught in
         procedure "MRM_AMOUNT_QUANTITY_PROPOSE" "(FUNCTION)", nor was it propagated by
          a RAISING clause.
         Since the caller of the procedure could not have anticipated that the
    Please let me know how can this be removed.

    Hi,
    There can be some problem with tolerances set in the customizing.
    In my case, I was getting this error because of delivery date variance. The difference between delivery date maintained in PO and invoice date was huge and hence the multiplication of price of PO and difference  of delivery date was huge and that was the reason for error.
    Similarly in your case also, there will be some tolerance limit problem.
    Please check your tolerance limits set in customizing.
    Regards,
    Mihir Popat

  • While doing union operation, i am getting the following eror.

    While doing union operation, i am getting the following eror.
    Solution for the following error
    "Numbers of columns and their data types must be consistent across all criteria and Result Columns"

    Hi...phani..thanks for the response..
    Report 1: TopN values... working fine
    Report2: >TopN values working fine.
    when i union the 2 the result is: all records, and i got it.
    ReQ: i have to add the remaining Records of >N at the end of the report, represents Others: xxxx
    My ReQ:
    Col1 Col2 Col3 # of Srs %Of Srs
    ABC Complaint Operation 200 40%
    CDF ACD Part Availability 100 20%
    Others 300 40%
    suppose for first column in result tab,
    Formula tab: case when saw_4>10 then 'Others' else saw_0 end.
    when i put the above condition in Result columns i am getting the error.
    Error: Numbers of columns and their data types must be consistent across all criteria and Result Columns

  • While doing comparison using SDK received a warning message

    Hi,
    While doing comparison using Adobe Acrobat 8 SDK - receiving a warning message "The Organizer database is damaged and will be reset the next time Acrobat is launched. Quit the application and close any currently opened web browsers."
    Can any body help me how to rectify the above problem?
    Thanks,
    Sudhakar
    Note: I have reparied the Acrobat professional but still the problem not solved.

    Dear Chaka,
    If my understanding is correct normally even after setting the TECO status set,you can do confirmations,and you can issue
    components against the order.
    After technical completion you can still make postings for the order. For instance, material withdrawal or a confirmation can be
    posted if they were previously forgotten.
    Check this link
    http://help.sap.com/saphelperp60_sp/helpdata/en/a3/664a3397e311d1b5a70000e8359890/content.htm_
    But generally in order to block the confirmation or goods movement for a TECO status set order,we can either an user Exit or
    else block it using the settings in BS22- System status.
    But you check this BADI - WORKORDER_UPDATE using the method at save or else withi this REORG_STATUS_ACT_CHECK
    Check and revert
    Regards
    S Mangalraj

  • I am experiencing error while downloading Photoshop. It says that the operating system does not support photoshop

    i am experiencing error while downloading Photoshop. It says that the operating system does not support photoshop

    Since you have not provided any actual system info not told us what version of Photoshop, we can't really know what is going on.
    Mylenium

  • Problem while using Comparison Operator 'CA' in select queries

    Hi ,
    I have written select query like this.
       SELECT * FROM rsdodso INTO TABLE gt_rsdodso       
                                 WHERE odsobject CA s_obj-low.
    then I am getting error 'CA is not a valid comparison operator'.
    Would you please suggest me how to use Comparison operators.
    Regards,
    K.krishna.
    Moderator Message: Basic Post. Thread Locked. Points unassigned.
    Edited by: kishan P on Dec 27, 2010 1:07 PM

    Hi,
       Use 'IN' and not CA. You cannot use CA in where clause. Write CA in if .. endif.
       SELECT * FROM rsdodso INTO TABLE gt_rsdodso
       WHERE odsobject IN s_obj.
    if  gt_rsdodso-ODSOBJECT CA '0D_FC_D01'.
    endif.
    Regards,
    Srini.
    Moderator Message: Do NOT answer basic questions.
    Edited by: kishan P on Dec 27, 2010 1:07 PM

  • ABAP DUMP While doing GI Through Zmovement type in MIGO Transaction

    Hi ,
    We have migrated from FM FBS to BCS from 12.01.2015.
    And we are using 101 profile with GR and IR update.
    We received blow ABAP Dump while doing the GI through MIGO Transaction.
    Can you please help on this.
    Dump detatils
    Category               ABAP Programming Error
    Runtime Errors         MESSAGE_TYPE_X
    ABAP Program           CL_BUAVC_ENTRY================CP
    Application Component  PSM-FM-BCS-AC
    Date and Time          13.01.2015 09:10:00
    Operating system..... "AIX 1 6, AIX 1 7"                                                      |
    |                                                                                                  |
    |    Memory consumption                                                                            |
    |    Roll.... 0                                                                                    |
    |    EM...... 33518336                                                                             |
    |    Heap.... 0                                                                                    |
    |    Page.... 196608                                                                               |
    |    MM Used. 21989120                                                                             |
    |    MM Free. 3145840                                                                              |
    |User and Transaction                                                                              |
    |    Client.............. 256                                                                      |
    |    User................ "MM_BUX00_ZZ"                                                            |
    |    Language key........ "R"                                                                      |
    |    Transaction......... "MIGO_GI "                                                               |
    |    Transaction ID...... "54AEDD9E3EE60710E10080000A15C616"                                       |
    |                                                                                                  |
    |    EPP Whole Context ID.... "54B35F7088300910E10080000A15C616"                                   |
    |    EPP Connection ID....... 00000000000000000000000000000000                                     |
    |    EPP Caller Counter...... 0                                                                    |
    |                                                                                                  |
    |    Program............. "CL_BUAVC_ENTRY================CP"                                       |
    |    Screen.............. "SAPLMIGO 0001"                                                          |
    |    Screen Line......... 18                                                                       |
    |    Debugger Active..... "none"                                                                   |
    |Information on where terminated                                                                   |
    |    Termination occurred in the ABAP program "CL_BUAVC_ENTRY================CP" -                 |
    |     in "POST".                                                                                   |
    |    The main program was "SAPLMIGO ".                                                             |
    |                                                                                                  |
    |    In the source code you have the termination point in line 82                                  |
    |    of the (Include) program "CL_BUAVC_ENTRY================CM00J".                               |
    |Source Code Extract                                                                               |
    |Line |SourceCde                                                                                   |
    |   52|*--- method has provided some errors!):                                                     |
    |   53|                                                                                            |
    |   54|* Note 1499464:                                                                             |
    |   55|*      IF cl_abap_aab_utilities=>is_active( id = 'BUAVC_GROUP'                              |
    |   56|*       mode_assert_dump = 'X' ) = 'X'.                                                     |
    |   57|      MOVE 'X' TO l_flg_dump.                                                               |
    |   58|*      ENDIF.                                                                               |
    |   59|                                                                                            |
    |   60|*--- Check if the entry buffer of the AVC ledger contains data records                      |
    |   61|*--- from previous COLLECT events:                                                          |
    |   62|      IF ( l_f_avc_ledger-ref_ledger->entry_buffer_lines_count( ) > 0 ).                    |
    |   63|*--- Sorry, must dump:                                                                      |
    |   64|        ASSERT ID buavc_group                                                               |
    |   65|               FIELDS c_avc_text 'POSTING_NOT_ALLOWED'                                      |
    |   66|               CONDITION l_flg_dump <> 'X'.                                                 |
    |   67|        IF l_flg_dump = 'X'.                                                                |
    |   68|          MESSAGE x002(buavc) WITH c_avc_text space                                         |
    |   69|                                   'POSTING_NOT_ALLOWED' space.                             |
    |   70|        ENDIF.                                                                              |
    |   71|      ENDIF.                                                                                |
    |   72|    ENDIF.                                                                                  |
    |   73|*----------------------------------------------------------------------                     |
    |   74|* Note 1666556:                                                                             |
    |   75|    IF me->g_commit_before_post EQ 'X'.                                                     |
    |   76|*--- An unauthorized COMMIT WORK occurred before calling this POST                          |
    |   77|*--- method. This COMMIT WORK has refreshed the AVC entry buffer and                        |
    |   78|*--- would thus create a database inconsistency!                                            |
    |   79|      MOVE 'X' TO l_flg_dump.                                                               |
    |   80|      IF l_flg_dump = 'X'.                                                                  |
    |   81|*--- Sorry, must dump (see note 1666556):                                                   |
    |>>>>>|        MESSAGE x002(buavc) WITH c_avc_text space                                           |
    |   83|                                 'INVALID_COMMIT' space.                                    |
    |   84|      ENDIF.                                                                                |
    |   85|    ENDIF.                                                                                  |
    |   86|*----------------------------------------------------------------------                     |
    |   87|                                                                                            |
    |   88|                                                                                            |
    |   89|*--- Call the POST method of the corresponding ledger instance:                             |
    |   90|    CALL METHOD l_f_avc_ledger-ref_ledger->post                                             |
    |   91|      EXPORTING                                                                             |
    |   92|        i_ref_appl_log = me->g_ref_appl_log                                                 |
    |   93|        i_doc_ref      = i_doc_ref.                                                         |
    |   94|                                                                                            |
    |   95|  ENDLOOP.                                                                                  |
    |   96|                      
    Thanks Advance.
    SAM

    Hi Sam,
    Please check if there is any commit statement written in badi or enhancement before calling this method for posting which is leading to update termination.
    Regards,
    Prakash.

  • ABAP runtime error while doing ME21N, ME22N, ME23N, ME51N,ME52N, ME53N

    Dear All Expert,
    I am facing problem while doing ME21N, ME22N, ME23N, ME51N,ME52N, ME53N,
    Please find the below ABAP Runtime Error.
    Runtime Errors         LOAD_TYPE_VERSION_MISMATCH
    Date and Time          10.02.2011 11:13:07
    Short text
         Change of a Dictionary structure at runtime of a program.
    What happened?
         Runtime error
         The current ABAP program "CL_IM_WRF_MM_PROC_PO==========CP" had to be
          terminated because one
         of the statements could not be executed at runtime.
    What can you do?
         Restart the program.
         If the error persists, contact your SAP administrator.
         You can use the ABAP dump analysis transaction ST22 to view and manage
         termination messages, in particular for long term reference.
    Error analysis
         The ABAP runtime system detected that the Dictionary-type "WRF_POHF_KOMP_STY"
          changed
         during the flow of the transaction.
         As the type was already used in the old version
         and in the new type should be used in the same transaction in the new
          version, the transaction had to be cancelled to avoid inconsistencies.
    How to correct the error
        Try to restart the program.
    System environment
        SAP-Release 700
        Application server... "iqe"
        Network address...... "172.25.0.85"
        Operating system..... "Linux"
        Release.............. "2.6.9-55.ELsmp"
        Hardware type........ "x86_64"
        Character length.... 16 Bits
        Pointer length....... 64 Bits
        Work process number.. 0
        Shortdump setting.... "full"
        Database server... "iqe"
        Database type..... "ORACLE"
        Database name..... "IQE"
        Database user ID.. "SAPSR3"
        Terminal................. "MUMJML5727"
        Char.set.... "C"
        SAP kernel....... 700
        created (date)... "Dec 26 2010 20:17:07"
        create on........ "Linux GNU SLES-9 x86_64 cc3.3.3"
        Database version. "OCI_102 (10.2.0.2.0) "
    Patch level. 285
    Patch text.. " "
    Database............. "ORACLE 10.1.0.., ORACLE 10.2.0.., ORACLE 11.2...*"
    SAP database version. 700
    Operating system..... "Linux 2.6"
    Memory consumption
    Roll.... 16192
    EM...... 25139088
    Heap.... 0
    Page.... 40960
    MM Used. 8038136
    MM Free. 4528408
    User and Transaction
    Client.............. 600
    User................ "JKMM"
    Language key........ "E"
    Transaction......... " "
    Transactions ID..... "4D524AD1FD7A42F9E1000000AC190055"
    Program............. "CL_IM_WRF_MM_PROC_PO==========CP"
    Screen.............. " "
    Screen line......... " "
    Information on where terminated
        The termination occurred during generation of the ABAP/4 program
         "CL_IM_WRF_MM_PROC_PO==========CP".
        The termination occurred in line 213
        of the source code of program "CL_IM_WRF_MM_PROC_PO==========CM007" (when
         calling the editor 2130).
    Source Code Extract
    Line  SourceCde
      183   DATA: l_flag TYPE wrf_pbas_boolean.
      184
      185   CALL FUNCTION 'WRF_POHF_MSG_READ_PREVIEW_FLAG'
      186     IMPORTING
      187       e_preview_flag = l_flag.
      188
      189   IF NOT l_flag IS INITIAL.
      190
      191     DATA: l_header TYPE REF TO cl_po_header_handle_mm.
      192
      193     MOVE im_header ?TO l_header.
      194
      195     CALL METHOD l_header->if_output_mm~preview( ).
      196
      197     CALL FUNCTION 'WRF_POHF_MSG_RESET_PREV_FLAG'.
      198
      199 ***$ Widening Cast for printing information.
      200 **    CALL FUNCTION 'WRF_POHF_STORE_PRINT_INFO_SET'
      201 **      EXPORTING
      202 **        im_header = l_header.
      203
      204 * Printing Preview
      205 * IF NOT gv_preview IS INITIAL.
      206 *    CALL METHOD l_header->if_output_mm~overview( ).
      207 *    CALL METHOD l_header->if_output_mm~preview( ).
      208 * clear gv_preview.
      209   ENDIF.
      210
      211 *  ENDIF.
      212
    >>>>> ENDMETHOD.
    Internal notes
        The termination was triggered in function "ab_RxDdicStruShareFailed"
        of the SAP kernel, in line 2539 of the module
         "//bas/700_REL/src/krn/runt/abtypload.c#11".
        The internal operation just processed is " ".
        Internal mode was started at 20110210111306.
        Name of the changed type......: "WRF_POHF_KOMP_STY"
        New version of the type.......: 20070508193207
        Old version of the type.......: 20070508193207
        New user......................: "Type" "WRF_POHF_KOMP_STY"
        Version of the new user.......: 20070508193207
        Old user......................: "???" "???"
        Version of the old user.......: "???"
    Active Calls in SAP Kernel
    Lines of C Stack in Kernel (Structure Differs on Each Platform)
    (CTrcStack2+0x78)[0x6cbb78]
    (CTrcStack+0xb)[0x6cc17b]
    (ab_rabax+0x3be5)[0xb8d985]
    (_Z24ab_RxDdicStruShareFailedPKtm4RUDIS0_S1_S0_+0x163)[0xb16823]
    (_Z19ab_GetDdicTypeIndexPKtm4RUDI+0x1f6)[0xb0dbb6]
    (_Z11ab_LoadViewPtjPKtPK11PROGRAMHEADPj+0x27e)[0xb16ede]
    (_Z18ab_GetDdicTypeLoad4RUDI+0x6e)[0xb1705e]
    (ab_GetView+0xc1d)[0xb0ee1d]
    (_Z20CompressInitRcByDatajPK6CG_DIRjjS1_jj4RUDIPKhj+0x60d)[0xe32b2d]
    (_Z21cg_CompressStackFrameP4TRIGjj+0x169)[0xe33399]
    (_Z8cg_blkleP3ENV+0x75f)[0xe4779f]
    (_Z9sc_cblklePKt8ENV_KINDP7SC_INFO+0x394)[0xe90024]
    (sc_blkle+0xdd)[0xec6e4d]
    (rs_oper_abap1729+0x37)[0x10eb237]
    (rs_expan_abap+0xa1996)[0xfd7a2a]
    (_Z8sc_expanj+0x76d)[0xe1d55d]
    (_Z5parsejPi+0x258)[0xe19998]
    (sc_check+0xb9c)[0xe1857c]
    (sc_inclu+0x5fa)[0xe0d50a]
    (rs_oper_abap2160+0x3a)[0x1115d6a]
    (rs_expan_abap+0xcd41d)[0x10034b1]
    (_Z8sc_expanj+0x76d)[0xe1d55d]
    (_Z5parsejPi+0x258)[0xe19998]
    (sc_check+0xb9c)[0xe1857c]
    (sc_checkStart+0x41)[0xe1ac51]
    (cg_generate+0xb65)[0xe57755]
    (ab_gabap+0x14a)[0xb01a5a]
    (dy_gen_abap+0x63c)[0x74428c]
    (ab_genprog+0x13d3)[0xb03d13]
    (_Z17ab_LoadProgOrTrfoPKtjPj+0xb56)[0x8f9ab6]
    (_Z11ab_LoadProgPKtj+0x11)[0x8f9ca1]
    (_Z15LoadGlobalClassPKtjjj9ClasState+0x24c)[0x958c2c]
    (_Z11FillCfixIntPK4CREFP4CFIXjj9ClasState+0x214)[0x957404]
    (_Z11ab_FillCfixtj+0x65)[0x957ae5]
    (_Z26ab_CrefToCladId_ActivateOKtPh+0x7d)[0x957b6d]
    (_Z8ab_jaboov+0x623)[0x959793]
    (_Z8ab_extriv+0x607)[0x8ba9c7]
    (_Z9ab_xeventPKt+0x1c1)[0xa1c021]
    (_Z8ab_triggv+0x9c)[0xa1c77c]
    (ab_run+0x97)[0xbde5c7]
    (N_ab_run+0x9)[0x736359]
    (dynpmcal+0x669)[0x7333b9]
    (dynppai0+0x8eb)[0x734d9b]
    (dynprctl+0x3e9)[0x733db9]
    (dynpen00+0x4a5)[0x726eb5]
    (Thdynpen00+0x359)[0x541bd9]
    (TskhLoop+0xc49)[0x54d999]
    (ThStart+0x20f)[0x55b29f]
    (DpMain+0x2da)[0x4bd49a]
    (nlsui_main+0x9)[0x4910c9]
    (main+0x33)[0x491103]
    /lib64/tls/libc.so.6(__libc_start_main+0xdb)[0x3cde51c3fb]
    Please help me to resolve the issue.
    Thanks & Regards
    SKK

    read this part again:  The ABAP runtime system detected that the Dictionary-type "WRF_POHF_KOMP_STY" changed during the flow of the transaction. As the type was already used in the old version and in the new type should be used in the same transaction in the new version, the transaction had to be cancelled to avoid inconsistencies. How to correct the error Try to restart the program
    how often had you restarted ME21N before you posted this message?
    In best case this message appears only once, because the program / or dictionary was changed while you executed ME21N
    If many times, then contact your ABAPer, because then he probably did not transport all objects that were changed, or the objects have to be regenerated in your system.

  • Problem in Refurbishment processing while doing GR.

    Dear experts,
    I'm working on refurbishment processing.
    I have done all the steps as below:
    I have a material for equipment for which I have 3 valuation types:
    C1 - New items
    C2 - Repaired Items
    C3 - Damaged Items.
    1. Equipment creation with serial number allocating the valuation type C1 installed at a F/L
    2. I have 2 no.s of the same in stock with the valuation type C1.
    Now I got a problem with equipment which is installed and needs to send it to the vendor for repair.
    I have changed the valuation type to C3 of the equipment in serial number data, and dismantled using t code IE4N with movement type 202.
    After that I have issued one material (equipment) from stock to the same cost center and then went to change mode of the equipment (IE02) in structure tab I have mentioned the F/L.
    Now I have created a Refurbishment order for the damaged equipment, mentioning from valuation C3 to valuation C2 in the order.
    I have mentioned the Service number, qyt and price in the External screen of the Operations tab. Released the order. I got PR. (I have mentioned only services for the PR, no materials)
    I have created the PO w.r.t the PR from the refurbishment order.
    After that the vendor has completed the services and returned the material (equipment), for tha I'm following the GR w.r.t refurbishment order i.e, IW8W.
    I have entered the Order number then enter.
    There in the new screen it shows,
    Change charge / valuation type+Post GR. this is having tick bydefualt.
    Posting date: 28.05.2009
    Document date28.05.2009
    Valuation type C2 in gray mode
    Plant 1250 in gray mode
    stor. location 1040 optinal entry
    Then I have ticed the box for Deliv. Compl
    Here I am not finding the material nuber or serial number.
    In the bottom of the screen it shhows the header
    Serila number        Material number       Materaildoc number    Batch/Valuation Type
    The headers are showing but no data under the header.
    While saving the document it gives error message as below:
    Select serial numbers
    Message no. CMFU106
    But there is no data of serial number to select.
    I have tried the same in IDES, there it is showing only Material numbe no serial number, but allowing to save the document. (the screen is bit different that of Devl. server, in IDES the header as I mentioned above is not appearing, just below the order number the Material number is displaying.)
    Can any one please help me in solving this error message?
    I am following the steps correctly? If not please tell me where I'm doing wrong?
    Thanks in Advance,
    Regards,
    Praveen.

    Dear Experts,
    I was able to complete the process through MIGO.
    I have changed the valuation type of the serial number master through IQ02 from C3 to C2. Then I have done the GR w.r.t the order. Now it has posted the document.
    There were some errors while doing this, like some settings missing in OBYC for GBB. That also I have rectified then it allowed for the GR.
    Surprisingly, it not allowing to post through IW8W where everything will change automatically, like Valuation type from C3 to C2 etc...
    I am not able to understand why this is not happening?
    The steps I followed would be work around.
    Can some please help me out ?
    Regards,
    Praveen.

  • While doing SO, im getting run time error - reg;

    Hi,
    While doing sales order and whenever im doing save its  getting runtime error.
    Runtime Errors         MESSAGE_TYPE_X
    Date and Time          14.12.2011 10:55:26
    Short dump has not been completely stored (too big)
    Short text
        The current application triggered a termination with a short dump.
    What happened?
        The current application program detected a situation which really
        should not occur. Therefore, a termination with a short dump was
        triggered on purpose by the key word MESSAGE (type X).
    What can you do?
        Note down which actions and inputs caused the error.
        To process the problem further, contact you SAP system
        administrator.
        Using Transaction ST22 for ABAP Dump Analysis, you can look
        at and manage termination messages, and you can also
        keep them for a long time.
    Error analysis
        Short text of error message:
        Maintain the current CRM release (table CRMPAROLTP)
        Long text of error message:
         Diagnosis
             Various transfer errors occur when transferring SAP sales orders to
             CRM or there is no status update or the status update has errors
             when transferring from CRM to the SAP system. This is caused by an
             incorrect entry for the CRM release in the SAP table CRMPAROLTP, or
             no entry is maintained at all.
         System Response
             To avoid data inconsistencies, this message causes a short dump.
         Procedure
             Maintain table CRMPAROLTP in your SAP system as is described in SAP
             Note 691710 and then repeat the process again.
         Procedure for System Administration
        Technical information about the message:
        Message class....... "V3"
        Number.............. 302
        Variable 1.......... " "
        Variable 2.......... " "
        Variable 3.......... " "
        Variable 4.......... " "
    How to correct the error
        Probably the only way to eliminate the error is to correct the program.
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
    Runtime Errors         MESSAGE_TYPE_X
    Date and Time          14.12.2011 10:55:26
    hort dump has not been completely stored (too big)
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "MESSAGE_TYPE_X" " "
        "SAPMV45A" or "MV45AF0B_BAPIDATEN_ERMITTELN"
        "BAPIDATEN_ERMITTELN"
        If you cannot solve the problem yourself and want to send an error
        notification to SAP, include the following information:
        1. The description of the current problem (short dump)
           To save the description, choose "System->List->Save->Local File
        (Unconverted)".
        2. Corresponding system log
           Display the system log by calling transaction SM21.
           Restrict the time interval to 10 minutes before and five minutes
        after the short dump. Then choose "System->List->Save->Local File
        (Unconverted)".
        3. If the problem occurs in a problem of your own or a modified SAP
        program: The source code of the program
           In the editor, choose "Utilities->More
        Utilities->Upload/Download->Download".
        4. Details about the conditions under which the error occurred or which
        actions and input led to the error.
    System environment
        SAP-Release 700
        Application server... "personal"
        Network address...... "192.168.2.11"
        Operating system..... "Windows NT"
        Release.............. "5.2"
        Hardware type........ "4x Intel 80686"
        Character length.... 16 Bits
        Pointer length....... 32 Bits
        Work process number.. 1
        Shortdump setting.... "full"
        Database server... "PERSONAL"
        Database type..... "ORACLE"
        Database name..... "GCU"
        Database user ID.. "SAPSR3"
        Char.set.... "C"
        SAP kernel....... 700
        created (date)... "Aug 29 2006 00:18:21"
        create on........ "NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10"
        Database version. "OCI_10201_SHARE (10.2.0.1.0) "
        Patch level. 75
        Patch text.. " "
    Runtime Errors         MESSAGE_TYPE_X
    Date and Time          14.12.2011 10:55:26
    hort dump has not been completely stored (too big)
        Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."
        SAP database version. 700
        Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2"
        Memory consumption
        Roll.... 8176
        EM...... 30311496
        Heap.... 0
        Page.... 139264
        MM Used. 14538320
        MM Free. 91952
    User and Transaction
        Client.............. 100
        User................ "INFO_SD"
        Language key........ "E"
        Transaction......... "VA01 "
        Program............. "SAPMV45A"
        Screen.............. "SAPMV45A 4001"
        Screen line......... 65
    Information on where terminated
        Termination occurred in the ABAP program "SAPMV45A" - in "BAPIDATEN_ERMITTELN".
        The main program was "SAPMV45A ".
        In the source code you have the termination point in line 338
        of the (Include) program "MV45AF0B_BAPIDATEN_ERMITTELN".
    Edited by: kiran35086 on Dec 14, 2011 6:30 AM

    Dear  kiran,
    This might be many reasons.If you have not done  configuration properly system will take you to dump(Run time error).
    Try read the diagnosis possibly you may understand the problem.
    If not You coordinate with your technical team.
    Thanks&Regards
    Raghu.k

  • OWB 9.0.4 :SQL*Loader: Operator POSTMAPPING does not support

    Hi,
    While trying to poulate Analytical Workspace using WB_LOAD_OLAP_CUBE, I got the following validation error
    The analysis of the mapping is not successful under all supported languages and operating modes. Detail is as follows:
    SQL*Loader: Operator POSTMAPPING does not support SQL*Loader generation.
    ABAP: Operator AWPARAMS does not support ABAP generation.
    I dont know what that means. Your help will be appreciated. Do I need apply some post 9.2.0.3 patch?. If yes, please let me know the patch number if available.
    FYI: I am using Oracle9i with 9.2.0.3 patch
    Thanks
    Panneer

    Panneer,
    Does the regular process load from a flat file into a table? This would be implemented as SQL loader mapping... in which case a PL/SQL call cannot be implemented.
    What you could do:
    - Use an external table to read from the flat file.
    - Use the transformation in a process flow. I.e. you first execute the SQL loader mapping and then execute the transformation.
    Mark.

  • While doing puchout user is getting Overlapping time message in OTL Time entry responsibility

    while doing puchout user is getting Overlapping time message in OTL Time entry responsibility

    XmlBeans, at least the version I'm working with now, doesn't support version 3 of the Document Object Model (DOM). I don't know what operations were introduced in DOM 3, but I guess you're trying to use one of them. What worked for me is to copy the Document into a DocumentBuilder that does support DOM 3, such as the JDK's own builder, and work with the copy. This should be all right if the document is not too large. The following URL has the details:
    http://issues.apache.org/jira/browse/XMLBEANS-100
    (Look for the post dated 22/Aug/08, which as I write this is the very last post.)

  • Just switched from safari on my imac. when using search menu safari gave me the option to "find on this page," which was an incredible help while doing research. Is there any way to have this feature using firefox?

    Just switched from safari on my imac. When using search menu in safari I had the option to "find on this page," which was an incredible help while doing research and looking for specific phrases/words. Is there any way to have this feature using firefox?

    I think Safari has the same keyboard shortcut as Firefox "command+F" on a Mac or "Ctrl+F" on Windows.
    Look in the lower left corner for the Find. There are more likely to be differences in Find Next and Find Previous in the keyboard shortcuts, but continuing at the Find bar at the bottom doesn't matter what browser you use. There is an "X" there to dismiss the Find bar. In Windows the "Esc" key will dismiss the bar if you are within the find text entry area.
    Keyboard shortcuts:
    * [https://support.mozilla.com/en-US/kb/Keyboard%20shortcuts?s=keyboard&amp;r=0&amp;as=s Keyboard shortcuts | How to | Firefox Help], from Mozilla very limited number of shortcuts but will show correctly for your system
    * [http://dmcritchie.mvps.org/firefox/keyboard.htm Firefox and other Browser Keyboard Shortcuts (Comparison Table)], more comprehensive but is oriented to Windows users with some guidelines for Mac and Linux users.
    <br><small>Please mark "Solved" one answer that will best help others with a similar problem -- hope this was it.</small>

Maybe you are looking for