Log4j async appender and line number output

Hello,
I am trying to implement log4j in my application, and would like to log the caller class and the line number of the call. When I do not use async appender, the caller class and the line number are logged. However when I add the same appenders to the AsyncAppender, the caller information is lost. Please, take a look at the config and output snippets.
Thanks,
Elana
======
Here is the configuration without the use of the async appender (Async tags are commented out)
<log4j:configuration debug="true">
<!-- <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="SystemOut"/>
    <appender-ref ref="FileOut"/>
  </appender>
   -->
  <appender name="SystemOut" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
             value="%5p (%d{DATE}) [%t] (%F:%L) - %m%n"/>
    </layout>
  </appender>
  <appender name="FileOut" class="org.apache.log4j.RollingFileAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
             value="%5p (%d{DATE}) [%t] (%F:%L) - %m%n"/>
    </layout>
    <param name="File" value="logs/exampleAsync.log"/>
    <param name="MaxFileSize" value="100KB"/>
    <param name="MaxBackupIndex" value="1"/>
  </appender>
  <root>
    <!--<appender-ref ref="ASYNC"/>       -->
      <appender-ref ref="FileOut"/>
      <appender-ref ref="SystemOut"/>
  </root>
</log4j:configuration>It produces the following output:
DEBUG (08 Apr 2006 17:03:49,140) [Thread-0] (LogGenerator.java:79) - Debugging
DEBUG (08 Apr 2006 17:03:52,145) [Thread-0] (LogGenerator.java:74) - TracingHere is the configuration WITH the use of async appender
<log4j:configuration debug="true">
  <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="SystemOut"/>
    <appender-ref ref="FileOut"/>
  </appender>
  <appender name="SystemOut" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
             value="%5p (%d{DATE}) [%t] (%F:%L) - %m%n"/>
    </layout>
  </appender>
  <appender name="FileOut" class="org.apache.log4j.RollingFileAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
             value="%5p (%d{DATE}) [%t] (%F:%L) - %m%n"/>
    </layout>
    <param name="File" value="logs/exampleAsync.log"/>
    <param name="MaxFileSize" value="100KB"/>
    <param name="MaxBackupIndex" value="1"/>
  </appender>
  <root>
    <appender-ref ref="ASYNC"/>
  </root>
</log4j:configuration>It produces the following output: (NOTE the question marks in the place of caller info)
DEBUG (08 Apr 2006 17:12:12,534) [Thread-1] (?:?) - Tracing
DEBUG (08 Apr 2006 17:12:15,528) [Thread-1] (?:?) - Debugging

I don't think you can use AsyncAppender with a properties file. You have to use XML and a JoranConfigurator

Similar Messages

  • How to find proc/func name from package name and line number?

    Hi,
    We are using the pl/sql call stack dump (dbms_utility.format_call_stack) for some debugging purposes. But in the case of a package body execution, the dump does not return the name of the procedure/function that is being executed, but only the name of the package and the line number being executed. So, we have a requirement wherein we need to extract the type and name of a package subunit from the package name and line number.
    e.g.
    From the information package 'A', line number 739
    we should be able to deduce that line 739 is a part of *'function A.f'*
    Does the oracle database provide any native mechanism (PL/SQL packages or otherwise) to support such functionality? If it does not, how can we achieve the desired result?
    Thanks in advance,
    Shashank

    The approach we are currently planning to take up is this :
    1. Write PL/SQL code to parse the entire source (user_source) and build a database table with a structure like this :
    PACKAGE_NAME | UNIT_TYPE | UNIT_NAME | START_LINE | END_LINE
    =============================================
    A | PROCEDURE | P1 | 20 | 345
    A | FUNCTION | F1 | 347 | 629
    etc..
    2. Start PL/SQL package execution.
    3. Keep dumping call stack snapshots whenever a custom debug procedure is called.
    4. Dump the package name and line number to a log file.
    5. Using the package name and line number, query the table built in step 1 and build the final report which shows the control flow in a readable form.
    What we want is to get rid of step 5 and by some means get the logic to extract the unit type and name in step 4 itself.
    Keep them coming..
    Thanks and regards,
    Shashank

  • Record key and Line number

    - What are the uses of 'record key' and 'line number' in the DTW template?

    So It is like indexing the records? okie..
    Let me tell you a scenario. Please tell me what would be the result.
    scenario 1:
    Items to be uploaded: 200
    number of templates: 2 ( 100 items per template)
    I define the record key 1- 100 for the 100 items in the first template
    I  also define the record key 1-100 (not 101 -200) in the second template
    In this attempt, what will be the result? will the second template items update the first template items?

  • Reset file name and line number in preprocessor

    We are using Sun Studio 12u1 on Solaris x86 10u9.
    For one of our large projects our make file copies many C++ source files into one large allsource.cpp file. This results in significantly faster compilation and better inter-procedural optimizations.
    Unfortunately, when the compiler generates warning or error messages they refer to allsource.cpp. Also when it comes time to debug, dbx is looking for debugging information for the original source file instead of looking for allsource.o.
    On Windows (MSVC), we use the #line directive to reset the line number and filename so that the error messages point to the correct line and number, and so that the debugger knows that the debugging information for myfile.cpp is actually in allsource.o.
    Does the Sun compiler have anything similar to the #line directive?

    To reset the preprocessor to the start of a new file:
    #1 "filename"
    where filename is the name or complete path name of the file.
    To change the line number within the current file:
    #N
    or
    #line N
    where N is an integer
    Example:
    % cat z.cc
    struct S { X x; };
    #1 "/foo/bar.h"
    Int I;
    #500
    Float F;
    #line 1000
    Double D;
    88% CC -c z.cc
    "z.cc", line 1: Error: Type name expected instead of "X".
    "/foo/bar.h", line 1: Error: Int is not defined.
    "/foo/bar.h", line 500: Error: Float is not defined.
    "/foo/bar.h", line 1000: Error: Double is not defined.
    4 Error(s) detected.BTW, you might get a similar improvement in compile time by using precompiled headers.
    The -xipo option provide inter-procedural optimization across compilation units. Refer to the C++ Users Guide for details.
    We seem to have a bug in the Forum software. My original source code and the compiler output have double quotes ("...") but they show as single quotes in the code brackets.
    Edited by: clamage45 on Apr 13, 2010 1:13 PM

  • Printf line number and/or file name - preprocessor macros

    Hello,
    I'm wondering if any preprocessor macro's exist to "xil_printf" the current source filename and line number. In some tools this is available as __LINE__ and/or  __FILE__ 
     

    ok I tried, and found this to work fine 
    xil_printf("%s - line %d\n\r", __FILE__, __LINE__);
    guess all these macro's are available (?)
    https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html#Standard-Predefined-Macros
     

  • Re: Method name and/or line number available from withinForte?

    To my knowledge there is no such capability with forte, and for sure it
    would be nice. Short
    of storing all that metadata at runtime, a compile-time substitution such
    as is done with
    most C preprocessors would work as well.
    However, I believe the solution you've identified falls short in a deployed
    fashion - I think
    all that method name/line number stuff is only available from the workshop...
    -J
    At 02:54 PM 10/27/98 -0600, [email protected] wrote:
    I'm sure this question has been asked many times, but I don't know that I've
    ever heard the answer. Is there any way from Forte to access the method
    name of the currently executing method? What about the current line number?
    I'm sure you all know what I'm getting at by now -- when raising your own
    custom exceptions or logging messages we'd like to be able to not hard-code
    method names and line numbers into them. I know these are available with
    log flags so this information is stored somewhere -- is there an API to
    access it on an agent, the task, or the environment? The only way I can
    think of doing this (which is not-so-elegant) is to force a Forte exception
    to be raised (like access a method on a null TextData or something), then
    immediately catch it and extract the method and line number from it. Is
    there a more elegant way?
    -J.C.
    J.C. Hamlin, Senior Consultant, Forte National Practice
    Born Information Services Group, Wayzata, MN
    Ph: (612) 404-4000 Ph2: (612) 783-8270 FAX: (612) 404-4441
    <[email protected]> <[email protected]>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>**************************************
    John L. Jamison
    Vice President and Chief Technology Officer
    Sage IT Partners, Inc.
    415 392 7243 x 306
    [email protected]
    The Leaders in Internet Enabled Business Change
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Method task.TraceBack () returns a string suitable for shoving on the error
    stack, and representing a call trace. The method
    method TomW_RaiseException.RaiseException
    begin
    ge : GenericException = New ();
    ge.SetWithParams (SP_ER_USER, task.TraceBack ());
    task.ErrorMgr.AddError (ge);
    Raise ge;
    end method;
    produces the following when called from the display method of the window in
    which it is embedded.
    USER ERROR:
    Traceback:
    TomW_RaiseException.RaiseException at line 2
    TomW_RaiseException.Display at line 4
    TomW_RaiseException. at offset 13
    C++ Method(s)
    UserApp.Run at offset 96
    Class: qqsp_Exception
    Last TOOL statement: method TomW_RaiseException.RaiseException, line 3
    Error Time: Wed Oct 28 08:28:34
    Exception occurred (locally) on partition "TomW_Test_CL0_Client",
    (partitionId = AA6475E0-3DD2-11D2-B582-04228BFFAA77:0x117f:0x6,
    taskId =
    [AA6475E0-3DD2-11D2-B582-04228BFFAA77:0x117f:0x6.34]) in application
    "FTLaunch_cl0", pid 195 on node SPNMXSHOP7 in environment SFDEVL.
    I suppose that a sufficiently determined person could parse the results of
    TraceBack () and extract the
    method and line from it. But I know of no method that explicitly returns
    the name of the calling method.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Javadoc Comments Begin and End Offset, Line number etc...

    Hello Everyone,
    I was wondering if there is a method that return the begin and end offsets, and line number of source code comment. I know this is possible to get the line number for Doc, MethodDoc, ConstutorDoc etc... with the position() method. I was unable to get the locations of comments corresponding to the actual source code. Also, I found that when asking for the position of constructors the value returned was that of the class, is this a known bug?
    Thanks in Advanced,
    Nick

    nkhamis wrote:
    Just out of curiosity, what do the folks at sun use for Java Parsers?They didn't need to go too far. The Java Parser must be a part of any Java compiler itself! Therefore, it is a part of any JDK. Obviously, they have some internal API of their Java parser and, I guess, Javadoc uses it to build the Java code model provided via the Doclet API. But Sun had never published the full API to their Java parser. (At least, I don't know such.) Although, it would be very useful indeed...
    FYI, a parser for a high-level programming language (like Java) is a software module that inputs a program written (by humans) as text in that language and converts it into some object representation (model) "understandable" to computer. That object representation must be a sort of tree representing all the language constructs found in the program. Typically, that tree is accessible via a certain API, which I call here a Parser API (although, other terminology may be used).
    Other software modules may use that object representation of the program for various purposes, for instance:
    - To generate an executable machine (or byte-) code by it
    - To transform the initial program in order to optimize it (this is used by compilers) or to do other things (e.g. refactoring)
    - To generate documentation (that's what Javadoc does)
    Besides generating the program object representation, another job of a parser is to provide diagnostics about various syntactical errors found in the initial program source (a well as possibly some semantic warnings).
    A parser is rather sophisticated piece of code. To develop it properly, one needs to learn first some theory about this, e.g. a formal grammar that describes the given programming language and how to deal with it. I know, there have been attempts to create some universal parsers that can be adjusted to parse any programming language (within a certain range) by specifying to them some formal grammar of that language. That topic was particularly beloved by university guys, so there must be many scientific articles about this.
    thomas.behr wrote:
    Well, if you are developing an Eclipse plugin, have you considered working with Eclipse' Abstract Syntax Tree (basically an object model for Java code) instead of the Doclet API?Interesting stuff... Looks like this might be that very Java parser API I am talking about here.
    Leonid Rudy
    [http://www.docflex.com|http://www.docflex.com]

  • Getting log4j's SocketNode and SocketAppender to work

    For the past week I've been struggeling hard to get remote logging working using the log4j SocketNode and SocketAppender, but failed to succeed. Unfortunately there is not so much information on the log4j.net package to be found on the internet, lets forget about a working example.
    This is what I've been doing so far:
    SimpleSocketServer
    On the server I'm running a SimpleSocketServer instance on port 4445 through the command:
    java -classpath D:\RemoteLog4JServer\lib\log4j-1.2.12.jar org.apache.log4j.net.SimpleSocketServer 4445 simplesocketserver.properties
    The simplesocketserver.properties file looks like:
    log4j.rootLogger=debug,stdout,R
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=remote_log.log
    log4j.appender.R.MaxFileSize=1024KB
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nOn the system console I see this server is running fine.
    Next step is to start a SocketNode-instance through a Java application.
    The main code of this class looks like:
    //-- Start a new SocketNode
    try {
    System.out.println("Accessing socket on host " + m_hostName + " through port " + m_port);
    Socket socket = new Socket(m_hostName, new Integer(m_port).intValue());
    //-- All right so far, now create the SocketNode
    System.out.println("Create the SocketNode listener");
    new SocketNode(socket, new Hierarchy(Logger.getRootLogger()));
    catch ..... Host and port are passed through application parameters and are 127.0.0.1 and 4445
    Again on the server console it confirms the listener is bound to the socket on port 4445 ...
    The last part of the puzzle is a test client application which sends remote logging events to the server.
    The body of this class looks like:
    static Logger logger = Logger.getRootLogger();
    public static void main(String argv[]) {
    // Try sending logging events through the SocketAppender in the log4j_remote.properties file
    System.out.println("Try sending logs through the SocketAppender in the log4j.properties file");
    PropertyConfigurator.configure("log4j_remote.properties"); //Logs to a SocketAppender; host 127.0.0.1, port 4445
    logger.debug("Hello world");
    logger.info("What a beatiful day.");
    // And try sending logging events through SocketAppender instance
    System.out.println("Try sending logs through a SocketAppender instance");
    SocketAppender sa = new SocketAppender("171.21.241.122", 4445);
    System.out.println("Created SocketAppender instance");
    String logMsg = "Writing log event through SocketAppender instance";
    LoggingEvent le = new LoggingEvent("fox.teststuff.TestLog4J",Logger.getRootLogger(),Level.DEBUG,logMsg, new Throwable());
    sa.append(le);
    sa.close();
    }As you can see I tried remote logging on two ways:
    1.
    Through the log4j_remote.properties file by configuring a SocketAppender. This file looks like:
    log4j.rootCategory=DEBUG,stdout,A1
    # ConsoleAppender
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    # A1 is set to be a SocketAppender sending its output to the server running on the remote host, port 12345.
    log4j.appender.A1=org.apache.log4j.net.SocketAppender
    log4j.appender.A1.Port=4445
    log4j.appender.A1.RemoteHost=[IP_ADDRESS_SERVER]2.
    By using a SocketAppender instance.
    But unfortunately neither work. The log remote_log.log gets created as the SimpleSocketServer is started. It contains entries of the successfull starting of the server and the SocketNode.
    I also see the logs coming in the client console on running the test applicattion.
    There is no firewall between client and server, and I am able to setup a tellnet session from client to server and vice versa through port 4445 (after launching the SimpleSocketServer).
    Furthermore I used some IP-sniffing tools to check the IP-traffic from client to server, and this shows me the TCP/IP packet is successfully sent on the client, and successfully received on the server.
    But no client-entries appear in the server log :-(
    I would be very gratefull if someone has got a clue. And you can be sure I will pass this knowledge on to the community.
    Thanks in advance, kind greetings,
    Harro de Vos

    UPDATE:
    Meanwhile I discovered 2 problems, with many thanks to my collegue Pattrick.
    1.
    The SimpleSocketServer is a server/listener which makes use of the SocketNode-class. Therefore it was needless and wrong for me to launch a SocketNode-instance in my StartSocketNode-class. This probably only caused conflicts.
    2.
    In my testclass I tried to create remote logging events on 2 ways, though the SocketAppender in the log4j.properties file and through the use of a programmed instance of the SocketAppender-class.
    It could very well be running these two methods in the same thread also causes conflicts, so I tried them seperately.
    I didn't get the first one to work (through the properties file), but the second solution (SocketAppender instance) did the trick for me!!
    Only remaining issue is this solution causes an EOFException.
    Anybody any ideas about this?

  • Dbx unable to locate right line number

    I recently mounted my file system on a new Solaris 9 machine. I tried debugging my program in sun studio 8 on the new machine and I received debugging errors when I tried to set break points in object files or template files. The error message is as follows:
    dbx: no executable code at line "file name": -1
    The main problem was that dbx did not correctly link the header file to the right path namem as the file name in the error msg was wrong. I tried setting the breakpoints using command line in dbx, manually inserting "stop at" commands inserting the right path names and line number and it worked! However, when I simply clicked on the side bar to try to set a break point, the above error msg appeared.
    I checked that I loaded the right files and file systems. I ran the same program on workshop on the old system and it debugged without problems. Could this be a problem in my build?
    This maybe a simple problem but I need to figure this out. Thanks for any help.
    YN

    Debugging data in the object files contains the paths to the files, relative paths when possible.
    If the path to a file on the build machine is different from the path to the file on the debugging machine, the debugger will not be able to find the files. That is, if you build the program with a reference to /home/project/src/foo.cc but the file cannot be reached by that path on the debugging machine, the debugger can't find foo.cc.
    You need to arrange your NFS mount points, possibly adding symbolic links to directories, so the paths to the files look the same from both machines.
    You can mitigate this problem if all files are under a common root, and you use only relative paths in all compiler options, link options, and #include directives. That is, instead of -I/absolute/path/to/directory, use -I../../relative/path/to/directory. Similar considerations apply to -L options and #include directives.
    If you need to work on the same code from a number of machines, it might be more convenient to put all the files on a server, and mount the server at the same mount point on all machines that need to access the code. For example, put all the files on machine S in /export/home/project, then export the "/export" file system. Each machine that needs to access the files mounts S:/export/ at /mnt/S. Then you can uniformly access the project directory as /mnt/S/home/project.

  • PO comparison with similar materila number and line items

    Dear Friends,
       I wish to know in a report how i classify the pos having similar material and line items in each other, Like po number is 12 and has material numbers 1, 2, 3
    where po number 13 and has material 1,2,3. how i fetched the data from the table and classify them with similar material and line items, please tell me. any article, example, code will be grete help of mine,
    thanking you
    regards
    Naim

    Guess you need to display report with Purchase Order nos where Material nos are similar.
    On selection screen add parameters Material and Line Item no. Both should ba mandatory.
    Get data from EKPO where MATNR = P_MATNR and EBELP = P_EBELP.
    Display the same in report output.
    Just need to check with you - Material nos can be same on multiple POs but Material, Item no combination may not be.
    I can use same material in another PO with different Line Item as other PO already has some line items. Why do you need this check?

  • How to extract cost centers and their number of appendant assets to internal table?

    Hello,
    my aim is to get an internal table with all my selected cost centers and the number of their appendant assets to pass this to a SmartForm.
    The result would be something like:
    cost center
    number of assets
    100000
    65
    100001
    13
    100002
    105
    100007
    3
    100008
    57
    What I did so far: I made up an SQL statement, which I tested in the transaction DBACOCKPIT (Performance -> Additional Functions -> SQL Command Editor), which works fine and gives me exactly what I need.
    The SQL statement is (slightly simplified, and exemplarily only for costcenters 100000 and 100001):
    select costcenter, count( assetnr ) as numberofassets from
         ( select anlz.kostlv as costcenter, anla.anln1 as assetnr, anla.deakt, anla.aktiv from anla
              join anlz on anla.mandt = anlz.mandt and anla.bukrs = anlz.bukrs and anla.anln1 = anlz.anln1
              where anlz.kostlv = '0000100000' or anlz.kostlv = '00000100001' )
    group by costcenter
    Now, I want this SQL statement to work in my ABAP code. To match the requirements of the ABAP Editor (SE80), I
    - replaced all the point delimiters (.) by a tilde (~),
    - removed all commas,
    - added "into costcenter_assetcount" to store my result in an internal table.
    So in my ABAP code the SQL looks like this (alias assetnr inb the first line is printed in red):
    select costcenter count( assetnr ) as numberofassets from
       ( select anlz~kostlv as costcenter anla~anln1 as assetnr anla~deakt anla~aktiv from anla
           join anlz
             on anla~mandt = anlz~mandt
             and anla~bukrs = anlz~bukrs
             and anla~anln1 = anlz~anln1
           where anlz~kostlv = '0000100000' or anlz~kostlv = '00000100001' )
        into costcenter_assetcount
    group by costcenter
    Checking my code, ABAP Editor gives me a syntax error pointing to the SELECT of the subquery (it's in German, because this is my default language setting). After my first FROM, ABAP seems to expect a table name instead of a subquery.
    Programm Z_FIAA_ASSETCOUNT        @0A\QFehler@
    "SELECT" ist im ABAP-Dictionary nicht als Tabelle, Projektions- oder     
    Datenbank-View deklariert.
    Isn't it possible to use a SELECT subquery after my FROM in the ABAP Editor?
    What would be the best practice to put the data in an internal table?
    Looking forward to your comments!

    Hi,
    I think, You make it to complicated, try this:
    select anlz~kostlv as costcenter count( distinct anla~anln1 ) as numberofassets
       from anla
            join anlz
              on anla~mandt = anlz~mandt
              and anla~bukrs = anlz~bukrs
              and anla~anln1 = anlz~anln1
            where anlz~kostlv = '0000100000' or anlz~kostlv = '00000100001'
       group by anlz~kostlv.
    Jarek

  • Show the PO and Invoice Number along with Distribution Line Info

    Does any one have some code that can show the PO and Invoice number along with the distribution line detail?
    I'm tring to get to the po.po_vendors for segment1 and po.po_distributions_all but it screws up at the po.po_lines_all table which needs outer joins and it's just not working for me.

    In case Invoice Distribution is matched to a Purchase Order then
    ap_invoice_distributions_all.PO_DISTRIBUTION_ID and ap_invoice_distributions_all.DIST_CODE_COMBINATION_ID is the link to po_distributions_all table
    Hope this help
    Ashish

  • Link between schedule Line Number and Delivery

    Is there a link between Schedule line Number and Delivery number ?
    Eg. Line item 10 with quantity 100. 
    has 5 schedule lines..with 5 different delivery dates.
    1 .  quanity 40
    2.   quantity 30
    3.   quantity 20
    4.   quanity  6
    5    quantity  4
    For schedule line 1, 2 deliveries were created,
    one      with quantity 20
    another with quantity 15
    quantity 5 is still not delivered.
    also schedule lines 2,3,4 and 5 are fully delivered.
    Is there any table, FM etc in SAP which will give me the link between the schedule line and delivery number ?
    Total deliveries created : 6. - But which delivery corresponds to which schedule line ?
    Please dont tell me to look VGBEL and VGPOS.. that will just give line item number 10.. I need to get the schedule line number.
    Also, RV_SCHEDULE_CHECK_DELIVERIES --> will give me the delivered quantity against each schedule line.
    My purpose is to create an ontime delivery report .
    a report which list each schedule lines, and tell, how many shipments were late/ontime/early etc..
    and for Late ones, how many days late has to be found.
    this is where i need the delivery.
    No. Of days Late = Actual GI Date - Planned GI Date.
    Actual GI date is in the delivery.
    Any suggestions ?
    Thank you in advance.

    Hi,
    Check in the below link.
    relation between VBEP-ETENR and LIKP-VBELN
    Thanks,
    Sree.

  • Audio Line-in input and BT Headset output not working

    Hi,
    I'm trying to run the Line-in into my MBPro and route the output to my Logitech H800 BT Headphones at the same time (a pass through), but can't get it to work.
    I have tried to run the line-in to the Internal Speakers and can not get this to work either.
    Steps to taken:
    1. Go to the Sound window by selecting the Sound icon from System Preferences.
    Next, I route the Line-in by:
    2. Selecting the Input button from Sound Effects, Output, Input buttons.
    3. Select "Line In" from the Select a device for sound input list.
    4. Select "Sound Input" from the Use audio port for drop down list
    5. you should see activity on the Input Level.
    6. Next, select the Ouput button from Sound Effects, Output, Input buttons.
    7. Select "H800 Logitech Headset Stereo (or Internal Speakers) from the Select a device for sound output list.
    8. Verify that "Sound Input" from the Use audio port for drop down list is still selected.
    9. Also, verify that the Mute checkbox is not selected in either the Input or Output window.
    10. NO SOUND :-(
    11. If I pull up a radio station in a webbrowser, I can listen to it without issue. So, I think audio out is set correctly.
    12. If I install Audacity: 1) It shows the audio input and output to be set as above (Built-in Input/H800 Headset). 2) If I record and then playback, it records the audio going in the Line-In and plays back accross the H800. 3) Also looked for a Monitor function in Audacity but could find one to test simulataneous I/O. 
    Any idaes welcome ?

    ahh sry, thats how the line in works on my Mac Pro, I guess the Macbook is different. This is a program I use in conjunction with another called 'soundflower' to route my audio to all the places it needs to go:
    http://www.macupdate.com/app/mac/11333/linein
    If you need to run multiple instances, you can open up terminal and type
    open -n /Applications/[PUT PROGRAM NAME HERE].app/
    It will open up another instance every time you run that script.

  • Just setting up iCloud on my iMac, my problem is when trying to sign out/off from iCloud it comes up with a verification code that is being sent to my land line, I'd changed the numbers in my Apple ID and they show as changed but the land line number stil

    Just setting up iCloud on my iMac 10.9.2, my problem is when trying to sign out/off from iCloud it comes up with a verification code that is being sent to my land line, I'd changed the numbers in my Apple ID and they show as changed but the land line number still shows as number that the verification code is being sent, I prompt "Don't have access to this phone" and that's no help at all.  The only way I can sign out /off from iCloud is to uncheck everything that I wanted to keep in the cloud????
    Thanks in advance for any help.

    Skip the iCloud sign in for now.
    Once you reach the home page, go to settings and sign out of FaceTime and Messages.  This should also sign you out of iCloud.
    Go to iCloud in settings and sign in with the correct Apple ID.
    If that does not work
    Skip the iCloud sign in
    Go to Apple ID.apple.com and sign in
    Change your Apple ID to the old one
    Delete iCloud account on your device with the old Apple ID and the same password.
    Go back to the website, change your Apple ID back to the current one. You will receive an email to verify the account. Verify first.
    Sign into iCloud on your device with the correct Apple ID and password

Maybe you are looking for