SHIP-TO-DESCRIPTION

hi friends,
i need to retrive ship to description.
for that we need to read tables BSID,VBPA for documnet number vbeln and and partner function PARVW = 'WE'
RETRIVE name1 FOR PARTNER FUNCTION 'WE' AND BILLING DOCUMENT NUMBER
<b>BUT NAME1 FIELD IS NOT THERE IN ABOVE TABLES</b>
PLZ GUIDE ME HOW TO FETCH THE DESCRIPTION
REGARDS,
SIRI

Get VBPA-KUNNR and then First get the ADRNR number from KNA1-ADRNR where KNA1-KUNNR = VBPA-KUNNR and then goto ADRC-ADRNR to get the details like name1 , name2 etc.
Cheers
VJ
Message was edited by: Vijayendra  Rao

Similar Messages

  • Table Name For Shipping Type Descriptions

    I am looking for the table name that contains the Shipping type descriptions. When I look in the BP Master at the shipping type and look at the data it gives me a numeric value.
    THanks Jim Dyer

    Hi
    Are you sure about this?
    Shiiping type is coming from Business partner
    It is OCRD table .
    Field name - [ShipType]
    Try running a simple query
    select * from OCRD from query generator or sql .
    Thank you
    Bishal

  • Ship to Address at line level not Updating to Ship to address at header

    Hi All,
    While Importing Sales Orders using DTW ,The Order header is correctly updating the logistics  Ship to address we mentioned in Address2 Filed . However, the lines is defaulting the shipto address from the Business Partner.The Lines needs to show the same address as the header.
    Issue is in SAP 2007 A SP-01 PL-10.
    Thanks,
    Neetu

    HI Gordan,
    Thanks for reply.
    We are setting ship to code as blank at header level and specifying ship to description.We want similar to be copied to line level.
    When entering Orders manually,it is updating corretly but when importing using DTW taking address from BP for LIne Items.
    If it updates correct address manually entering orders ,it should update while importing using DTW.
    Thanks,
    Neetu

  • Authorization on ALV Report

    Hello everyone,
    I have an ALV report with a radiobutton in the selection screen. This radiobutton has 4 options(for example): Office A, Office B, Office C, Office D.
    When i choose Office C, the ALV will report data concerning only to this Office (all fields in the table are common to all Offices).
    But besides this, i would like to check at the beginning if the user trying to access the ALV report is from Office A,B, C or D. If he is from Office B, he should only have access to ALV with radiobutton chosen to Office B.
    Can anyone help me with a suggestion ?
    I read something about authorization groups. Is this an option here ?

    Here is a sample code with similar functionality... Using this to develop your logic....
    Type pools Declaration..............................................*
    TYPE-POOLS SLIS.                       " Global types
    Range tables........................................................*
    RANGES R_LIFEX FOR LIKP-LIFEX.         " External Identification of
                                           " Delivery note
    selection screen elememts...........................................*
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-009.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS:
       P_OPEN RADIOBUTTON GROUP R1 DEFAULT 'X'.
                                           " Open orders
    SELECTION-SCREEN COMMENT (20) TEXT-001 FOR FIELD P_OPEN.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS:
       P_PREPAY RADIOBUTTON GROUP R1.      " Prepay orders
    SELECTION-SCREEN COMMENT (20) TEXT-002 FOR FIELD P_PREPAY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
    Constants variables.................................................*
    CONSTANTS:
       C_L        TYPE C VALUE 'L',        " SD document object
       C_J        TYPE C VALUE 'J',        " SD document category
       C_A        TYPE C VALUE 'A',        " Status of Not yet processed
       C_B        TYPE C VALUE 'B',        " Status of Partially processed
       C_LF(2)    TYPE C VALUE 'LF',       " Delivery Type
       C_E        TYPE C VALUE 'E',        " Language
       C_TON(3)   TYPE C VALUE 'TON',      " Material unit
       C_TO(2)    TYPE C VALUE 'TO',       " Material unit
       C_X        TYPE C VALUE 'X',        " Parameter value
       C_I        TYPE C VALUE 'I',        " Sign
       C_CP(2)    TYPE C VALUE 'CP',       " Option
       C_PP1(3)   TYPE C VALUE 'PP*',      " Prepay order
       C_PP2(3)   TYPE C VALUE 'pP*',      " Prepay order
       C_PP3(3)   TYPE C VALUE 'pp*',      " Prepay order
       C_PP4(3)   TYPE C VALUE 'Pp*',      " Prepay order
       C_0        TYPE C VALUE  '0',       " Zero
       C_UREA(40) TYPE C VALUE 'UREA(GRANULAR)',
                                           " Material name
       C_30%(3)   TYPE C VALUE '30%',      " Material name
       C_32%(3)   TYPE C VALUE '32%',      " Material name
       C_28%(3)   TYPE C VALUE '28%',      " Material name
       C_NH3(3)   TYPE C VALUE 'NH3',      " Material name
       C_AN(3)    TYPE C VALUE 'AN',       " Material name
       C_UAN(3)   TYPE C VALUE 'UAN',      " Material name
       C_30(2)    TYPE C VALUE '30',       " Output length
       C_20(2)    TYPE C VALUE '20',       " Output length
       C_1_102311 TYPE P DECIMALS 6    VALUE '1.102311',
                                           " Conversion factor
    Begin of Deletion CS1K931253
      C_METHANOL(40)           TYPE C VALUE 'METHANOL',
                                          " Material name
    End of Deletion CS1K931253
       C_TOP_OF_PAGE(15)        TYPE C VALUE 'TOP_OF_PAGE',
                                           " Top of page event
       C_BEFORE_LINE_OUTPUT(25) TYPE C VALUE 'BEFORE_LINE_OUTPUT',
                                           " Before line output event
       C_END_OF_LIST(15)        TYPE C VALUE 'END_OF_LIST',
                                           " End of list
    Begin of Insertion CS1K931253
       C_OPEN(4)                TYPE C VALUE 'OPEN',
                                           " Open orders
       C_PREPAY(6)              TYPE C VALUE 'PREPAY'.
                                           " Prepay orders
    End of Insertion CS1K931253
    Working Variable declarations                                        *
    DATA:
      W_NUMBER    TYPE I,                  " Plant number
      W_INDEX     TYPE SY-TABIX VALUE '1', " Table Index
      W_MATNR     TYPE LIPS-MATNR,         " Material Number
    Begin of Deletion - CS1K931253
    W_LFIMG     TYPE LIPS-LFIMG,         " Actual quantity delivered
    W_TOTAL32   TYPE LIPS-LFIMG,         " Actual quantity delivered
    End of Deletion - CS1K931253
      W_LFIMG     TYPE P DECIMALS 3,       " Actual quantity delivered
      W_TOTAL32   TYPE P DECIMALS 3,       " Actual quantity delivered
      W_INCR      TYPE I VALUE 5,          " Increment variable
      W_PRDCT(40) TYPE C,                  " Product Name
    Field string Declarations                                            *
    *Field string to hold open delivery quantities
      BEGIN OF FS_OPEN_DEL,
        VTEXT     TYPE TVSTT-VTEXT,        " Plant name
        MAT_NUM   TYPE I,                  " Plant Number
        PRDCT(40) TYPE C,                  " Product Name
        QTYA      TYPE LIPS-LFIMG,         " Quantity moved by Truck
        QTYB      TYPE LIPS-LFIMG,         " Quantity moved by Rail
        QTYC      TYPE LIPS-LFIMG,         " Quantity moved by Barge
        QTYD      TYPE LIPS-LFIMG,         " Quantity moved by Pipe
        QTYE      TYPE LIPS-LFIMG,         " Quantity moved by Vessel
        QTYT      TYPE LIPS-LFIMG,         " Total Quantity moved
        QTYG      TYPE LIPS-LFIMG,         " Quantity moved by
        VRKME     TYPE LIPS-VRKME,         " Sales unit
      END OF FS_OPEN_DEL,
    *Field string to hold open deliveries
      BEGIN OF FS_LIKPUK,
        VBELN TYPE LIKP-VBELN,             " Delivery
      END OF FS_LIKPUK,
    *Field string to hold Ship point description
      BEGIN OF FS_TVSTT,
        VSTEL TYPE LIKP-VSTEL,             " Plant
        VTEXT TYPE TVSTT-VTEXT,            " Plant Name
      END OF FS_TVSTT,
    *Field string to hold delivery item documents data
      BEGIN OF FS_LIPS,
        VBELN TYPE LIKP-VBELN,             " Delivery
        POSNR TYPE LIPS-POSNR,             " Item
        MATNR TYPE LIPS-MATNR,             " Material Number
        LFIMG TYPE LIPS-LFIMG,             " Quantity delivered
        VRKME TYPE LIPS-VRKME,             " Sales unit
      END OF FS_LIPS,
    *Field string to hold delivery header documents data
      BEGIN OF FS_LIKP,
        VBELN TYPE LIKP-VBELN,             " Delivery
        VSTEL TYPE LIKP-VSTEL,             " Plant
        VSBED TYPE LIKP-VSBED,             " Shipping Condition
      END OF FS_LIKP,
    Field string to hold Plants and its delivered quantities
      BEGIN OF FS_DEL_QUAN,
        PRODNAME(40),                      " Product Name
        VTEXT TYPE TVSTT-VTEXT,            " Plant
        VSBED TYPE LIKP-VSBED,             " Shipping Condition
        LFIMG TYPE LIPS-LFIMG,             " Delivered quantity
        VRKME TYPE LIPS-VRKME,             " Sales unit
      END OF FS_DEL_QUAN,
    Field String to hold material text
      BEGIN OF FS_MAKT,
        MATNR TYPE MAKT-MATNR,             " Material Number
        MAKTX TYPE MAKT-MAKTX,             " Material text
      END OF FS_MAKT,
      FS_FIELDCAT TYPE LINE OF SLIS_T_FIELDCAT_ALV,
      FS_EVENTS   TYPE LINE OF SLIS_T_EVENT.
    Internal Table Declarations                                          *
    DATA:
    Table to hold open delivery quantities
      T_OPEN_DEL LIKE STANDARD TABLE
                   OF FS_OPEN_DEL,
    Table to hold open deliveries
      T_LIKPUK LIKE STANDARD TABLE
                 OF FS_LIKPUK,
    Table to hold Ship point description
      T_TVSTT LIKE STANDARD TABLE
                OF FS_TVSTT,
    Table to hold delivery item documents data
      T_LIPS LIKE STANDARD TABLE
               OF FS_LIPS,
    Table to hold delivery item documents data
      T_LIPS2 LIKE STANDARD TABLE
               OF FS_LIPS,
    Table to hold delivery header documents data
      T_LIKP LIKE STANDARD TABLE
               OF FS_LIKP,
    Table to hold delivery header documents data
      T_LIKP2 LIKE STANDARD TABLE
               OF FS_LIKP,
    Table to hold Plants and its delivered quantities
      T_DEL_QUAN LIKE STANDARD TABLE
                OF FS_DEL_QUAN,
    Table to hold Material text
      T_MAKTX LIKE STANDARD TABLE
                OF FS_MAKT,
    Field catalog...
      T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    Events...
      T_EVENTS   TYPE SLIS_T_EVENT.
    START-OF-SELECTION                                                  *
    START-OF-SELECTION.
    Retrives Open deliveries
      PERFORM GET_DELS.
    Retrives Open delivery data
      PERFORM GET_ORDER_DATA.
    Retrives Delivery item data
      PERFORM GET_ITEM_DATA.
    Gets Plant description
      PERFORM GET_SHIPPOINT_TEXT.
    Fetch Material description.
      PERFORM GET_MATTEXT.
    Connects Plant and products delivered by it
      PERFORM CONNECT_PLANT_PRODUCT_DATA.
    Sums up quantities based on Shipping condition
      PERFORM COLLECT_DATA_BY_SHIPTYPE.
    Changing UAN 28% to UAN 32%
      PERFORM CHANGE_UAN.
    END-OF-SELECTION                                                    *
    END-OF-SELECTION.
    Displays the data
      PERFORM DISPLAY_DATA.
    Form  GET_DELS
    This subroutine gets all open deliveries
    No Parameter interface
    FORM GET_DELS.
    *Get all open deliveries
       SELECT VBELN                        " Delivery
    APPENDING TABLE T_LIKPUK
         FROM VBUK
      PACKAGE SIZE 5000
        WHERE ( WBSTK = C_A OR WBSTK = C_B )
          AND VBTYP = C_J
          AND VBOBJ = C_L.
      ENDSELECT.
      IF SY-SUBRC NE 0.
        MESSAGE I280(LF).
        STOP.
      ENDIF.                               " IF SY-SUBRC NE 0.
    ENDFORM.                               " GET_DELS
    Form  GET_ORDER_DATA
    This subroutine gets delivery header data
    No Parameter interface
    FORM GET_ORDER_DATA .
      IF  P_PREPAY EQ C_X.
    Fill the Pattern required as pp, any case.
        REFRESH R_LIFEX.
        R_LIFEX-SIGN = C_I.
        R_LIFEX-OPTION = C_CP.
        R_LIFEX-LOW = C_PP1.
        APPEND R_LIFEX.
        R_LIFEX-LOW = C_PP2.
        APPEND R_LIFEX.
        R_LIFEX-LOW = C_PP3.
        APPEND R_LIFEX.
        R_LIFEX-LOW = C_PP4.
        APPEND R_LIFEX.
    Get delivery information.
        IF T_LIKPUK IS NOT INITIAL.
          SELECT VBELN                     " Delivery
                 VSTEL                     " Plant
                 VSBED                     " Shipping condition
            FROM LIKP
            INTO TABLE T_LIKP
             FOR ALL ENTRIES IN T_LIKPUK
           WHERE VBELN = T_LIKPUK-VBELN
             AND LFART = C_LF
             AND LIFEX IN R_LIFEX
             AND LIFSK EQ SPACE.
          IF SY-SUBRC NE 0.
            MESSAGE I280(LF).
            STOP.
          ENDIF.                           " IF SY-SUBRC NE 0.
        ENDIF.                             " IF T_LIKPUK IS NOT INITIAL
       ELSE.
        IF T_LIKPUK IS NOT INITIAL.
          SELECT VBELN                     " Delivery
                 VSTEL                     " Plant
                 VSBED                     " Shipping condition
            FROM LIKP
            INTO TABLE T_LIKP
             FOR ALL ENTRIES IN T_LIKPUK
           WHERE VBELN = T_LIKPUK-VBELN
             AND LFART = C_LF
             AND LIFSK EQ SPACE.
          IF SY-SUBRC NE 0.
            MESSAGE I280(LF).
            STOP.
          ENDIF.                           " IF SY-SUBRC NE 0.
        ENDIF.                             " IF T_LIKPUK IS NOT INITIAL
      ENDIF.                               " IF P_PREPAY EQ C_X.
      T_LIKP2 = T_LIKP.
      REFRESH T_LIKPUK.
    ENDFORM.                               " GET_ORDER_DATA
    Form  GET_ITEM_DATA
    This subroutine gets delivery item data
    No Parameter interface
    FORM GET_ITEM_DATA .
    Get delivery item information.
      IF T_LIKP IS NOT INITIAL.
        SELECT VBELN                       " Delivery
               POSNR                       " Item
               MATNR                       " Material Number
               LFIMG                       " Delivered Quantity
               VRKME                       " Sales Unit
          FROM LIPS
          INTO TABLE T_LIPS
           FOR ALL ENTRIES IN T_LIKP
         WHERE VBELN = T_LIKP-VBELN
           AND LFIMG NE 0.
        IF SY-SUBRC NE 0.
          STOP.
        ENDIF.                             " IF SY-SUBRC NE 0.
      ENDIF.                               " IF T_LIKP IS NOT INITIAL.
    Begin of Insertion CS1K931253
      SORT T_LIPS BY VBELN POSNR.
      DELETE ADJACENT DUPLICATES FROM T_LIPS COMPARING VBELN.
    End of Insertion  CS1K931253
      T_LIPS2 = T_LIPS.
    ENDFORM.                               " GET_ITEM_DATA
    Form  GET_SHIPPOINT_TEXT
    This subroutine gets Shipping point text
    No Parameter interface
    FORM GET_SHIPPOINT_TEXT .
    Retrieve Shipping point texts, for unique shipping points.
      SORT T_LIKP2 BY VSTEL.
      DELETE ADJACENT DUPLICATES FROM T_LIKP2 COMPARING VSTEL.
      IF T_LIKP2 IS NOT INITIAL.
        SELECT VSTEL                       " Plant
               VTEXT                       " Plant description
          FROM TVSTT
          INTO TABLE T_TVSTT
           FOR ALL ENTRIES IN T_LIKP2
         WHERE SPRAS = C_E
           AND VSTEL = T_LIKP2-VSTEL.
        IF SY-SUBRC NE 0.
    Sy-subrc check not required
        ENDIF.                             " IF SY-SUBRC NE 0
      ENDIF.                               " IF T_LIKP2 IS NOT INITIAL.
    ENDFORM.                               " GET_SHIPPOINT_TEXT
    *& Form  GET_MATTEXT
    This subroutine fetches Material description
    No Parameter interface
    FORM GET_MATTEXT .
      SORT T_LIPS2 BY MATNR.
      DELETE ADJACENT DUPLICATES FROM T_LIPS2 COMPARING MATNR.
    Fetch Matrial text
      IF T_LIPS2 IS NOT INITIAL.
        SELECT MATNR                       " Material Number
               MAKTX                       " Material text
          INTO TABLE T_MAKTX
          FROM MAKT
       FOR ALL ENTRIES IN T_LIPS2
         WHERE MATNR EQ T_LIPS2-MATNR
    Begin of insertion CS1K931253
           AND MATNR NE '000000000000030014'
    End of insertion CS1K931253
           AND SPRAS = SY-LANGU.
        IF SY-SUBRC NE 0.
    Sy-subrc check not required
        ENDIF.                             " IF SY-SUBRC NE 0
      ENDIF.                               " IF T_LIPS2 IS NOT INITIAL.
    ENDFORM.                               " GET_MATTEXT
    Form  CONNECT_PLANT_PRODUCT_DATA
    This subroutine Connects Plant and quantity delivered by it
    No Parameter interface
    FORM CONNECT_PLANT_PRODUCT_DATA.
      SORT T_LIKP  BY VBELN.
      SORT T_TVSTT BY VSTEL.
      SORT T_MAKTX BY MATNR.
      LOOP AT T_LIPS INTO FS_LIPS.
    Getting Plant Name
        READ TABLE T_LIKP  INTO FS_LIKP  WITH KEY VBELN = FS_LIPS-VBELN
                                         BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          READ TABLE T_TVSTT INTO FS_TVSTT WITH KEY VSTEL = FS_LIKP-VSTEL
                                           BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            FS_DEL_QUAN-VTEXT = FS_TVSTT-VTEXT.
          ENDIF.                           " IF SY-SUBRC EQ 0
        ENDIF.                             " IF SY-SUBRC EQ 0
    Getting Ship Type.
        FS_DEL_QUAN-VSBED = FS_LIKP-VSBED.
    Getting Quantity.
        IF FS_LIPS-VRKME EQ C_TO.
    Begin of Deletion - CS1K931174
         PERFORM CONVERT_UNIT.
    End of Deletion - CS1K931174
    Begin of Insertion - CS1K931174
           FS_DEL_QUAN-VRKME = C_TON.
           FS_DEL_QUAN-LFIMG = FS_LIPS-LFIMG * C_1_102311.
    End of Insertion - CS1K931174
        ELSE.
          FS_DEL_QUAN-LFIMG = FS_LIPS-LFIMG.
          FS_DEL_QUAN-VRKME = FS_LIPS-VRKME.
        ENDIF.                             " IF FS_LIPS-VRKME EQ C_TO
    Getting Product Name
        W_MATNR   = FS_LIPS-MATNR.
        SHIFT W_MATNR LEFT DELETING LEADING C_0.
        CASE W_MATNR.
    Begin of Deletion - CS1K931174
        WHEN '10023'.
          FS_DEL_QUAN-PRODNAME = C_METHANOL.
    End of Deletion - CS1K931174
          WHEN '10024'.
            FS_DEL_QUAN-PRODNAME = C_UREA.
          WHEN '10026'.
            FS_DEL_QUAN-PRODNAME = C_30%.
          WHEN '10027'.
            FS_DEL_QUAN-PRODNAME = C_32%.
          WHEN '10030'.
            FS_DEL_QUAN-PRODNAME = C_NH3.
          WHEN '10031'.
            FS_DEL_QUAN-PRODNAME = C_28%.
          WHEN '36052'.
            FS_DEL_QUAN-PRODNAME = C_AN.
          WHEN OTHERS.
            READ TABLE T_MAKTX INTO FS_MAKT WITH KEY MATNR = FS_LIPS-MATNR
                                            BINARY SEARCH.
            IF SY-SUBRC EQ 0.
              FS_DEL_QUAN-PRODNAME = W_MATNR.
            ENDIF.                         " IF SY-SUBRC NE 0
        ENDCASE.                           " CASE FS_MATNR
    Begin of Insertion - CS1K931174
        IF W_MATNR NE '10023'.
    End of Insertion - CS1K931174
          APPEND FS_DEL_QUAN TO T_DEL_QUAN.
    Begin of Insertion - CS1K931174
        ENDIF.                             " IF W_MATNR NE '10023'.
    End of Insertion - CS1K931174
        CLEAR:
          FS_DEL_QUAN,
          FS_LIKP,
          FS_LIPS,
          FS_TVSTT,
          FS_MAKT.
      ENDLOOP.                             " LOOP AT T_LIPS INTO FS_LIPS
      REFRESH:
        T_LIKP,
        T_LIPS.
      CLEAR:
        FS_LIKP,
        FS_LIPS.
    ENDFORM.                               " CONNECT_PLANT_PRODUCT_DATA
    Form  COLLECT_DATA_BY_SHIPTYPE
    This subroutine adds quantity based on shipping condition
    No Parameter interface
    FORM COLLECT_DATA_BY_SHIPTYPE .
      SORT T_DEL_QUAN BY PRODNAME VTEXT VSBED.
      LOOP AT T_DEL_QUAN INTO FS_DEL_QUAN.
    Adding delivered quantites based on Shiiping condition
        CASE FS_DEL_QUAN-VSBED.
          WHEN '01'.
            FS_OPEN_DEL-QTYA = FS_OPEN_DEL-QTYA + FS_DEL_QUAN-LFIMG.
          WHEN '02'.
            FS_OPEN_DEL-QTYB = FS_OPEN_DEL-QTYB + FS_DEL_QUAN-LFIMG.
          WHEN '03'.
            FS_OPEN_DEL-QTYC = FS_OPEN_DEL-QTYC + FS_DEL_QUAN-LFIMG.
          WHEN '04'.
            FS_OPEN_DEL-QTYD = FS_OPEN_DEL-QTYD + FS_DEL_QUAN-LFIMG.
          WHEN '05'.
            FS_OPEN_DEL-QTYE = FS_OPEN_DEL-QTYE + FS_DEL_QUAN-LFIMG.
        ENDCASE.                           " CASE FS_DEL_QUAN-VSBED
        FS_OPEN_DEL-VRKME = FS_DEL_QUAN-VRKME.
        AT END OF VTEXT.
          FS_OPEN_DEL-VTEXT = FS_DEL_QUAN-VTEXT.
          FS_OPEN_DEL-PRDCT = FS_DEL_QUAN-PRODNAME.
          FS_OPEN_DEL-QTYT  = FS_OPEN_DEL-QTYA + FS_OPEN_DEL-QTYB +
                              FS_OPEN_DEL-QTYC + FS_OPEN_DEL-QTYD +
                              FS_OPEN_DEL-QTYE.
          CASE FS_OPEN_DEL-PRDCT.
    Begin of Deletion - CS1K931174
           WHEN C_METHANOL.
             FS_OPEN_DEL-MAT_NUM = 1.
    End of Deletion - CS1K931174
            WHEN C_UREA.
              FS_OPEN_DEL-MAT_NUM = 2.
            WHEN C_30%.
              FS_OPEN_DEL-MAT_NUM = 3.
            WHEN C_32%.
              FS_OPEN_DEL-MAT_NUM = 3.
            WHEN C_28%.
              FS_OPEN_DEL-MAT_NUM = 3.
            WHEN C_NH3.
              FS_OPEN_DEL-MAT_NUM = 4.
            WHEN C_AN.
              FS_OPEN_DEL-MAT_NUM = 5.
            WHEN OTHERS.
              IF FS_OPEN_DEL-PRDCT NE W_PRDCT.
                W_INCR = W_INCR + 1.
              ENDIF.                       " IF FS_OPEN_DEL-PRDCT...
              W_PRDCT = FS_OPEN_DEL-PRDCT.
              FS_OPEN_DEL-MAT_NUM = W_INCR.
          ENDCASE.                         " CASE FS_OPEN_DEL-PRDCT
          APPEND FS_OPEN_DEL TO T_OPEN_DEL.
          CLEAR FS_OPEN_DEL.
        ENDAT.                             " AT END OF VTEXT.
      ENDLOOP.                             " LOOP AT T_DEL_QUAN INTO ...
      REFRESH T_DEL_QUAN.
    ENDFORM.                               " COLLECT_DATA_BY_SHIPTYPE
    Form  CHANGE_UAN
    This subroutine to convert 28%UAN to 32%UAN
    No Parameter interface
    FORM CHANGE_UAN .
    DATA LFS_OPEN_DEL2 LIKE FS_OPEN_DEL.
      SORT T_OPEN_DEL BY VTEXT PRDCT.
    Converting 28% UAN to 32% UAN
      LOOP AT T_OPEN_DEL INTO FS_OPEN_DEL.
        IF FS_OPEN_DEL-MAT_NUM = 3.
          CASE FS_OPEN_DEL-PRDCT.
            WHEN C_32%.
              READ TABLE T_OPEN_DEL INTO LFS_OPEN_DEL2 WITH KEY
                                         VTEXT = FS_OPEN_DEL-VTEXT
                                         PRDCT = C_28% BINARY SEARCH.
              IF SY-SUBRC EQ 0.
                 FS_OPEN_DEL-QTYG = FS_OPEN_DEL-QTYT + ( LFS_OPEN_DEL2-QTYT
    ( 875 / 1000 ) ).
              ELSE.
                FS_OPEN_DEL-QTYG = FS_OPEN_DEL-QTYT.
              ENDIF.                       " IF SY-SUBRC EQ 0 .
              W_TOTAL32 = W_TOTAL32 + FS_OPEN_DEL-QTYG.
              MODIFY TABLE T_OPEN_DEL FROM FS_OPEN_DEL TRANSPORTING QTYG.
            WHEN C_28%.
              READ TABLE T_OPEN_DEL INTO LFS_OPEN_DEL2 WITH KEY
                                         VTEXT = FS_OPEN_DEL-VTEXT
                                         PRDCT = C_32% BINARY SEARCH.
              IF SY-SUBRC NE 0.
                FS_OPEN_DEL-QTYG = ( FS_OPEN_DEL-QTYT * ( 875 / 1000 ) ).
                W_TOTAL32 = W_TOTAL32 + FS_OPEN_DEL-QTYG.
                MODIFY TABLE T_OPEN_DEL FROM FS_OPEN_DEL TRANSPORTING QTYG.
              ENDIF.                       " IF SY-SUBRC NE 0.
            WHEN  C_30%.
               FS_OPEN_DEL-QTYG = ( FS_OPEN_DEL-QTYT * ( 9375 / 10000 ) ).
               W_TOTAL32 = W_TOTAL32 + FS_OPEN_DEL-QTYG.
               MODIFY TABLE T_OPEN_DEL FROM FS_OPEN_DEL TRANSPORTING QTYG.
          ENDCASE.                         " CASE FS_OPEN_DEL-PRDCT
        ENDIF.                             " IF FS_OPEN_DEL-MAT_NUM = 3
      ENDLOOP.                             " LOOP AT T_OPEN_DEL INTO WA...
    ENDFORM.                               " CHANGE_UAN
    Form  DISPLAY_DATA
    This subroutine displays data
    No Parameter interface
    FORM DISPLAY_DATA.
      IF T_OPEN_DEL IS NOT INITIAL.
    Adding events to table T_EVENTS
        PERFORM ADD_EVENTS.
    Generating Fieldcatlog
        PERFORM ADD_FIELDCATLOG.
        SORT T_OPEN_DEL BY MAT_NUM VTEXT PRDCT.
        CALL FUNCTION 'REUSE_ALV_LIST_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_STRUCTURE_NAME               =
          IS_LAYOUT                      =
           IT_FIELDCAT                    = T_FIELDCAT
          IT_EXCLUDING                   =
          IT_SPECIAL_GROUPS              =
          IT_SORT                        =
          IT_FILTER                      =
          IS_SEL_HIDE                    =
          I_DEFAULT                      = 'X'
          I_SAVE                         = ' '
          IS_VARIANT                     =
           IT_EVENTS                      = T_EVENTS
          IT_EVENT_EXIT                  =
          IS_PRINT                       =
          IS_REPREP_ID                   =
          I_SCREEN_START_COLUMN          = 0
          I_SCREEN_START_LINE            = 0
          I_SCREEN_END_COLUMN            = 0
          I_SCREEN_END_LINE              = 0
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER        =
          ES_EXIT_CAUSED_BY_USER         =
          TABLES
            T_OUTTAB                       = T_OPEN_DEL
         EXCEPTIONS
           PROGRAM_ERROR                  = 1
           OTHERS                         = 2
        IF SY-SUBRC NE 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.                             " IF SY-SUBRC NE 0.
      ENDIF.                               " IF T_OPEN_DEL IS NOT INITIAL.
    ENDFORM.                               " DISPLAY_DATA
    FORM TOP_OF_PAGE.
    This subroutine displays product name in top of page
    No Parameter interface
    FORM TOP_OF_PAGE.
      CLEAR FS_OPEN_DEL.
      READ TABLE T_OPEN_DEL INDEX W_INDEX INTO FS_OPEN_DEL.
      IF SY-SUBRC EQ 0.
    Display Product name in Top of page.
        IF  FS_OPEN_DEL-PRDCT EQ C_28% OR
            FS_OPEN_DEL-PRDCT EQ C_32%.
          FS_OPEN_DEL-PRDCT = C_UAN.
        ENDIF.                             " IF  FS_OPEN_DEL-PRDCT EQ C_28..
      ENDIF.                               " IF SY-SUBRC EQ 0
    Begin of Deletion - CS1K931253
    WRITE:
       40 'OPEN'(003),
          FS_OPEN_DEL-PRDCT.
    Begin of Deletion - CS1K931253
    Begin of Insertion - CS1K931253
    IF P_OPEN EQ 'X'.
      WRITE:
        40 C_OPEN,
           FS_OPEN_DEL-PRDCT.
    ELSE.
      WRITE:
        40 C_PREPAY,
           FS_OPEN_DEL-PRDCT.
    ENDIF.                                 " IF P_OPEN EQ 'X'
    Begin of Insertion - CS1K931253
    ENDFORM.                               " TOP_OF_PAGE
    FORM BEFORE_LINE_OUTPUT
    This subroutine displays total quantity for each product
    No Parameter interface
    FORM BEFORE_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO.
      CLEAR FS_OPEN_DEL.
      READ TABLE T_OPEN_DEL INDEX RS_LINEINFO-TABINDEX INTO FS_OPEN_DEL.
    Calculating Total quantity delivered based for each product
      IF FS_OPEN_DEL-MAT_NUM  NE W_NUMBER AND
         RS_LINEINFO-TABINDEX NE 1.
        W_INDEX = RS_LINEINFO-TABINDEX.
        ULINE.
    Begin of Deletion - CS1K931253
       WRITE:'Total quantity delivered:'(004),
              W_LFIMG UNIT FS_OPEN_DEL-VRKME .
    End of Deletion - CS1K931253
    Begin of Insertion - CS1K931253
        WRITE:'Total quantity delivered:'(004),
               W_LFIMG.
    End of Insertion - CS1K931253
        IF W_NUMBER EQ '3'.
    Begin of Deletion - CS1K931253
        WRITE:/ 'Total 32%:'(005),
                  W_TOTAL32  UNIT FS_OPEN_DEL-VRKME .
    End of Deletion - CS1K931253
    Begin of Insertion - CS1K931253
          WRITE:/ 'Total 32%:'(005),
                   W_TOTAL32.
    End of Insertion - CS1K931253
        ENDIF.                             " IF FS_NUMBER EQ '3'.
        NEW-PAGE.
        CLEAR W_LFIMG.
      ENDIF.                               " FS_OPEN_DEL-MAT_NUM NE...
      W_NUMBER = FS_OPEN_DEL-MAT_NUM.
      W_LFIMG = W_LFIMG + FS_OPEN_DEL-QTYT.
    ENDFORM.                               " BEFORE_LINE_OUTPUT
    FORM END_OF_LIST.
    This subroutine to display End of List
    No Parameter interface
    FORM END_OF_LIST.
      FORMAT COLOR 2.
    Begin of Deletion - CS1K931253
    WRITE: /'Total quantity delivered:'(004),
            W_LFIMG UNIT FS_OPEN_DEL-VRKME .
    End of Deletion - CS1K931253
    Begin of Insertion - CS1K931253
      WRITE: /'Total quantity delivered:'(004),
             W_LFIMG.
    End of Insertion - CS1K931253
      FORMAT COLOR OFF.
    ENDFORM.                               " END_OF_LIST
    Form  ADD_EVENTS
    This subroutine to append events to ALV
    No Parameter interface
    FORM ADD_EVENTS.
      CLEAR FS_EVENTS.
      FS_EVENTS-NAME = C_TOP_OF_PAGE.
      FS_EVENTS-FORM = C_TOP_OF_PAGE.
      APPEND FS_EVENTS TO T_EVENTS.
      CLEAR FS_EVENTS.
      FS_EVENTS-NAME = C_BEFORE_LINE_OUTPUT.
      FS_EVENTS-FORM = C_BEFORE_LINE_OUTPUT.
      APPEND FS_EVENTS TO T_EVENTS.
      CLEAR FS_EVENTS.
      FS_EVENTS-NAME = C_END_OF_LIST.
      FS_EVENTS-FORM = C_END_OF_LIST.
      APPEND FS_EVENTS TO T_EVENTS.
    ENDFORM.                               " ADD_EVENTS
    Form  ADD_FIELDCATLOG
    This subroutine to append fields to field catlog
    No Parameter interface
    FORM ADD_FIELDCATLOG.
      FS_FIELDCAT-FIELDNAME = 'VTEXT'(006).
      FS_FIELDCAT-SELTEXT_L = 'PLANT'(007).
      FS_FIELDCAT-OUTPUTLEN = C_30.
      FS_FIELDCAT-SELTEXT_M = 'PLANT'(007).
      FS_FIELDCAT-SELTEXT_S = 'PLANT'(007).
      FS_FIELDCAT-KEY       = 'X'.
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'PRDCT'(008).
      FS_FIELDCAT-SELTEXT_L = 'PRODUCT'(009).
      FS_FIELDCAT-SELTEXT_M = 'PRODUCT'(009).
      FS_FIELDCAT-SELTEXT_S = 'PRODUCT'(009).
      FS_FIELDCAT-OUTPUTLEN = C_20.
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYA'(010).
      FS_FIELDCAT-SELTEXT_L = 'TRUCK'(011).
      FS_FIELDCAT-SELTEXT_M = 'TRUCK'(011).
      FS_FIELDCAT-SELTEXT_S = 'TRUCK'(011).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYB'(012).
      FS_FIELDCAT-SELTEXT_L = 'RAIL'(013).
      FS_FIELDCAT-SELTEXT_M = 'RAIL'(013).
      FS_FIELDCAT-SELTEXT_S = 'RAIL'(013).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYC'(014).
      FS_FIELDCAT-SELTEXT_L = 'BARGE'(015).
      FS_FIELDCAT-SELTEXT_M = 'BARGE'(015).
      FS_FIELDCAT-SELTEXT_S = 'BARGE'(015).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYD'(016).
      FS_FIELDCAT-SELTEXT_L = 'PIPE'(017).
      FS_FIELDCAT-SELTEXT_M = 'PIPE'(017).
      FS_FIELDCAT-SELTEXT_S = 'PIPE'(017).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYE'(018).
      FS_FIELDCAT-SELTEXT_L = 'VESSEL'(019).
      FS_FIELDCAT-SELTEXT_M = 'VESSEL'(019).
      FS_FIELDCAT-SELTEXT_S = 'VESSEL'(019).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYT'(020).
      FS_FIELDCAT-SELTEXT_L = 'TOTAL'(021).
      FS_FIELDCAT-SELTEXT_M = 'TOTAL'(021).
      FS_FIELDCAT-SELTEXT_S = 'TOTAL'(021).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'QTYG'(022).
      FS_FIELDCAT-SELTEXT_L = '32%TOTAL'(023).
      FS_FIELDCAT-SELTEXT_M = '32%TOTAL'(023).
      FS_FIELDCAT-SELTEXT_S = '32%TOTAL'(023).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
      FS_FIELDCAT-FIELDNAME = 'VRKME'(024).
      FS_FIELDCAT-SELTEXT_L = 'UNITS'(025).
      FS_FIELDCAT-SELTEXT_M = 'UNITS'(025).
      FS_FIELDCAT-SELTEXT_S = 'UNITS'(025).
      APPEND FS_FIELDCAT TO T_FIELDCAT.
      CLEAR FS_FIELDCAT.
    ENDFORM.                               " ADD_FIELDCATLOG
    Regards,
    Pavan

  • R12 with 2 node 10g RAC is not updating with autoconfig correctly.

    Hi,
    we are on R12.0.6 with 2 node 10g RAC. Our collegue did the RAC setup, I was not there at that moment
    steps he followed is
    1. Installed 10g CRS,ASM 10.2.0.3 software and bring up the two nodes.
    2. Configured the RAC DB to Oracle Appplication and registered the Listener with CRS.
    Name Type Target State Host
    ora....D1.inst application ONLINE ONLINE erpdb1
    ora....D2.inst application ONLINE ONLINE erpdb2
    ora.ERPPROD.db application ONLINE ONLINE erpdb1
    ora....SM1.asm application ONLINE ONLINE erpdb1
    ora....B1.lsnr application ONLINE ONLINE erpdb1
    ora.erpdb1.gsd application ONLINE ONLINE erpdb1
    ora.erpdb1.ons application ONLINE ONLINE erpdb1
    ora.erpdb1.vip application ONLINE ONLINE erpdb1
    ora....SM2.asm application ONLINE ONLINE erpdb2
    ora....B2.lsnr application ONLINE ONLINE erpdb2
    ora.erpdb2.gsd application ONLINE ONLINE erpdb2
    ora.erpdb2.ons application ONLINE ONLINE erpdb2
    ora.erpdb2.vip application ONLINE ONLINE erpdb2
    oracle@erpdb1 $
    The issue is, in our tnsnames.ora in both the nodes.
    ===
    ERPPROD=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    instead of
    ERPPROD=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    (INSTANCE_NAME=ERPPROD2)
    Node1 tnsnames.ora
    oracle@erpdb1 $ cat tnsnames.ora
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.16.12000000.4 2008/04/28 06:39:48 schagant ship $
    ERPPROD=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD1=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD1_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD2=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD2)
    ERPPROD2_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD2)
    ERPPROD_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD2_LOCAL=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    ERPPROD1_LOCAL=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    ERPPROD_BALANCE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (LOAD_BALANCE=YES)
    (FAILOVER=YES)
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    ERPPROD_REMOTE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    LISTENER_ERPPROD1=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    LISTENERS_ERPPROD=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    extproc_connection_data =
    (DESCRIPTION=
    (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCERPPROD1))
    (CONNECT_DATA=
    (SID=PLSExtProc)
    (PRESENTATION = RO)
    IFILE=/u01/app/oracle/product/10/db/network/admin/ERPPROD1_erpdb1/ERPPROD1_erpdb1_ifile.oraoracle@erpdb1 $
    oracle@erpdb1 $
    =======
    Node2 tnsnames.ora
    =======
    oracle@erpdb2 $ cat tnsnames.ora
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.16.12000000.4 2008/04/28 06:39:48 schagant ship $
    ERPPROD=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD1=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD1_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD2=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD2)
    ERPPROD2_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD2)
    ERPPROD_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    (INSTANCE_NAME=ERPPROD1)
    ERPPROD2_LOCAL=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    ERPPROD1_LOCAL=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    ERPPROD_BALANCE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (LOAD_BALANCE=YES)
    (FAILOVER=YES)
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=ERPPROD)
    ERPPROD_REMOTE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    LISTENER_ERPPROD2=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    LISTENERS_ERPPROD=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb2-vip.domain.com)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=erpdb1-vip.domain.com)(PORT=1521))
    extproc_connection_data =
    (DESCRIPTION=
    (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCERPPROD2))
    (CONNECT_DATA=
    (SID=PLSExtProc)
    (PRESENTATION = RO)
    IFILE=/u01/app/oracle/product/10/db/network/admin/ERPPROD2_erpdb2/ERPPROD2_erpdb2_ifile.oraoracle@erpdb2 $
    =====
    Pl let us know how we can achive through autoconfig.
    Regards
    Vasu

    Vasu,
    The issue is, in our tnsnames.ora in both the nodes.What is the issue?
    I believe the following documents should be helpful in configuring your tnsnames.ora (and other files) with RAC implemented.
    Note: 388577.1 - Using Oracle 10g Release 2 Real Application Clusters and Automatic Storage Management with Oracle E-Business Suite Release 12
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=388577.1
    Note: 756050.1 - Troubleshooting Autoconfig issues with Oracle Applications RAC Databases
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=756050.1
    Regards,
    Hussein

  • EBS 12.1.3 start issue

    hi all,
    There are 2 instances at a sever: (DEV,PROD), now I start DEV instance first, then start PROD instance.
    the dev instance can be connected by PL/SQL Developer.
    the prod instance can not be connected by PL/SQL Developer(ora-12543 error)
    DEV:
    listener.ora:
    # $Header: ad8ilsnr.ora 120.3.12010000.3 2010/03/09 07:07:03 jmajumde ship $
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    # Net8 definition for Database listener
    DEV =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = pimenv.nc.sgcc.com.cn)(PORT = 1522))
    SID_LIST_DEV =
    (SID_LIST =
    (SID_DESC =
    (ORACLE_HOME= /pim/oracle/DEV/db/tech_st/11.1.0)
    (SID_NAME = DEV)
    STARTUP_WAIT_TIME_DEV = 0
    CONNECT_TIMEOUT_DEV = 10
    TRACE_LEVEL_DEV = OFF
    LOG_DIRECTORY_DEV = /pim/oracle/DEV/db/tech_st/11.1.0/network/admin
    LOG_FILE_DEV = DEV
    TRACE_DIRECTORY_DEV = /pim/oracle/DEV/db/tech_st/11.1.0/network/admin
    TRACE_FILE_DEV = DEV
    ADMIN_RESTRICTIONS_DEV = ON
    SUBSCRIBE_FOR_NODE_DOWN_EVENT_DEV = OFF
    # added parameters for bug# 9286476
    LOG_STATUS_DEV = ON
    INBOUND_CONNECT_TIMEOUT_DEV = 60
    # ADR is only applicable for 11gDB
    DIAG_ADR_ENABLED_DEV = ON
    ADR_BASE_DEV = /pim/oracle/DEV/db/tech_st/11.1.0/admin/DEV_pimenv
    IFILE=/pim/oracle/DEV/db/tech_st/11.1.0/network/admin/DEV_pimenv/listener_ifile.ora
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.19.12010000.6 2010/03/09 08:11:36 jmajumde ship $
    DEV=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1522))
    (CONNECT_DATA=
    (SID=DEV)
    DEV_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1522))
    (CONNECT_DATA=
    (SID=DEV)
    DEV_LOCAL=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1522))
    DEV_BALANCE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (LOAD_BALANCE=YES)
    (FAILOVER=YES)
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1522))
    (CONNECT_DATA=
    (SID=DEV)
    DEV_REMOTE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1522))
    extproc_connection_data =
    (DESCRIPTION=
    (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCDEV))
    (CONNECT_DATA=
    (SID=PLSExtProc)
    (PRESENTATION = RO)
    IFILE=/pim/oracle/DEV/db/tech_st/11.1.0/network/admin/DEV_pimenv/DEV_pimenv_ifile.ora
    PROD:
    listener.ora:
    # $Header: ad8ilsnr.ora 120.3.12010000.3 2010/03/09 07:07:03 jmajumde ship $
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    # Net8 definition for Database listener
    PROD =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = pimenv.nc.sgcc.com.cn)(PORT = 1521))
    SID_LIST_PROD =
    (SID_LIST =
    (SID_DESC =
    (ORACLE_HOME= /pim/oracle/PROD/db/tech_st/11.1.0)
    (SID_NAME = PROD)
    STARTUP_WAIT_TIME_PROD = 0
    CONNECT_TIMEOUT_PROD = 10
    TRACE_LEVEL_PROD = OFF
    LOG_DIRECTORY_PROD = /pim/oracle/PROD/db/tech_st/11.1.0/network/admin
    LOG_FILE_PROD = PROD
    TRACE_DIRECTORY_PROD = /pim/oracle/PROD/db/tech_st/11.1.0/network/admin
    TRACE_FILE_PROD = PROD
    ADMIN_RESTRICTIONS_PROD = ON
    SUBSCRIBE_FOR_NODE_DOWN_EVENT_PROD = OFF
    # added parameters for bug# 9286476
    LOG_STATUS_PROD = ON
    INBOUND_CONNECT_TIMEOUT_PROD = 60
    # ADR is only applicable for 11gDB
    DIAG_ADR_ENABLED_PROD = ON
    ADR_BASE_PROD = /pim/oracle/PROD/db/tech_st/11.1.0/admin/PROD_pimenv
    IFILE=/pim/oracle/PROD/db/tech_st/11.1.0/network/admin/PROD_pimenv/listener_ifile.ora
    tnsnames.ora:
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.19.12010000.6 2010/03/09 08:11:36 jmajumde ship $
    PROD=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=PROD)
    (INSTANCE_NAME=PROD)
    PROD_FO=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=PROD)
    (INSTANCE_NAME=PROD)
    PROD_LOCAL=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1521))
    PROD_BALANCE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (LOAD_BALANCE=YES)
    (FAILOVER=YES)
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=PROD)
    PROD_REMOTE=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1521))
    extproc_connection_data =
    (DESCRIPTION=
    (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCPROD))
    (CONNECT_DATA=
    (SID=PLSExtProc)
    (PRESENTATION = RO)
    IFILE=/pim/oracle/PROD/db/tech_st/11.1.0/network/admin/PROD_pimenv/PROD_pimenv_ifile.ora
    lsnrctl status:
    LSNRCTL for Linux: Version 11.1.0.7.0 - Production on 28-JUN-2011 14:46:19
    Copyright (c) 1991, 2008, Oracle. All rights reserved.
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for Linux: Version 11.1.0.7.0 - Production
    Start Date 28-JUN-2011 14:34:26
    Uptime 0 days 0 hr. 11 min. 53 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter File /pim/oracle/PROD/db/tech_st/11.1.0/network/admin/PROD_pimenv/listener.ora
    Listener Log File /pim/oracle/PROD/db/tech_st/11.1.0/log/diag/tnslsnr/pimenv/listener/alert/log.xml
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pimenv.nc.sgcc.com.cn)(PORT=1521)))
    Services Summary...
    Service "DEV" has 1 instance(s).
    Instance "DEV", status READY, has 1 handler(s) for this service...
    Service "DEV_XPT" has 1 instance(s).
    Instance "DEV", status READY, has 1 handler(s) for this service...
    Service "PROD" has 1 instance(s).
    Instance "PROD", status READY, has 1 handler(s) for this service...
    Service "PROD_XPT" has 1 instance(s).
    Instance "PROD", status READY, has 1 handler(s) for this service...
    The command completed successfully
    how can i do to fix PROD issue? many thanks.
    Carl

    Hi Carl;
    Is there any firewall? Related Db port avaliable?
    Oracle Database Error Code ORA-12543 Description :
    TNS:destination host unreachable
    Error Cause:
    Contact can not be made with remote party.
    Action:
    Make sure the network driver is functioning and the network is up.
    Please check:
    Re: ORA-12543: TNS:destination host unreachable
    Regard
    Helios

  • Sales employee and partner function.

    Hello ,
    We have reporting requirement at our client as Sales by Sales employee . I can see the standard charactierstic " 0SALES_EMPL" in our Sales overview cube which is mapped to PVRTNR at R/3 side . 
    But at our client Sales employee is maintained through partner function and we  have lot of differnet parther function to update the Sales Rep on SO and Billing document .  So basically Partner function is ER , the Personal number is getting updated. 
    So with Standard field of PVRTNR - Sales empl doesn't get used in  my scenario .
    Could you please let me know , now how can I update this Sales Rep on my Sales Order header or On Billing document  ?
    Let me know if my question is not clear .
    Regards

    Thanks ..That's a nice approach ..but one more ..
    If there are more than one Sales Rep assigned to Sales Order , then how to manage .
    As i said , we have mutiple partner function ...Let me put a table , as it is functional information which I am not getting correctly .
    Hope this will help you to understand .
    May assign to Ship to     Description
    BP     Bill-to
    PY     Payer
    DP     Depot
    ER     Telesales Specialist
    Y0     Area Specialists
    Y1     Primary Account Manager
    Y2     Bulk Specialist
    Y3     Safety Specialist
    Y4     Spec Gas Specialist
    Y5     Medical Specialist
    Y6     Construction Specialist
    Y7     Specialty Products Specialist
    Y8     Automation Specialist
    May assign to Y0     Description
    Z2     Bulk Specialist
    Z3     Safety Specialist
    Z4     Spec Gas Specialist
    Z5     Medical Specialist
    Z6     Construction Specialist
    Z7     Specialty Products Specialist
    Z8     Automation Specialist
    Note 1: "Y0 - Area Specialists" will be assigned to ship-to but will be set up using te ZINT account group as the Cash Account for that branch
    When the partner function is Y* , Sales Rep will be assigned to Kunn2 in KNVP table .
    Please help me , how can we manage .
    Regards

  • ORA-12514 on R12 EBS Apps server when 1 DB RAC node crashed/down

    Just now Production 11.2.0.2 RAC DB on windows 2008 server Node1 crashed. While on Node 2 all services are up and running including database. But from EBS R12.1.2 application server when connecting as username/password from sql*plus is throwing ORA-12514 error.
    While It is connecting if I give username/password@TNSNAME but not without @TNSNAME. Due to this none of the application services are starting.
    Please help/advise. Thank you.
    Following is the tnsnames.ora,
    # This file is automatically generated by AutoConfig.  It will be read and
    # overwritten.  If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.19.12010000.6 2010/03/09 08:11:36 jmajumde ship $
    ORCL=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldbscan)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL1)
    ORCL1=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldbscan)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL1)
    ORCL1_FO=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldbscan)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL1)
    ORCL_FO=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldbscan)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL1)
    ORCL1=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldbscan)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL1)
    ORCL1_FO=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldbscan)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL1)
    ORCL2=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldb2-vip.sa.company.net)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL2)
    ORCL2_FO=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldb2-vip.sa.company.net)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
                    (INSTANCE_NAME=ORCL2)
    ORCL_BALANCE=
            (DESCRIPTION=
                (ADDRESS_LIST=
                    (LOAD_BALANCE=YES)
                    (FAILOVER=YES)
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldb1-vip.sa.company.net)(PORT=1521))
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orcldb2-vip.sa.company.net)(PORT=1521))
                (CONNECT_DATA=
                    (SERVICE_NAME=ORCL)
    FNDFS_orclAPPL=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDFS)
    FNDFS_orclAPPL.sa.company.net=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDFS)
    FNDFS_ORCL_orclAPPL=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDFS)
    FNDFS_ORCL_orclAPPL.sa.company.net=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDFS)
    FNDSM_orclAPPL_ORCL=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDSM)
    FNDSM_orclAPPL.sa.company.net_ORCL=
            (DESCRIPTION=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDSM)
    FNDFS_APPLTOP_orclappl=
            (DESCRIPTION=
                (ADDRESS_LIST=
                    (ADDRESS=(PROTOCOL=tcp)(HOST=orclAPPL.sa.company.net)(PORT=1626))
                (CONNECT_DATA=
                    (SID=FNDFS)
    IFILE=E:\ORACLE\ORCL\INST\APPS\ORCL_orclappl\ora\10.1.2\network\admin\ORCL_orclappl_ifile.ora

    A database/OS crash shouldn't have such impact on your configuration. Please review the following docs and verify your setup.
    Using Oracle 11g Release 2 Real Application Clusters with Oracle E-Business Suite Release 12 (Doc ID 823587.1)
    Configuring and Managing E-Business Application Tier for RAC (Doc ID 1311528.1)
    Thanks,
    Hussein

  • Joining VBRK, VBRP, VBAK, VBAP, LIKP, LIPS

    Hello,
    I just wanted to ask how to join the above subject in one table? Or it isnt possible?
    I read that joining 3 or more tables would degrade the performance But i need to get the data in those tables. Any help would greatly appreciated. Thanks!

    Hi,
    Please take a look at my program below. There you can see how to join the tables that you mentioned. Hope it helps...
    P.S. Please award points if it helps...
    *=====================================================================
    * Program Name : ZSD_ORDERSTAGE_V2
    * Author       : Aris Hidalgo
    * Date Created : June 5, 2007
    * Description  : Display sales orders status for a given customer
    *=====================================================================
    REPORT  zsd_orderstage_v2
            NO STANDARD PAGE HEADING
            MESSAGE-ID zsd.
    * Data Dictionary Table/s                      *
    TABLES: vbak,
            vttp.
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    * Global Data/s                                *
    DATA: gt_fieldcat         TYPE lvc_t_fcat,
          ok_code             TYPE syst-ucomm,
          save_ok             TYPE syst-ucomm,
          g_repid             TYPE syst-repid,
          gs_layout           TYPE lvc_s_layo,
          gv_container        TYPE scrfname VALUE 'CUSTOM_CONTROL',
          grid1               TYPE REF TO cl_gui_alv_grid,
          custom_container    TYPE REF TO cl_gui_custom_container,
          grid2               TYPE REF TO cl_gui_alv_grid,
          dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
          event_receiver      TYPE REF TO lcl_event_receiver.
    * Global Structure/s                           *
    TYPES: BEGIN OF t_output,
            creation_date  TYPE vbak-erdat,
            creation_time  TYPE vbak-erzet,
            sales_doc      TYPE vbak-vbeln,
            cust_code      TYPE vbak-kunnr,
            cust_desc      TYPE kna1-name1,
            ship_to_code   TYPE likp-kunnr,
            ship_to_desc   TYPE kna1-name1,
            po_num         TYPE vbak-bstnk,
            doc_type       TYPE vbak-auart,
            req_dlv_date   TYPE vbak-vdatu,
            so_status(02)  TYPE c,
            created_by     TYPE vbak-ernam,
            del_doc        TYPE likp-vbeln,
            bill_doc       TYPE vbrk-vbeln,
           END OF t_output.
    TYPES: BEGIN OF t_column,
            fname TYPE lvc_fname,
            level TYPE lvc_level,
           END OF t_column.
    * Global Internal Table/s                      *
    DATA: gt_output TYPE STANDARD TABLE OF t_output,
          gt_column TYPE STANDARD TABLE OF t_column.
    * Global Work Area/s                           *
    DATA: wa_output LIKE LINE OF gt_output.
    * SELECTION-SCREEN                             *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS:     p_kunnr TYPE vbak-kunnr OBLIGATORY.
    SELECT-OPTIONS: s_vkgrp FOR vbak-vkgrp,
                    s_auart FOR vbak-auart,
                    s_erdat FOR vbak-erdat  OBLIGATORY,
                    s_ernam FOR vbak-ernam.
    SELECTION-SCREEN END OF BLOCK b1.
    */ CLASS DEFINITION/S
    CLASS lcl_process_data DEFINITION DEFERRED.
    *       CLASS lcl_get_data DEFINITION
    CLASS lcl_get_data DEFINITION.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_vbak,
                vbeln TYPE vbak-vbeln,
                erdat TYPE vbak-erdat,
                erzet TYPE vbak-erzet,
                ernam TYPE vbak-ernam,
                auart TYPE vbak-auart,
                vdatu TYPE vbak-vdatu,
                bstnk TYPE vbak-bstnk,
                kunnr TYPE vbak-kunnr,
               END OF t_vbak.
        TYPES: BEGIN OF t_kna1,
                kunnr TYPE kna1-kunnr,
                name1 TYPE kna1-name1,
               END OF t_kna1.
        TYPES: BEGIN OF t_delivery,
                vgbel TYPE lips-vgbel,
                vbeln TYPE likp-vbeln,
                kunnr TYPE likp-kunnr,
               END OF t_delivery.
        TYPES: BEGIN OF t_billing,
                vbelv   TYPE vbfa-vbelv,
                vbtyp_n TYPE vbfa-vbtyp_n,
                vbeln   TYPE vbfa-vbeln,
               END OF t_billing.
        TYPES: BEGIN OF t_status,
                vbeln TYPE vbuk-vbeln,      "Sales and Distribution Document Number
                cmgst TYPE vbuk-cmgst,      "Overall status of credit checks
                lfstk TYPE vbuk-lfstk,      "Delivery status
                kostk TYPE vbuk-kostk,      "Overall picking / putaway status
                fkstk TYPE vbuk-fkstk,      "Billing status
                trsta TYPE vbuk-trsta,      "Transportation planning status
               END OF t_status.
        TYPES: BEGIN OF t_status_do,
                vbeln TYPE vbuk-vbeln,      "Delivery Document Number
                kostk TYPE vbuk-kostk,      "Overall picking / putaway status
                fkstk TYPE vbuk-fkstk,      "Billing status
                trsta TYPE vbuk-trsta,      "Transportation planning status
               END OF t_status_do.
        METHODS: get_sales_docs    FINAL,
                 get_customer_desc FINAL,
                 get_ship_to_desc  FINAL,
                 get_delivery_docs FINAL,
                 get_billing_docs  FINAL,
                 get_so_status     FINAL.
      PROTECTED SECTION.
        CLASS-DATA: gt_vbak            TYPE STANDARD TABLE OF t_vbak,
                    gt_kna1            TYPE HASHED   TABLE OF t_kna1
                                       WITH UNIQUE KEY kunnr,
                    gt_kna2            TYPE HASHED   TABLE OF t_kna1
                                       WITH UNIQUE KEY kunnr,
                    gt_delivery        TYPE STANDARD TABLE OF t_delivery,
                    gt_billing         TYPE STANDARD TABLE OF t_billing,
                    gt_status          TYPE STANDARD TABLE OF t_status,
                    gt_status_do       TYPE STANDARD TABLE OF t_status_do,
                    o_lcl_process_data TYPE REF TO lcl_process_data.
      PRIVATE SECTION.
        CLASS-DATA: wa_status LIKE LINE OF gt_status.
    ENDCLASS.                    "lcl_get_data DEFINITION
    *       CLASS lcl_process_data DEFINITION
    CLASS lcl_process_data DEFINITION INHERITING FROM lcl_get_data.
      PUBLIC SECTION.
        METHODS: combine_data FINAL
                   IMPORTING
                     im_sales_tab LIKE gt_vbak
                     im_cust_tab  LIKE gt_kna1
                     im_desc_tab  LIKE gt_kna2     OPTIONAL
                     im_dlv_tab   LIKE gt_delivery OPTIONAL
                     im_bill_tab  LIKE gt_billing  OPTIONAL
                   EXPORTING
                     ex_output    LIKE gt_output,
                 get_status
                   IMPORTING
                     im_so        TYPE vbak-vbeln
                     im_do        TYPE likp-vbeln   OPTIONAL
                   EXPORTING
                     ex_status    TYPE crmchar2.
      PRIVATE SECTION.
        DATA: lv_vbelv    TYPE vbfa-vbelv,
              lv_bill_doc TYPE vbfa-vbeln,
              lv_kunnr    TYPE vbpa-kunnr,
              lv_name1    TYPE kna1-name1,
              lv_parvw    TYPE vbpa-parvw,
              lv_flag1    TYPE flag.
    ENDCLASS.                    "lcl_process_data DEFINITION
    *       CLASS lcl_alv_routines DEFINITION
    CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_process_data.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_status_history,
                 cr_hold(50)        TYPE c,
                 cr_rel_on(10)      TYPE c,
                 cr_rel_at(10)      TYPE c,
                 do_created_on(10)  TYPE c,
                 do_created_time(8) TYPE c,
                 picked_on(10)      TYPE c,
                 picked_time(8)     TYPE c,
                 inv_created_on(10) TYPE c,
                 dispatched_on(10)  TYPE c,
                 dispatched_at(10)  TYPE c,
               END OF t_status_history.
        TYPES: BEGIN OF t_confirmation,
                 podat TYPE likp-podat,
                 potim TYPE likp-potim,
               END OF t_confirmation.
        CLASS-DATA: wa_fieldcat       LIKE LINE OF gt_fieldcat,
                    gt_status_history TYPE STANDARD TABLE OF t_status_history,
                    gt_confirmation   TYPE STANDARD TABLE OF t_confirmation,
                    wa_status_history LIKE LINE OF gt_status_history,
                    wa_confirmation   LIKE LINE OF gt_confirmation,
                    wa_column         LIKE LINE OF gt_column,
                    gt_domain_val     TYPE STANDARD TABLE OF dd07v,
                    wa_domain_val     LIKE LINE OF gt_domain_val.
        METHODS: build_fieldcat FINAL,
                 popup_routines
                   IMPORTING
                     im_column LIKE gt_column
                     im_output LIKE wa_output
                   EXPORTING
                     ex_status_history LIKE gt_status_history
                     ex_confirmation   LIKE gt_confirmation,
                 get_domain_values FINAL
                   IMPORTING
                     value(im_tabname)    TYPE ddobjname
                     value(im_fieldname)  TYPE dfies-fieldname
                   EXPORTING
                     value(ex_values_tab) LIKE gt_domain_val.
      PRIVATE SECTION.
        CLASS-DATA: lt_dfies_tab TYPE STANDARD TABLE OF dfies,
                    wa_dfies_tab LIKE LINE OF lt_dfies_tab.
    ENDCLASS.                    "lcl_alv_routines DEFINITION
    *       CLASS lcl_event_receiver DEFINITION
    CLASS lcl_event_receiver DEFINITION INHERITING FROM lcl_alv_routines FINAL.
      PUBLIC SECTION.
        METHODS: handle_double_click
                   FOR EVENT double_click OF cl_gui_alv_grid
                     IMPORTING
                       e_row
                       e_column,
                 handle_close
                   FOR EVENT close OF cl_gui_dialogbox_container
                     IMPORTING
                       sender,
                 handle_hotspot_click
                   FOR EVENT hotspot_click OF cl_gui_alv_grid
                     IMPORTING
                       e_row_id
                       e_column_id
                       es_row_no,
                 create_detail_list
                   IMPORTING
                     im_column         LIKE gt_column
                     im_status         LIKE gt_status_history
                     im_confirmation   LIKE gt_confirmation.
      PRIVATE SECTION.
        CLASS-DATA: o_lcl_alv_routines TYPE REF TO lcl_alv_routines.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    */ CLASS IMPLEMENTATION/S
    *       CLASS lcl_get_data IMPLEMENTATION
    CLASS lcl_get_data IMPLEMENTATION.
    * METHOD get_sales_docs
      METHOD get_sales_docs.
        SELECT vbeln erdat erzet ernam auart vdatu bstnk kunnr
          FROM vbak
          INTO TABLE gt_vbak
         WHERE erdat IN s_erdat
           AND ernam IN s_ernam
           AND auart IN s_auart
           AND vkgrp IN s_vkgrp
           AND kunnr =  p_kunnr.
        IF NOT gt_vbak[] IS INITIAL.
          CALL METHOD: me->get_customer_desc,
                           get_delivery_docs,
                           get_so_status,
                           get_billing_docs.
          CREATE OBJECT o_lcl_process_data.
          CALL METHOD o_lcl_process_data->combine_data
            EXPORTING
              im_sales_tab = gt_vbak
              im_cust_tab  = gt_kna1
              im_desc_tab  = gt_kna2
              im_dlv_tab   = gt_delivery
              im_bill_tab  = gt_billing
            IMPORTING
              ex_output    = gt_output.
        ELSE.
          MESSAGE i000 WITH text-032.
          LEAVE LIST-PROCESSING.
        ENDIF.
      ENDMETHOD.                    "get_sales_docs
    * METHOD get_customer_desc
      METHOD get_customer_desc.
        SELECT kunnr name1
          FROM kna1
          INTO TABLE gt_kna1
           FOR ALL ENTRIES IN gt_vbak
         WHERE kunnr = gt_vbak-kunnr.
      ENDMETHOD.                    "get_customer_desc
    * METHOD get_ship_to_desc
      METHOD get_ship_to_desc.
        SELECT kunnr name1
          FROM kna1
          INTO TABLE gt_kna2
           FOR ALL ENTRIES IN gt_delivery
         WHERE kunnr = gt_delivery-kunnr.
      ENDMETHOD.                    "get_ship_to_desc
    * METHOD get_delivery_docs
      METHOD get_delivery_docs.
        SELECT lips~vgbel likp~vbeln likp~kunnr
          FROM likp
         INNER JOIN lips
            ON likp~vbeln = lips~vbeln
          INTO TABLE gt_delivery
           FOR ALL ENTRIES IN gt_vbak
         WHERE lips~vgbel = gt_vbak-vbeln.
        IF NOT gt_delivery[] IS INITIAL.
          SORT gt_delivery ASCENDING BY: vgbel vbeln kunnr.
          DELETE ADJACENT DUPLICATES FROM gt_delivery COMPARING vgbel vbeln kunnr.
    *     Get ship-to description
          CALL METHOD me->get_ship_to_desc.
    *     Get status of delivery documents
          SELECT vbeln kostk fkstk trsta
            FROM vbuk
            INTO TABLE gt_status_do
             FOR ALL ENTRIES IN gt_delivery
           WHERE vbeln = gt_delivery-vbeln.
        ENDIF.
      ENDMETHOD.                    "get_delivery_docs
    * METHOD get_billing_docs
      METHOD get_billing_docs.
        SELECT vbelv vbtyp_n vbeln
          FROM vbfa
          INTO TABLE gt_billing
           FOR ALL ENTRIES IN gt_delivery
         WHERE vbelv   = gt_delivery-vbeln
           AND vbtyp_n = 'M'.
        SORT gt_billing ASCENDING BY: vbelv vbtyp_n vbeln.
        DELETE ADJACENT DUPLICATES FROM gt_billing COMPARING vbelv vbtyp_n vbeln.
      ENDMETHOD.                    "get_billing_docs
    * METHOD get_so_status
      METHOD get_so_status.
        DATA: lv_curr_so TYPE vbak-vbeln,
              lv_lines   TYPE i.
        FIELD-SYMBOLS: <fs_status>    LIKE LINE OF gt_status,
                       <fs_delivery>  LIKE LINE OF gt_delivery,
                       <fs_status_do> LIKE LINE OF gt_status_do.
        SELECT vbeln cmgst lfstk
          FROM vbuk
          INTO CORRESPONDING FIELDS OF TABLE gt_status
           FOR ALL ENTRIES IN gt_vbak
         WHERE vbeln = gt_vbak-vbeln.
        SORT gt_status_do BY vbeln ASCENDING.
        DESCRIBE TABLE gt_status LINES lv_lines.
        LOOP AT gt_status ASSIGNING <fs_status>.
          IF sy-tabix > lv_lines.
            EXIT.
          ENDIF.
          LOOP AT gt_delivery ASSIGNING <fs_delivery> WHERE vgbel = <fs_status>-vbeln.
            IF lv_curr_so = <fs_delivery>-vgbel.
              wa_status-vbeln = <fs_status>-vbeln.
              wa_status-cmgst = <fs_status>-cmgst.
              wa_status-lfstk = <fs_status>-lfstk.
              READ TABLE gt_status_do ASSIGNING <fs_status_do> WITH KEY vbeln = <fs_delivery>-vbeln
                                                                                BINARY SEARCH.
              IF sy-subrc = 0.
                wa_status-kostk = <fs_status_do>-kostk.
                wa_status-fkstk = <fs_status_do>-fkstk.
                wa_status-trsta = <fs_status_do>-trsta.
              ENDIF.
              APPEND wa_status TO gt_status.
              CLEAR wa_status.
            ELSE.
              READ TABLE gt_status_do ASSIGNING <fs_status_do> WITH KEY vbeln = <fs_delivery>-vbeln
                                                                                BINARY SEARCH.
              <fs_status>-kostk = <fs_status_do>-kostk.
              <fs_status>-fkstk = <fs_status_do>-fkstk.
              <fs_status>-trsta = <fs_status_do>-trsta.
            ENDIF.
            lv_curr_so = <fs_delivery>-vgbel.
          ENDLOOP.
        ENDLOOP.
      ENDMETHOD.                    "get_do_status
    ENDCLASS.                    "lcl_get_data IMPLEMENTATION
    *       CLASS lcl_process_data IMPLEMENTATION
    CLASS lcl_process_data IMPLEMENTATION.
    * METHOD combine_data
      METHOD combine_data.
        FIELD-SYMBOLS: <fs_sales_tab> LIKE LINE OF im_sales_tab,
                       <fs_cust_tab>  LIKE LINE OF im_cust_tab,
                       <fs_desc_tab>  LIKE LINE OF im_desc_tab,
                       <fs_dlv_tab>   LIKE LINE OF im_dlv_tab,
                       <fs_bill_tab>  LIKE LINE OF im_bill_tab.
        SORT gt_status BY vbeln ASCENDING.
        LOOP AT im_sales_tab ASSIGNING <fs_sales_tab>.
          CLEAR: lv_flag1, wa_output,lv_vbelv,
                 lv_bill_doc, lv_kunnr,
                 lv_name1, lv_parvw.
          wa_output-creation_date = <fs_sales_tab>-erdat.  "SO creation date
          wa_output-creation_time = <fs_sales_tab>-erzet.  "SO creation time
          wa_output-sales_doc     = <fs_sales_tab>-vbeln.  "Sales document
          wa_output-cust_code     = <fs_sales_tab>-kunnr.  "SO customer code
    *     Customer description
          READ TABLE im_cust_tab ASSIGNING <fs_cust_tab> WITH KEY kunnr = <fs_sales_tab>-kunnr.
          IF sy-subrc = 0.
            MOVE <fs_cust_tab>-name1 TO: wa_output-cust_desc.    "SO customer description
          ENDIF.
          wa_output-po_num       = <fs_sales_tab>-bstnk.   "PO number
          wa_output-doc_type     = <fs_sales_tab>-auart.   "SO document type
          wa_output-req_dlv_date = <fs_sales_tab>-vdatu.   "SO req. delivery date
          wa_output-created_by   = <fs_sales_tab>-ernam.   "SO created by
          READ TABLE im_dlv_tab ASSIGNING <fs_dlv_tab> WITH KEY vgbel = <fs_sales_tab>-vbeln.
          IF sy-subrc <> 0.
            CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
              EXPORTING
                input  = 'SH'
              IMPORTING
                output = lv_parvw.
    */Get ship-to party and description based from sales document
    * if delivery document is non-existent
            SELECT SINGLE kunnr
              FROM vbpa
              INTO lv_kunnr
             WHERE vbeln = <fs_sales_tab>-vbeln
               AND parvw = lv_parvw.             "Ship-to party
            IF sy-subrc = 0.
              SELECT SINGLE name1
                FROM kna1
                INTO lv_name1
               WHERE kunnr = lv_kunnr.
              IF sy-subrc = 0.
                wa_output-ship_to_code = lv_kunnr.
                wa_output-ship_to_desc = lv_name1.
              ENDIF.
            ENDIF.
    *       Sales order status
            CALL METHOD me->get_status
              EXPORTING
                im_so     = wa_output-sales_doc
              IMPORTING
                ex_status = wa_output-so_status.
            APPEND wa_output TO ex_output.
            CLEAR wa_output.
            CONTINUE.
          ENDIF.
    *     Ship-to code/party and delivery document
          LOOP AT im_dlv_tab ASSIGNING <fs_dlv_tab> WHERE vgbel = <fs_sales_tab>-vbeln.
            CLEAR: lv_flag1.
            wa_output-ship_to_code = <fs_dlv_tab>-kunnr.   "Ship-to code
            wa_output-del_doc      = <fs_dlv_tab>-vbeln.   "Delivery document
    *       Ship-to description
            READ TABLE im_desc_tab ASSIGNING <fs_desc_tab> WITH KEY kunnr = <fs_dlv_tab>-kunnr.
            IF sy-subrc = 0.
              wa_output-ship_to_desc = <fs_desc_tab>-name1.
            ENDIF.
    *       Sales order and delivery order status
            CALL METHOD me->get_status
              EXPORTING
                im_so     = wa_output-sales_doc
                im_do     = wa_output-del_doc
              IMPORTING
                ex_status = wa_output-so_status.
    *       Billing document
            LOOP AT im_bill_tab ASSIGNING <fs_bill_tab> WHERE vbelv   = <fs_dlv_tab>-vbeln
                                                          AND vbtyp_n =  'M'.
              CLEAR lv_flag1.
              IF lv_vbelv    = <fs_bill_tab>-vbelv AND
                 lv_bill_doc = <fs_bill_tab>-vbeln.
                CONTINUE.
              ENDIF.
              lv_vbelv    = <fs_bill_tab>-vbelv.
              lv_bill_doc = <fs_bill_tab>-vbeln.
              wa_output-bill_doc = <fs_bill_tab>-vbeln.    "Billing document
              MOVE 'X' TO lv_flag1.
              APPEND wa_output TO ex_output.
              CLEAR: wa_output-ship_to_code, wa_output-del_doc,
                     wa_output-so_status, wa_output-bill_doc.
              EXIT.
            ENDLOOP.
            IF lv_flag1 = 'X'.
              CONTINUE.
            ELSE.
              APPEND wa_output TO ex_output.
              CLEAR: wa_output-ship_to_code, wa_output-del_doc,
                     wa_output-ship_to_desc, wa_output-so_status.
            ENDIF.
          ENDLOOP.
        ENDLOOP.
        SORT ex_output BY sales_doc.
      ENDMETHOD.                    "combine_data
    * METHOD get_status
      METHOD get_status.
        FIELD-SYMBOLS: <fs_status>    LIKE LINE OF gt_status,
                       <fs_status_do> LIKE LINE OF gt_status_do.
    */Check the current stage of a given sales order in descending order
    * starting with the shipment status
        READ TABLE gt_status_do ASSIGNING <fs_status_do> WITH KEY vbeln = im_do
                                                                          BINARY SEARCH.
        IF sy-subrc = 0.
    *     Shipment/dispatch status
          IF <fs_status_do>-trsta = 'B' OR
             <fs_status_do>-trsta = 'C'.
            ex_status = 'SH'.
    *     Invoice status
          ELSEIF <fs_status_do>-fkstk = 'B' OR
                 <fs_status_do>-fkstk = 'C'.
            ex_status = 'IN'.
    *     Picking status
          ELSEIF <fs_status_do>-kostk = 'B' OR
                 <fs_status_do>-kostk = 'C'.
            ex_status = 'PS'.
          ENDIF.
        ENDIF.
        IF ex_status IS INITIAL.
          READ TABLE gt_status ASSIGNING <fs_status> WITH KEY vbeln = im_so
                                                                      BINARY SEARCH.
          IF sy-subrc = 0.
    *       Delivery order status
            IF <fs_status>-lfstk = 'B' OR
               <fs_status>-lfstk = 'C'.
              ex_status = 'DO'.
    *       Credit released
            ELSEIF <fs_status>-cmgst = 'A' OR
                   <fs_status>-cmgst = 'D'.
              ex_status = 'CR'.
    *       Credit hold
            ELSEIF <fs_status>-cmgst = 'B' OR
                   <fs_status>-cmgst = 'C'.
              ex_status = 'CH'.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "get_status
    ENDCLASS.                    "lcl_process_data IMPLEMENTATION
    *       CLASS lcl_alv_routines IMPLEMENTATION
    CLASS lcl_alv_routines IMPLEMENTATION.
    * METHOD build_fieldcat
      METHOD build_fieldcat.
        REFRESH: gt_fieldcat.
        CLEAR wa_fieldcat.
        DEFINE m_fieldcat.
          add 1 to wa_fieldcat-col_pos.
          wa_fieldcat-fieldname   = &1.
          wa_fieldcat-tabname     = &2.
          wa_fieldcat-coltext     = &3.
          wa_fieldcat-outputlen   = &4.
          wa_fieldcat-fix_column  = &5.
          wa_fieldcat-just        = &6.
          wa_fieldcat-do_sum      = &7.
          wa_fieldcat-emphasize   = &8.
          wa_fieldcat-hotspot     = &9.
          append wa_fieldcat to gt_fieldcat.
        END-OF-DEFINITION.
        IF wa_column-fname = 'SO_STATUS'.
          m_fieldcat 'CR_HOLD'         'GT_STATUS_HISTORY'  text-002  '50' 'X' '' '' '' ''.
          m_fieldcat 'CR_REL_ON'       'GT_STATUS_HISTORY'  text-003  '18' 'X' '' '' '' ''.
          m_fieldcat 'CR_REL_AT'       'GT_STATUS_HISTORY'  text-004  '18' 'X' '' '' '' ''.
          m_fieldcat 'DO_CREATED_ON'   'GT_STATUS_HISTORY'  text-005  '13' 'X' '' '' '' ''.
          m_fieldcat 'DO_CREATED_TIME' 'GT_STATUS_HISTORY'  text-030  '15' 'X' '' '' '' ''.
          m_fieldcat 'PICKED_ON'       'GT_STATUS_HISTORY'  text-006  '12' 'X' '' '' '' ''.
          m_fieldcat 'PICKED_TIME'     'GT_STATUS_HISTORY'  text-031  '12' 'X' '' '' '' ''.
          m_fieldcat 'INV_CREATED_ON'  'GT_STATUS_HISTORY'  text-007  '15' 'X' '' '' '' ''.
          m_fieldcat 'DISPATCHED_ON'   'GT_STATUS_HISTORY'  text-008  '13' 'X' '' '' '' ''.
          m_fieldcat 'DISPATCHED_AT'   'GT_STATUS_HISTORY'  text-009  '13' 'X' '' '' '' ''.
        ELSEIF wa_column-fname = 'BILL_DOC'.
          m_fieldcat 'PODAT'          'GT_CONFIRMATION'    text-010  '17' 'X' '' '' '' ''.
          m_fieldcat 'POTIM'          'GT_CONFIRMATION'    text-011  '17' 'X' '' '' '' ''.
        ELSE.
          m_fieldcat 'CREATION_DATE' 'GT_OUTPUT' text-012 '10' 'X' '' '' '' ''.
          m_fieldcat 'CREATION_TIME' 'GT_OUTPUT' text-013 '10' 'X' '' '' '' ''.
          m_fieldcat 'SALES_DOC'     'GT_OUTPUT' text-014 '10' 'X' '' '' 'X' 'X'.
          m_fieldcat 'CUST_CODE'     'GT_OUTPUT' text-015 '16' 'X' '' '' '' ''.
          m_fieldcat 'CUST_DESC'     'GT_OUTPUT' text-016 '40' 'X' '' '' '' ''.
          m_fieldcat 'SHIP_TO_CODE'  'GT_OUTPUT' text-017 '15' 'X' '' '' '' ''.
          m_fieldcat 'SHIP_TO_DESC'  'GT_OUTPUT' text-018 '40' 'X' '' '' '' ''.
          m_fieldcat 'PO_NUM'        'GT_OUTPUT' text-019 '24' 'X' '' '' '' ''.
          m_fieldcat 'DOC_TYPE'      'GT_OUTPUT' text-020 '16' 'X' '' '' '' ''.
          m_fieldcat 'REQ_DLV_DATE'  'GT_OUTPUT' text-021 '21' 'X' '' '' '' ''.
          m_fieldcat 'SO_STATUS'     'GT_OUTPUT' text-022 '09' 'X' '' '' 'C400' ''.
          m_fieldcat 'CREATED_BY'    'GT_OUTPUT' text-023 '13' 'X' '' '' '' ''.
          m_fieldcat 'DEL_DOC'       'GT_OUTPUT' text-024 '18' 'X' '' '' '' ''.
          m_fieldcat 'BILL_DOC'      'GT_OUTPUT' text-025 '11' 'X' '' '' 'C600' ''.
        ENDIF.
      ENDMETHOD.                    "build_fieldcat
    * METHOD popup_routines
      METHOD popup_routines.
        READ TABLE im_column INDEX 1 INTO wa_column.
        FIELD-SYMBOLS: <fs_status> LIKE LINE OF gt_status.
        DATA: lv_datum TYPE syst-datum,
              lv_uzeit TYPE syst-uzeit.
        CLEAR: wa_status_history, lv_datum, lv_uzeit.
        REFRESH gt_status_history.
    */Popup routine if user clicked on the SO status
        IF wa_column-fname = 'SO_STATUS'.
          CALL METHOD me->get_domain_values
            EXPORTING
              im_tabname    = 'VBUK'
              im_fieldname  = 'CMGST'
            IMPORTING
              ex_values_tab = gt_domain_val.
    *     Credit hold
          READ TABLE gt_status ASSIGNING <fs_status> WITH KEY vbeln = im_output-sales_doc.
          IF sy-subrc = 0.
            wa_status_history-cr_hold = <fs_status>-cmgst.
          ENDIF.
          READ TABLE gt_domain_val INTO wa_domain_val WITH
                                    KEY domvalue_l = wa_status_history-cr_hold
                                    TRANSPORTING ddtext.
          IF sy-subrc = 0.
            wa_status_history-cr_hold = wa_domain_val-ddtext.
          ENDIF.
    *     Credit released date and time
          SELECT SINGLE udate utime
            FROM cdhdr
            INTO (lv_datum, lv_uzeit)
           WHERE objectid = im_output-sales_doc
             AND tcode    = 'VKM3'.
          IF sy-subrc = 0.
            WRITE lv_datum TO wa_status_history-cr_rel_on
            USING EDIT MASK '__/__/____'.
            CLEAR lv_datum.
            WRITE lv_uzeit TO wa_status_history-cr_rel_at
            USING EDIT MASK '__:__:__'.
            CLEAR lv_uzeit.
          ENDIF.
    *     DO creation date and time
          IF NOT im_output-del_doc IS INITIAL.
            SELECT SINGLE erdat erzet
              FROM likp
              INTO (lv_datum, lv_uzeit)
             WHERE vbeln = im_output-del_doc.
            IF sy-subrc = 0.
              WRITE lv_datum TO wa_status_history-do_created_on
              USING EDIT MASK '__/__/____'.
              CLEAR lv_datum.
              WRITE lv_uzeit TO wa_status_history-do_created_time
              USING EDIT MASK '__:__:__'.
              CLEAR lv_uzeit.
            ENDIF.
    *       Picking date and time
            SELECT SINGLE bdatu bzeit
              FROM ltak
              INTO (lv_datum, lv_uzeit)
             WHERE vbeln = im_output-del_doc.
            IF sy-subrc = 0.
              WRITE lv_datum TO wa_status_history-picked_on
              USING EDIT MASK '__/__/____'.
              CLEAR lv_datum.
              WRITE lv_uzeit TO wa_status_history-picked_time
              USING EDIT MASK '__:__:__'.
              CLEAR lv_uzeit.
            ENDIF.
          ENDIF.
    *     Invoice created on
          SELECT SINGLE erdat
            FROM vbrk
            INTO lv_datum
           WHERE vbeln = im_output-bill_doc.
          WRITE lv_datum TO wa_status_history-inv_created_on
          USING EDIT MASK '__/__/____'.
          CLEAR lv_datum.
    *     Dispatched on and dispatched at
          SELECT SINGLE tknum
            FROM vttp
            INTO vttp-tknum
           WHERE vbeln = im_output-del_doc.
          IF sy-subrc = 0.
            SELECT SINGLE dtabf uzabf
              FROM vttk
              INTO (lv_datum, lv_uzeit)
             WHERE tknum = vttp-tknum.
            WRITE lv_datum TO wa_status_history-dispatched_on
            USING EDIT MASK '__/__/____'.
            CLEAR lv_datum.
            WRITE lv_uzeit TO wa_status_history-dispatched_at
            USING EDIT MASK '__:__:__'.
            CLEAR lv_uzeit.
          ENDIF.
          APPEND wa_status_history TO gt_status_history.
          ex_status_history[] = gt_status_history[].
          CLEAR wa_status_history.
    */Popup routine if the user clicked on the billing document
        ELSEIF wa_column-fname = 'BILL_DOC'.
          IF NOT im_output-del_doc IS INITIAL.
            SELECT SINGLE podat potim
              FROM likp
              INTO (wa_confirmation-podat, wa_confirmation-potim)
             WHERE vbeln = im_output-del_doc.
            APPEND wa_confirmation TO gt_confirmation.
            ex_confirmation[] = gt_confirmation[].
            CLEAR wa_confirmation.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "popup_routines
    * METHOD get_domain_values
      METHOD   get_domain_values.
        CALL FUNCTION 'DDIF_FIELDINFO_GET'
          EXPORTING
            tabname              = im_tabname
            fieldname            = im_fieldname
            langu                = sy-langu
    *       LFIELDNAME           = ' '
    *       ALL_TYPES            = ' '
    *       GROUP_NAMES          = ' '
    *       UCLEN                =
    *     IMPORTING
    *       X030L_WA             =
    *       DDOBJTYPE            =
    *       DFIES_WA             =
    *       LINES_DESCR          =
          TABLES
            dfies_tab            = lt_dfies_tab
    *       FIXED_VALUES         =
    *     EXCEPTIONS
    *       NOT_FOUND            = 1
    *       INTERNAL_ERROR       = 2
    *       OTHERS               = 3
        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 TABLE lt_dfies_tab INDEX 1 INTO wa_dfies_tab
                                        TRANSPORTING domname.
        CALL FUNCTION 'GET_DOMAIN_VALUES'
           EXPORTING
             domname               = wa_dfies_tab-domname
    *       TEXT                  = 'X'
    *       FILL_DD07L_TAB        = ' '
           TABLES
             values_tab            = ex_values_tab
    *       VALUES_DD07L          =
    *     EXCEPTIONS
    *       NO_VALUES_FOUND       = 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.
      ENDMETHOD.                    "get_domain_values
    ENDCLASS.                    "lcl_alv_routines IMPLEMENTATION
    *       CLASS lcl_event_receiver IMPLEMENTATION
    CLASS lcl_event_receiver IMPLEMENTATION.
    * METHOD handle_double_click
      METHOD handle_double_click.
        IF e_column = 'SO_STATUS' OR
           e_column = 'BILL_DOC'.
          CREATE OBJECT: o_lcl_alv_routines.
          CLEAR: wa_output.
          REFRESH: gt_fieldcat,
                   gt_column,
                   gt_status_history,
                   gt_confirmation.
          MOVE: e_column-fieldname TO wa_column-fname,
                e_column-hierlevel TO wa_column-level.
          APPEND wa_column TO gt_column.
    *     Get record based on what the user clicked
          READ TABLE gt_output INDEX e_row-index INTO wa_output.
    *     Build fieldcatalog depending on what the user clicked
          CALL METHOD o_lcl_alv_routines->build_fieldcat.
    *     Call popup routine/s
          CALL METHOD o_lcl_alv_routines->popup_routines
            EXPORTING
              im_column         = gt_column
              im_output         = wa_output
            IMPORTING
              ex_status_history = gt_status_history
              ex_confirmation   = gt_confirmation.
          CALL METHOD me->create_detail_list
            EXPORTING
              im_column       = gt_column
              im_status       = gt_status_history
              im_confirmation = gt_confirmation.
        ENDIF.
      ENDMETHOD.                    "handle_double_click
    * METHOD handle_close
      METHOD handle_close.
        CALL METHOD sender->set_visible
          EXPORTING
            visible = space.
      ENDMETHOD.                    "handle_close
    * METHOD handle_hotspot_click
      METHOD handle_hotspot_click.
        READ TABLE gt_output INDEX e_row_id INTO wa_output.
        IF NOT wa_output-sales_doc IS INITIAL
           AND e_column_id = 'SALES_DOC'.
          SET PARAMETER ID 'AUN' FIELD wa_output-sales_doc.
          CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDMETHOD.                    "handle_hotspot_click
    * METHOD create_detail_list
      METHOD create_detail_list.
        DATA: lv_caption(200) TYPE c.
        CLEAR wa_column.
    *   Create popup window
        CREATE OBJECT dialogbox_container
            EXPORTING
              top = 100
              left = 150
              lifetime = cntl_lifetime_dynpro
              caption = lv_caption
              width = 800
              height = 200.
        CREATE OBJECT grid2
            EXPORTING i_parent = dialogbox_container.
    *   Trigger event when user closes the popup window
        SET HANDLER event_receiver->handle_close FOR dialogbox_container.
        READ TABLE im_column INDEX 1 INTO wa_column.
    *   Display popup window
        IF wa_column-fname = 'SO_STATUS'.
          gs_layout-grid_title = text-026.
          CALL METHOD grid2->set_table_for_first_display
           EXPORTING
    *        i_structure_name = 'T_OUTPUT'
             is_layout        = gs_layout
           CHANGING
             it_outtab        = gt_status_history
             it_fieldcatalog  = gt_fieldcat.
        ELSEIF wa_column-fname = 'BILL_DOC'.
          gs_layout-grid_title = text-027.
          CALL METHOD grid2->set_table_for_first_display
           EXPORTING
    *        i_structure_name = 'T_OUTPUT'
             is_layout        = gs_layout
           CHANGING
             it_outtab        = gt_confirmation
             it_fieldcatalog  = gt_fieldcat.
        ENDIF.
        CALL METHOD cl_gui_control=>set_focus
          EXPORTING
            control = grid2.
      ENDMETHOD.                    "create_detail_list
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    * START-OF-SELECTION                           *
    START-OF-SELECTION.
      DATA: o_lcl_get_data TYPE REF TO lcl_get_data.
      CREATE OBJECT o_lcl_get_data.
      CALL METHOD o_lcl_get_data->get_sales_docs.
    * END-OF-SELECTION                             *
    END-OF-SELECTION.
      CALL SCREEN 100.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS '100'.
      SET TITLEBAR  'TITLE100'.
      DATA: o_lcl_alv_routines TYPE REF TO lcl_alv_routines,
            gv_text            TYPE string,
            gv_name1           TYPE kna1-name1,
            gv_date_low(10)    TYPE c,
            gv_date_high(10)   TYPE c.
      CREATE OBJECT o_lcl_alv_routines.
      g_repid = sy-repid.
      IF custom_container IS INITIAL.
        CREATE OBJECT custom_container
          EXPORTING
            container_name = gv_container
          EXCEPTIONS
            cntl_error = 1
            cntl_system_error = 2
            create_error = 3
            lifetime_error = 4
            lifetime_dynpro_dynpro_link = 5.
        IF sy-subrc NE 0.
          CALL FUNCTION 'POPUP_TO_INFORM'
            EXPORTING
              titel = g_repid
              txt2  = sy-subrc
              txt1  = text-028.
        ENDIF.
        CREATE OBJECT grid1
          EXPORTING
            i_parent = custom_container.
    *   Build fieldcatalog for initial display
        CALL METHOD o_lcl_alv_routines->build_fieldcat.
        SELECT SINGLE name1
          FROM kna1
          INTO gv_name1
         WHERE kunnr = p_kunnr.
        WRITE: s_erdat-low  TO gv_date_low  USING EDIT MASK '__/__/____',
               s_erdat-high TO gv_date_high USING EDIT MASK '__/__/____'.
        CONCATENATE: gv_name1 'from:' gv_date_low '-' gv_date_high
               INTO gv_text
          SEPARATED BY space.
        gs_layout-grid_title = gv_text.
    *   Display initial window
        CALL METHOD grid1->set_table_for_first_display
          EXPORTING
    *        i_structure_name = ''
            is_layout        = gs_layout
          CHANGING
            it_outtab        = gt_output
            it_fieldcatalog  = gt_fieldcat.
        CREATE OBJECT event_receiver.
    *   Trigger event when user double clicks initial window
        SET HANDLER event_receiver->handle_double_click FOR grid1.
    *   Trigger event when user clicks hotspot field
        SET HANDLER event_receiver->handle_hotspot_click FOR grid1.
      ENDIF.
      CALL METHOD cl_gui_control=>set_focus
        EXPORTING
          control = grid1.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      save_ok = ok_code.
      CASE save_ok.
        WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
          CALL METHOD custom_container->free.
          CALL METHOD cl_gui_cfw=>flush.
          IF sy-subrc <> 0.
            CALL FUNCTION 'POPUP_TO_INFORM'
              EXPORTING
                titel = g_repid
                txt2  = sy-subrc
                txt1  = text-029.
          ENDIF.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT

  • Cannot connect remotely to Database

    Dears,,
    I can connect to database as following:
    sqlplus sys/pass as sysdba
    But when trying to connect remotely as following:
    sqlplus sys/pass@vis as sysdba ( It gave me error )
    [oravis@ebsibm dbs]$ sqlplus sys/pass@vis as sysdba
    SQL*Plus: Release 10.2.0.3.0 - Production on Sat Apr 25 09:34:24 2009
    Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
    ERROR:
    ORA-01031: insufficient privileges
    Enter user-name:
    _[oravis@ebsibm VIS_ebsibm]$ tnsping vis_
    TNS Ping Utility for Linux: Version 10.2.0.3.0 - Production on 25-APR-2009 10:15:25
    Copyright (c) 1997, 2006, Oracle.  All rights reserved.
    Used parameter files:
    _/oracle/VIS/db/tech_st/10.2.0/network/admin/VIS_ebsibm/sqlnet_ifile.ora_
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=ebsibm.othaim.corp.net)(PORT=1521)) (CONNECTDATA= (SERVICE_NAME=VIS) (INSTANCE_NAME=VIS)))_
    OK (10 msec)
    Note: I already created the password file
    [oravis@ebsibm dbs]$ orapwd file=/oracle/VIS/db/tech_st/10.2.0/dbs/orapwvis password=pass entries=10
    However, no records in v$pwfile_users:
    SQL> select *
    2 from v$pwfile_users;
    no rows selected
    Please, need your help ASAP
    Edited by: user4520487 on Apr 24, 2009 11:49 PM

    Dear,,
    db listener cannot be started.
    see the following please ( May be there are errors in these files )
    tnsnames.ora
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.16.12000000.3 2007/09/14 10:00:07 schagant ship $
    EBS=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521))
    (CONNECT_DATA=
    (SERVICE_NAME=EBS)
    (INSTANCE_NAME=EBS)
    IFILE=/oracle/EBS/db/tech_st/10.2.0/network/admin/EBS_localhost/EBS_localhost_ifile.ora
    listener.ora
    # $Header: ad8ilsnr.ora 120.1 2006/06/07 05:52:02 sbandla noship $
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    # Net8 definition for Database listener
    EBS=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME=EBS)(INSTANCE_NAME=EBS))
    #STARTUP_WAIT_TIME_EBS = 0
    #CONNECT_TIMEOUT_EBS = 10
    #TRACE_LEVEL_EBS = OFF
    #LOG_DIRECTORY_EBS = /oracle/EBS/db/tech_st/10.2.0/network/admin
    #LOG_FILE_EBS = EBS
    #TRACE_DIRECTORY_EBS = /oracle/EBS/db/tech_st/10.2.0/network/admin
    #TRACE_FILE_EBS = EBS
    #ADMIN_RESTRICTIONS_EBS = OFF
    #SUBSCRIBE_FOR_NODE_DOWN_EVENT_EBS = OFF
    IFILE=/oracle/EBS/db/tech_st/10.2.0/network/admin/EBS_localhost/listener.ora
    Sqlnet.ora
    # This file is automatically generated by AutoConfig. It will be read and
    # overwritten. If you were instructed to edit this file, or if you are not
    # able to use the settings created by AutoConfig, refer to Metalink Note
    # 387859.1 for assistance.
    #$Header: NetServiceHandler.java 120.16.12000000.3 2007/09/14 10:00:07 schagant ship $
    NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME)
    SQLNET.EXPIRE_TIME= 10
    SQLNET.AUTHENTICATION_SERVICES=(NTS)
    IFILE=/oracle/EBS/db/tech_st/10.2.0/network/admin/EBS_localhost/sqlnet.ora

  • Unable to deploy simple EJB example with J2EE Ref. Impl.

    Hi there,
    I'm new to EJB development so please bare with me. I've written a simple EJB, taken from Enterprise JavaBeans by Richard Monson-Haefel (O'Reilly). I can compile the code without problems, load it into the J2EE deployment tool (I'm using version 1.3.1 of the J2EE Reference Implementation), and have succesfully set up the data source and SQL commands for each persistent field.
    When it comes to deployment, I'm stumped with the following error:
    java.rmi.RemoteException: Error processing ejb jar: Compilation failed.
    Here's the stacktrace in the error logs:
    Compilation failed.
         at com.sun.ejb.codegen.GeneratorDriver.compileClasses(GeneratorDriver.java:232)
         at com.sun.ejb.codegen.GeneratorDriver.preDeploy(GeneratorDriver.java:610)
         at com.sun.enterprise.tools.deployment.backend.JarInstallerImpl.deployEjbs(JarInstallerImpl.java:707)
         at com.sun.enterprise.tools.deployment.backend.JarInstallerImpl.deployApplication(JarInstallerImpl.java:221)
         at org.omg.stub.com.sun.enterprise.tools.deployment.backend._JarInstallerImpl_Tie._invoke(Unknown Source)
         at com.sun.corba.ee.internal.corba.ServerDelegate.dispatch(ServerDelegate.java:350)
         at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:250)
         at com.sun.corba.ee.internal.iiop.RequestProcessor.process(RequestProcessor.java:79)
         at com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run(ThreadPool.java:104)Here's the source:
    ==============================CabinHome.java=========================
    package com.titan.cabin;
    import java.rmi.RemoteException;
    import javax.ejb.CreateException;
    import javax.ejb.FinderException;
    public interface CabinHome extends javax.ejb.EJBHome {
      public Cabin create (int d) throws CreateException, RemoteException;
      public Cabin findByPrimaryKey (CabinPK pk) throws FinderException;
    }================================CabinBean.java========================
    package com.titan.cabin;
    import javax.ejb.EntityContext;
    public class CabinBean implements javax.ejb.EntityBean {
      public int id;
      public String name;
      public int deckLevel;
      public int ship;
      public int bedCount;
      public CabinPK ejbCreate (int id) {
        this.id = id;
        return null;
      public void ejbPostCreate (int id) {
      public String getName () {
        return name;
      public int getShip () {
        return ship;
      public int getDeckLevel () {
        return deckLevel;
      public int getBedCount () {
        return bedCount;
      public void setName (String str) {
        this.name = str;
      public void setShip (int s) {
        this.ship = s; 
      public void setDeckLevel (int d) {
        this.deckLevel = d;
      public void setBedCount (int c) {
        this.bedCount = c;
      public void setEntityContext (EntityContext ctx) {}
      public void unsetEntityContext () {}
      public void ejbActivate() {}
      public void ejbPassivate () {}
      public void ejbLoad () {}
      public void ejbStore () {}
      public void ejbRemove () {}
    }===============================Cabin.java============================
    package com.titan.cabin;
    import java.rmi.RemoteException;
    public interface Cabin extends javax.ejb.EJBObject {
      public String getName() throws RemoteException;
      public void setName(String str) throws RemoteException;
      public int getDeckLevel() throws RemoteException;
      public void setDeckLevel (int level) throws RemoteException;
      public int getShip() throws RemoteException;
      public void setShip (int sp) throws RemoteException;
      public int getBedCount() throws RemoteException;
      public void setBedCount() throws RemoteException;
    }============================CabinPK.java=============================
    package com.titan.cabin;
    public class CabinPK implements java.io.Serializable {
      public int id;
      public int hashCode() {
        return id;
      public boolean equals (Object obj) {
        if (obj instanceof CabinPK) {
          return (id == ((CabinPK) obj).id);
        return false;
    }Has anyone else experienced anything similar, or is there something I'm obviously doing wrong?
    Thanks for your help.
    Matt

    Here's the ejb-jar.xml:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- Created by matt on 10 September 2002, 14:32 -->
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
        "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
    <ejb-jar>
        <enterprise-beans>
            <entity>
                <description>
                    This Cabin enterprise bean entity represents a cabin on a cruise ship.
                </description>
                <ejb-name>CabinBean</ejb-name>
                <home>com.titan.cabin.CabinHome</home>
                <remote>com.titan.cabin.Cabin</remote>
                <ejb-class>com.titan.cabin.CabinBean</ejb-class>
                <persistence-type>Container</persistence-type>
                <prim-key-class>com.titan.cabin.CabinPK</prim-key-class>
                <reentrant>False</reentrant>
                <cmp-field><field-name>id</field-name></cmp-field>
                <cmp-field><field-name>name</field-name></cmp-field>
                <cmp-field><field-name>deckLevel</field-name></cmp-field>
                <cmp-field><field-name>ship</field-name></cmp-field>
                <cmp-field><field-name>bedCount</field-name></cmp-field>
            </entity>
        </enterprise-beans>
        <assembly-descriptor>
            <security-role>
                <description>
                    This role represents everyone who is allowed
                    full access to the cabin bean.
                </description>
                <role-name>everyone</role-name>
            </security-role>
            <method-permission>
                <role-name>everyone</role-name>
                <method>
                    <ejb-name>CabinBean</ejb-name>
                    <method-name>*</method-name>
                </method>
            </method-permission>
            <container-transaction>
                <method>
                    <ejb-name>CabinBean</ejb-name>
                    <method-name>*</method-name>
                </method>
                <trans-attribute>Required</trans-attribute>
            </container-transaction>
        </assembly-descriptor>
    </ejb-jar>Thanks...

  • Question about using ejb remote home vs ejb reference

    hi guys
    i am new to EJB and want to understand the difference between these two. i notice that the ejb reference is declared in the ejb-jar.xml so that the calling ejb can get the home object by using
    initCtx.lookup("java:comp/env/ejb/CabinHome");which is declared in
    <ejb-ref>
      <description>Cruise ship cabin</description>
      <ejb-ref-name>ejb/CabinHome</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      <home>com.titan.cabin.CabinHome</home>
      <remote>com.titan.cabin.Cabin</remote>
      <ejb-link>CabinBean</ejb-link>
    </ejb-ref>how does this differ from using the JNDI to get the home interface. which one is preferred?
    thanks for your help.

    Right, portable Java EE applications always access resources via their component environment rather than doing a direct global JNDI lookup. Declaring the ejb dependency provides a level of indirection that allows it to be mapped to the appropriate target ejb in each application server without requiring any code changes. The same principle is used for other kinds of component dependencies such as data sources, queues, etc.
    The downside to this in J2EE 1.4 and earlier was the overhead/complexity of declaring the ejb-ref/ejb-local-ref in the deployment descriptor. Java EE 5 improves this by introducing environment annotations such as @EJB that make it easy to declare the dependencies. In Java EE 5, @EJB is equivalent to ejb-ref/ejb-local-ref but doesn't require the use of .xml.
    The bottom line is if you're writing code that's running within a Java EE component, always access Java EE resources/dependencies through your component environment or use an environment annotation.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Can someone please tell me whats going on?

    so i scheduled a repair a week ago but when i told apple it was my screen(screen distorts under little pressure) they sent me a dignosis email saying that the ipod would not power off? so when i got the box it said on the tag under the shipping infoproblem description:E70-Dead Unit? DEAD i never said that, so now theryre sending me mybroken ipod back and ive had it without a week? so now what have it break? please respong and i have a warranty thank you

    Call Apple and ask to be transferred to Customer Relations. Explain the issue to them INCLUDING CASE NUMBER(s) and they will take care of you.
    Basic troubleshooting steps  
    17" 2.2GHz i7 Quad-Core MacBook Pro  8G RAM  750G HD + OCZ Vertex 3 SSD Boot HD 
    Got problems with your Apple iDevice-like iPhone, iPad or iPod touch? Try Troubleshooting 101
     In Memory of Steve Jobs 

  • Material Description in Sales Order based on Ship to Party Language

    As we know that Material Description coming in Sales Order is based on the Language setup in Sold to Party. Is there any way I can get the Material description based on the Language setup in Ship to Party?
    If not in Sales Order then anyway I can get the Material description based on the Language setup in Ship to Party in "Delivery" or do I have to use the user exit to do so?

    Hey,
    Why u r bother about translation of language description in sales order from ship to party n all.
    c u can even take language description from sold to party, as u wanted from Ship to party. for this u just have to maintain language in alternate data tab in CMR.
    Thanks
    Mk

  • Ship-to party and description...

    Hello Experts,
    I am currently getting the ship-to party and description of a given sales order
    through table kna1 where the kunnr is equal to the current kunnr of the delivery order(likp-kunnr).
    Now, is there any other way to get the ship to party and its description(like in VA03)?
    Thank you guys and take care!

    Hi
    Pass the sales Doc no or Delivery Doc number to <b>VBPA-VBELN</b> field
    and take the related Partner Number based on partner function
    So with that number
    you can take the name from<b> KNA1</b> table
    Reward points for useful Answers
    Regards
    Anji

Maybe you are looking for

  • EAP-FAST with local radius on 1242AG

    I'm trying to get EAP-FAST working using the local radius server on a 1242AG autonomous AP using the latest firmware from Cisco. The cypher I'm using is CCMP. LEAP works fine with all my clients, however if I move to EAP-FAST in the radius config my

  • Can't send texts to other iphones

    I have an iPhone 5 that has been updated to ios7.  All of a sudden I am unable to send texts to other iPhone users.  When I type my text and hit send it say's "sending" but never sends.  Now, I have to tap on my message and an option comes up that sa

  • Invalid xml error on line 1: content is not allowed

    I am using podcaster and uploaded to my .mac account. when copying the feed and webaddress at which the podcast is on my .mac accoiunt, I get the above reply. what should I change? Mark

  • Tables and Views are not displaying any objects.

    I have tried both Filtered and non-filtered for tables and view but it won't list any tables or view. I can run a query and it shows all the tables/views in the query window. SELECT table_name  FROM dba_tables select view_name from all_views

  • Link between EKET and CDPOS

    I have a follow up to this question. What if I want to link the items and schedule lines in table EKET to changes recorded in CDPOS. There's a field in CDPOS called TABKEY which holds the Client, Document, Item and Line all in one. But the problem is