FMOD or EXIT_SAPLFMFA_004

Hi,
We are on ECC6 and EHP 4, with FM BCS activated from 1st Apr 2015. We are getting issues where in table FMIOI is not updated with all the line items for purchase orders created before FM activation. We have been advised by SAP to use FMOD or EXIT_SAPLFMFA_004. We have PBET activated
Can anybody guide on differnce between these two programs. and in FMOD I found field "User", does it mean, it will be applicable for the users entered in the table only will be able to post with the date mentioned.
Please guide
Shailesh

Yes Eli,
Just to update. I had issue in updating the documentes through FMCN/FMCT and I posted error with SAP, where they found issue with data base update and advised it.
But now updation issue is resolved.
Regards
Shailesh

Similar Messages

  • Carryforward parked FI documents

    Is it possible to carryforward a parked FI document to a new fiscal year?  I have looked at a lot of documentation and it appears as if the parked document should really be deleted.  But, what we have told users is to change the posting date to the new year when the previous fiscal year is closed.  This works well for those documents that may have recently been created but did not complete workflow before fiscal year end.
    I looked at transaction FMJ2.  But, for value type, there is not a choice for "60" (parked documents).  I went through the IMG to figure out if I need to set something there but could not find anything.

    Hi Monique,
    just a couple of questions:
    Are you using the standard business object FIPP and the standard WF template? And, could you please investigate with your WF admin and find how events FIPP.REJECTED and FIPP.DELETED are being handled in your Workflow?
    And, regarding to parked documents, yes, the usual procedure is to approve or reject/delete them before the year end. If you want to move the parked document to the next fiscal year, the options would be:
    - Change the posting date to the new fiscal year: this would reduce budget in the new fiscal year. If you want to reduce budget in a different date, you could use transaction FMOD or EXIT_SAPLFMFA_004 if PBET is active in your update profile.
    - If the parked document is included in a document chain, you can carryforward the document chain (with or without budget)
    Thanks!
    Kind regards, Mar.

  • Why can't we deactivate PBET ?

    SAP Help says : "Once you have activated and configured period-based encumbrance tracking
    it is not possible to resort back to fiscal annual-based encumbrance tracking".
    First of all, I have no idea why (or since when) PBET was enabled in our system.  I just found that we are now using update profile 102.  We have no plan to activate multi-year budget execution, and on 01-Apr-09 we only enabled the year-dependent master data for Funds center hierarchy.
    After 01-Apr-09, this PBET setting suddenly caused workflow errors at our final approval of cross-year Fund Reservation documents.  So I tried in our QAS system to resort back to the fiscal annual-based encumbrance tracking (i.e. via the IMG "Override Update Profile" function).  To my surprise I was allowed to save the "update profile" changes.  Then I restarted the failed work items and they went through successfully.
    Now my questions :
    (1)  if after PBET activation we SHOULD not (instead of "CANnot") revert the changes, why would the system allow it?
    (2)  any risks or hidden impacts we should consider before applying such changes to our production system?  So far our test results in the QAS system look positive.
    (3)  any means to find out if the PBET was already turned on 1 year ago?  or since 2006's initial launch?
    Edited by: Wai Wan Gun on May 26, 2009 2:32 PM

    Hello Wai,
    <BR>
    Of course I understand your point.
    <BR>
    Questions 2 and 3 are not easy to answer...
    <BR>
    2)  How FM gets updated?:<BR>
    - With PBET: document and account assignment changes are entered in commitment as individual documents<BR>
    - Without PBET: original document data are overwritten<BR>
    Activation of PBET implies increase of data volume since chronological changes are recorded in tables FMIOI and FMIFIIT (and FMIT is updated subsequently)<BR>
    Deactivating PBET will change this behaviour and therefore document changes will overwrite existing records in FM tables. You may encounter some issues during fiscal year change again since, for instance, the current amounts (most recently updated) could be in a date earlier than prior changes & reductions...This would require possible data reconstruction (via tools mentioned in note 189761)<BR><BR>
    3) how to find out when PBET was turned On one year ago is also hard. It could have been active by default in your update profile, or maybe it was activated and transported to all of your systems. I can only suggest you to check the old transport requests containing the relevant IMG activity, as I presume the system logs are no longer present in your system after one or more years.<BR><BR>
    Anyway, You say you never wanted this feature but it was somehow present in your system(!)....I presume everything would have been tested before going live and results were accepted, including operations during fiscal year change.<BR>
    But then, after fiscal year change you found out some problems with Workflows, because documents from the previous year could not be approved in the new Fiscal year.<BR>
    In the reference message you were suggested to use Carry Forward, FMOD, and EXIT_SAPLFMFA_004 but none of these options were suitable in your opinion.<BR>
    These options are delivered by SAP to accomplish PBET logic during fiscal year change. FMOD and the EXIT can be enabled temporarily when both the new and the old fiscal year are still open in parallel due to closing activities.<BR>
    However none of these did suit you...but it does for most of customers (provided that they chose the most appropriate update profile fitting their business needs)<BR>
    I honestly think these options are better than deactivating PBET like that.<BR><BR>
    This decission must obviously be taken under a project scope because we in the forum don't know the whole business behind, so if you decided PBET deactivation, we will all try our best when giving any sort of answer.<BR>
    Kind regards<BR>
    Mar<BR>
    PS:I am sorry if this thread did not fully meet your expectations but I'm also sure the whole community will appreciate your participation (this one and future ones)!

  • Idoc without fmod?

    Hi,
    I am new to IDocs and there is an outbound delivery idoc in our system that is triggered whenever a delivery is created. When I look at the partner profile, I dont see a process code or a function module for this basic type.
    If I need to make some changes to this outbound idoc, where do I put in the code changes? If its not using an fmod, how is it generated?
    Thanks in advance,
    Jay.

    Hi Ferry,
    I was able to look at the partner profile using WE20. There is a partner profile, but how do I find the fmod that this idoc is associated with?
    There are 8 other idoc types in the system and I was able to find corresponding fmods for those using WE57. I just cant find fmod for this one. But it is generated whenever a delivery is created in the system - could it be generated without a fmod?
    Its an outbound idoc.
    Thanks,
    Jay.

  • FMod to Queue-Dequeue a Handling Unit.

    Hi,
    In my custom transaction I want to Lock (Enqueue) the HU before performing my custom function and after Commit Work want to Unlock (Dequeue) it again.
    Can some one suggest which Function Module to use for this and whether this FMod has to be placed right before the other FMods I am using such as Create-Confirm Transfer Order.
    Many Thanks,
    Rohit.

    See if this thread helps you.
    Re: HU_PACKING_AND_UNPACKING
    - Guru
    Reward points for helpful answers

  • Open and Close periods/Fiscal years

    Dear All
    We are in the process of FM-BCS implementation, we observed thre is transaction code (FMOPER) for open the Budget periods. This is working for Budget workbech (FBMM) only. But at the time of Actual Postings even period is not open in FMOPER system is allowing for actual postings.
    Kindly suggest where we can control actual postings through period open/cose option in FM-BCS.
    Thanks in advance
    Rao

    Hi Rao,
    You need to be aware of all the impact of the use of PBET (Period-Based Encumbrance Tracking) before activating it in transaction OF39. This is not a simple change, it impacts all your integrated postings that come from all other areas (FI, CO, MM, SD) into FM.
    You cannot use any FM update date other than the POSTING date when PBET is active.
    One common error when you activate PBET is FI_E050 - Posting date/period 00/00/0000 is earlier than existing
    date/period 00/00/0000.
    If you want updating to take place on the delivery date, you must return profile to Fiscal Year Based (non-PBET) updating.
    This step will also eliminate the error FI_E050.
    Part of the basic PBET logic, aims at recording a detailed change history of every single document in FM.
    For more details on this, please also refer to the program documentation  and chapter Public Sector Management -> Funds Management -> Recording Actual and Commitment Data -> Period-Based Encumbrance Tracking.
    The standard functionality when PBET is active is to use the system date as the FM posting date. However, you do have 3 options to overwrite this:
    Document Creation:
    1.- Version Management (PR/PO)
    2.- FM updating date is the document posting date.
    Document Change:
    1.- System use FM_TRANS_DATE date as FM updatign date, if this date is not filled, system use system date as FM updating date.
    If customer want to change this logic, the FM updating date is decided by one of the following three steps, in order shown.
    - Version Management (PR/PO): Posting date of version
    - Transaction FMOD to override the update date by user
    - Activate user exit EXIT_SAPLFMFA_004 so that a popup screen is
       displayed that permits entering the FM posting date, you could
       manually set the date found in the document header to a later date.
      - you could manually set the date found in the document header to a
    later date (System date  SY_DATUM).
    PBET is Periodic-based encumbrance tracking and it is a function that monitors encumbrances per period, with a change record issued for each change made within a period. This function belongs to Funds Management Area (PSM-FM).
    If PBET is active, system does not allow posting to a date earlier than the present date, you will receive error FI_E050 in case this is not satisfied. Follow are two comments form the code which indicate same:
    "No new dates can be earlier than the original or new account assignment line items".
    "Ensure that new fm update dates are not older than original date or if a change, this change must be latest date in document"
    To use or not to use PBET is customer decision and this impact that the period is verified more strictly than without PBET. Maybe you should consider with your consultant if using PBET is the best solution for your business processes.
    Best Regards,
    Vanessa.

  • Logical Database in Abap Objects

    Hi to All
    I want do it a program report using a Logical Database.
    Is this possible ??? But when I make a GET <node>, occurs the following error:
             "" Statement "ENDMETHOD" missing.  ""
    I'm doing the following:
    CLASS MONFIN IMPLEMENTATION.
           METHOD TRAER_DATOS.
                   GET VBRK.
           ENDMETHOD.
    ENDCLASS.
    Please, somebody tell me how I use the logical database in Abap Objects.
    Thank you very much
    Regards
    Dario R.

    Hi there
    Logical databases whilst of "some use" are not really part of OO.
    If you want to use a logical database in an abap OO program I would create a special class which just does the get data from your DB and pass this either at record or table level.
    Techniques such as GET XXXX LATE aren't really part of any OO type of application since at Object Instantiation time you should be able to access ALL the attributes of that object.
    As far as OO is concerned Logical databases are a throwback to "Dinosaur Technology".
    Since however modules such as SD and FI are still heavily reliant on relational structures (i.e linked tables etc)  then there is still some limited life in this stuff but for OO try and solve it by another method.
    If you really must use this stuff in OO then do it via a FMOD call and save the data in a table which your method will pass back to your application program.
    You can't issue a GET command directly in a method.
    Cheers
    Jimbo

  • SAP Fields not getting displayed on the BDT screen

    Hello Gurus,
    I am trying to add 2 custom fields on to the claims management screen. The following steps were followed to add 2 fields on to the claims Management subclaim screen.
    1. Create a field group Zxxxxx1 with the two fields attached to it as input enabled.
    2. Create a View Zxxxxx2 attach the created field group Zxxxxx1, then create a subscreen screen add two fields to the screen and make them as input enabled. Then attached the subscreen to the View.
    3. Create a PBO and PAI function modules for the screen and attach it to the View Zxxxxx2.
    4. Create a section Zxxxxx3 and attach the view Zxxxxx2 to the section.
    5. Attach the section to the Subclaim Overview Screen.
    6. Inspite of doing all the above steps the screen is not getting displayed or the Function module PAI / PBO / FMOD is not being called.
    Since I am attaching the section to a standard screen sequence I am not doing any modification to the screen sequence and screen sequence catagory.
    Kindly let me know the steps I am missing in the configration of 2 new fields via BDT.
    Reagrds,
    Shiva

    Hi Shiva,
    did you create your own Z BDT application? Is it set to be active?
    I have no access to any claims management system: Does the claim object support divisibility? If so, have you assigned the correct data set in your view?
    Also, if you have your own Z BDT application and the claim object does support divisibility, did you assign the Z application to the divisibility view?
    Regards,
    Frank
    Message was edited by: Frank Vieregge

  • I Need Help Trying to Play (.pls) files in a simple windows forms Application

     So I'm try to build application that when I click on the icon it opens a little window and play the url .pls. I already got the graphics of the app i just to get the code and I've been looking around for but all i got was this code
    typedef struct
    int count;
    void **name;
    void **displayname;
    } Playlist;
    Playlist* my_playlist; // SHOUTCAST PLAYLIST
    #define BOX(text) MessageBox(NULL,text,"Info",MB_OK | MB_TOPMOST);
    char *stristr(char *string2, char *string1) // from /samples/fmod/Main.c
    char *s1 = strdup(string1);
    char *s2 = strdup(string2);
    char *ret = 0;
    int i, j;
    int len1 = (int)strlen(string1);
    int len2 = (int)strlen(string2);
    for (i=0;s1[i];i++) s1[i] = tolower(s1[i]);
    for (i=0;s2[i];i++) s2[i] = tolower(s2[i]);
    for (j=0;j < (len2 - len1);j++)
    char *a = s1;
    char *b = &s2[j];
    for (i=0;(i < len1) && *a && *b;a++, b++, i++)
    if (*a != *b)
    break;
    if (i == len1)
    ret = &string2[j];
    break;
    free(s1);
    free(s2);
    return ret;
    Playlist *ParsePlaylist(char *name) // from /samples/fmod/Main.c and MSDN
    char *filebuf, *p;
    Playlist *playlist = 0;
    int count, i;
    // Check if URL is null
    if (!name)
    BOX("Streaming URL is empty");
    return 0;
    // Check if URL is a *.pls file
    if (_stricmp((const char *)".pls", (const char *)(&name[strlen(name) - 4])))
    return 0;
    // Create a WinInet session
    HINTERNET hSession = InternetOpen(_T(""), INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0);
    // Prepare a request
    HINTERNET hRequest = InternetOpenUrl(hSession, name, 0, 0, 0, 0);
    // Send the HTTP request.
    HttpSendRequest(hRequest, 0, 0, 0, 0);
    // Read the response data.
    DWORD dwNumberOfBytesAvailable = 0;
    do
    // Retrieve size of remote file
    InternetQueryDataAvailable(hRequest, &dwNumberOfBytesAvailable, 0, 0);
    if (0 < dwNumberOfBytesAvailable)
    // Allocate buffer memory
    filebuf = new char[dwNumberOfBytesAvailable + 1];
    filebuf[dwNumberOfBytesAvailable] = 0;
    DWORD dwBytesRead = 0;
    // Read remote file and put in buffer
    InternetReadFile(hRequest,
    filebuf,
    dwNumberOfBytesAvailable,
    &dwBytesRead);
    //BOX(filebuf);
    while (0 < dwNumberOfBytesAvailable);
    // Close the request handle.
    InternetCloseHandle(hRequest);
    // Close the WinInet session.
    InternetCloseHandle(hSession);
    // Parse the pls file (from Fmod sample)
    p = stristr(filebuf, "NumberOfEntries=");
    if (!p)
    BOX("Streaming : NumberOfEntries in pls file not found");
    return 0;
    p += 16;
    count = atoi(p);
    if (!count)
    BOX("Streaming : numeric value for NumberOfEntries not found");
    return 0;
    playlist = (Playlist *)calloc(sizeof(Playlist), 1);
    if (!playlist)
    BOX("Streaming : can't allocate memory for pls file (playlist)");
    return 0;
    playlist->count = count;
    playlist->name = (void **)calloc(sizeof(char *) * count, 1);
    if (!playlist->name)
    BOX("Streaming : can't allocate memory for pls file (playlist->name)");
    return 0;
    playlist->displayname = (void **)calloc(sizeof(char *) * count, 1);
    if (!playlist->displayname)
    BOX("Streaming : can't allocate memory for pls file (playlist->displayname)");
    return 0;
    for (i=0;i < count;i++)
    char tmp[32];
    char *filename, *displayname, *t;
    filename = displayname = 0;
    sprintf(tmp, "File%d=", i + 1);
    p = strstr(filebuf, tmp);
    if (p)
    p += strlen(tmp);
    t = p;
    for (;*t && (*t != 0xa) && (*t != 0xd);t++);
    if (*t)
    char tmpc = *t;
    *t = 0;
    filename = _strdup(p);
    *t = tmpc;
    if (strncmp(filename, "http://", 7) && strncmp(filename, "http:\\\\", 7))
    char *tmpname = _strdup(filename);
    p = &tmpname[strlen(tmpname) - 1];
    for (;(p > tmpname) && (*p != '\\') && (*p != '/');p--);
    if ((*p == '\\') || (*p == '/'))
    p++;
    displayname = _strdup(p);
    free(tmpname);
    playlist->name[i] = filename;
    playlist->displayname[i] = displayname;
    free(filebuf);
    return playlist;
    [main code]
    char string_music[256] = "http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=6042&file=filename.pls"; // For example
    // Parse the remote file (in case it's a Shoutcast playlist (*.pls))
    my_playlist = ParsePlaylist(string_music);
    if (my_playlist)
    strcpy(string_music, (char*) my_playlist->name[0]); // for the first song in the playlist
    FSOUND_STREAM * my_stream = FSOUND_Stream_Open(string_music, FSOUND_NORMAL | FSOUND_NONBLOCKING, 0, 0);
    int int_sound_mp3 = FSOUND_Stream_Play(FSOUND_FREE, my_stream);
    and i got to link it to Wininet.lib
    and I'm a noob so i got problems as soon as i tried to put everything together
    so any help greatly appreciated 
    BTW if you know any other ways, that I'll be able to stream the audio that will be great to.
    heres the link for the audio stream (.pls)
    http://panel3.serverhostingcenter.com:2199/tunein/nrlsxglp.pls

    Hello 0cooldex0,
    What library do you used in this scenario? I haven't saw this FSOUND_STREAM from MSDN library.
    By the way, winform general is used for talking about Windows Form library, is is using C# or VB.NET but not C or C++. You are not posting in the right forum.
    In my point of view, you may choose the forum depending on the library you choosed and post on specific forum.
    Regards,
    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Example of how to call a BadI from an Abap and use the NEW OO ALV Grid

    Very easy to do.
    <b>REPORT  Z_BADI_TEST.
    test call Badi from standard abap.
    *Only from rel 6.40
    do the following
    1) define the Badi  (SE18).
    For Abap call test uncheck multiple use
    and filter boxes
    2) Implement the badi (SE19).
    Add any methods here in the implementation
    3) activate
    4)  define the standard class exithandler to the
    Abap. This class is the "Badi caller
    5)  define an exit variable referring to your Badi
    Implementation interface
    this interface  will normally be
    called something like 
    ZIF_EX***************
      You will see the actual name in SE18/SE19.
    6)  Instantiate your instance of the badi
    via  method call get_instance
    7)  Now call any method(s) in the Badi.
    *****************start of abap code **************
    Define the Badi calling class (standard sap class)
      class cl_exithandler definition load.   "Declaration
    *Interface reference  
      data exit type ref to zif_ex__jimbotest.    
         data yes type c.
    Used in Fmod call in Badi methods
        data: v_knvv type knvv.
        start-of-selection.
        yes = ' '.
      selection-screen  begin of block b1.
      parameters: r1  radiobutton  group rad1,
                  r2  radiobutton group rad1,
                  r3  radiobutton group rad1.
      selection-screen end of block b1.
        parameters: p_kunnr type knvv-kunnr.
        select  single * into v_knvv
        from knvv
         where kunnr eq p_kunnr.
         export v_knvv to memory id 'CUST6A'.
    *Save customer data for the function module call
    call method cl_exithandler=>get_instance 
           exporting 
           exit_name    = 'Z_JIMBOTEST' "Your Badi Name
           null_instance_accepted = yes
              changing instance = exit.
       if not exit is initial.
           if r1 = 'X'.
         call method exit->dispord .  "Badi call
          endif.
    if r2 = 'X'.
    call method exit->dispfakt.     "Badi Call
    endif.
    if r3 = 'X'.
    call method exit->dispmat.      "Badi call
    endif.
    end of calling abap******** </b>
    In the badi   methods code as shown
    1)
    method ZIF_EX__JIMBOTEST~DISPORD.
    CALL FUNCTION 'Z_DISPLAY_CUST'.
    endmethod.
    2)
    method ZIF_EX__JIMBOTEST~DISPFAKT.
    CALL FUNCTION 'Z_DISPLAY_FAKT'.
    endmethod
    3)
    method ZIF_EX__JIMBOTEST~DISPMAT.
    CALL FUNCTION 'Z_DISPLAY_CUST'.
    endmethod.
    Copy via SE 41 the status SALV_STANDARD from  standard SAP program SALV_DEMO_METADATA into the main program where you've created the 3 function modules below (SAP______TOP)
    Global Data for the three function modules I'm calling
    FUNCTION-POOL Z_BADI_KNVV.                  "MESSAGE-ID ..
    include <color>.
    include <icon>.
    include <symbol>.
    tables: zknvv.
    data: v_zzkvgr6  TYPE KNVV-ZZKVGR6.
    data: choice1  type c.
    data: choice2 type c.
    data: choice3 type c.
    data: choice4 Type c.
    data: ok-code(5) type c.
    data: answer type string.
    data: value1 type SPOP-VARVALUE1.
    data: answer1  type string.
    tables:  vbak, vbap,  vakpa, vbrk, vrkpa.
    data: lr_functions type ref to cl_salv_functions_list.
    constants: gc_true  type sap_bool value 'X',
               gc_false type sap_bool value space.
    add for colour displays
       data: ls_color type lvc_s_colo.
       DATA : LV_SALV_COLUMNS_TABLE TYPE REF TO CL_SALV_COLUMNS_TABLE.
      data: lr_columns type ref to cl_salv_columns_table,
            lr_column  type ref to cl_salv_column_table.
    Data:
            gr_table TYPE REF TO cl_salv_table.
    data: z_datum type sy-datum.
    data: v_knvv type knvv.
    data : begin of s_vbak,
              vkorg   type vakpa-vkorg,
              vkgrp   type vakpa-vkgrp,
              vtweg   type vakpa-vtweg,
              spart   type vakpa-spart,
              auart   type vakpa-auart,
              vbeln   type vakpa-vbeln,
              bstnk   type vakpa-bstnk,
              audat   type vakpa-audat,
              netwr   type vbak-netwr,
           end of s_vbak.
    data : begin of s_vbrk,
              vbeln   type vrkpa-vbeln,
              vkorg   type vrkpa-vkorg,
              fkart   type vrkpa-fkart,
              fkdat   type vrkpa-fkdat,
              netwr   type vbrk-netwr,
           end of s_vbrk.
      data: begin of s_vbap,
             matnr   type vbap-matnr,
             arktx   type vbap-arktx,
             netwr   type vbap-netwr,
             kwmeng  type vbap-kwmeng,
          end of s_vbap.
    data: t_vbap like table of s_vbap.
    data:   t_vbak
            like table of s_vbak.
      data:   t_vbrk
            like table of s_vbrk.
    data:   s_name  type tabname.
    data: gr_selections type ref to cl_salv_selections.
    data: gr_events type ref to cl_salv_events_table.
    Source code of the function modules.
    Function modules themselves
    FUNCTION Z_DISPLAY_CUST.
    s_name = 'S_VBAK'.
    orders in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
       select avkorg aaudat avkgrp avtweg aspart aauart abstnk avbeln b~netwr
          into corresponding fields of  table t_vbak
          up to 100 rows
             from (  vakpa as a
              inner join vbak as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'AG'
           and a~vkorg eq 'EN01'
            and a~trvog eq '0'
            and a~audat gt z_datum.
    sort t_vbak by audat descending.
    *data: gt_hyperlink type standard table of g_type_s_hyperlink.
    Instead of if_salv_c_bool_sap=>false, you can pass the
    value if_salv_c_bool_sap=>true to this method to
    see your ALV as a list.
    display data in Grid / List
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbak.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
      catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    FUNCTION Z_DISPLAY_FAKT.
    s_name = 'S_VBRK'.
    invoices in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
       select avbeln afkart avkorg afkdat
         b~netwr
          into corresponding fields of  table t_vbrk
          up to 100 rows
             from (  vrkpa as a
              inner join vbrk as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'RG'
           and a~vkorg eq 'EN01'
            and a~vbtyp eq 'M'
            and a~fkdat gt z_datum.
    sort t_vbrk by fkdat descending.
    *data: gt_hyperlink type standard table of g_type_s_hyperlink.
    Instead of if_salv_c_bool_sap=>false, you can pass the
    value if_salv_c_bool_sap=>true to this method to
    see your ALV as a list.
    display data in Grid / List
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbrk.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
          catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    FUNCTION Z_DISPLAY_MATERIAL.
    s_name = 'S_VBAP'.
    invoicesrs in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
    select avbeln bmatnr barktx bnetwr b~kwmeng
    into corresponding fields of  table t_vbap
          up to 100 rows
    from (  vakpa as a
              inner join vbap as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'AG'
           and a~vkorg eq 'EN01'
            and a~trvog eq '0'
            and a~audat gt z_datum.
    TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbap.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
      catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'ARKTX' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    You can extend this as far as you like -- it's really easy and MUCH MUCH easier than the old way with fieldcatalogs etc etc.

    If the pagecontainer_mc holds another movieclip that contains the button you are trying to target, then you need to include that loaded movieclip in the targeting.  And if contacts is that movieclip, then you should be able to target it directly using...
    var contacts:contatti = new contatti;
    contacts.contacts_btn.addEventListener(MouseEvent.CLICK,showContacts);

  • Calculation of phase shift

    Hi all,
     I am continuously acquiring two sinusoidal signals from the analog inputs of a daq card and saving the samples of the two signals into two different float type arrays. Can anyone tell me that how to calculate the phase shift between these two signals and as well as the peak voltage of the two signals? Please expain me with the help of an example code.
    Thanks

    Hi AI S
    I have gone through the example of phase diff e.g and i have written the following code but when i run it , it gives the max value of 1st sine wave (outarray1) nearly equal (i-e 7.7 volt ) but it should be 8 V pk.
    But for the 2nd sinewave (outarray2) it gives the max value from 0 volt to 1.5 volt pk but it should give 1.5 Volt pk only and the phase difference is displayed as 0.000 , even there is no update in decimals in it.
    One more thing to tell that 1 complete sine wave consists of 1024 samples , therefore in outarray1 and outarray2 , there are 8 cycles each. In one iteration of the loop outarray1 is filled and in other iteration outarray2 is filled , then i calculate the phase shift.  Please tell me what i am doing wrong.
    Here is my code
    double outarray1[8192],outarray2[8192] ;
    double *peakLoc, *peakAmp, *peakDeriv;
        int count;
    static double wave1maxval = 0.0;
    static int wave1maxind = 0;
    static double wave2maxval = 0.0;
    static int wave2maxind = 0;
    static double phasediff;
    PeakDetector (outarray1,8192,0.0, 3, 0, 1, 1, &count, &peakLoc, &peakAmp, &peakDeriv);
        if (count>0)
            wave1maxind = peakLoc[0];
            wave1maxval = peakAmp[0];
     SetCtrlVal(panelHandle,PANEL_wave1maxind, wave1maxind);
     SetCtrlVal(panelHandle,PANEL_wave1maxval, wave1maxval);   
        if (peakLoc)
            FreeAnalysisMem (peakLoc);
        if (peakAmp)
            FreeAnalysisMem (peakAmp);
        if (peakDeriv)
            FreeAnalysisMem (peakDeriv);
        PeakDetector ( outarray2,8192,0.0, 3, 0, 1, 1, &count, &peakLoc, &peakAmp, &peakDeriv);
        if (count>0)
            wave2maxind = peakLoc[0];
            wave2maxval = peakAmp[0];
      SetCtrlVal(panelHandle,PANEL_wave2maxind, wave2maxind);
         SetCtrlVal(panelHandle,PANEL_wave2maxval, wave2maxval);
        if (peakLoc)
            FreeAnalysisMem (peakLoc);
        if (peakAmp)
            FreeAnalysisMem (peakAmp);
        if (peakDeriv)
            FreeAnalysisMem (peakDeriv);
        phasediff = (8/8192) * (wave1maxind - wave2maxind) * 360;
        phasediff = fmod (phasediff, 360);
       SetCtrlVal(panelHandle,PANEL_Phase_Diff,phasediff);

  • ALV download to EXCEL -- probs with SAPGUI 6.40 and EXCEL 2007

    I have a method in an ALV grid which performs a dowload to excel
    Here's the method
    method download_to_excel.
    field-symbols:
           <fs0> type standard table,
           <fs1> type standard table.
        assign g_outtab1->* to <fs0>.
        assign g_fldcat1->* to <fs1>.
           call function  'LVC_TRANSFER_TO_KKBLO'
          exporting
            it_fieldcat_lvc   = <fs1>
        is_layout_lvc     = m_cl_variant->ms_layout
             is_tech_complete  = ' '
          importing
            es_layout_kkblo   = ls_layout
            et_fieldcat_kkblo = lt_fieldcat.
        loop at lt_fieldcat into lt_fieldcat_wa.
          clear lt_fieldcat_wa-tech_complete.
          if lt_fieldcat_wa-tabname is initial.
            lt_fieldcat_wa-tabname = '1'.
            modify lt_fieldcat from lt_fieldcat_wa.
          endif.
          l_tabname = lt_fieldcat_wa-tabname.
        endloop.
        call function 'ALV_XXL_CALL'
             exporting
                  i_tabname           = l_tabname
                  is_layout           = ls_layout
                  it_fieldcat         = lt_fieldcat
                  i_title             = sy-title
             tables
                  it_outtab           = <fs0>
             exceptions
                  fatal_error         = 1
                  no_display_possible = 2
                  others              = 3.
        if  sy-subrc <> 0.
          message id sy-msgid type 'S' number sy-msgno
                 with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        endif.
    endmethod.
    Basically the method converts the GRID table I'm displaying into the format requred for FMOD ALV_XXL_CALL' -- the field catalog is slightly different but no big deal here.
    This works fine when downloading to  EXCEL 2003 but short dumps when trying to do the same thing for EXCEL 2007.
    Workstation is running Windows XP / SP2 build 2600 in both cases.
    Any fixes etc or should I stick with EXCEL 2003 until forced to upgrade.
    Cheers
    jimbo

    Hi all
    Seems the problem disappeared after applying the latest patch to SAP_GUI 6.40.
    I haven't tried SAP_GUI 7.0 yet.
    Thanks anyway
    Cheers
    jimbo

  • How to unlock objects in Transport Organizer?

    I found a program to unreleased the objects. And create new TR so it wont affect the logs on the old TR#s. Do you think I'm doing the safe way?
    Now, I need to delete and create another object(fmod, fgroup or table) to save it in a new transport request. My problem is the object I deleted is locked in the old TR # so it saves on the same TR. How will I unlock this object?
    Actually, I made a program where I can modify TLOCK table that changes the TR# where it is locked. Is it also safe to forced change the TR?
    Thanks guys!

    Hi Maui,
    To unlock a transport use goto se03 --> Request Task --> Unlock Objects
    Eneter your request and select unlock and execute. this will unlock the request.
    Cheers
    VJ

  • Multiplatform sound IO with LabVIEW

    We develop a commercial piece of software in LabVIEW which needs to do extensive sound output and input (professional internal and external soundcards, up to 16 channels, numerous bit depths and sampling rates with low latencies).  This software is around 16 years old and when the project began there was not much in the way of standard libraries for sound I/O so we wrote a custom dll for doing windows API calls that we call from LabVIEW.  
    However, we are now interested in porting our software to Mac, Windows-64, and also supporting a pro-audio driver format (ASIO) in addition to the standard Windows WDM/MME drivers (in fact, we have already implemented a somewhat buggy interface for ASIO).
    We would like to find a single technology that we could drop into our LabVIEW application to access soundcards on Win-32, Win-64, and Mac, additionally, if it supports ASIO on Windows that would be great.
    The obvious and easiest place to look is the the built in LabVIEW VI's for doing Sound I/O, but, in talking with another company doing similar work, it appears that those VI's don't work nearly well enough (at least on Mac) for our needs.
    A LabVIEW Mac user wrote to us:
    "There are two sets of VI's for sound management in labview for Mac
    - an old one, pretty limited but working, we are limited to 2 channels in and 2 out
    - A new one which is supposed to give access to more parameters (choice of the sound input /output), better resolution ...) but unfortunately ... it doesn't work since few years !  External sound cards are not recognized and informations about the input and output are wrong
    -I had some mail discussion last year for this bugs in LV 2010 with somebody of NI, and they are aware of the problem."
    So, we are interested in finding a crossplatform sound I/O framework that could be called directly from LabVIEW, allowing us to create a cross platform, multichannel, multisoundcard, multisampling rate, LabVIEW sound interface.
    Does anyone know of such a framework?  In doing a little research I came accross a few, but I have no experience with them and whether they would fullfill our needs and could be utilized directly from LabVIEW without having to create wrappers for each target.  Anyone have more perspective?
    PortAudio appears to be an audio library designed for software that needs to be ported http://www.portaudio.com/
    Fmod appears to be a commercial cross-platform API for sound:  http://www.fmod.org/index.php/products
    OpenAL is basically the sound version of OpenGL http://connect.creativelabs.com/openal/default.aspx

    Anthony F wrote:
    Thomas,
    I would suggest the Sound and Vibration toolkit for advanced LabVIEW sound generation and analysis.  You can find more information about this toolkit here:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/12152
    You may additionally need data acquisition hardware as I don't beleive this toolkit would readily interface with the external sound cards you are using.
    And how would that solve any problem. The OP want to use a soundcard. So besides purchasing an expensive toolkit really NOT needed. The original poster will also be forced to purchase NI hardware what works very well. But are in high end then it comes to price range. You have not so many posting. So I guess you are quite new in the NI system. And I also know that in NI training. They are very focused on selling products. And for that I can not blame NI. They need to sell in order to develop So my advice to you. Spend some more time understanding what your customers REALLY need. Before recommending expensive hardware/software. A too eager sale strategy. Will backfire badly (rather) sooner or later.
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • FM posting date issue in extended classic

    We are experiencing issue with SRM deriving incorrect posting period when PO changes are made. We are in extended classic scenario with two FM periods open across fiscal years.
    PO changes  “No further confirmation” and “No further Invoice” from “No” to “Yes”, changes to anything on Account assignment(Asset, GL account, fund etc).
    Earlier when we were in Classic scenario, we had FMOD capability to post the FM documents in previous year and current year. Do we have similar functionality retained in extended classic?

    Hello Ratnakar,
    could you please check below OSS note:
    1981805 - Document Date is always updated with FM Posting Date
    You could also check for OSS notes dealing with PSM-GPR-POR application area.
    Regards.
    Laurent.

Maybe you are looking for