Facing Problem in Executing T-codes

Hi SAP Exoerts,
I am assigned to work on Travel Management. System Admin guys has given me the access for T-codes TRIP, TP20
But even after giving access both t-codes are not working
system says Infotype P0017 could not be read. I also check infotype 0017, it is there for my employee.
Kindly help me out.
Thanks
Archana

<i>But even after giving access both t-codes are not working
system says Infotype P0017 could not be read</i>
run the transaction and after getting this error, in the same screen in the commandbox type in <b>/nsu53</b> and hit enter, if there is any issue with authorization, the system will list out failed auth objects.
Regards
Raja

Similar Messages

  • Problem While Executing T.CODE DP90

    Hi,
      We have Upgrade our system from 4.6C to ECC6.
      We are facing following problem while executing Resource Related Billing request 
      Through Transaction code DP90.
    Process.
    1.     We are creating Sales Order and system will create Service order automatically as per the configuration.
    2.     In service order we have External as well internal operations ,
    Internal operations will be confirmed through IW41, and External Operations we are creating Purchase Requisition then creating PO and MIRO,
    After all Operations confirmed we will make Service order status as technically completed, then we are executing DP90 for Resource Related Billing, System will determine the material, combination of Cost element and Activity Type (Which is configured in T.Code ODP1) For External Operations System is Considering Activity Type for material determination in 4.6c but it is not considering Activity Type for Material Determination in ECC6 for External Operations.
       Please Help me,
    Edited by: D B on Apr 29, 2008 6:13 PM

    Hi Prashanth,
          Thanks for your reply, but all activity are valid in current period, in our Scenario in the old system for External Operations with combination of Activity type and Cost element system is determining material but where as in the new system for external operations it is not considering the Activity type and system is determining the material in the combination of   Cost element and Blank activity type so, we are getting different material in DP90.

  • Facing Problem while executing a command through WLST

    Hi,
    Iam using Weblogic 11g(10.3.2).Whenever I execute the below command in WLST on windows it is working fine.
    reassociateSecurityStore(domain="base_domain",admin="cn=orcladmin",password="welcome1",ldapurl="ldap://<hostname>:389",servertype="OID",jpsroot="cn=jpsroot_idm_idmhost1")
    But whenever i execute the same in Linux,it is throwing the error as below:
    wls:/base_domain/serverConfig> reassociateSecurityStore(domain="base_domain",admin="cn=orcladmin",password="welcome1",ldapurl="ldap://<hoistname>:389",servertype="OID",jpsroot="cn=jpsroot_idm_idm1")
    Traceback (innermost last):
    File "<console>", line 1, in ?
    NameError: reassociateSecurityStore
    Please suggest....
    Regards
    Pavan

    Facing Problem while executing a command through WLST

  • Problem while executing the code( that covert jpeg images to movie)

    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/JpegImagesToMovie.html
    here is the code:
    * @(#)JpegImagesToMovie.java     1.3 01/03/13
    * Copyright (c) 1999-2001 Sun Microsystems, Inc. All Rights Reserved.
    * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
    * modify and redistribute this software in source and binary code form,
    * provided that i) this copyright notice and license appear on all copies of
    * the software; and ii) Licensee does not utilize the software in a manner
    * which is disparaging to Sun.
    * This software is provided "AS IS," without a warranty of any kind. ALL
    * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
    * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
    * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
    * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
    * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
    * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
    * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
    * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
    * POSSIBILITY OF SUCH DAMAGES.
    * This software is not designed or intended for use in on-line control of
    * aircraft, air traffic, aircraft navigation or aircraft communications; or in
    * the design, construction, operation or maintenance of any nuclear
    * facility. Licensee represents and warrants that it will not use or
    * redistribute the Software for such purposes.
    import java.io.*;
    import java.util.*;
    import java.awt.Dimension;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.protocol.*;
    import javax.media.protocol.DataSource;
    import javax.media.datasink.*;
    import javax.media.format.VideoFormat;
    * This program takes a list of JPEG image files and convert them into
    * a QuickTime movie.
    public class JpegImagesToMovie3 implements ControllerListener, DataSinkListener {
    public boolean doIt(int width, int height, int frameRate, Vector inFiles, MediaLocator outML) {
         ImageDataSource ids = new ImageDataSource(width, height, frameRate, inFiles);
         Processor p;
         try {
         System.err.println("- create processor for the image datasource ...");
         p = Manager.createProcessor(ids);
         } catch (Exception e) {
         System.err.println("Yikes! Cannot create a processor from the data source.");
         return false;
         p.addControllerListener(this);
         // Put the Processor into configured state so we can set
         // some processing options on the processor.
         p.configure();
         if (!waitForState(p, p.Configured)) {
         System.err.println("Failed to configure the processor.");
         return false;
         // Set the output content descriptor to QuickTime.
         p.setContentDescriptor(new ContentDescriptor(FileTypeDescriptor.QUICKTIME));
         // Query for the processor for supported formats.
         // Then set it on the processor.
         TrackControl tcs[] = p.getTrackControls();
         Format f[] = tcs[0].getSupportedFormats();
         if (f == null || f.length <= 0) {
         System.err.println("The mux does not support the input format: " + tcs[0].getFormat());
         return false;
         tcs[0].setFormat(f[0]);
         System.err.println("Setting the track format to: " + f[0]);
         // We are done with programming the processor. Let's just
         // realize it.
         p.realize();
         if (!waitForState(p, p.Realized)) {
         System.err.println("Failed to realize the processor.");
         return false;
         // Now, we'll need to create a DataSink.
         DataSink dsink;
         if ((dsink = createDataSink(p, outML)) == null) {
         System.err.println("Failed to create a DataSink for the given output MediaLocator: " + outML);
         return false;
         dsink.addDataSinkListener(this);
         fileDone = false;
         System.err.println("start processing...");
         // OK, we can now start the actual transcoding.
         try {
         p.start();
         dsink.start();
         } catch (IOException e) {
         System.err.println("IO error during processing");
         return false;
         // Wait for EndOfStream event.
         waitForFileDone();
         // Cleanup.
         try {
         dsink.close();
         } catch (Exception e) {}
         p.removeControllerListener(this);
         System.err.println("...done processing.");
         return true;
    * Create the DataSink.
    DataSink createDataSink(Processor p, MediaLocator outML) {
         DataSource ds;
         if ((ds = p.getDataOutput()) == null) {
         System.err.println("Something is really wrong: the processor does not have an output DataSource");
         return null;
         DataSink dsink;
         try {
         System.err.println("- create DataSink for: " + outML);
         dsink = Manager.createDataSink(ds, outML);
         dsink.open();
         } catch (Exception e) {
         System.err.println("Cannot create the DataSink: " + e);
         return null;
         return dsink;
    Object waitSync = new Object();
    boolean stateTransitionOK = true;
    * Block until the processor has transitioned to the given state.
    * Return false if the transition failed.
    boolean waitForState(Processor p, int state) {
         synchronized (waitSync) {
         try {
              while (p.getState() < state && stateTransitionOK)
              waitSync.wait();
         } catch (Exception e) {}
         return stateTransitionOK;
    * Controller Listener.
    public void controllerUpdate(ControllerEvent evt) {
         if (evt instanceof ConfigureCompleteEvent ||
         evt instanceof RealizeCompleteEvent ||
         evt instanceof PrefetchCompleteEvent) {
         synchronized (waitSync) {
              stateTransitionOK = true;
              waitSync.notifyAll();
         } else if (evt instanceof ResourceUnavailableEvent) {
         synchronized (waitSync) {
              stateTransitionOK = false;
              waitSync.notifyAll();
         } else if (evt instanceof EndOfMediaEvent) {
         evt.getSourceController().stop();
         evt.getSourceController().close();
    Object waitFileSync = new Object();
    boolean fileDone = false;
    boolean fileSuccess = true;
    * Block until file writing is done.
    boolean waitForFileDone() {
         synchronized (waitFileSync) {
         try {
              while (!fileDone)
              waitFileSync.wait();
         } catch (Exception e) {}
         return fileSuccess;
    * Event handler for the file writer.
    public void dataSinkUpdate(DataSinkEvent evt) {
         if (evt instanceof EndOfStreamEvent) {
         synchronized (waitFileSync) {
              fileDone = true;
              waitFileSync.notifyAll();
         } else if (evt instanceof DataSinkErrorEvent) {
         synchronized (waitFileSync) {
              fileDone = true;
              fileSuccess = false;
              waitFileSync.notifyAll();
    public static void main(String args[]) {
         if (args.length == 0)
         prUsage();
         // Parse the arguments.
         int i = 0;
         int width = -1, height = -1, frameRate = 1;
         Vector inputFiles = new Vector();
         String outputURL = null;
         while (i < args.length) {
         if (args.equals("-w")) {
              i++;
              if (i >= args.length)
              prUsage();
              width = new Integer(args[i]).intValue();
         } else if (args[i].equals("-h")) {
              i++;
              if (i >= args.length)
              prUsage();
              height = new Integer(args[i]).intValue();
         } else if (args[i].equals("-f")) {
              i++;
              if (i >= args.length)
              prUsage();
              frameRate = new Integer(args[i]).intValue();
         } else if (args[i].equals("-o")) {
              i++;
              if (i >= args.length)
              prUsage();
              outputURL = args[i];
         } else {
              inputFiles.addElement(args[i]);
         i++;
         if (outputURL == null || inputFiles.size() == 0)
         prUsage();
         // Check for output file extension.
         if (!outputURL.endsWith(".mov") && !outputURL.endsWith(".MOV")) {
         System.err.println("The output file extension should end with a .mov extension");
         prUsage();
         if (width < 0 || height < 0) {
         System.err.println("Please specify the correct image size.");
         prUsage();
         // Check the frame rate.
         if (frameRate < 1)
         frameRate = 1;
         // Generate the output media locators.
         MediaLocator oml;
         if ((oml = createMediaLocator(outputURL)) == null) {
         System.err.println("Cannot build media locator from: " + outputURL);
         System.exit(0);
         JpegImagesToMovie3 imageToMovie3 = new JpegImagesToMovie3();
         imageToMovie3.doIt(width, height, frameRate, inputFiles, oml);
         System.exit(0);
    static void prUsage() {
         System.err.println("Usage: java JpegImagesToMovie -w <width> -h <height> -f <frame rate> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...");
         System.exit(-1);
    * Create a media locator from the given string.
    static MediaLocator createMediaLocator(String url) {
         MediaLocator ml;
         if (url.indexOf(":") > 0 && (ml = new MediaLocator(url)) != null)
         return ml;
         if (url.startsWith(File.separator)) {
         if ((ml = new MediaLocator("file:" + url)) != null)
              return ml;
         } else {
         String file = "file:" + System.getProperty("user.dir") + File.separator + url;
         if ((ml = new MediaLocator(file)) != null)
              return ml;
         return null;
    // Inner classes.
    * A DataSource to read from a list of JPEG image files and
    * turn that into a stream of JMF buffers.
    * The DataSource is not seekable or positionable.
    class ImageDataSource extends PullBufferDataSource {
         ImageSourceStream streams[];
         ImageDataSource(int width, int height, int frameRate, Vector images) {
         streams = new ImageSourceStream[1];
         streams[0] = new ImageSourceStream(width, height, frameRate, images);
         public void setLocator(MediaLocator source) {
         public MediaLocator getLocator() {
         return null;
         * Content type is of RAW since we are sending buffers of video
         * frames without a container format.
         public String getContentType() {
         return ContentDescriptor.RAW;
         public void connect() {
         public void disconnect() {
         public void start() {
         public void stop() {
         * Return the ImageSourceStreams.
         public PullBufferStream[] getStreams() {
         return streams;
         * We could have derived the duration from the number of
         * frames and frame rate. But for the purpose of this program,
         * it's not necessary.
         public Time getDuration() {
         return DURATION_UNKNOWN;
         public Object[] getControls() {
         return new Object[0];
         public Object getControl(String type) {
         return null;
    * The source stream to go along with ImageDataSource.
    class ImageSourceStream implements PullBufferStream {
         Vector images;
         int width, height;
         VideoFormat format;
         int nextImage = 0;     // index of the next image to be read.
         boolean ended = false;
         public ImageSourceStream(int width, int height, int frameRate, Vector images) {
         this.width = width;
         this.height = height;
         this.images = images;
         format = new VideoFormat(VideoFormat.JPEG,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        Format.byteArray,
                        (float)frameRate);
         * We should never need to block assuming data are read from files.
         public boolean willReadBlock() {
         return false;
         * This is called from the Processor to read a frame worth
         * of video data.
         public void read(Buffer buf) throws IOException {
         // Check if we've finished all the frames.
         if (nextImage >= images.size()) {
              // We are done. Set EndOfMedia.
              System.err.println("Done reading all images.");
              buf.setEOM(true);
              buf.setOffset(0);
              buf.setLength(0);
              ended = true;
              return;
         String imageFile = (String)images.elementAt(nextImage);
         nextImage++;
         System.err.println(" - reading image file: " + imageFile);
         // Open a random access file for the next image.
         RandomAccessFile raFile;
         raFile = new RandomAccessFile(imageFile, "r");
         byte data[] = null;
         // Check the input buffer type & size.
         if (buf.getData() instanceof byte[])
              data = (byte[])buf.getData();
         // Check to see the given buffer is big enough for the frame.
         if (data == null || data.length < raFile.length()) {
              data = new byte[(int)raFile.length()];
              buf.setData(data);
         // Read the entire JPEG image from the file.
         raFile.readFully(data, 0, (int)raFile.length());
         System.err.println(" read " + raFile.length() + " bytes.");
         buf.setOffset(0);
         buf.setLength((int)raFile.length());
         buf.setFormat(format);
         buf.setFlags(buf.getFlags() | buf.FLAG_KEY_FRAME);
         // Close the random access file.
         raFile.close();
         * Return the format of each video frame. That will be JPEG.
         public Format getFormat() {
         return format;
         public ContentDescriptor getContentDescriptor() {
         return new ContentDescriptor(ContentDescriptor.RAW);
         public long getContentLength() {
         return 0;
         public boolean endOfStream() {
         return ended;
         public Object[] getControls() {
         return new Object[0];
         public Object getControl(String type) {
         return null;
    on executing with the command:
    java JpegImagesToMovie -w <width> -h <height> -f <frame rate per sec.> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...
    comes this......
    Exception in thread"JMF thread:SendEventQueue:com.sun.media.processor.unknown Handler" java.lang.NullPointerException"
    plz help

    Don't forget to use the "Code Formatting Tags",
    see http://forum.java.sun.com/help.jspa?sec=formatting,
    so the posted code retains its original formatting.

  • Problem with execute immediate code

    I have the following anonymous block:
    declare
    v_id_char varchar2(50) := '2072018827821663';
    trace_flg number := 0;
    v_exe_imm varchar2(500) := 'univdb.EML_CAMPUS_200605(v_id_char, trace_flg)';
    v_exe_imm2 varchar2(500) := 'univdb.EML_CAMPUS_200605(:v_id_char, :trace_flg)';
    begin
    --1) execute immediate v_exe_imm;
    --2) execute immediate v_exe_imm2 using v_id_char, trace_flg);
    univdb.EML_CAMPUS_200605(v_id_char, trace_flg);
    end;
    The compiled procedure that is getting called is defined like this:
    CREATE OR REPLACE PROCEDURE univdb.eml_campus_200605(
    hist_str IN VARCHAR2,
    trace_flg IN NUMBER := 0) IS ...
    As you might expect, when I execute the block without execute immediate it works.
    But either of the execute immediate statements results in ORA-00900: invalid SQL statment.
    I want to use execute immediate because the procedure that gets called will need to be dynamic.
    Help appreciated,
    ...elsa

    For me, thats crude if you have a procedure thats
    getting created dynamically.
    anyway, you could try a
    execute immediate ' begin ' || your_funny_proc || '
    end;';But for sure the whole stuff is very error prone.Actually, the procedure itself isn't getting built dynamically, only which procedure to call. It's really quite clever in my opinion.
    Anyway, I tried you suggestion:
    declare
    v_id_char varchar2(50) := '2072018827821663';
    trace_flg number := 0;
    v_exe_imm varchar2(500) := 'univdb.EML_CAMPUS_200605(v_id_char, trace_flg)';
    v_exe_imm2 varchar2(500) := 'univdb.EML_CAMPUS_200605(:v_id_char, :trace_flg)';
    begin
    execute immediate 'BEGIN ' || v_exe_imm || '; END;';
    --execute immediate v_exe_imm2 using v_id_char, trace_flg);
    --univdb.EML_CAMPUS_200605(v_id_char, trace_flg);
    end;
    and got
    ORA-06550: line 1, column 32:
    PLS-00201: identifier 'V_ID_CHAR' must be declared
    Did I misunderstand what you were trying for?

  • Facing problem on executing RSA3

    Hi techies,
    In BI7 netweaver system, when my client runs RSA3 with a selection, he can see 'start date and end date', where when I run for the same DS and with same selection I can only see the field but not the value, the field appears empty.
    This could be authorization issue, but unable to figure out as its not hitting any unauthorized field internally as nothing was revealed under Trace On with security team.
    Please guide me on this ASAP.
    Regards,
    Subhash.

    Hi Subhash,
    I am not sure if there is any other way. What you can probably do is, ask the user for the frequent access he requires and the reports he executes. Thus you might be able to get the most required authorizations and provide the same to the user.
    Then you can ask the Basis to provide those accesses.
    I cannot think of a better way for this.
    Hope this helps.
    Regards,
    Gaurav

  • Facing a small problem while executing WDA application from portal

    Hi Experts,
    I developed web dynpro for ABAP application and placed table UI control, which contains 270 records. Executing from SE80, it is working fine and showing clearly all records.
    This application integrated in portal, while executing this applicaiton from portal, it is working fine and showing all records.
    Here I facing a small problem i.e Pager ( footer area ) of table.
    When the table is displayed there are the small box in the below of the table showing ROWS 244 of 270.
    244 will be available in a small box. this 244 is not showing clearly, while executing from portal ( last digit 4 displying half part only). but 244 showing clearly while executing from SE80.
    Kindly suggest how to resolve this problem.
    Thanks & Regards
    Sridhar

    Hi Gopi Krishna,
    Thanks for your time. From SE80, it is working fine and showing clearly row number. There is no property for increase width of small box, which contains current row number).
    Facing problem while executing from portal.
    Thanks & Regards
    Sridhar

  • A problem in executing exp.exe through Java

    while implementing oracle schema export I am facing problem in executing the exp.exe from JAVA. Please see sample code below.
    Process p=null;
    ProcessBuilder pb = new ProcessBuilder ("exp.exe","username/password@dbinstance", "owner=pr01",
    "file=e:/temp/pr98.dmp","log=e:/temp/pr98.log","compress=y","grants=n","STATISTICS=COMPUTE");
    try{
    p = pb.start();
    catch(Exception e){
    System.out.println("Error="+e.getMessage());
    where pr01 - name of schema to export.
    With this code, the actual export of the project starts only after Java application is closed and not immediately on the click of a button.
    I have used Runtime.exec() tooo...The same problem is there..
    Any solution?

    HI
    Did you fix this problem with svrmgr. I have exactly the same problem and I am runing redhat 7.2 and oracle 8.1.6
    Thanks, Jason

  • Problem with executing shell script on linux through java code.

    i am facing problem to kill jboss process on linux that is my application requirement. for that i created one shell script that will get all the process for jboss instance and kill them when i am running that script from command prompt on linux its working perfectly.
    The command i am using ---
    /opt/RW9/jboss/v4.0.5.GA/bin/restartjboss.sh.
    but when i am running through java code its not working.
    the java code i am using is:-
    pp = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "/opt/RW9/jboss/v4.0.5.GA/bin/restartjboss.sh"});
    could anyone tell me what is the problem ?
    Edited by: akm198110 on Sep 2, 2008 9:24 AM

    I got the problem after long struggle ,after doing proper path i am able to execute the shell script..

  • Problem while executing the transaction code FMBV (Reconstruct)

    We are facing a problem while executing the transaction code FMBV
    (Reconstruct Availability Control in Funds Management) in it when we
    execute this transaction system only updates the expenditure which is
    made before technical upgrade from 4.6c to ECC6 EHP6, against the
    Assigned Budget (KBFC budget type) in the Annual Budget Table (BPJA)
    and
    the expenditure which we made after the upgrade, the program just
    ignore
    it. We can also see the expenditure in the standard FBL3N report.
    Please guide us.
    Thanks and Best Regards,

    Dear Abrar
    In your description, you refer to missing update after an upgrade. First of all, see if table FMIT is consistent, as it is the basis for calculating the assigned values during AVC reconstruction.
    Refer to this note:
    977016 FMIT: Missing totals records in Funds Management  And perform following steps:
    1.- Run program RGZZGLUX
    2.- Run program RFFMRC04 to match totals table with line items. A test run after a successful effective run should not find inconsistencies.
    3.- If RFFMRC04 does not show more inconsistencies, run FMBV as final step.
    Note that this reconstruction must be done without any other budgeting/posting activities at the same time, otherwise you may cause  other inconsistencies.
    Please let me know the results.
    Best regards,
    977016 - FMIT: Missing totals records in Funds Management
    Symptom
    After the upgrade to ERP 2004 or higher you realize that the FMIT totals table is no longer updated in Funds Management. You start the RFFMRC04 report to reconstruct the totals, but the report still displays the missing totals after an update run.
    Other Terms
    FMIT, EA-PS, ECC 5.00, ECC 6.00, ECC 7.00
    Reason and Prerequisites
    This problem occurs due to a generation error.
    Solution
    Start the RGZZGLUX report to generate missing source code in FI-SL. Then start the RFFMRC04 report to reconstruct the totals, now another run of the report should no longer display any errors.

  • I am facing problem in starting ShellHWDetection service Error code 1075,please help

    I am facing problem in starting ShellHWDetection service Error code 1075,please help

    Shellhwdetection is a Windows service which stands for Shell Hardware Detection Service.
    It provides notifications for AutoPlay hardware events.
    System error code 1075 means "The dependency service does not exist or has been marked for deletion."
    Please run services.msc, then find Shell Hardware Detection Service, view its dependencies
    Make sure the three services are set to running "automatic" in Services.
    If this doesn't help, then run sfc to check if there're some missing or corrupted files in system.
    Yolanda Zhu
    TechNet Community Support

  • Facing problem with the code for sending an .xls attachment via email, a field value contains leading zeros but excel automatically removes these from display i.e. (00444 with be displayed as 444).kindly guide .

    Facing problem with the code for sending an .xls attachment via email, a field value contains leading zeros but excel automatically removes these from display i.e. (00444 with be displayed as 444).kindly guide .

    Hi Chhayank,
    the problem is not the exported xls. If you have a look inside with Notepad or something like that, you will see that your leading zeros are exported correct.Excel-settings occurs this problem, it is all about how to open the document. If you use the import-assistant you will have no problems because there are options available how to handle the different columns.
    Another solution might be to get familiar with ABAP2XLS-Project. I got in my mind, that there is a method implemented, that will help you solving this problem. But that is not a five minute job
    ~Florian

  • I am facing problem on T-code ko88

    Hello
    I am facing problem at the time of disuniting cost there is error if some body help me out with this
    No source assignment found for cost element 7011
    Message no. KD560
    Diagnosis
    The sender bears the AP source structure and was debited with costs from the 7011 cost element. This cost element is not assigned to any source assignment in the ASHI controlling area of the ASHI source source structure.
    Procedure
    Maintain the AP source structure.
    Thanks
    Ashish

    Hi
    You have to consider your cost element under source structure.  Then, system will consider that cost element for transferring purpose.
    Controlling > Internal Orders > Actual Postings > Settlement > Maintain Source Structure - there you have to maintain.
    Best Wishes.

  • Facing problem in creating socket in a method from an already deployed application exe while same method is working from another exe from same environment from same location.

    Dll Created In: - MFC VC
    6.0
    Application Exe Developed In:
    - VC 6.0, C# and VB.net (Applications which are using dll)
    OS: - Windows XP sp2 32bit
    / Windows Server 2008 64 bit
    Problem: - Facing problem in creating socket
    in a method from an already deployed application exe while same method is working from another exe from same environment from same location.
    Description: - We have product component which
    has an exe component and from exe we invoke a method, which is defining in dll, and that dll is developed in MFC VC6.0. In the dll we have a method which downloads images from another system after making socket connection. But every time we are getting Error
    code 7, it is not giving desire result while same method is working from another exe from same environment from same location. And also me dll is deployed on many systems and giving proper output from same application.
    Already Attempt: - Because error is coming on
    client side so what we did, we created a driver in C# which invokes same method from same environment(on client machine) using same dll and we are astonished because it worked fine there.
    Kindly Suggest: -
    We are not able to figure out root cause because nothing is coming in windows event logs but what I did, for finding the problem line, I wrote logs on each line and found the exact line in application exe which is not working,
    actually  it is not executing Create () method,
    I will give snippet of the code for understanding the problem because we are not finding any kind solution for it.
    Kindly assist us in understanding and fixing this problem.
    Code Snippet: -
    Int Initialize (LPTSTR SiteAddress, short PortId)
    try
    CClientTSSocket *m_pJtsSockto;
    m_pJtsSockto = new CClientTSSocket;
    LONG lErr = m_pJtsSockto->ConnectTS(csIPAddress,PortId);
    ErrorLog (0, 0, "--------ConnectTS has been called ------------","" );
    catch(...)
    DWORD errorCode = GetLastError();
    CString errorMessage ;
    errorMessage.Format("%lu",errorCode);
    ErrorLog (0, 0, "Image System", (LPTSTR)(LPCTSTR)errorMessage);
    return  IS_ERR_WINDOWS;
    Note: -
    CClientTSSocket extends CAsyncSocket
     IS_ERR_WINDOWS is a macro error code which value I found 7.
    LONG ConnectTS(CString strIP, UINT n_Port)
    ErrorLog(0,0,"ConnectTS is calling Create [is going to call]","");
    if(!Create())
    ErrorLog(0,0,"ConnectTS is calling [Create not called successfully] ","");
     n_Err = GetLastError();
     ErrorLog(n_Err,0,"ConnectTS is calling1111111111111111Erorrrrrrrrrrrrr","");
    return NET_INIT;
    ErrorLog(0,0,"ConnectTS is calling2222222222222222222","");
    if(!AsyncSelect(0))
    n_Err = GetLastError();
    return NET_INIT;
    if(!Connect(strIP,n_Port))
    n_Err = GetLastError();
    ErrorLog(n_Err,0,"ConnectTS","");
    return SERVER_NOT_CONNECTED;
    Code description: -
    From
    int GETImage_MT() method we call Initialize() method and pass client machine IP and Port and there we call
    ConnectTS() method, In this method we Create() method and finally it returns the error code as mention in macro 7.
    Logs after running the program: -
    --------ConnectTS has been called ------------
    ConnectTS is calling Create [is going to call]
    Image System 
    0
    Note: - According to logs, problem is coming in Create method().
    Here 0 is errorMessage received in catch block. And from catch block it returns macro value 7. And when we run same method individually from same machine, same environment through same dll
    from different exe, it is working fine and we are facing any kind of problem. While same problem application was working properly earlier but now continuously it showing problem.
     Kindly assist us to resolve the issue.

    Pointer variable was already initialized; I have mention in code; kindly assist us.
    Dll Created In: - MFC VC 6.0
    Application Exe Developed In: - VC 6.0, C# and VB.net (Applications which are using dll)
    OS: - Windows XP sp2 32bit / Windows Server 2008 64 bit
    Problem: - Facing problem in creating socket
    in a method from an already deployed application exe while same method is working from another exe from same environment from same location.
    Description: - We have product component
    which has an exe component and from exe we invoke a method, which is defining in dll, and that dll is developed in MFC VC6.0. In the dll we have a method which downloads images from another system after making socket connection. But every time we are getting
    Error code 7, it is not giving desire result while same method is working from another exe from same environment from same location. And also me dll is deployed on many systems and giving proper output from same application.
    Already Attempt: - Because error is coming
    on client side so what we did, we created a driver in C# which invokes same method from same environment (on client machine) using same dll and we are astonished because it worked fine there.
    Kindly Suggest:
    - We are not able to figure out root cause because nothing is coming in windows event logs but what I did, for finding the problem line, I wrote logs on each line and found the exact line in application exe which is not
    working, actually it is not executing Create () method, I will give snippet of the code for understanding
    the problem because we are not finding any kind solution for it. Kindly assist us in understanding and fixing this problem.
    Code Snippet: -
    Int Initialize (LPTSTR SiteAddress, short PortId)
    try
    CClientTSSocket *m_pJtsSockto;
    m_pJtsSockto = new CClientTSSocket;
    LONG lErr = m_pJtsSockto->ConnectTS(csIPAddress,PortId);
    ErrorLog (0, 0, "--------ConnectTS has been called ------------","" );
    catch(...)
                       DWORD errorCode = GetLastError();
                       CString errorMessage ;
                       errorMessage.Format("%lu",errorCode);
                       ErrorLog (0, 0, "Image System", (LPTSTR)(LPCTSTR)errorMessage);
                       return  IS_ERR_WINDOWS;
    Note: - CClientTSSocket extends CAsyncSocket
     IS_ERR_WINDOWS is a macro error code which value I found 7.
    LONG ConnectTS(CString strIP, UINT n_Port)
              ErrorLog(0,0,"ConnectTS is calling Create [is going to call]","");
              if(!Create())
                       ErrorLog(0,0,"ConnectTS is calling [Create not called successfully] ","");
              n_Err = GetLastError();
              ErrorLog(n_Err,0,"ConnectTS is calling1111111111111111Erorrrrrrrrrrrrr","");
                      return NET_INIT;
              ErrorLog(0,0,"ConnectTS is calling2222222222222222222","");
              if(!AsyncSelect(0))
                       n_Err = GetLastError();
                       return NET_INIT;
              if(!Connect(strIP,n_Port))
                       n_Err = GetLastError();
                       ErrorLog(n_Err,0,"ConnectTS","");
                       return SERVER_NOT_CONNECTED;
    Code description: - From int GETImage_MT() method
    we call Initialize() method and pass client machine IP and Port and there we call ConnectTS() method, In
    this method we Create() method and finally it returns the error code as mention in macro 7.
    Logs after running the program: -
    --------ConnectTS has been called ------------
    ConnectTS is calling Create [is going to call]
    Image System  0
    Note: - According to logs, problem is coming in Create method(). Here
    0 is errorMessage received in catch block. And from catch block it returns macro value 7. And when we run same method individually from same machine, same environment through same dll from different exe, it is working fine and we are facing any kind of problem.
    While same problem application was working properly earlier but now continuously it showing problem.
     Kindly assist us to resolve the issue.

  • Facing problem in copy of standard SAP  program

    hi,,,,,,,,,,,,
           when i execute this program in production server it displays an error ....i  m    trying to find out this error but this type(error) i cudnt find plz help me .....
           i m sending the documents which i rcvd from the system after the  execution of this program.
    this program executes perfctlly in developmnt server but it creates problem in production server,,,i searched out the type kkblo_t_sortinfo in the whole program but i cud nt find it ,,,,,,,,,
    documents.....
    Runtime Errors SYNTAX_ERROR
    Date and Time 18.11.2006 12:01:19
    ShrtText
    Syntax error in program "ZVISA_RM07MLBD ".
    What happened?
    Error in ABAP application program.
    The current ABAP program "????????????????????????????????????????" had to be
    terminated because one of the
    statements could not be executed.
    This is probably due to an error in the ABAP program.
    In program "ZVISA_RM07MLBD ", the following syntax error occurred
    in the Include "RM07MLBD_FORM_01 " in line 1805:
    The type KKBLO_T_SORTINFO" is unknown."
    also i m sending the include program ver i m facing problem...*&----
    *&  Include           RM07MLBD_FORM_01                                 *
    correction Aug. 2005 MM                                   "n856424
    - the fields "entry time", "entry date", and "User" are   "n856424
      are not filled filled for price change documents        "n856424
    MB5B improved regarding accessibilty                      "n773673
    Improvements :                       March 2003 MM        "n599218
    - print the page numbers                                  "n599218
    - send warning M7 393 when user deletes the initial       "n599218
      display variant                                         "n599218
    - show the current activity and the progress              "n599218
    contains FORM routines without preprocessor commands and  "n547170
    no text elements                                          "n547170
    *&      Form  INITIALISIERUNG
          Vorbelegung der Anzeigevariante                                *
    form initialisierung.
      repid = sy-repid.
      variant_save = 'A'.
      clear variante.
      variante-report = repid.
    Default-Variante holen:
      def_variante = variante.
      call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
           exporting
                i_save     = variant_save
           changing
                cs_variant = def_variante
           exceptions
                not_found  = 2.
      if sy-subrc = 0.
      save the initial, e.g. default variant                  "n599218
        move  def_variante-variant  to  alv_default_variant.    "n599218
        p_vari = def_variante-variant.
      endif.
    print-no_print_listinfos = 'X'.
    endform.                               " INITIALISIERUNG
    *&      Form  AKTUELLE_BESTAENDE
         Ermittlung der aktuellen eigenen Bestände,
         d.h. der bewerteten Bestände und des Retourensperrbestandes,
         auf Lagerortebene und auf Material- bzw. Chargenebene;
         folgende Sonderbestände können gesondert ausgewiesen werden:
          Lohnbearbeitung         ( Sonderbestandskennzeichen  O )
          Kundenkonsignation      (             "              V, W, M )
          Lieferantenkonsignation (             "              K )
          Projektbestand          (             "              Q )
          Kundenauftragsbestand   (             "              E )
    form aktuelle_bestaende.
    delete the range tables for the creation of table g_t_organ
      if  g_t_organ[] is initial.                               "n433765
        refresh : g_0000_ra_werks, g_0000_ra_bwkey, g_0000_ra_bukrs.
        clear   : g_0000_ra_werks, g_0000_ra_bwkey, g_0000_ra_bukrs.
      endif.
      if      bwbst = 'X'.
      select the valuated stocks
        perform                  aktuelle_bst_bwbst.
      elseif lgbst = 'X'.
      all own stock from storage locations or batches
        if xchar = ' '.
          perform                aktuelle_bst_lgbst_mard.
        elseif  xchar = 'X'.
          perform                aktuelle_bst_lgbst_xchar.
        endif.
      elseif   sbbst = 'X'.
       special stocks
        case    sobkz.
          when  'O'.
            perform              aktuelle_bst_sbbst_o.
          when  'V' or  'W'.
            perform              aktuelle_bst_sbbst_v_w.
          when  'K' or  'M'.
            perform              aktuelle_bst_sbbst_k_m.
          when  'Q'.
            perform              aktuelle_bst_sbbst_q.
          when  'E'.
            perform              aktuelle_bst_sbbst_e.
          when  others.
          Angegebener Sonderbestand nicht vorhanden.
            message s290.
            perform              anforderungsbild.
        endcase.
      endif.
    create table g_t_organ with the plants and valuation areas from
    the database selection if table g_t_organ is empty
      perform  f0000_create_table_g_t_organ
                                 using  c_no_error.
    endform.                     "aktuelle_bestaende.
    *&   AKTUELLE_BST_LGBST_MARD
    form aktuelle_bst_lgbst_mard.
    eigener Bestand auf Lagerortebene -
    ... auf Materialebene -
      select * from mard into corresponding fields of table imard
                                             where werks in g_ra_werks
                                             and   lgort in g_ra_lgort
                                             and   matnr in matnr.
      if sy-subrc ne 0.          "no records found ?
        message s289.
      Kein Material in Selektion vorhanden.
        perform                  anforderungsbild.
      endif.
    does the user has the the authority for the found entries ?
      loop at imard.
        perform    f9000_auth_plant_check
                                 using  imard-werks.
        if  g_flag_authority is initial.
          delete             imard.
        else.
          perform  f9200_collect_plant     using  imard-werks.
          perform  f9400_material_key      using  imard-matnr.
        endif.
      endloop.
      describe table imard       lines g_f_cnt_lines.
      if  g_f_cnt_lines is initial.       "no records left  ?
        message s289.
      Kein Material in Selektion vorhanden.
        perform                  anforderungsbild.
      endif.
      if not charg-low is initial or not charg-high is initial.
        clear charg.
        message w285.
      Charge wird zurückgesetzt.
      endif.
    endform.                     "aktuelle_bst_lgbst_mard
       AKTUELLE_BST_LGBST_XCHAR
    form aktuelle_bst_lgbst_xchar.
    read the stock table mchb for batches
      select * from mchb into corresponding fields of table imchb
                                 where   werks  in  g_ra_werks
                                   and   lgort  in  g_ra_lgort
                                   and   matnr  in  matnr
                                   and   charg  in  charg.
      describe table imchb       lines  g_f_cnt_lines.
      if g_f_cnt_lines is initial.         "no records found ?
        message s821 with matnr werks lgort.
      Keine Chargen zu Material & in Werk & Lagerort & vorhanden.
        perform anforderungsbild.
      endif.
    process working table with the batches
      loop at imchb.
      does the user has the the authority for the found entries ?
        perform    f9000_auth_plant_check
                                 using  imchb-werks.
        if  g_flag_authority is initial.
          delete             imchb.
        else.
          perform  f9200_collect_plant     using  imchb-werks.
          perform  f9400_material_key      using  imchb-matnr.
        endif.
      endloop.
    endform.                     "aktuelle_bst_lgbst_xchar
       AKTUELLE_BST_SBBST_O
    form aktuelle_bst_sbbst_o.
    process Special Stocks with Vendor
    Bemerkung: Im Gegensatz zu den anderen Sonderbeständen existieren
               der Lohnbearbeitungs- und Kundenkonsignationsbestand
               nur auf Werksebene.
      select * from mslb into corresponding fields of table xmslb
                                 where  werks  in  g_ra_werks
                                   and  matnr  in  matnr
                                   and  charg  in  charg
                                   and  sobkz  =   'O'.
      if sy-subrc <> 0.                     "no records found ?
         message s289.
       Kein Material in Selektion vorhanden.
         perform anforderungsbild.
      endif.
    process the found records special stock vendor
      loop at xmslb.
      check the authority
        perform  f9000_auth_plant_check
                                 using      xmslb-werks.
        if  g_flag_authority is initial.
          delete                 xmslb.
        else.
        fill range table g_0000_ra_werks if it is still empty
          perform  f9200_collect_plant     using  xmslb-werks.
          perform  f9400_material_key      using  xmslb-matnr.
        endif.
      endloop.
    error, if no records are left
      describe table xmslb       lines g_f_cnt_lines.
      if  g_f_cnt_lines is initial.
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
          sort xmslb.
          loop at xmslb.
            move-corresponding xmslb to imslb.
            collect imslb.
          endloop.
          free xmslb. refresh xmslb.
          if xchar = ' '.
            loop at imslb.
              move-corresponding imslb to imslbx.
              collect imslbx.
            endloop.
            sort imslbx.
          elseif xchar = 'X'.
            loop at imslb.
              check imslb-charg is initial.
              delete imslb.
            endloop.
          endif.
    endform.                     "aktuelle_bst_sbbst_o.
       AKTUELLE_BST_SBBST_V_W
    form aktuelle_bst_sbbst_v_w.
    Sonderbestand Kundenkonsignation -
      elseif sobkz = 'V' or sobkz = 'W'.
          select * from msku into corresponding fields of table xmsku
                                             where werks in g_ra_werks
                                             and   matnr in matnr
                                             and   charg in charg
                                             and   sobkz eq sobkz.
      if sy-subrc <> 0.          "no records found
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
    process Special Stocks with Customer
      loop at xmsku.
        perform  f9000_auth_plant_check    using     xmsku-werks.
        if  g_flag_authority is initial.
          delete                 xmsku.
        else.
          perform  f9200_collect_plant     using  xmsku-werks.
          perform  f9400_material_key      using  xmsku-matnr.
        endif.
      endloop.
      describe table xmsku       lines  g_f_cnt_lines.
      if g_f_cnt_lines is initial.         "no records found
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
          sort xmsku.
          loop at xmsku.
            move-corresponding xmsku to imsku.
            collect imsku.
          endloop.
          free xmsku. refresh xmsku.
          if xchar = ' '.
            loop at imsku.
              move-corresponding imsku to imskux.
              collect imskux.
            endloop.
            sort imskux.
          elseif xchar = 'X'.
            loop at imsku.
              check imsku-charg is initial.
              delete imsku.
            endloop.
          endif.
          if sy-subrc ne 0.
            message s042.                             "#EC *    "n443935
          Charge ist nicht vorhanden.
            perform anforderungsbild.
          endif.
    endform.                     "aktuelle_bst_sbbst_v_w
       AKTUELLE_BST_SBBST_K_M
    form aktuelle_bst_sbbst_k_m.
    Sonderbestand Lieferantenkonsignation -
      elseif sobkz = 'K' or sobkz = 'M'.
          select * from mkol into corresponding fields of table xmkol
                                            where werks in g_ra_werks
                                            and   lgort in g_ra_lgort
                                            and   matnr in matnr
                                            and   charg in charg
                                            and   sobkz eq sobkz.
      if sy-subrc <> 0.          "no records found
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
    process Special Stocks from Vendor
      loop at xmkol.
        perform  f9000_auth_plant_check    using  xmkol-werks.
        if  g_flag_authority is initial.
          delete             xmkol.
        else.
          perform  f9200_collect_plant     using  xmkol-werks.
          perform  f9400_material_key      using  xmkol-matnr.
        endif.
      endloop.
      describe table xmkol       lines  g_f_cnt_lines.
      if g_f_cnt_lines is initial.         "no records found
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
          sort xmkol.
          loop at xmkol.
            move-corresponding xmkol to imkol.
            collect imkol.
          endloop.
          free xmkol. refresh xmkol.
          if xchar = ' '.
            loop at imkol.
              move-corresponding imkol to imkolx.
              collect imkolx.
            endloop.
            sort imkolx.
          elseif xchar = 'X'.
            loop at imkol.
              check imkol-charg is initial.
              delete imkol.
            endloop.
          endif.
          if sy-subrc ne 0.
            message s042.                             "#EC *    "n443935
          Charge ist nicht vorhanden.
            perform anforderungsbild.
          endif.
    endform.                     "aktuelle_bst_sbbst_k_m.
       AKTUELLE_BST_SBBST_Q
    form aktuelle_bst_sbbst_q.
    Projektbestand -
      elseif sobkz = 'Q'.
          select * from mspr into corresponding fields of table xmspr
                                             where werks in g_ra_werks
                                             and   lgort in g_ra_lgort
                                             and   matnr in matnr
                                             and   charg in charg
                                             and   sobkz eq sobkz.
      if sy-subrc <> 0.          "no record found
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
    process project stock
      loop at xmspr.
        perform  f9000_auth_plant_check    using  xmspr-werks.
        if  g_flag_authority is initial.
          delete                 xmspr.
        else.
          perform  f9200_collect_plant     using  xmspr-werks.
          perform  f9400_material_key      using  xmspr-matnr.
        endif.
      endloop.
      describe table xmspr       lines  g_f_cnt_lines.
      if  g_f_cnt_lines is initial.        "no record left
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
          sort xmspr.
          loop at xmspr.
            move-corresponding xmspr to imspr.
            collect imspr.
          endloop.
          free xmspr. refresh xmspr.
          if xchar = ' '.
            loop at imspr.
              move-corresponding imspr to imsprx.
              collect imsprx.
            endloop.
            sort imsprx.
          elseif xchar = 'X'.
            loop at imspr.
              check imspr-charg is initial.
              delete imspr.
            endloop.
          endif.
    endform.:                     "aktuelle_bst_sbbst_q
       AKTUELLE_BST_SBBST_E
    form aktuelle_bst_sbbst_e.
    Kundenauftragsbestand -
          select * from mska into corresponding fields of table xmska
                                             where werks in g_ra_werks
                                             and   lgort in g_ra_lgort
                                             and   matnr in matnr
                                             and   charg in charg
                                             and   sobkz eq sobkz.
      if sy-subrc <> 0.            "no records found
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
    process Sales Order Stock
      loop at xmska.
        perform  f9000_auth_plant_check    using  xmska-werks.
        if  g_flag_authority is initial.
          delete                   xmska.
        else.
          perform  f9200_collect_plant     using  xmska-werks.
          perform  f9400_material_key      using  xmska-matnr.
        endif.
      endloop.
      describe table xmska       lines  g_f_cnt_lines.
      if  g_f_cnt_lines is initial.        "no records left ?
        message s289.
      Kein Material in Selektion vorhanden.
        perform anforderungsbild.
      endif.
          sort xmska.
          loop at xmska.
            move-corresponding xmska to imska.
            collect imska.
          endloop.
          free xmska. refresh xmska.
          if xchar = ' '.
            loop at imska.
              move-corresponding imska to imskax.
              collect imskax.
            endloop.
            sort imskax.
          elseif xchar = 'X'.
            loop at imska.
              check imska-charg is initial.
              delete imska.
            endloop.
          endif.
    endform.                     "aktuelle_bst_sbbst_e
    *&      Form  TABELLEN_LESEN
          Lesen der Materialkurztexte (Tabelle MAKT),                    *
          der Mengeneinheiten (Tabelle MARA) und                         *
          Mengen- und Wertfortschreibung zum Material (Tabelle T134M)    *
          (Letzteres ist zum Aussortieren der unbewerteten bzw.          *
          kontierten Warenbewegungen notwendig)                          *
    form tabellen_lesen.
      if  not g_t_mat_key[] is initial.                         "n451923
      select the material masters
        select matnr meins mtart from mara
                       into corresponding fields of table imara
                       for all entries in g_t_mat_key
                                 where  matnr  =  g_t_mat_key-matnr.
      select the short text for all materials
      take only the necessary fields                          "n451923
        select matnr maktx       from makt                      "n451923
             into corresponding fields of table g_t_makt        "n451923
                       for all entries in g_t_mat_key
                       where  matnr = g_t_mat_key-matnr
                         and  spras = sy-langu.
        sort  imara              by  matnr.                     "n451923
        sort  g_t_makt           by  matnr.                     "n451923
        free                     g_t_mat_key.
      endif.
      data: begin of k1 occurs 0,
        mtart like t134m-mtart,
      end of k1.
      refresh k1.
      loop at imara.
        k1-mtart = imara-mtart.
        collect k1.
      endloop.
      if  not k1[] is initial.                                  "n451923
        select * from t134m
               into corresponding fields of table it134m
               for all entries in k1         where mtart = k1-mtart
                                             and   bwkey in g_ra_bwkey.
      endif.                                                    "n451923
      loop at it134m.
      read table organ with key bwkey = it134m-bwkey.
        perform  f9300_read_organ
                       using     c_bwkey     it134m-bwkey.
        if sy-subrc ne 0.
          delete it134m.
        endif.
      endloop.
    To find postings with valuation string, but without relevance for
    the valuated stock, Big-G recommended this logic:
    Take lines from MSEG where for the combination BUSTW/XAUTO=XBGBB
    there is an entry in T156W with key BSX.
      select bustw xbgbb from t156w
                         into corresponding fields of table it156w
                         where vorsl = 'BSX'.
      sort it156w by bustw xbgbb.
      delete adjacent duplicates from it156w.
      delete it156w where bustw = space.
    endform.                               " TABELLEN_LESEN
    *&      Form  UNBEWERTET_WEG
          Löschen der unbewerteten Materialien aus der internen          *
          Tabelle IMBEW
    form unbewertet_weg.
      sort  it134m               by bwkey mtart.                "n451923
                                                                "n450764
    delete the materials in plants without valuation          "n450764
      loop at g_t_mbew           into  g_s_mbew.                "n450764
        read table imara                                        "n450764
                       with key matnr = g_s_mbew-matnr          "n450764
                       binary search.                           "n450764
                                                                "n450764
        read table it134m with key bwkey = g_s_mbew-bwkey       "n450764
                                   mtart = imara-mtart binary search.
        if sy-subrc ne 0.
        message ...
          delete                 g_t_mbew.                      "n450764
        else.
          if it134m-wertu = ' '.
            delete               g_t_mbew.                      "n450764
          else.                                                 "n450764
          enrich the entries with the quantity unit           "n450764
            move    imara-meins  to    g_s_mbew-meins.          "n450764
            modify  g_t_mbew     from  g_s_mbew                 "n450764
                                 transporting  meins.           "n450764
          endif.
        endif.
      endloop.
    endform.                               " UNBEWERTET_WEG
    *&      Form  FI_BELEGE_LESEN                                          *
          Lesen der Buchhaltungsbelege                                   *
    Beim Erfassen der Werte ist es notwendig, die Buchhaltungsbelege    *
    zum Material zu lesen, um abweichende Werte zwischen Wareneingang   *
    und Rechnungseingang sowie Nachbelastungen zu berücksichtigen.      *
    form fi_belege_lesen.
    Not related to note 184465, but a significant performance issue
    if ORGAN is large due to many plants/storage locations.
      data: begin of t_bwkey occurs 0,                               "184465
              bwkey like bsim-bwkey,                                 "184465
            end of t_bwkey.                                          "184465
      loop at g_t_organ          where  keytype  =  c_bwkey.
        move g_t_organ-bwkey     to  t_bwkey-bwkey.
        collect t_bwkey.                                             "184465
      endloop.                                                       "184465
      read table t_bwkey index 1.                                    "184465
      check sy-subrc = 0.                                            "184465
      select * from bsim                                        "n443935
             into corresponding fields of table g_t_bsim_lean   "n443935
               for all entries in t_bwkey   where  bwkey = t_bwkey-bwkey
                                            and    matnr in matnr
                                            and    bwtar in bwtar
                                            and    budat >= datum-low.
      loop at g_t_bsim_lean      into  g_s_bsim_lean.           "n443935
        perform  f9300_read_organ
                       using     c_bwkey  g_s_bsim_lean-bwkey.  "n443935
        if  sy-subrc is initial.
        record found : the user has the authority, go on
          move  g_s_organ-bukrs  to  g_s_bsim_lean-bukrs.       "n443935
          modify  g_t_bsim_lean  from  g_s_bsim_lean            "n443935
                                 transporting  bukrs.           "n451923
        create working table with the keys for the FI documents
          move-corresponding  g_s_bsim_lean                     "n443935
                                 to  g_t_bkpf_key.              "n443935
          append                 g_t_bkpf_key.
        else.
          delete                 g_t_bsim_lean.                 "n443935
        endif.
      endloop.
    endform.                               " FI_BELEGE_LESEN
    *&      Form  BELEGE_SORTIEREN
       Die Materialbelege werden anhand des Buchungsdatums sortiert.
       Die Materialbelege mit Buchungsdatum zwischen 'datum-high'
       und dem aktuellen Datum werden in der internen Tabelle IMSWEG
       gesammelt, während die Materialbelege mit Buchungsdatum
       zwischen 'datum-low' und 'datum-high' in der internen Tabelle
       IMSEG verbleiben.
    form belege_sortieren.
      aktdat = sy-datlo + 30.
      if not ( datum-high is initial or datum-high > aktdat ).
        loop at g_t_mseg_lean    into  g_s_mseg_lean
                                 where budat > datum-high.
          move-corresponding g_s_mseg_lean to imsweg.
          append imsweg.
          delete                 g_t_mseg_lean.
        endloop.
      endif.
      describe table imsweg lines index_2.
    endform.                               " BELEGE_SORTIEREN
    *&      Form  KONTIERT_AUSSORTIEREN
          Aussortierung der kontierten Belegpositionen,                  *
          da diese Mengen nicht bestandsrelevant sind                    *
    form kontiert_aussortieren.
    process table g_t_mseg_lean
    loop at imseg where kzvbr <> space and                         "144845
        ( kzbew = 'B' or kzbew = 'F' ).                            "144845
        read table imara with key matnr = imseg-matnr.
        read table it134m with key mtart = imara-mtart.
        if not it134m-mengu is initial and not it134m-wertu is initial.
    Die Felder 'mengu' und 'wertu' (Mengen- bzw. Wertfortschreibung)
    sind ab Release 3.0 D auch in die Tabelle MSEG aufgenommen.
    Die Einträge in der Tabelle T134M stellen nach wie vor die generelle
    Einstellung dar; auf Positionsebene sind jedoch Abänderungen möglich,
    die anhand der Einträge in der Tabelle MSEG nachverfolgt werden
    können.
          delete imseg.
        endif.
    endloop.
      data : l_f_bwkey           like  t001k-bwkey.             "n497992
      sort  it134m               by  bwkey  mtart.              "n497992
      loop at g_t_mseg_lean      into  g_s_mseg_lean
                                 where  kzvbr <> space
                                   and ( kzbew = 'B' or kzbew = 'F' ).
      get the valuation area                                  "n497992
        if  curm = '3'.                                         "n497992
        valuation level is company code                       "n497992
          if  g_s_mseg_lean-bukrs is initial.                   "n497992
          get the valuation area for this plant               "n497992
            perform  f9300_read_organ                           "n497992
                       using     c_werks   g_s_mseg_lean-werks. "n497992
                                                                "n497992
            move  g_s_organ-bwkey     to  l_f_bwkey.            "n497992
          else.                                                 "n497992
            move  g_s_mseg_lean-bukrs to  l_f_bwkey.            "n497992
          endif.                                                "n497992
        else.                                                   "n497992
        valuation level is plant                              "n497992
          move  g_s_mseg_lean-werks   to  l_f_bwkey.            "n497992
        endif.                                                  "n497992
        read table imara with key matnr = g_s_mseg_lean-matnr
                                 binary search.
        if  sy-subrc is initial.
          read table it134m      with key  bwkey = l_f_bwkey    "n497992
                                           mtart = imara-mtart  "n497992
                                 binary search.
          if  sy-subrc is initial.
            if not it134m-mengu is initial and
               not it134m-wertu is initial.
              delete              g_t_mseg_lean.
            endif.
          endif.
        else.
          delete                  g_t_mseg_lean.
        endif.
      endloop.
    endform.                               " KONTIERT_AUSSORTIEREN
    *&      Form  BELEGE_ERGAENZEN (engl. enrich documents)
    Material documents and FI documents from BSIM are merged together.
    Complications:
    - A material document can have more than one FI document.
    - There are FI documents without material documnts
    - There are material documents without FI documents
    - The document type is customizeable
    - There is no link from the materia document position to
      the FI document entry in BSIM (except URZEILE, but this
      can be filled incorrectly)
    form belege_ergaenzen.                         "Version from note 204872
    - show the current activity and the progress              "n599218
      call function 'SAPGUI_PROGRESS_INDICATOR'                 "n599218
        exporting                                               "n599218
          text = text-061.       "Reading FI documents          "n599218
    Eliminate material documents with valuation string, but without
    relevance to the valuated stock. IT156W contains all valuation
    strings with posting key BSX. XBGBB says: "I am an accrural posting".
    For more details please ask Big-G.
      loop at g_t_mseg_lean      into  g_s_mseg_lean.
      special processing for tied empties active ?            "n497992
        if  not g_cust_tied_empties is initial.                 "n497992
        look for MM documents with xauto = L and change       "n497992
        indicators                                            "n497992
          case  g_s_mseg_lean-xauto.                            "n497992
            when  'X'.                                          "n497992
            when  space.                                        "n497992
            when  others.                                       "n547170
            range table g_ra_xauto contains the special       "n547170
            indicators for the transfer movements of the      "n547170
            tied empties                                      "n547170
              if  g_s_mseg_lean-xauto in g_ra_xauto.            "n547170
                move  g_s_mseg_lean-xauto                         "n497992
                                 to  g_s_mseg_lean-retail.        "n497992
                clear              g_s_mseg_lean-xauto.           "n497992
                modify  g_t_mseg_lean    from  g_s_mseg_lean      "n497992
                                 transporting xauto retail.       "n497992
              endif.                                            "n547170
          endcase.                                              "n497992
        endif.                                                  "n497992
        read table it156w        with key
                                 bustw = g_s_mseg_lean-bustw
                                 xbgbb = g_s_mseg_lean-xauto
                                 transporting no fields
                                 binary search.
        if sy-subrc <> 0.
          delete                 g_t_mseg_lean.
        else.                                                   "n443935
        enrich the current entry with the company code        "n443935
          perform f9300_read_organ                              "n443935
                       using     c_werks  g_s_mseg_lean-werks.  "n443935
                                                                "n443935
          check : sy-subrc is initial.                          "n443935
          move  g_s_organ-bukrs  to  g_s_mseg_lean-bukrs.       "n443935
          modify  g_t_mseg_lean  from  g_s_mseg_lean            "n443935
                                 transporting  bukrs.           "n451923
        endif.
      endloop.
    For all available FI documents from BSIM, read the header data
    from BKPF to get the link to the originating material document.
      if  not g_t_bkpf_key[] is initial.
      look for the header of the matching FI documents
        sort  g_t_bkpf_key       by  bukrs belnr gjahr.
        delete adjacent duplicates from g_t_bkpf_key.
      save result from database selection into global hashed  "n856424
      table g_t_bkpf                                          "n856424
        select  *                 from bkpf                     "n856424
          into corresponding fields of table g_t_bkpf           "n856424
               for all entries in g_t_bkpf_key
                       where  bukrs = g_t_bkpf_key-bukrs
                         and  belnr = g_t_bkpf_key-belnr
                         and  gjahr = g_t_bkpf_key-gjahr.
        if  sy-subrc is initial.
        create working table l_t_keytab_m
          free                   g_t_bkpf_key.
          loop at g_t_bsim_lean  into  g_s_bsim_lean.           "n443935
          enrich the working table g_t_bsim_lean with the     "n443935
          MM doc info                                         "n443935
                                                                "n443935
          look for the matching FI document header            "n443935
            read table g_t_bkpf  assigning           "n856424
                       with key  bukrs = g_s_bsim_lean-bukrs    "n443935
                                 belnr = g_s_bsim_lean-belnr    "n443935
                                 gjahr = g_s_bsim_lean-gjahr.   "n443935
                                                                "n443935
            if  sy-subrc is initial.                            "n443935
            enrich table G_T_BSIM_LEAN with the MM doc        "n443935
            consider only FI docs created by MM docs here     "n856424
              check :

    Hi Ravi,
    possibly a service pack has been installed just in the time when you created the copy. I found
        data: lt_sort type kkblo_t_sortinfo.                    "n890109
    in the include mentioned on our system. Please check if the includes are identical in development and production server (remote-compare from editor).
    But we also have a copy of this in our system. In the copy I found type name like alv_type_sortinfo but no kkblo_t_sortinfo.
    Note KKBLO was the predecessor of ALV.
    Must have to dio something with version changed by service pack.
    Regards,
    Clemens

Maybe you are looking for