How to maintainCorrelation using JMS control

Hi I am sending and receiving message from differnt Queue in WLI.Using JMS Control how we maintain correlation. Even though it is a asyncroneous communication I want the reply back for further process in JPD. I try it out it shouws the below error message.
<5/07/2007 12:11:00 PM EST> <Error> <WLW> <000000> <errMsg=onMessage(): Could no
t deliver message with id=ID:P<851933.1183516529000.0> to Service[jms://TES33269
5:8001/weblogic.jws.jms.QueueConnectionFactory/jws.queue?URI=/TestWSAccess/proce
sses/process.jpd(1183516524671):a:AmadausMsgChannel:listener].
I receive the response upto the Queue. I couldn;t get it back to my jpd.
Regards
Ashok

Hi I am sending and receiving message from differnt
Queue in WLI.Using JMS Control how we maintain
correlation. Even though it is a asyncroneous
communication I want the reply back for further
process in JPD. I try it out it shouws the below
error message.
<5/07/2007 12:11:00 PM EST> <Error> <WLW> <000000>
<errMsg=onMessage(): Could no
t deliver message with
id=ID:P<851933.1183516529000.0> to
Service[jms://TES33269
5:8001/weblogic.jws.jms.QueueConnectionFactory/jws.que
ue?URI=/TestWSAccess/proce
sses/process.jpd(1183516524671):a:AmadausMsgChannel:li
stener].
I receive the response upto the Queue. I couldn;t get
it back to my jpd.
Regards
AshokH! Ashok
May be following info may help you establishing Co-relation
Two-way messaging requires that every received messages be correlated with the instance of the application that sent the original outgoing message. This correlation is typically managed for you by the JMS control, so no action is necessary on your part. To learn more about message correlation, see the explanation of the send-correlation-property and receive-correlation-property attributes for the @jc:jms annotation.
To enable two-way messaging with queues:
1.
On the JMS control, specify the name of the JMS queue to which you want to send messages by setting the value of the send-jndi-name attribute on the @jc:jms annotation.
Specify the name of the JMS queue from which you want to receive messages by setting the value of the receive-jndi-name attribute on the @jc:jms annotation.
To send a message from your web service, call the JMS control's default method (sendTextMessage, sendBytesMessage, sendObjectMessage or sendJMSMessage depending on the message type selected when the control was created), or a custom method you have defined for the JMS control.
4.
To be notified when messages are received on the receive queue, implement a callback handler for the JMS control?s callback (receiveTextMessage, receiveBytesMessage, receiveObjectMessage or receiveJMSMessage depending on the message type selected when the control was created), or a custom callback you have defined for the JMS control.
The following is an example enabling two-way messaging:
public class MyService {
* @common:control
private MyQueueControl myQueue;
* @common:operation
public void sendID(String personID) throws Exception
myQueue.sendTextMessage( personID );
myQueue_receiveTextMessage(String message)
// message has arrived from queue, perform desired operations

Similar Messages

  • How can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.

    how can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.?
    please explain the important questions.

    How to deal with table control / step loop in BDC
    Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
    Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
    Demo ABAP code has two purposes:
    1. how to determine number of visible lines and how to calculte page number;
    (the 'calpage' routine has been modify to meet general purpose usage)
    2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.
    Now I begin to describe the step to implement my method:
    (I use transaction 'ME21', screen 121 for sample,
    the method using is Call Transation Using..)
    Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.
    (Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
    Now we have : FixedLine = 9
                  LoopLine  = 2(for table control, LoopLine is always equal to 1)
    Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
    Now we have: FirstLine = 0
              or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
    Step3: write a subroutine calcalculating number of pages
    (here, the name of actual parameter is the same as formal parameter)
    global data:    FixedLine type i, " number of fixed line on a certain screen
                    LoopLine  type i, " the number of lines occupied by one steploop item
                    FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new                                                               " scrolling screen is empty, otherwise is 1
                    Dataline  type i, " number of items you will use in BDC, using DESCRIBE to get
                    pageno    type i, " you need to scroll screen how many times.
                    line      type i, " number of lines appears on the screen.
                    index(2)  type N, " the screen index for certain item
                    begin     type i, " from parameter of loop
                    end       type i. " to parameter of loop
    *in code sample, the DataTable-linindex stands for the table index number of this line
    form calpage using FixedLine type i (see step 1)
                       LoopLine  type i (see step 1)
                       FirstLine type i (see step 2)
                       DataLine  type i ( this is the item number you will enter in transaction)
              changing pageno    type i (return the number of page, depends on run-time visible                                                                             line in table control/ Step Loop)
              changing line      type i.(visible lines one the screen)
    data: midd type i,
          vline type i, "visible lines
    if DataLine eq 0.
       Message eXXX.
    endif.
    vline = ( sy-srows - FixedLine ) div LoopLine.
    *for table control, you should compare vline with maximum line of
    *table control, then take the small one that is min(vline, maximum)
    *here only illustrate step loop
    if FirstLine eq 0.
            pageno = DataLine div vline.
            if pageno eq 0.
               pageno = pageno + 1.
            endif.
    elseif FirstLine eq 1.
            pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
            midd = ( DataLine - 1 ) mod ( vline - 1).
            if midd = 0 and DataLine gt 1.
                    pageno = pageno - 1.
            endif.
    endif.
    line = vline.
    endform.
    Step4 write a subroutine to calculate the line index for each item.
    form calindex using Line type i (visible lines on the screen)
                        FirstLine type i(see step 2)
                        LineIndex type i(item index)
              changing  Index type n.    (index on the screen)
      if  FirstLine = 0.
            index = LineIndex mod Line.
            if index = '00'.
                    index = Line.
            endif.
      elseif FirstLine = 1.
            index = LineIndex mod ( Line - 1 ).
            if ( index between 1 and 0 ) and LineIndex gt 1.
                    index = index + Line - 1.
            endif.
            if Line = 2.
                    index = index + Line - 1.
            endif.
    endif.
    endform.
    Step5 write a subroutine to calculate the loop range.
    form calrange using Line type i ( visible lines on the screen)
                        DataLine type i
                        FirstLine type i
                        loopindex like sy-index
            changing    begin type i
                        end type i.
    If FirstLine = 0.
       if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
       elseif loopindex gt 1.
            begin = Line * ( loopindex - 1 ) + 1.
            end   = Line * loopindex.
            if end gt DataLine.
               end = DataLine.
            endif.
       endif.
    elseif FirstLine = 1.
      if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
      elseif loop index gt 1.
            begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
            end =   ( Line - 1 ) * ( loopindex - 1 ) + Line.
            if end gt DataLine.
                    end = DataLine.
            endif.
      endif.
    endif.
    endform.
    Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
    form creat_bdc.
    field-symbols: <material>, <quan>, <indicator>.
    data: name1(14) value 'EKPO-EMATN(XX)',
          name2(14) value 'EKPO-MENGE(XX)',
          name3(15) value 'RM06E-SELKZ(XX)'.
    assign:         name1 to <material>,
                    name2 to <quan>,
                    name3 to <indicator>.
    do pageno times.
    if sy-index gt 1
    *insert scroll page ok_code"
    endif.
            perform calrange using Line DataLine FirstLine sy-index
                             changing begin end.
    loop at DataTable from begin to end.
            perform calindex using Line FirstLine DataTable-LineIndex changing Index.
            name1+11(2) = Index.
            name2+11(2) = Index.
            name3+12(2) = Index.
            perform bdcfield using <material> DataTable-matnr.
            perform bdcfield using <quan>     DataTable-menge.
            perform bdcfield using <indicator> DataTable-indicator.
    endloop.
    enddo.
    An example abap program of handling Table Control during bdc programming.
    REPORT zmm_bdcp_purchaseorderkb02
           NO STANDARD PAGE HEADING LINE-SIZE 255.
                    Declaring internal tables                            *
    *-----Declaring line structure
    DATA : BEGIN OF it_dummy OCCURS 0,
             dummy(255) TYPE c,
           END OF it_dummy.
    *-----Internal table for line items
    DATA :  BEGIN OF it_idata OCCURS 0,
              ematn(18),      "Material Number.
              menge(13),      "Qyantity.
              netpr(11),      "Net Price.
              werks(4),       "Plant.
              ebelp(5),       "Item Number.
            END OF it_idata.
    *-----Deep structure for header data and line items
    DATA  :  BEGIN OF it_me21 OCCURS 0,
               lifnr(10),      "Vendor A/c No.
               bsart(4),       "A/c Type.
               bedat(8),       "Date of creation of PO.
               ekorg(4),       "Purchasing Organisation.
               ekgrp(3),       "Purchasing Group.
               x_data LIKE TABLE OF it_idata,
             END OF it_me21.
    DATA  :  x_idata LIKE LINE OF it_idata.
    DATA  :  v_delimit VALUE ','.
    DATA  :  v_indx(3) TYPE n.
    DATA  :  v_fnam(30) TYPE c.
    DATA  :  v_count TYPE n.
    DATA  :  v_ne TYPE i.
    DATA  :  v_ns TYPE i.
    *include bdcrecx1.
    INCLUDE zmm_incl_purchaseorderkb01.
                    Search help for file                                 *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
           To upload the data into line structure                        *
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = p_file
          filetype = 'DAT'
        TABLES
          data_tab = it_dummy.
        Processing the data from line structure to internal tables       *
      REFRESH:it_me21.
      CLEAR  :it_me21.
      LOOP AT it_dummy.
        IF it_dummy-dummy+0(01) = 'H'.
          v_indx = v_indx + 1.
          CLEAR   it_idata.
          REFRESH it_idata.
          CLEAR   it_me21-x_data.
          REFRESH it_me21-x_data.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
                                           it_me21-bsart
                                           it_me21-bedat
                                           it_me21-ekorg
                                           it_me21-ekgrp.
          APPEND it_me21.
        ELSEIF it_dummy-dummy+0(01) = 'L'.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_idata-ematn
                                           it_idata-menge
                                           it_idata-netpr
                                           it_idata-werks
                                           it_idata-ebelp.
          APPEND it_idata TO it_me21-x_data.
          MODIFY it_me21 INDEX v_indx.
        ENDIF.
      ENDLOOP.
                    To open the group                                    *
      PERFORM open_group.
            To populate the bdcdata table for header data                *
      LOOP AT it_me21.
        v_count = v_count + 1.
        REFRESH it_bdcdata.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',
                                        ' ' 'BDC_CURSOR'  'EKKO-LIFNR',
                                        ' ' 'BDC_OKCODE'  '/00',
                                        ' ' 'EKKO-LIFNR'  it_me21-lifnr,
                                        ' ' 'RM06E-BSART' it_me21-bsart,
                                        ' ' 'RM06E-BEDAT' it_me21-bedat,
                                        ' ' 'EKKO-EKORG'  it_me21-ekorg,
                                        ' ' 'EKKO-EKGRP'  it_me21-ekgrp,
                                        ' ' 'RM06E-LPEIN' 'T'.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',
                                        ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                        ' ' 'BDC_OKCODE'  '/00'.
        MOVE 1 TO v_indx.
    *-----To populate the bdcdata table for line item data
        LOOP AT it_me21-x_data INTO x_idata.
          CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.
          CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.
          CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.
          CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.
          v_indx = v_indx + 1.
          PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '/00'.
        ENDLOOP.
        PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '=BU'.
        PERFORM bdc_transaction USING 'ME21'.
      ENDLOOP.
      PERFORM close_group.
                      End of selection event                             *
    END-OF-SELECTION.
      IF session NE 'X'.
    *-----To display the successful records
        WRITE :/10  text-001.          "Sucess records
        WRITE :/10  SY-ULINE(20).
        SKIP.
        IF it_sucess IS INITIAL.
          WRITE :/  text-002.
        ELSE.
          WRITE :/   text-008,          "Total number of Succesful records
                  35 v_ns.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_sucess.
          WRITE:/4  it_sucess-lifnr,
                 17 it_sucess-tabix CENTERED,
                 30 it_sucess-sucess_rec.
        ENDLOOP.
        SKIP.
    *-----To display the erroneous records
        WRITE:/10   text-006.          "Error Records
        WRITE:/10   SY-ULINE(17).
        SKIP.
        IF it_error IS INITIAL.
          WRITE:/   text-007.          "No error records
        ELSE.
          WRITE:/   text-009,          "Total number of erroneous records
                 35 v_ne.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_error.
          WRITE:/4  it_error-lifnr,
                 17 it_error-tabix CENTERED,
                 30 it_error-error_rec.
        ENDLOOP.
        REFRESH it_sucess.
        REFRESH it_error.
      ENDIF.
    CODE IN INCLUDE.
    Include           ZMM_INCL_PURCHASEORDERKB01
    DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA:   E_GROUP_OPENED.
    *-----Internal table to store sucess records
    DATA:BEGIN OF it_sucess OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           sucess_rec(125),
         END OF it_sucess.
    DATA: g_mess(125) type c.
    *-----Internal table to store error records
    DATA:BEGIN OF it_error OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           error_rec(125),
         END OF it_error.
           Selection screen
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS session RADIOBUTTON GROUP ctu.  "create session
    SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
    SELECTION-SCREEN POSITION 45.
    PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction
    SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS group(12).                      "group name of session
    SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS e_group(12).             "group name of error-session
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:p_file LIKE rlgrap-filename.
      at selection screen                                                *
    AT SELECTION-SCREEN.
    group and user must be filled for create session
      IF SESSION = 'X' AND
         GROUP = SPACE. "OR USER = SPACE.
        MESSAGE E613(MS).
      ENDIF.
      create batchinput session                                          *
    FORM OPEN_GROUP.
      IF SESSION = 'X'.
        SKIP.
        WRITE: /(20) 'Create group'(I01), GROUP.
        SKIP.
    *----open batchinput group
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            CLIENT = SY-MANDT
            GROUP  = GROUP
            USER   = sy-uname.
        WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ENDIF.
    ENDFORM.                    "OPEN_GROUP
      end batchinput session                                             *
    FORM CLOSE_GROUP.
      IF SESSION = 'X'.
    *------close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
        WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ELSE.
        IF E_GROUP_OPENED = 'X'.
          CALL FUNCTION 'BDC_CLOSE_GROUP'.
          WRITE: /.
          WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
        ENDIF.
      ENDIF.
    ENDFORM.                    "CLOSE_GROUP
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION USING TCODE TYPE ANY.
      DATA: L_SUBRC LIKE SY-SUBRC.
    *------batch input session
      IF SESSION = 'X'.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
        WRITE: / 'BDC_INSERT'(I03),
                 TCODE,
                 'returncode:'(I05),
                 SY-SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ELSE.
        REFRESH it_MESSTAB.
        CALL TRANSACTION TCODE USING it_BDCDATA
                         MODE   CTUMODE
                         UPDATE CUPDATE
                         MESSAGES INTO it_MESSTAB.
        L_SUBRC = SY-SUBRC.
        WRITE: / 'CALL_TRANSACTION',
                 TCODE,
                 'returncode:'(I05),
                 L_SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ENDIF.
      Message handling for Call Transaction                              *
      perform subr_mess_hand using g_mess.
    *-----Erzeugen fehlermappe
      IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
        IF E_GROUP_OPENED = ' '.
          CALL FUNCTION 'BDC_OPEN_GROUP'
            EXPORTING
              CLIENT = SY-MANDT
              GROUP  = E_GROUP
              USER   = sy-uname
              KEEP   = E_KEEP.
          E_GROUP_OPENED = 'X'.
        ENDIF.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
      ENDIF.
      REFRESH it_BDCDATA.
    ENDFORM.                    "BDC_TRANSACTION
         Form  subr_bdc_table                                            *
          text
         -->P_0220   text                                                *
         -->P_0221   text                                                *
         -->P_0222   text                                                *
    FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY
                                    VALUE(P_0221) TYPE ANY
                                    VALUE(P_0222) TYPE ANY.
      CLEAR it_bdcdata.
      IF P_0220 = ' '.
        CLEAR it_bdcdata.
        it_bdcdata-fnam     = P_0221.
        it_bdcdata-fval     = P_0222.
        APPEND it_bdcdata.
      ELSE.
        it_bdcdata-dynbegin = P_0220.
        it_bdcdata-program  = P_0221.
        it_bdcdata-dynpro   = P_0222.
        APPEND it_bdcdata.
      ENDIF.
    ENDFORM.                    " subr_bdc_table
         Form  subr_mess_hand                                            *
          text                                                           *
         -->P_G_MESS  text                                               *
    FORM subr_mess_hand USING  P_G_MESS TYPE ANY.
      LOOP AT IT_MESSTAB.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID     = it_messtab-msgid
            LANG   = it_messtab-msgspra
            NO     = it_messtab-msgnr
            v1     = it_messtab-msgv1
            v2     = it_messtab-msgv2
          IMPORTING
            MSG    = P_G_MESS
          EXCEPTIONS
            OTHERS = 0.
        CASE it_messtab-msgtyp.
          when 'E'.
            it_error-error_rec   =  P_G_MESS.
            it_error-lifnr       =  it_me21-lifnr.
            it_error-tabix       =  v_count.
            APPEND IT_ERROR.
          when 'S'.
            it_sucess-sucess_rec =  P_G_MESS.
            it_sucess-lifnr      =  it_me21-lifnr.
            it_sucess-tabix      =  v_count.
            APPEND IT_SUCESS.
        endcase.
      ENDLOOP.
      Describe table it_sucess lines v_ns.
      Describe table it_error  lines v_ne.
    ENDFORM.                    " subr_mess_hand
    Also refer
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bdc-table-control-668404
    and
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    Regards,
    srinivas
    <b>*reward for useful answers*</b>

  • How can one use Mission Control with two monitors?  Please bring Spaces back

    How can one use Mission Control with two monitors.  With Spaces I could treat each space as a single desktop.
    SyBB

    I use two monitors at work and have no issue. I have my mail set to use Desktop 1 and iTunes set to the second monitor of Desktop 1. I have browsers set to Desktop 2 and Fusion and RDC set to Desktop 3.
    Two things that may help you. In System Preferences > Mission Control, disable the setting "Automatically rearrange spaces...". This screwed with assigning applications to certain spaces. And the other thing is don't use full screen on apps that support it. This just makes your second monitor superfluous.

  • How can i use activeX Control in labview?

    how can i use activeX Control in labview?
    please describe me step by step.
    thanks.

    Well..that was quite helpful..but now I'm encountering certain problems. I've attached the VI I've made.
    I don't need sound at the moment so I dropped it. (Although I tried to play it..but all I could hear was a very annoying sound.) Secondly I don't want to display any date or time..so i dropped that property too.
    Now when I run this Vi...the webcam turns on, the screen of videocapx pops up..then the webcam light goes off..and another pop up appears saying..labview is not responding..and i have to close it reluctantly.
    I haven't placed the stop capture property in this vi. i checked it by placing it too..but that doesn't work.
    I would like to notify that my actual task is to acquire image and then compare it with another one already present on my pc. I want you to please help me out..solve my first query then I'll proceed with the latter part.
    Attachments:
    activexvideocaps.vi ‏20 KB

  • How can i use JMS in J2ME

    how can i use JMS in J2ME?
    What are steps i have to follow to run JMS in J2ME?

    http://www.microjava.com/articles/techtalk/jms

  • How does labVIEW use ActiveX controls?

    How does labVIEW use activeX controls?
    I recently wrote an activeX control in VB and noticed that it would not work if the control was set so that its properties could not be set in ambient mode. This may suggest that labVIEW uses some activeX controls only in ambient mode.
    Is this the case or are there more complexities?

    Dan,
    Which version of LabVIEW do you have?
    As per the KnowledgeBase bellow, in versions of LabVIEW prior to 5.1 you would get errors accessing the ambient properties.
    ActiveX Controls in LabVIEW 5.0.1 Containers Cannot Access Ambient Property
    Do your controls use the Ambient.UserMode to determine when the control is being used in a development environment? When embedding ActiveX controls into a container on the front panel, by default, the ActiveX control generates and responds to events, i.e. it is running, even when LabVIEW is in edit mode.
    Right-click an ActiveX container and select Advanced»Design Mode from the shortcut menu to display the container
    in design mode while you edit the VI. In design mode, events are not generated and event procedures do not run. The default mode is run mode, where you interact with the object as a user would.
    Information can be found in the LabVIEW help files
    Zvezdana S.

  • Can I use, and how can I use voice control with my iPad 2?

    Is it possible to use the voice control with my iPad 2? If so, how can I use it? Since there is no siri for iPad yet, I'd like to use something similar to it and I've seen this built in voice control before but I was not sure if it's possible with the iPad.

    Not yet, however you can download the new google app. This offers voice seeking on the net.

  • How can I use table control to enter data

    Hi all,
    I want to use table control to enter data, instead of using textboxes.
    So that the user can enter many data at once and just click the save button at the end of the work, only one click.
    How can I use the table control at this context?
    Thanks.
    Deniz.

    Hi deniz,
    go through it:
    /people/ravishankar.rajan/blog/2007/02/23/an-easier-way-of-displaying-and-editing-data-using-table-control
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/code%2bto%2bhandle%2bmultiple%2brecords%2bin%2bbdc%2btable%2bcontrol
    Regards,

  • Need a help: how to recover using backup control file?

    Please a help:
    First computer
    1. I create a database
    2. put it in archive mode,
    3. shutdown and made a cold backup
    4. Created backup control file (alter database backup control file to trace)
    5. I started up and created some archived log files.
    Second Computer
    1. I copied all files created in the step 3 above except the control file
    2. I create all the same map directory on the 2nd computer as in the 1st computer
    3. I recreate the control file from the script got in the step 4 above
    4. I Copy archived log files generated at the step 5 in the local directory in the second computer
    5. I set the logsource and set the autorecovery to on
    6. I recover the database: RECOVER DATABASE USING BACKUP CONTROL FILE UNTIL CANCEL
    Error got:
    the archived log file applied do not go beyond the first one?,How could I do to applied all archived log files copied from the first computer to the second computer to have the same data?
    Thank you very much

    archived log sequeces in the first computerSQL> select sequence#,first_change#,next_change# from v$log_history;
    SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
    1 553723 555484
    2 555484 557345
    Actions I did in the second Computer(after copied the former two archived log files from the 1st computer)
    SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG
    2 MAXLOGFILES 16
    3 MAXLOGMEMBERS 3
    4 MAXDATAFILES 100
    5 MAXINSTANCES 8
    6 MAXLOGHISTORY 292
    7 LOGFILE
    8 GROUP 1 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' SIZE 50M,
    9 GROUP 2 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' SIZE 50M,
    10 GROUP 3 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG' SIZE 50M
    11 -- STANDBY LOGFILE
    12 DATAFILE
    13 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
    14 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
    15 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
    16 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF'
    17 CHARACTER SET WE8ISO8859P1
    18 ;
    Control file created.
    SQL> archive log list;
    Database log mode Archive Mode
    Automatic archival Disabled
    Archive destination USE_DB_RECOVERY_FILE_DEST
    Oldest online log sequence 0
    Next log sequence to archive 0
    Current log sequence 0
    SQL> alter database archivelog;
    Database altered.
    SQL> set logsource C:\local_destination1_orcl
    SQL> set autorecovery on;
    SQL> recover database using backup controlfile until cancel;
    ORA-00279: change 555611 generated at 01/18/2007 14:14:14 needed for thread 1
    ORA-00289: suggestion :
    C:\LOCAL_DESTINATION1_ORCL\ARCH.1_1_612194518_43F17CF5.ARC
    ORA-00280: change 555611 for thread 1 is in sequence #1
    ORA-00328: archived log ends at change 555483, need later change 555611
    ORA-00334: archived log:
    'C:\LOCAL_DESTINATION1_ORCL\ARCH.1_1_612194518_43F17CF5.ARC'
    Idon't know where the change 555611 is coming from?

  • How i can use labview control or indicator in VB or C++

    Hi,
    I would like to use labview control or indicator in thierd party application like VB or C++ or .net. Please help me, how i can use this?
    Thanks

    You can't. A LabVIEW control is a LabVIEW internal object that has no direct link to any OS object entity on any platform it runs on. As such other applications would have no means to access that control object or interact with it in any meaningful way.
    Instead you should probably look into ComponentWorks from National Instruments. That is a collection of ActiveX (and .Net?) controls similar to the ones you find in LabVIEW, and those can be embedded into Visual Basic or any other development environment that allows embedding ActiveX controls.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How do i use flash controls in android?

    what should be simple isnt. if i double click a flash ibject/video it maximizes. how do i click the controls like pause or full screen? occasionally it works but mostly it jumps to the link of the video instead. long press brings up a context menu of the phone briwser. what are the tricks? droidx 2.2

    Hi, I would think your phone would have the controls on it. Here are a couple of Android sites that you may find info.
    http://www.android.com/market/#app=com.com2us.HG
    http://www.androidcentral.com/tags/flash 
    eidnolb

  • 2 iPhones, 2 iCloud Accounts but 1 Windows 7 PC.  How do I use iCloud Control Panel so that changes made change both accounts?

    Help!
    We have two iPhones, each with an iCloud account as my wife and I have different contacts (some are the same though), text and e-mail requirements.  However, my Win 7 PC will only allow one instance of iCloud Contol Panel to run at any one time, and so when a change is made to Outlook 2010, only one iCloud account is updated.  I have got around this with the Calendars by sharing the information, so when I change my calendar it is reflected on her iPhone and iPad.  But when I make a change to contacts, they are updated in Outlook, but not on her iPhone or iPad until I exit the iCloud Control Panel with my details and enter hers.  It is way too easy then to end up with duplicates and alsort of chaos.
    So what is the work around?  Does anyone else have this problem?
    Thanks in advance.

    Hi Lars,
    In the examples folder there are some examples for simple operator interfaces. In the programmer help file they is a section on creating a teststand engine and the steps involved. Uses these notes and say the LV simple operator interface you can match up the steps and how to achieve them. In the Resource Library under TestStand there are plenty of useful notes, code, presentations to help you on your
    What you are trying to achieve is to start the teststand enine running from Labview. Open a sequence file. Once you have that sequence file loaded you can then start to manipulate the properties on that sequence, such as your local boolean.
    Hope this gives some pointers
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • How do I use my control key to highlight multiple options in a PDF?

    How do you select multiple options from a selection field in a PDF form? I've tried control and mouse click as the directions indicate on the form. However, I am a new Mac user and I do not know if the control commands are the same. I viewed the commands and combonation key commands in the list provided on this support site. I could not find one to address this specific function.
    -Mrkmrtynz

    Hi Rick,
    Well, following up on the previous posting, I actually did figure out how to make it work but it seems rather inefficient. I can insert a new paragraph right after the paragraph that has the table anchor but when i cut the table, i also cut the paragraph i just created. So to get around that, I create two paragraphs, so that there will be one paragraph left after i do the cut and that is the paragraph that I paste the table into. Once the table is pasted into the new paragraph, I delete the other paragraph that I created.
    Here's the updated code from the for loop:
    var vTbl = vDoc.GetUniqueObject(Constants.FO_Tbl, vTextItems[i].obj.Unique);                 
    var vAnchorPgf=vDoc.NewSeriesPgf (vTbl.TextLoc.obj)      
    var vAnchorPgf2=vDoc.NewSeriesPgf (vAnchorPgf);        
    var vAnchorTextLoc=new TextLoc (vAnchorPgf2, 0);             
    var vTblTextRange=new TextRange ();        
    vTblTextRange.beg.obj=vTbl.TextLoc.obj;       
    vTblTextRange.beg.offset = vTbl.TextLoc.offset;        
    vTblTextRange.end.obj=vTbl.TextLoc.obj;        
    vTblTextRange.end.offset = Constants.FV_OBJ_END_OFFSET                 
    vDoc.TextSelection=vTblTextRange;        
    vDoc.Cut (0);                
    vTblTextRange.beg.obj=vAnchorTextLoc.obj;        
    vTblTextRange.beg.offset = 0;              
    vTblTextRange.end.obj=vAnchorTextLoc.obj;       
    vTblTextRange.end.offset =0;                 
    vDoc.TextSelection=vTblTextRange;       
    vDoc.Paste (0);                   
    vAnchorPgf2.Delete();        

  • How we can use table control

    Table control but without wizard.
    For instance for the table spfli, I want to design and use a table. The necessary steps for a good display and use are what?
    Thanks in advance.

    Hi,
        CHeck this sample code ... if u need more assistance means give ur mail id i will send u a document
    Working with the table control - Example
    Scenario:
    Screen 601 has a table control named CTRL_ANVSTED.
    The table should be filled with records from the table zanvstedm
    For this purpose you use an internal table called TBL_ANVSTED
    Declare the table control
    CONTROLS CTRL_ANVSTED TYPE TABLEVIEW USING SCREEN 601.
    *Internal table used to hold data
    DATA: TBL_ANVSTED LIKE ZANVSTEDM OCCURS 100 WITH HEADER LINE,
    Flag for initial reading
    Data:   FLAG_INITIAL TYPE I VALUE 0.
    PROCESS BEFORE OUTPUT.
    Read data into the table control and the internal table
    PF status etc.
      MODULE INITIALIZE_601.
    Read data from table anvstedm into internal table tbl_anvsted.
      MODULE INIT_TBL_ANVSTED.
    Fill control with data from ythe internal table
      LOOP WITH CONTROL CTRL_ANVSTED.
        MODULE FILL_CTRL_ANVSTED.
      ENDLOOP.
    MODULE INIT_TBL_ANVSTED  OUTPUT.
    Read data from table anvstedm into internal table tbl_anvsted.
      IF FLAG_INITIAL = 0.
        FLAG_INITIAL = 1.
        SELECT * FROM ZANVSTEDM INTO TABLE TBL_ANVSTED.
      ENDIF.
    ENDMODULE.
    MODULE FILL_CTRL_ANVSTED OUTPUT.
    Fill control with data from the internal table
         READ TABLE TBL_ANVSTED INDEX CTRL_ANVSTED-CURRENT_LINE.
         IF SY-SUBRC NE 0.
           EXIT FROM STEP-LOOP.
         ENDIF.
    ENDMODULE.
    PROCESS AFTER INPUT.
    Write changes in table control to internal table
    LOOP WITH CONTROL CTRL_ANVSTED.
      MODULE CTRL_ANVSTED.
    ENDLOOP.
    MODULE CTRL_ANVSTED INPUT.
    Write changes in table control to internal table
       MODIFY TBL_ANVSTED INDEX CTRL_ANVSTED-CURRENT_LINE.
    ENDMODULE.
    Using a Table control with an internal table
    Table control  : TC1
    Internal table : it_zsd00003
    In the attributes of the table control, select w/SelColumn to get a selection
    column on the table control, and give a name (In this example IT_ZSD00003-LINESEL).
    Remember to include the field IT_ZSD00003-LINESEL in the
    internal table ( linesel(1)       type c, ).
    When used with an internal table, remember to program
    the update functionality of the database tables. Update and
    validation can be done when leaving the screen or in PAI using controlname-
    current_line (E.g. TC1-current_line ) to indentify the entry in the internal table.
    process before output.
      module status_0100.
      loop at it_zsd00003 with control tc1 cursor tc1-
    current_line.
        module tc1_set_field_attr.     "Optional
      endloop.
    module status_0100 output.
      set pf-status 'SCREEN0100'.
    OPTIONAL: If it_zsd00003 hasn't allready been filled with
    data, you can do it the first time PBO is called
      module read_data.
    Setting the number of lines of the table control
      describe table it_zsd00003 lines tc1-lines.
    Optional: Place the cursor on line  g_current_line e.g. after a
    validation error has occured
      if not ( g_current_line is initial ).
        tc1-top_line =  g_current_line.
        clear g_current_line.
      endif.
    endmodule.                 " STATUS_0100  OUTPUT
    module read_data.
      if flag is initial.
        perform read_data.
        flag = 1.
      endif.
    endmodule.       
    module tc1_set_field_attr output.
    Optional: Protect some of the columns on the
    table control
        loop at screen.
          if screen-group1 = 'X'.
            screen-input = 0.
            modify screen.
          endif.
        endloop.
      endif.
    endmodule.                 " tc1_set_field_attr  OUTPUT
    process after input.
      loop at it_zsd00003.
         module modify_tc1.
      endloop.
      module user_command_0100.
    module modify_tc1 input.
    Modify an existing entry
      modify it_zsd00003 index tc1-current_line.
    OR
    Appending a new entry
      append it_zsd00003.
    endmodule.                 " modify_tc1  INPUT
    Deleting a single line selected with the selection column:
    form delete_record.
      loop at it_zsd00003.
        if it_zsd00003-linesel = 'X'.
           exit.
        endif.
      endloop.
       delete from zsd00003
           where  zdriftscenter     = it_zsd00003-zdriftscenter
    endform.                                               
    Sorting a table control
    While were on the subject. You may need a sort routine in
    case the user selects a column and desires to sort on
    its contents.  All you need is a sort icon on the
    applications toolbar of the screens GUI  to return the OK-
    code
    of 'SORT'.  You will need to copy this to the PAI of every
    screen and change the name of the module, and the actual
    itab for this screen 
    MODULE SORT_screen100 INPUT.
       CASE SAVE_OK_CODE.
          WHEN 'SORT'.
             LOOP AT T1-COLS INTO WA.
                IF WA-SELECTED = 'X' .
                   SPLIT WA-SCREEN-NAME AT '-' INTO FILE FLD.
                   SORT itab BY (FLD).
                ENDIF.
             ENDLOOP.
       ENDCASE.
    ENDMODULE.                 " SORT_screen100  INPUT
    Tom Quinn
    ESRI, Redlands, CA.  
    Scrolling the table control
    Now let's look at scrolling.
    (assume that the name of your table control is T1)
    In the screen logic you will have:
                    Loop with control T1.
                       module get_Looplines.
                    Endloop.
                        Module get_looplines.
                          Looplines = sy-loopc.
                        Endmodule.
    In the PBO of the screen you will have a module that loads
    the itab and determines the total number of lines read.
                      Module load_itab.
                            .      (select database table and
    append to itab)
                       describe table itab lines linecount.
                     Endmodule.
    We now have all the values necessary to construct a scroll
    module.
    MODULE SCROLL INPUT.
    CASE SAVE_OK_CODE.
    WHEN 'P--'.
       T1-TOP_LINE = 1.
    WHEN 'P-'.
       T1-TOP_LINE = T1-TOP_LINE - LOOPLINES.
         IF T1-TOP_LINE < 1.
            T1-TOP_LINE = 1.
         ENDIF.
    WHEN 'P+'.
       T1-TOP_LINE = T1-TOP_LINE + LOOPLINES.
         IF T1-TOP_LINE > LINECOUNT.
            T1-TOP_LINE = LINECOUNT - LOOPLINES + 1.
         ENDIF.
    WHEN 'P++'.
       T1-TOP_LINE = LINECOUNT - LOOPLINES + 1.
    ENDCASE.
    ENDMODULE.                 " SCROLL  INPUT
    Or else you can use the below code
        WHEN 'P--'.
          CLEAR SY-UCOMM.
          CTR1-TOP_LINE = 1.
        WHEN 'P-'.
          CLEAR SY-UCOMM.
          CTR1-TOP_LINE = CTR1-TOP_LINE - LINECOUNT1.
          IF CTR1-TOP_LINE < 1.
            CTR1-TOP_LINE = 1.
          ENDIF.
        WHEN 'P+'.
          DESCRIBE TABLE ITAB1 LINES N1.
          CTR1-TOP_LINE = CTR1-TOP_LINE + LINECOUNT1.
          IF CTR1-TOP_LINE > N1.
            CTR1-TOP_LINE = N1.
          ENDIF.
          CLEAR SY-UCOMM.
        WHEN 'P++'.
          DESCRIBE TABLE ITAB1 LINES N1.
          CLEAR SY-UCOMM.
          CTR1-TOP_LINE = N1.
    Other hints for using the table contro
    1. Setting the number of lines.
    2. Scrolling to a spcefic line.
    1. Setting the number of lines.
    tc1-lines = 500.
    > The problem is not in module scroll_code but rather the
    lack of module =
    > LINE_COUNT in your PBO. I have found this very reliable
    and absolutely =
    > necessary in getting the scrolling in table function to
    work. This module
    > =
    > has the following code in it:
    >
    > module line_count output.
    >     describe table itab lines tc1-lines.
    > endmodule.
    2. Scrolling to a spcefic line.
    tc1-top_line =  500.

  • How can I use the Control Design & Simulation module in the Mobile (PDA) modul?

    Hi everyone!
    I have to create Bode and Nyquist plot from Transfer function on a PDA, but I can't use CD&S Modul when I'm opening a new Mobile project.
    Thank you for your answer!
    Sincerely yours,
    Jenő Kocsis

    Jenő Kocsis wrote:
    Hi everyone!
    I have to create Bode and Nyquist plot from Transfer function on a PDA, but I can't use CD&S Modul when I'm opening a new Mobile project.
    Thank you for your answer!
    Sincerely yours,
    Jenő Kocsis
    Does it have to any transfer function? Or is it some limitations
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

Maybe you are looking for

  • Quicktime will not install, uninstall, neither will itunes

    i've tried to find the answer to my question on the forum and have even tried some of the suggestions, but to no avail. i too received a new ipod nanp for christmas. i also have a 40GB ipod. i needed to install the new version of itunes, and subseque

  • How do I delete text from a textArea?

    How do I delete text from a textArea? I basically want the opposite of append(String)... I want something that removes a line from my TextArea. Anyone know?>

  • Engineer appointment cancelled without notificatio...

    Hey, We ordered Infinity option 2 on 21 April 2011 and it is supposed to be activated this Friday (13th May). However, it now says "Your appointment is no longer required, as our engineer can connect your line without requiring access to your premise

  • Phantom SNMP Traps

    Hi, I've got most of my devices spouting SNMP traps for various different things, and Ciscoworks forwards these traps on via email, as you do. For most things it works great, however since we've created a script to pull on the configs off the devices

  • OSB - Reliable Messaging

    How does OSB support guaranteed and reliable message delivery. One way would be to use JMS protocol. What other options are available. thanks