Secondary Indices and free-threaded handles

As per the BerkeleyDB documentation, BDB manages synchronization if the db_handle is free-threaded (i.e opened with flag DB_CREATE).
Example: Consider a free-threaded handle 'dbp' to the primary index and a free-threaded handle 'dbs' to the secondary index associated with 'dbp'. If one thread is trying to write using 'dbp' and another thread is trying to read using 'dbs', then does BDB maintain synchronization ?

As per the BerkeleyDB documentation, BDB manages
synchronization if the db_handle is free-threaded
(i.e opened with flag DB_CREATE).
Example: Consider a free-threaded handle 'dbp' to
the primary index and a free-threaded handle 'dbs'
to the secondary index associated with 'dbp'. If one
thread is trying to write using 'dbp' and another
thread is trying to read using 'dbs', then does BDB
maintain synchronization ?Would you please clarify your question especially if my guess at what you are asking is incorrect?
I can't tell if you are really talking about a handle or a cursor and you also mentioned a secondary index. .
DB handles are free-threaded if the DB_THREAD flag is specified to the DB->open method when the database is opened or if the database environment in which the database is opened is free-threaded. The handle should not be closed while any other handle that refers to the database is in use; for example, database handles must not be closed while cursor handles into the database remain open, or transactions that include operations on the database have not yet been committed or aborted.
You will also want to configure locking, see the DB_INIT_LOCK flag. Therefore you will likely want to configure a Berkeley DB Environment with the DB_INIT_LOCK | DB_THREAD flags added to your environment.
If that was NOT what you were asking about please clarify your question or tell us what you are trying to accomplish?
Ron Cohen
Oracle Corporation

Similar Messages

  • Moving a Secondary Domain and Its Associated GWIA

    I need to free up a server for my GroupWise 2014 move from stand-alone hardware to a brand new SAN/Virtual environment and I could use some tips so I don't screw it up by forgetting something (and I don't want to do it the hard way, any tips to make it an easy thing would be helpful). I'm looking for tips on how to move the domain, not on virtualization.
    Here's the dirt:
    I have a primary domain set up on its own server, running a GWIA named "GWIA2" (for outgoing mail only)
    I have a secondary domain on its own server, running a GWIA named "GWIA" (for incoming mail only). The secondary domain has no post offices, just the GWIA. It's only purpose is to accept incoming mail and forward it to the primary domain. This is the server I need to free-up... I need the hardware.
    My plan at this point is to move the secondary domain (and GWIA) to the same server that the primary domain (and GWIA2) resides on temporarily, so I can use the secondary domain's server as a "virtual" server starting point, once I get the newly freed-up server into my virtual environment, I can then migrate the rest of my GW system over. Once the migration to virtual is complete, I can then move the secondary domain back to its own server (if I even really need to).
    My questions:
    1) Do I even need to move the secondary domain and GWIA? Should I just delete it and run with one domain? I'm in a state government situation and we get a LOT of incoming mail when we are in session. This is why I set up two domains in the first place; one for incoming mail and one to handle outgoing (the primary domain handles the outgoing mail because the volume is considerably lower than incoming mail).
    2) Does it even make sense to have a separate server for incoming mail and outgoing mail after virtualization?
    3) If I do need to move the domain, what steps would I need to take? I'm thinking about things like reconfiguring the links, moving the objects in GWadmin console, IP Address changes (I do not need to change the MX record, that points to my SMTP filter, which then forwards the messages to my secondary domain - I'd just need to point it at the new IP address).
    Any other thoughts would be appreciated. I'm just now beginning to form the outline of what I need to do and I thought I'd get input from you guys to help me solidify my plan. Any advice or thoughts will be graciously welcomed.
    PJM

    laurabuckley wrote:
    > Further to that I think, but stand to be corrected on this, that two GWIA's on
    > the same box, if you are not binding exclusively to two separate IP's, is not
    > going to work due to port conflicts.
    Correct - if you have them bind to separate IP addresses, they should work, but
    otherwise only one GWIA per server. I personally am not sure that separate
    GWIAs are all that important. Two domains are nice though for disaster
    recovery, but if they are both on the same server, the redundancy is not really
    there.
    Danita
    Novell Knowledge Partner
    Are you a GroupWise Power Administrator? Join our site.
    http://www.caledonia.net/register
    If you find this post helpful and are logged into the web interface,
    show your appreciation and click on the star below...

  • Creative Cloud Leaks Thread Handles

    I have Creative Cloud version 1.8.0.447 running on windows 7, and I notice that it leaks a Thread Handle, about 4 times, or so, per minute.  Since I leave my computer on most of the time, after a few days, the number of leaked Thread Handles is up in the tens of thousands.
    I can see the thread handles leaking using Process Explorer.
    Generally when a thread ends, its handle needs to be closed, or else the handle will stay active forever, or until the process ends.  It looks like the programming team is not closing these handles after the threads end.
    Please, adobe, fix this problem in a future release of creative cloud.
    -Todd

    Some 10.9.x links
    -next link says After Effects, but check YOUR permissions !!!
    -http://blogs.adobe.com/aftereffects/2014/06/permissions-mac-os-start-adobe-applications.ht ml
    -Mac 10.9.4 and OpenCL issue https://forums.adobe.com/thread/1514717
    -Mac 10.9.3 workaround https://forums.adobe.com/thread/1489922
    -more Mac 10.9.3 https://forums.adobe.com/thread/1491469
    -and https://forums.adobe.com/thread/1507936
    or
    A chat session where an agent may remotely look inside your computer may help
    Creative Cloud chat support (all Creative Cloud customer service issues)
    http://helpx.adobe.com/x-productkb/global/service-ccm.html

  • Secondary Index vs Secondary Indices

    Hi All,
    In the earlier version already  we have the primary index,secondary indexes,But now iam going through the enhancements in NW 7.0 In this they mentioned Secondary indices as the new enhancement with NW 7.0,I know how to create the Secondary indices ,But i am getting the conffusion between secondary indexes (already we have) and the new Secondary Indices,So please could any one elobarate this or atleast URL'S which are relavant to this topic,It would be very help full to me.
    Thank you..
    Srihasa

    new index are just different at workbench level, but are the same at database level. You may assign them to a Y or Z package (instead of the sap package, it was seen as a modification of the standard). They also have a dedicated object directory entry (R3TR XINX). http://help.sap.com/saphelp_erp2005vp/helpdata/EN/85/685a41cdbf8047e10000000a1550b0/frameset.htm
    [Note 1257033 - Cookbook: Modification/enhancement for standard SAP system|http://service.sap.com/sap/support/notes/1257033]

  • Adding button in the secondary list and alv grid

    Hi all ,
                i have devloped an alv grid interactive report as below, my problem is i want to add some button in the secondary list and do some interactions. but i dont know how to do that. i m sending u my code below ,,, plzz suggest what can be done do add that.
    <code>
    *& Report  Z_demo_SALESDOC
    REPORT  z_demo_salesdoc.
    TABLES: vbak, vbap.
    TYPE-POOLS:slis.
    DATA: BEGIN OF it_vbak OCCURS 0,
           vbeln TYPE vbak-vbeln,
           ernam TYPE vbak-ernam,
           erdat TYPE vbak-erdat,
           auart TYPE vbak-auart,
           END OF it_vbak.
    DATA: BEGIN OF it_vbap OCCURS 0,
           vbeln TYPE vbap-vbeln,
           posnr TYPE vbap-vbeln,
           matnr TYPE vbap-matnr,
           zmeng TYPE vbap-zmeng,
           netwr TYPE vbap-netwr,
           END OF it_vbap.
    DATA:it_event TYPE slis_t_event.
    DATA: t_field TYPE slis_t_fieldcat_alv,
          w_field TYPE slis_fieldcat_alv,
          t_field1 TYPE slis_t_fieldcat_alv,
          w_field1 TYPE slis_fieldcat_alv,
          w_layout TYPE slis_layout_alv,
          t_sort TYPE slis_t_sortinfo_alv,
          w_sort TYPE slis_sortinfo_alv.
    CONSTANTS: c_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE',
               c_usercommand  TYPE slis_formname VALUE 'USER_COMMAND'.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: s_vbeln FOR vbak-vbeln MODIF ID m1,
                    s_erdat FOR vbak-erdat MODIF ID m2.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
    PARAMETERS:rb1 RADIOBUTTON GROUP g1 USER-COMMAND us1,
               rb2 RADIOBUTTON GROUP g1 DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK B2.
    AT SELECTION-SCREEN OUTPUT.
      IF rb1 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1    = 'M1'.
         IF screen-name    CS 'S_VBELN'.
            screen-active    = '0'.
           screen-input     = '0'.
          screen-output    = '0'.
          screen-invisible = '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF rb2 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1    = 'M2'.
            screen-active    = '0'.
           screen-input     = '0'.
          screen-output    = '0'.
          screen-invisible = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    AT SELECTION-SCREEN.
      DATA: v_vbeln LIKE vbak-vbeln.
      SELECT SINGLE vbeln
                      FROM vbak
                      INTO (v_vbeln)
                      WHERE vbeln IN s_vbeln .
      IF sy-subrc <> 0.
        MESSAGE e001(q) WITH 'Invalid Sales document'.
      ENDIF.
      DATA: v_erdat LIKE vbak-erdat.
      SELECT SINGLE erdat
                      FROM vbak
                      INTO (v_erdat)
                      WHERE erdat IN s_erdat.
      IF sy-subrc <> 0.
        MESSAGE e001(q) WITH 'No document available with given date'.
      ENDIF.
    START-OF-SELECTION.
      PERFORM get_data_vbak.
      PERFORM build_field_catalog.
    PERFORM fill_event.
      PERFORM print_data_vbak.
    END-OF-SELECTION.
    *&      Form  get_data_vbak
          text
    -->  p1        text
    <--  p2        text
    FORM get_data_vbak .
      SELECT vbeln ernam erdat auart
                                FROM vbak
                                INTO TABLE it_vbak
                                WHERE vbeln IN s_vbeln AND erdat IN s_erdat.
    ENDFORM.                    " get_data_vbak
    *&      Form  build_field_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM build_field_catalog .
      w_field-col_pos = 1.
      w_field-fieldname = 'VBELN'.
      w_field-tabname = 'IT_VBAK'.
      w_field-seltext_m = 'Sales Order'.
      w_field-emphasize = 'C710'.
      APPEND w_field TO t_field.
      CLEAR w_field.
      w_field-col_pos = 2.
      w_field-fieldname = 'ERNAM'.
      w_field-tabname = 'IT_VBAK'.
      w_field-seltext_m = 'Created by'.
      w_field-emphasize = 'C710'.
      APPEND w_field TO t_field.
      CLEAR w_field.
      w_field-col_pos = 3.
      w_field-fieldname = 'ERDAT'.
      w_field-tabname = 'IT_VBAK'.
      w_field-seltext_m = 'Created Date'.
      w_field-emphasize = 'C710'.
      APPEND w_field TO t_field.
      CLEAR w_field.
      w_field-col_pos = 4.
      w_field-fieldname = 'AUART'.
      w_field-tabname = 'IT_VBAK'.
      w_field-seltext_m = 'Order type'.
      w_field-emphasize = 'C710'.
      APPEND w_field TO t_field.
      CLEAR w_field.
      w_sort-spos = 1.
      w_sort-fieldname = 'VBELN'.
      w_sort-up = 'X'.
      APPEND w_sort TO t_sort.
      w_layout-colwidth_optimize = 'X'.
    ENDFORM.                    " build_field_catalog
    *&      Form  user_command
          text
         -->RF_UCOMM     text
         -->RS_SELFIELD  text
    FORM user_command USING rf_ucomm    TYPE sy-ucomm
                            rs_selfield TYPE slis_selfield.
      CASE rf_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'VBELN'.
            READ TABLE it_vbak INDEX rs_selfield-tabindex.
            IF sy-subrc = 0.
              PERFORM get_data_vbap.
              PERFORM build_field_catalog2.
              PERFORM print_field_data.
            ENDIF.
          ENDIF.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  print_data_vbak
          text
    -->  p1        text
    <--  p2        text
    FORM print_data_vbak .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = sy-repid
      I_CALLBACK_PF_STATUS_SET          = ' '
       i_callback_user_command           = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  = I_STRUCTURE_NAME
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      = I_GRID_TITLE
      I_GRID_SETTINGS                   = I_GRID_SETTINGS
         is_layout                         = w_layout
       it_fieldcat                       = t_field[]
      IT_EXCLUDING                      = IT_EXCLUDING
      IT_SPECIAL_GROUPS                 = IT_SPECIAL_GROUPS
       it_sort                           = t_sort
      IT_FILTER                         = IT_FILTER
      IS_SEL_HIDE                       = IS_SEL_HIDE
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        = IS_VARIANT
      it_events                         = it_event[]
      IT_EVENT_EXIT                     = IT_EVENT_EXIT
      IS_PRINT                          = IS_PRINT
      IS_REPREP_ID                      = IS_REPREP_ID
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   = IT_ALV_GRAPHICS
      IT_HYPERLINK                      = IT_HYPERLINK
      IT_ADD_FIELDCAT                   = IT_ADD_FIELDCAT
      IT_EXCEPT_QINFO                   = IT_EXCEPT_QINFO
      IR_SALV_FULLSCREEN_ADAPTER        = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER            = ES_EXIT_CAUSED_BY_USER
        TABLES
          t_outtab                          = it_vbak
    EXCEPTIONS
       program_error                     = 1
       OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " print_data_vbak
    *&      Form  fill_event
          text
    FORM fill_event .
      DATA : st_event TYPE slis_alv_event.
    *- Clear.
      CLEAR : st_event, it_event[].
    *- Local variable
      DATA : l_tabix TYPE sy-tabix.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 0
        IMPORTING
          et_events       = it_event
        EXCEPTIONS
          list_type_wrong = 1
          OTHERS          = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    *- Read event table
      READ TABLE it_event WITH KEY name = slis_ev_user_command
                           INTO st_event.
    *- Clear
      CLEAR l_tabix.
      l_tabix = sy-tabix.
    *- Check subrc
      IF sy-subrc = 0.
        st_event-form = c_usercommand.
    *- Modify
        MODIFY it_event FROM st_event INDEX l_tabix.
    *- Clear
        CLEAR st_event.
      ENDIF.
    ENDFORM.                    " fill_event
    *&      Form  get_data_vbap
          text
    FORM get_data_vbap .
      IF NOT it_vbak[] IS INITIAL.
        SELECT vbeln
               posnr
               matnr
               zmeng
               netwr
            FROM vbap
            INTO TABLE it_vbap
            WHERE vbeln = it_vbak-vbeln.
        IF sy-subrc = 0.
          SORT it_vbap BY vbeln.
        ENDIF.
      ENDIF.
    ENDFORM.                    " get_data_vbap
    *&      Form  build_field_catalog2
          text
    FORM build_field_catalog2 .
      CLEAR:t_field1,w_field1.
      w_field1-col_pos = 1.
      w_field1-fieldname = 'VBELN'.
      w_field1-tabname = 'IT_VBAP'.
      w_field1-seltext_m = 'Sales Order'.
      w_field1-emphasize = 'C710'.
      APPEND w_field1 TO t_field1.
      CLEAR w_field1.
      w_field1-col_pos = 2.
      w_field1-fieldname = 'POSNR'.
      w_field1-tabname = 'IT_VBAP'.
      w_field1-seltext_m = 'Sales Doc Item'.
      w_field1-emphasize = 'C710'.
      APPEND w_field1 TO t_field1.
      CLEAR w_field1.
      w_field1-col_pos = 3.
      w_field1-fieldname = 'MATNR'.
      w_field1-tabname = 'IT_VBAP'.
      w_field1-seltext_m = 'Material No'.
      w_field1-emphasize = 'C710'.
      APPEND w_field1 TO t_field1.
      CLEAR w_field1.
      w_field1-col_pos = 4.
      w_field1-fieldname = 'ZMENG'.
      w_field1-tabname = 'IT_VBAP'.
      w_field1-seltext_m = 'Target quan units'.
      w_field1-emphasize = 'C710'.
      APPEND w_field1 TO t_field1.
      CLEAR w_field1.
      w_field1-col_pos = 5.
      w_field1-fieldname = 'NETWR'.
      w_field1-tabname = 'IT_VBAP'.
      w_field1-seltext_m = 'Net value dc cu'.
      w_field1-emphasize = 'C710'.
      APPEND w_field1 TO t_field1.
      CLEAR w_field1.
    ENDFORM.                    " build_field_catalog2
    *&      Form  print_field_data
          text
    FORM print_field_data .
    SET PF-STATUS 'VBAP'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = sy-repid
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  = I_STRUCTURE_NAME
      I_BACKGROUND_ID                   = ' '
         i_grid_title                      = 'VBAP DETAILS'
      I_GRID_SETTINGS                   = I_GRID_SETTINGS
      IS_LAYOUT                         = IS_LAYOUT
         it_fieldcat                       = t_field1[]
      IT_EXCLUDING                      = IT_EXCLUDING
      IT_SPECIAL_GROUPS                 = IT_SPECIAL_GROUPS
      IT_SORT                           = IT_SORT
      IT_FILTER                         = IT_FILTER
      IS_SEL_HIDE                       = IS_SEL_HIDE
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        = IS_VARIANT
      IT_EVENTS                         = IT_EVENTS
      IT_EVENT_EXIT                     = IT_EVENT_EXIT
      IS_PRINT                          = IS_PRINT
      IS_REPREP_ID                      = IS_REPREP_ID
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   = IT_ALV_GRAPHICS
      IT_HYPERLINK                      = IT_HYPERLINK
      IT_ADD_FIELDCAT                   = IT_ADD_FIELDCAT
      IT_EXCEPT_QINFO                   = IT_EXCEPT_QINFO
      IR_SALV_FULLSCREEN_ADAPTER        = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER            = ES_EXIT_CAUSED_BY_USER
        TABLES
          t_outtab                          = it_vbap
       EXCEPTIONS
         program_error                     = 1
         OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " print_field_data
    </code>

    Hi Satya..
    This is the Sample code...
    DATA : V_FORM_GUI TYPE SLIS_FORMNAME VALUE 'F_GUI'.  "Form name
    **Secondary List
    FORM print_field_data .
    SET PF-STATUS 'VBAP'.  "This statement will not work for ALV
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
    i_callback_program = sy-repid
    <b> I_CALLBACK_PF_STATUS_SET = V_FORM_GUI  
                                                      "Subroutine in which GUI status is called</b>
    I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'   "To handle GUI
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME = I_STRUCTURE_NAME
    I_BACKGROUND_ID = ' '
    i_grid_title = 'VBAP DETAILS'
    I_GRID_SETTINGS = I_GRID_SETTINGS
    IS_LAYOUT = IS_LAYOUT
    it_fieldcat = t_field1[]
    IT_EXCLUDING = IT_EXCLUDING
    IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
    IT_SORT = IT_SORT
    IT_FILTER = IT_FILTER
    IS_SEL_HIDE = IS_SEL_HIDE
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT = IS_VARIANT
    IT_EVENTS = IT_EVENTS
    IT_EVENT_EXIT = IT_EVENT_EXIT
    IS_PRINT = IS_PRINT
    IS_REPREP_ID = IS_REPREP_ID
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    I_HTML_HEIGHT_TOP = 0
    I_HTML_HEIGHT_END = 0
    IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
    IT_HYPERLINK = IT_HYPERLINK
    IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
    IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
    IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
    ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
    TABLES
    t_outtab = it_vbap
    EXCEPTIONS
    program_error = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " print_field_data
    FORM F_GUI USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'GUI_1'.  "Double click and Create this GUI status and add buttons
    ENDFORM.
    <b><REMOVED BY MODERATOR></b>
    Message was edited by:
            Alvaro Tejada Galindo

  • RE: DBSessions and Single-threading

    Thanks Linh. Always good to here from you.
    thanks
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Linh Pham[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 2:51 PM
    To: Ajith Kallambella M; [email protected]; ForteUsers;
    [email protected]
    Subject: RE: DBSessions and Single-threading
    all,
    This information (technote draft # 11716) is to clear up the confusion
    regarding
    database access.
    Note, Forte reserves the right to change this implementation in the
    future.
    Currently, there are two flavors of database access available with forte
    (as of version 30j1):
    1. single-threading access to all databases on all UNIX & VMS platforms
    2. multithreading access to all supported database except Sybase on
    intel/alpha-NT,
    and to a certain extent, limited support with SQLServer (see more
    details below)
    1. single-threading access:
    with this type of access, when the following code is executed
    (SQL select ... on MyDBSession;), forte locks the partition and
    all EXTERNAL requests will be queued. However, task switching inside
    the partition continues until the called task enters the DBVendor's
    API (as with any 3GL call). Prior to this moment, you can still have
    multiple tasks running inside the partition. As the called task
    enters the 3GL, it truly blocks a partition, ie. it's OUT there
    talking to the database and not communicating with the
    the forte's environment. If the query is long, the partition might not
    be
    able to acknowledge the environment manager's ping, and thus, will be
    deemed NOT reachable, and a new partition will be started (see technote
    11147). Another problem arises when you have multiple INTERNAL tasks
    trying to perform database access concurrently on the same DBSession.
    Since the behavior is unpredictable, we RECOMMEND that you only
    have ONE task at any time accessing the DBSession inside a partition.
    Please see also technote 7104 for more information regarding DBSession
    sharing & blocking.
    2. multi-threading access:
    on NT, we have added code to allow multithreading access to most
    supported
    database. What does this mean?
    a. when a task access the database, the partition will NOT be blocked.
    b. you can have multiple DBSessions inside a partition and allow
    concurrent access; however, we still RECOMMEND that you
    only have ONE task accessing a DBSession at any one time.
    Please consult a Forte consultant or a TSR in reference to technote
    11151 (only available internally). Please do NOT call Forte Technical
    Support for this technote.
    As to SQLServer, the ODBC driver that you use to access the database
    will
    determine if it's is reentrant or not. There is also a known problem
    with
    the Microsoft ODBC driver which causes the cursor state to become
    invalid when
    multiple tasks accessing the same session. Due to these problems, forte
    recommends that you single-threading access to SQLServer; otherwise
    use at YOUR OWN RISK.
    Hope this helps. IF you have questions regarding multithreading access
    support
    in the future, please contact a Forte Sales Rep or TSR.
    linh ...
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Ajith Kallambella M
    Sent: Friday, November 13, 1998 9:08 AM
    To: [email protected]; ForteUsers; [email protected]
    Subject: RE: DBSessions and Single-threading
    Though, the DBSession partitions can reside on a
    thread-safe
    OS ( like NT ), the DBSession is still single threaded
    and your
    partition gets blocked for the duration of the DB
    access. Same
    is true, even if you have multi-threaded databases.
    Forte has not changed DBSession to make it
    multi-threaded.
    Infact, given the current implementation, the only way
    to simulate
    concurrent database access is to replicate the
    partition which
    has DBSession object. The famous DBEntityManagerPattern
    does essentially the same.
    I think we should all feel happy with this now, and
    hope for
    something better in 4.0.
    Ajith Kallambella. M
    Forte Systems Engineer,
    International Business Corporation
    -----Original Message-----
    From: Eric Pereira [<a href=
    "mailto:[email protected]">mailto:[email protected]</a>]
    Sent: Friday, November 13, 1998 9:54 AM
    To: [email protected]
    Cc: [email protected]
    Subject: RE: DBSessions and Single-threading
    Kamran,
    That's not entirely correct. Partitions which access
    multi-threaded
    databases (like MS SQL Server on NT) do not block.
    There was some
    discussion about this over the User Group a while back
    - with no real
    conclusion, so perhaps Forte might want to step in and
    clarify.
    What I'm curious about is the outcome in a situation
    where one DB
    Session accesses SQL Server and another one talks to a
    non
    multi-threaded database within the same partition.
    Thanks.
    Eric Pereira
    Forte Consultant
    ----Original Message Follows----
    From: "Amin, Kamran" <[email protected]>
    To: [email protected], Peter Kelly
    <[email protected]>
    Subject: RE: DBSessions and Single-threading
    Date: Fri, 13 Nov 1998 07:52:09 -0500
    Reply-To: "Amin, Kamran" <[email protected]>
    Peter,
    If one of the service object is being used the that
    partition gets
    blocked until it has finished the request to the
    dbsession. It will not
    mater if the service objects are connected to different
    database. Using
    a
    dbsession makes the partition single threaded and
    that's why we use load
    balancing. Please look at tech. note 10647 for more
    info.
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Peter Kelly[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 6:27 AM
    To: [email protected]
    Subject: DBSessions and Single-threading
    Does a DBSession executing in a partition cause thatpartition to
    become
    single-threaded?
    Suppose a partition has 2 Service Objects.
    Each Service Object has its own unique DBSession.
    While a method in one Service Object is using itsDBSession,
    do all other threads in that partition halt and thenresume
    when the work with the first DBSession is complete.
    What if the two DBSessions are connected to differentdatabases,
    does this change anything?
    I heard rumours that Oracle on NT supportedmulti-tasking and blocking
    would not occur. If blocking does occur, is it aForte or Oracle
    limitation?
    Any input/comments appreciated.
    thanks,
    Peter
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    Get Your Private, Free Email at <a href=
    "http://www.hotmail.com">http://www.hotmail.com</a>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

    Thanks Linh. Always good to here from you.
    thanks
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Linh Pham[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 2:51 PM
    To: Ajith Kallambella M; [email protected]; ForteUsers;
    [email protected]
    Subject: RE: DBSessions and Single-threading
    all,
    This information (technote draft # 11716) is to clear up the confusion
    regarding
    database access.
    Note, Forte reserves the right to change this implementation in the
    future.
    Currently, there are two flavors of database access available with forte
    (as of version 30j1):
    1. single-threading access to all databases on all UNIX & VMS platforms
    2. multithreading access to all supported database except Sybase on
    intel/alpha-NT,
    and to a certain extent, limited support with SQLServer (see more
    details below)
    1. single-threading access:
    with this type of access, when the following code is executed
    (SQL select ... on MyDBSession;), forte locks the partition and
    all EXTERNAL requests will be queued. However, task switching inside
    the partition continues until the called task enters the DBVendor's
    API (as with any 3GL call). Prior to this moment, you can still have
    multiple tasks running inside the partition. As the called task
    enters the 3GL, it truly blocks a partition, ie. it's OUT there
    talking to the database and not communicating with the
    the forte's environment. If the query is long, the partition might not
    be
    able to acknowledge the environment manager's ping, and thus, will be
    deemed NOT reachable, and a new partition will be started (see technote
    11147). Another problem arises when you have multiple INTERNAL tasks
    trying to perform database access concurrently on the same DBSession.
    Since the behavior is unpredictable, we RECOMMEND that you only
    have ONE task at any time accessing the DBSession inside a partition.
    Please see also technote 7104 for more information regarding DBSession
    sharing & blocking.
    2. multi-threading access:
    on NT, we have added code to allow multithreading access to most
    supported
    database. What does this mean?
    a. when a task access the database, the partition will NOT be blocked.
    b. you can have multiple DBSessions inside a partition and allow
    concurrent access; however, we still RECOMMEND that you
    only have ONE task accessing a DBSession at any one time.
    Please consult a Forte consultant or a TSR in reference to technote
    11151 (only available internally). Please do NOT call Forte Technical
    Support for this technote.
    As to SQLServer, the ODBC driver that you use to access the database
    will
    determine if it's is reentrant or not. There is also a known problem
    with
    the Microsoft ODBC driver which causes the cursor state to become
    invalid when
    multiple tasks accessing the same session. Due to these problems, forte
    recommends that you single-threading access to SQLServer; otherwise
    use at YOUR OWN RISK.
    Hope this helps. IF you have questions regarding multithreading access
    support
    in the future, please contact a Forte Sales Rep or TSR.
    linh ...
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Ajith Kallambella M
    Sent: Friday, November 13, 1998 9:08 AM
    To: [email protected]; ForteUsers; [email protected]
    Subject: RE: DBSessions and Single-threading
    Though, the DBSession partitions can reside on a
    thread-safe
    OS ( like NT ), the DBSession is still single threaded
    and your
    partition gets blocked for the duration of the DB
    access. Same
    is true, even if you have multi-threaded databases.
    Forte has not changed DBSession to make it
    multi-threaded.
    Infact, given the current implementation, the only way
    to simulate
    concurrent database access is to replicate the
    partition which
    has DBSession object. The famous DBEntityManagerPattern
    does essentially the same.
    I think we should all feel happy with this now, and
    hope for
    something better in 4.0.
    Ajith Kallambella. M
    Forte Systems Engineer,
    International Business Corporation
    -----Original Message-----
    From: Eric Pereira [<a href=
    "mailto:[email protected]">mailto:[email protected]</a>]
    Sent: Friday, November 13, 1998 9:54 AM
    To: [email protected]
    Cc: [email protected]
    Subject: RE: DBSessions and Single-threading
    Kamran,
    That's not entirely correct. Partitions which access
    multi-threaded
    databases (like MS SQL Server on NT) do not block.
    There was some
    discussion about this over the User Group a while back
    - with no real
    conclusion, so perhaps Forte might want to step in and
    clarify.
    What I'm curious about is the outcome in a situation
    where one DB
    Session accesses SQL Server and another one talks to a
    non
    multi-threaded database within the same partition.
    Thanks.
    Eric Pereira
    Forte Consultant
    ----Original Message Follows----
    From: "Amin, Kamran" <[email protected]>
    To: [email protected], Peter Kelly
    <[email protected]>
    Subject: RE: DBSessions and Single-threading
    Date: Fri, 13 Nov 1998 07:52:09 -0500
    Reply-To: "Amin, Kamran" <[email protected]>
    Peter,
    If one of the service object is being used the that
    partition gets
    blocked until it has finished the request to the
    dbsession. It will not
    mater if the service objects are connected to different
    database. Using
    a
    dbsession makes the partition single threaded and
    that's why we use load
    balancing. Please look at tech. note 10647 for more
    info.
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Peter Kelly[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 6:27 AM
    To: [email protected]
    Subject: DBSessions and Single-threading
    Does a DBSession executing in a partition cause thatpartition to
    become
    single-threaded?
    Suppose a partition has 2 Service Objects.
    Each Service Object has its own unique DBSession.
    While a method in one Service Object is using itsDBSession,
    do all other threads in that partition halt and thenresume
    when the work with the first DBSession is complete.
    What if the two DBSessions are connected to differentdatabases,
    does this change anything?
    I heard rumours that Oracle on NT supportedmulti-tasking and blocking
    would not occur. If blocking does occur, is it aForte or Oracle
    limitation?
    Any input/comments appreciated.
    thanks,
    Peter
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    Get Your Private, Free Email at <a href=
    "http://www.hotmail.com">http://www.hotmail.com</a>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

  • Is ther a way to speed up a Mac? Mine has gotten slower and slower over time.  When memory comes close to full would that have an effect on performance? Is there a way to determine unused programs/software to remove and free space?

    Is there a way to speed up a Mac (similar to de-fragging on a PC)? Mine has gotten slower and slower over time. 
    When memory/disc comes close to full would that have an effect on performance? How should I determine what programs/software to remove and free space?

    Things You Can Do To Resolve Slow Downs
    If your computer seems to be running slower here are some things you can do:
    Start with visits to:     OS X Maintenance - MacAttorney;
                                      The X Lab: The X-FAQs;
                                      The Safe Mac » Mac Performance Guide;
                                      The Safe Mac » The myth of the dirty Mac;
                                      Mac maintenance Quick Assist.
    Boot into Safe Mode then repair your hard drive and permissions:
    Repair the Hard Drive and Permissions Pre-Lion
    Boot from your OS X Installer disc. After the installer loads select your language and click on the Continue button. When the menu bar appears select Disk Utility from the Utilities menu. After DU loads select your hard drive entry (mfgr.'s ID and drive size) from the the left side list.  In the DU status area you will see an entry for the S.M.A.R.T. status of the hard drive.  If it does not say "Verified" then the hard drive is failing or failed. (SMART status is not reported on external Firewire or USB drives.) If the drive is "Verified" then select your OS X volume from the list on the left (sub-entry below the drive entry,) click on the First Aid tab, then click on the Repair Disk button. If DU reports any errors that have been fixed, then re-run Repair Disk until no errors are reported. If no errors are reported click on the Repair Permissions button. Wait until the operation completes, then quit DU and return to the installer.
    Repair the Hard Drive - Lion/Mountain Lion/Mavericks
    Boot to the Recovery HD:
    Restart the computer and after the chime press and hold down the COMMAND and R keys until the Utilites Menu screen appears. Alternatively, restart the computer and after the chime press and hold down the OPTION key until the boot manager screen appears. Select the Recovery HD disk icon and click on the arrow button below.
    When the recovery menu appears select Disk Utility. After DU loads select your hard drive entry (mfgr.'s ID and drive size) from the the left side list.  In the DU status area you will see an entry for the S.M.A.R.T. status of the hard drive.  If it does not say "Verified" then the hard drive is failing or failed. (SMART status is not reported on external Firewire or USB drives.) If the drive is "Verified" then select your OS X volume from the list on the left (sub-entry below the drive entry,) click on the First Aid tab, then click on the Repair Disk button. If DU reports any errors that have been fixed, then re-run Repair Disk until no errors are reported. If no errors are reported, then click on the Repair Permissions button. Wait until the operation completes, then quit DU and return to the main menu. Select Restart from the Apple menu.
    Restart your computer normally and see if this has helped any. Next do some maintenance:
    For situations Disk Utility cannot handle the best third-party utility is Disk Warrior;  DW only fixes problems with the disk directory, but most disk problems are caused by directory corruption; Disk Warrior 4.x is now Intel Mac compatible.
    Note: Alsoft ships DW on a bootable DVD that will startup Macs running Snow Leopard or earlier. It cannot start Macs that came with Lion or later pre-installed, however, DW will work on those models.
    Suggestions for OS X Maintenance
    OS X performs certain maintenance functions that are scheduled to occur on a daily, weekly, or monthly period. The maintenance scripts run in the early AM only if the computer is turned on 24/7 (no sleep.) If this isn't the case, then an excellent solution is to download and install a shareware utility such as Macaroni, JAW PseudoAnacron, or Anacron that will automate the maintenance activity regardless of whether the computer is turned off or asleep.  Dependence upon third-party utilities to run the periodic maintenance scripts was significantly reduced since Tiger.  These utilities have limited or no functionality with Snow Leopard or later and should not be installed.
    OS X automatically defragments files less than 20 MBs in size, so unless you have a disk full of very large files there's little need for defragmenting the hard drive.
    Helpful Links Regarding Malware Protection
    An excellent link to read is Tom Reed's Mac Malware Guide.
    Also, visit The XLab FAQs and read Detecting and avoiding malware and spyware.
    See these Apple articles:
              Mac OS X Snow Leopard and malware detection
              OS X Lion- Protect your Mac from malware
              OS X Mountain Lion- Protect your Mac from malware
              About file quarantine in OS X
    If you require anti-virus protection I recommend using VirusBarrier Express 1.1.6 or Dr.Web Light both from the App Store. They're both free, and since they're from the App Store, they won't destabilize the system. (Thank you to Thomas Reed for these recommendations.)
    Troubleshooting Applications
    I recommend downloading a utility such as TinkerTool System, OnyX, Mavericks Cache Cleaner, or Cocktail that you can use for removing old log files and archives, clearing caches, etc. Corrupted cache, log, or temporary files can cause application or OS X crashes as well as kernel panics.
    If you have Snow Leopard or Leopard, then for similar repairs install the freeware utility Applejack.  If you cannot start up in OS X, you may be able to start in single-user mode from which you can run Applejack to do a whole set of repair and maintenance routines from the command line.  Note that AppleJack 1.5 is required for Leopard. AppleJack 1.6 is compatible with Snow Leopard. Applejack does not work with Lion and later.
    Basic Backup
    For some people Time Machine will be more than adequate. Time Machine is part of OS X. There are two components:
    1. A Time Machine preferences panel as part of System Preferences;
    2. A Time Machine application located in the Applications folder. It is
        used to manage backups and to restore backups. Time Machine
        requires a backup drive that is at least twice the capacity of the
        drive being backed up.
    Alternatively, get an external drive at least equal in size to the internal hard drive and make (and maintain) a bootable clone/backup. You can make a bootable clone using the Restore option of Disk Utility. You can also make and maintain clones with good backup software. My personal recommendations are (order is not significant):
      1. Carbon Copy Cloner
      2. Get Backup
      3. Deja Vu
      4. SuperDuper!
      5. Synk Pro
      6. Tri-Backup
    Visit The XLab FAQs and read the FAQ on backup and restore.  Also read How to Back Up and Restore Your Files. For help with using Time Machine visit Pondini's Time Machine FAQ for help with all things Time Machine.
    Referenced software can be found at MacUpdate.
    Additional Hints
    Be sure you have an adequate amount of RAM installed for the number of applications you run concurrently. Be sure you leave a minimum of 10% of the hard drive's capacity as free space.
    Add more RAM. If your computer has less than 2 GBs of RAM and you are using OS X Leopard or later, then you can do with more RAM. Snow Leopard and Lion work much better with 4 GBs of RAM than their system minimums. The more concurrent applications you tend to use the more RAM you should have.
    Always maintain at least 15 GBs or 10% of your hard drive's capacity as free space, whichever is greater. OS X is frequently accessing your hard drive, so providing adequate free space will keep things from slowing down.
    Check for applications that may be hogging the CPU:
    Pre-Mavericks
    Open Activity Monitor in the Utilities folder.  Select All Processes from the Processes dropdown menu.  Click twice on the CPU% column header to display in descending order.  If you find a process using a large amount of CPU time (>=70,) then select the process and click on the Quit icon in the toolbar.  Click on the Force Quit button to kill the process.  See if that helps.  Be sure to note the name of the runaway process so you can track down the cause of the problem.
    Mavericks and later
    Open Activity Monitor in the Utilities folder.  Select All Processes from the View menu.  Click on the CPU tab in the toolbar. Click twice on the CPU% column header to display in descending order.  If you find a process using a large amount of CPU time (>=70,) then select the process and click on the Quit icon in the toolbar.  Click on the Force Quit button to kill the process.  See if that helps.  Be sure to note the name of the runaway process so you can track down the cause of the problem.
    Often this problem occurs because of a corrupted cache or preferences file or an attempt to write to a corrupted log file.

  • A problem about event-driven and multi-thread ( maybe?)

    I am thinking of doing a piece of small software. I am going to write a server, storing some dynamic information. and each client (surely in different threads) has a JList, which is supposed to update itself with server, such as adding an item, etc.
    a straightforward example is an IM software, each client stores a list of online buddies, and if a new client logs in, many other clients have to update the buddies list.
    What is a good approach of doing that? I am thinking of adding a public method, addItem() into the thread handler, which adds a new item into the JList. but is it a good design to have a public method other than "run()" in the thread handler?
    Or do I have to define a new event of new item needed to be added?
    Thanks.

    Actually I am just asking for how to design a good communication between the server and the client...
    so just as a client A logging in, the server knows that the client A has logged in, and A,B are friends, B's friend lists should be updated, which means adding A to that list. so I am thinking have a addItem() method in the thread handler of B, so I can call ThreadHandlerB.addItem( A ) in the code of the server, since server knows that A has logged in.
    or is there any good approach? And most importantly, is it a safe way to have a public method in the thread handler?
    Thanks so much!

  • BADI to uncheck Invoice indicator and set net price as 0 while creating PO

    Hi all,
    Is there any BADI to uncheck the Invoice indicator and set the net price as "0" while creating Purchase order?
    Im creating Purchase order in SRM and for certain vendor and material group net price should be set to zero and invoice receipt to be unchecked so that user wont get invoice receipt.
    Can anyone tell me how to do this?
    Thanks,
    Amal

    Pradeep,
    Thanks for your response.
    I will tell you the actual senario im having.
    Using Shoppin Cart, user will order for some items in SRM and once it was completed PO will be created in R/3 system. Here(R/3) when i check in ME23 for the created PO, the IR flag has been set. But i want the PO should be created as IR flag not checked and amount is changed to ZERO for certain vendor and material group combination.
    I searched some threads and found few function modules ( BBP_PD_PO_GETDETAILS, BBP_PD_PO_UPDATE, BBP_PD_PO_SAVE) which can be used in BADI BBP_DOC_CHANGE_BADI. But im not aware of the fields in which we can found vendor, material group, amount, IR indicator.
    Can you please guide me how to resolve this?
    This is my first task in SRM and im not aware of all terms in SRM.
    SRM version: 4.0
    R/3 version: ECC 5.0
    Thanks,
    Amal

  • UCCE 7.5 how to get BHCA and Average Call Handle time?

    Hi everybody,
    I'm trying to do an audit of the existing UCCE system.
    Can someone please tell me how to get the BHCA and Average Call Handle time for agent?
    I did a SQL query against the CallTypeHalfHour table for all the entering Call Type but I'm not sure that's the right BHCA.
    Thanks in advance,
    Best Regards,

    Hi again Geoff,
    Before closing this thread, I'm curious about your query against TCD for average handle time.
    Here's mine using Skill_Group_Half_Hour
    SELECT
        SUM(HandledCallsTalkTimeToHalf) AS TalkTime,
        SUM(IncomingCallsOnHoldTimeToHalf) AS HoldTime,
        SUM(CallsHandledToHalf) AS HandledCalls,
          AHT =
                CASE
                WHEN SUM(CallsHandledToHalf) > 0 THEN (SUM(HandledCallsTalkTimeToHalf) +SUM(IncomingCallsOnHoldTimeToHalf)) / SUM(CallsHandledToHalf)
                ELSE 0
                END
    FROM t_Skill_Group_Half_Hour
    WHERE DateTime between '02/01/11 00:00' and '02/28/11 23:30'
    Besides, can you please also tell me how to get the Average Waiting Time (time before get answered by an agent) ?
    Thank you in advance, Geoff,
    Best Regards,

  • Non valuated material and free materials

    hi,
    friends
    pl provide me the difference between non valuated and free materials.
    thanks
    durga prasd

    Hi Durga Prasad
    Free material: These materials are valuated ,but we procure it free of charge.So while creating a PO for free materials then in the PO we can check the Free of charge indicator.Then if you do a GR aganist this PO,there are 2 scenarios ie
        If the material is valuated at moving average price,then there will not be any accounting documents at the time of GR.But the moving average price gets recalculated since your stock level increases.
    If the material is valuated at Standard price,then accounting documents gets generated at the time of GR even if its frree of charge delivery.
    If we dont have a PO,then also if we want to do GR for free material,then this can be donr using the movement type 511.Transaction code is MIGO.Goods receipt with reference to others
    Non -Valuated Material:This type of material is not valuated in any valaution areas.
    (But if you are refering to non valuated material type(UNBW) then its different scenario)
    Hope this will help you
    Reward if useful
    Thanks and Regards
    SHYAM.R

  • Is there any function like malloc and free in labview?

    Im writing a vi that will handle my memory request.
    Im doing a very high speed video record sessions , and the frames cant be saves on hardisk in realtime), so im saving the frames on memory, and i want to use memory as
    much as i can(~2GB) and to save the maximum frames that i can save (and it depends on bit depth, height, width, total memory).
    VI Operations={
    Allocate Memory (frame width, frame height,TotalMemorySize) ,
    Add Frame(index) ,
    Get Frame (index),
    Free Memory
    In each record session, there will be a different FrameWidth and Height, so the maximum frame that i can save in memory may be different and equal to
    IndexMax=TotalMemorySize/(FrameWidth*FrameHeight)
    Im doing this by allocating a 3D array [FrameIndex , row , column]
    The fact that the width and height change in different sessions indicate  that i need an ability to free the previous allocated 3D array memory and allocate a new one.
    (lets say that i have 2GB total memory..)

    This request really takes the system and the programmer to the limits....
    First of all:
    LabVIEW does not have any functions like malloc and free. LV wants to prevent the user to have to think about stuff like this. On the other hand, the memory management in LV is therefore hard to do or even impossible, at least to such an extend as you request.
    Some thoughts about your application:
    1. If you want to have about 2GB of framedata in RAM during runtime, you will need the large memory awareness active. Otherwise, a 32 bit OS will give you "out of memory" messages. Refer to the LV help "VI memory usage".
    2. Storing the data in an array could be a difficult task. Arrays have to be in memory without any gap. Therefore, you'd encounter "out of memory" messages even if your RAM totals enough free memory (theoretical).
    3. The idea of linked-lists does not compy in LV since you cannot store pointers to structs (since those are abstracted from the user).
    4. Maybe you should take a look into vision. 
    hope this helps,
    Norbert 
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Special GL indicator and document type

    Hello ,
    I 'm not well acquainted to the FI applications but I know special GL indicator and document type are two important thing on Financials .
    I want to learn for what purpose these two fields used .  Also I would like to learn interactions between FI GL and FI AR .  If you can share a detailed explanation about my questions, it will be much appreciated
    thanks in advance
    guest

    Hi,
    Special GL Indicator's you have to declere for special cases like Down payment and Bills of exchange etc..
    those tables are stored in different different tables and not in regular tables.
    Doc Type
    based on document type we will identify that Vendor Invoices , Customer Invoices , memo, JV.
    each doc type is having a seperate no range.
    FI-gl handled all GL issues.
    FI-AR handleds  all customer issues.
    we will get more help at http://help.sap.com/
    Reg
    Madhu

  • Differences between  hardware thread and software thread?

    Hi ,all!
    The Instructions of SPARC V9 have nothing about thread ID. And there are two bits of CCX packets indicating thread ID.
    Does it mean that CCX generates the thread ID of SPARC core?
    And, what are the differences between hardware thread and software thread?
    Thanks in advance!

    Hi ,all!
    The Instructions of SPARC V9 have nothing about
    thread ID. And there are two bits of CCX packets
    indicating thread ID.
    Does it mean that CCX generates the thread ID
    of SPARC core? Each SPARC core has one unique ID to identify itself when it receives packets, such as CCX packets, interupt packets and so on. Such ID is defined in the Hyperprivileged register. Maybe you can see UA2005-current-draft-HP-EXT.pdf for more information.
    And, what are the differences between hardware
    thread and software thread?
    Thanks in advance!Software thread runs on the hardware thread (or strand).

  • Free Transform handles

    Make the Free Transform handles visible / reachable while zoomed in to your image.
    In Free Transform, when you are working  zoomed in and close to the edge of the window, the adjustment handles often end up being pulled out side of the window where you can't see them. Hitting cmd+0 zooms out the window so you can now reach the handles. The problem is when your trying to make small delicate adjustments to get square up a door, or line up elements. Zoomed out to reach the handles you can't see what your doing. When you zoom in to make the small adjustments, now you can't get to the handles. It would be really helpful if I could use the hand tool to move the image until I see the handle when zoomed in.

    Mark, I think he means he wants some way to stay fully magnified while in a transform bounding box, but to be able to rotate from within rather than from outside the box AND to have a way to grab corner control points while inside the box. This is something I've asked for too. It would make accurate alignment much easier because you can stay zoomed in and se better.

Maybe you are looking for

  • My iphone 4s ran out of storage after syncing to my laptop

    Hi everyone! Please help me.  Before I synced my ipad3 to my laptop, i still have available storage.  Now its totally nothing. Also, almost all of my apps shuts down just seconds after I begin to use them.  I cannot understand what is happening.  Cou

  • How can I get the effect of spinning movement on a photo?

    I am making a fun music video and am new to Adobe Premiere 11. I have a photo (of a magician) that I'd like to get the Effect of circular spinning movement. I tried "Twirl" in Effects, but no spinning happens. I want the magician's face to appear, an

  • Enabling Adobe Acrobat

    I've been using CS5 Web Premium since the 3rd of May, and suddenly I'm presented with an error message when opening a pdf document in Acrobat.  The suite IS registered and activated.  Please click here to view screenshot of the error message: http://

  • JSF Exception Handling Example

    Here is an example of catching a backend exception and displaying it on the UI. It seems like most of the examples in books and such concern themselves with Validators and Converters. If you are trying to catch a backend exception, and you just want

  • Program no longer editable after task manager close

    Gurus of Labview, I recently started messing around with event structures and I created a program where I inadvertently created an infinite loop condition so the program had to be stopped using abort execution. Unfortunately, abort execution did not