DELIVERY & GI PROBLEM SD:ABAP PROGRAM

HAI FRIENDS
  I HAVE CREATED ONE SALES ORDER. NOW I WANT DELIVERY(VL02N) AND GOODS ISSUER FOR THAT SALES ORDER. I WANT BDC RECORDING
Program ID       : ZRFC_RUSHORDER
Transaction Code : Z*
Author           : Veerendra kumar E
Description      : RFC For Sales Process using Session Method calling
                   3 Transactions VA01,VL23 & VF06
Project          : KURLON
Version          : 1.0
Change History
    Date   |   Programmer   |   Corr. #   |   Description
           |                |             |
           |                |             |
FUNCTION ZRFC_RUSHORDER .
""Local interface:
*"  EXPORTING
*"     VALUE(SUBRC) LIKE  SYST-SUBRC
*"  TABLES
*"      MESSTAB STRUCTURE  BDCMSGCOLL OPTIONAL
*"      RO_HEADER STRUCTURE  ZSD_HEADER
*"      RO_ITEM STRUCTURE  ZSD_ITEM
       INTERNAL TABLES,STRUCTURES & VARIABLES
*TABLES : ZSO_CREATE_TEXT.
DATA: CTU      LIKE  APQI-PUTACTIVE,
      MODE     LIKE  APQI-PUTACTIVE,
      UPDATE   LIKE  APQI-PUTACTIVE,
      GROUP    LIKE  APQI-GROUPID,
      USER     LIKE  APQI-USERID,
      KEEP     LIKE  APQI-QERASE,
      HOLDDATE LIKE  APQI-STARTDATE,
      NODATA   LIKE  APQI-PUTACTIVE.
DATA : SORDER_FINAL LIKE VBAK-VBELN,
       SORDER(15)   TYPE C,
       V_CODE(2)    TYPE C,
       V_PLANT     LIKE EKPO-WERKS,
       YEAR_CONVERSION(1) TYPE C.
DATA : WA_ZRUSH_ORDER LIKE ZRUSH_ORDER.
DATA : V_DATE LIKE SY-DATUM,
       V_TIME LIKE SY-UZEIT.
DATA : SESSION_NAM(30) TYPE C.
       CTU = ' '.
       MODE = 'N'.
       USER = SY-UNAME.
       CONCATENATE SY-UNAME '_' SY-DATUM '_' SY-UZEIT INTO
                                               SESSION_NAM.
       GROUP = 'RUSH_ORDER'.
       KEEP = 'X'.
       UPDATE = 'L'.
       HOLDDATE = ''.
       NODATA = '/'.
SUBRC = 0.
*CREATING SESSSION
PERFORM OPEN_GROUP      USING GROUP USER KEEP HOLDDATE CTU.
LOOP AT RO_HEADER.
MOVE RO_HEADER-SORDER TO SORDER.
V_PLANT = SORDER+0(4).
SELECT SINGLE CODE INTO V_CODE FROM ZPLANT_NUMER_IBS WHERE PLANT = V_PLANT.
IF SORDER+4(4) = '2005'.
     YEAR_CONVERSION = 'E'.
ELSEIF SORDER+4(4) = '2006'.
     YEAR_CONVERSION = 'F'.
ELSEIF SORDER+4(4) = '2007'.
     YEAR_CONVERSION = 'G'.
ELSEIF SORDER+4(4) = '2008'.
     YEAR_CONVERSION = 'H'.
ELSEIF SORDER+4(4) = '2009'.
     YEAR_CONVERSION = 'J'.
ELSEIF SORDER+4(4) = '2010'.
     YEAR_CONVERSION = 'K'.
ELSEIF SORDER+4(4) = '2011'.
     YEAR_CONVERSION = 'L'.
ELSEIF SORDER+4(4) = '2012'.
     YEAR_CONVERSION = 'M'.
ELSEIF SORDER+4(4) = '2013'.
     YEAR_CONVERSION = 'N'.
ELSEIF SORDER+4(4) = '2014'.
     YEAR_CONVERSION = 'P'.
ELSEIF SORDER+4(4) = '2015'.
     YEAR_CONVERSION = 'Q'.
ELSEIF SORDER+4(4) = '2016'.
     YEAR_CONVERSION = 'R'.
ELSEIF SORDER+4(4) = '2017'.
     YEAR_CONVERSION = 'S'.
ELSEIF SORDER+4(4) = '2018'.
     YEAR_CONVERSION = 'T'.
ELSEIF SORDER+4(4) = '2019'.
     YEAR_CONVERSION = 'U'.
ELSEIF SORDER+4(4) = '2020'.
     YEAR_CONVERSION = 'V'.
ELSEIF SORDER+4(4) = '2021'.
     YEAR_CONVERSION = 'W'.
ELSEIF SORDER+4(4) = '2022'.
     YEAR_CONVERSION = 'X'.
ELSEIF SORDER+4(4) = '2023'.
     YEAR_CONVERSION = 'Y'.
ELSEIF SORDER+4(4) = '2024'.
     YEAR_CONVERSION = 'Z'.
ELSEIF SORDER+4(4) = '2025'.
     YEAR_CONVERSION = 'A'.
ELSEIF SORDER+4(4) = '2026'.
     YEAR_CONVERSION = 'B'.
ELSEIF SORDER+4(4) = '2027'.
     YEAR_CONVERSION = 'C'.
ENDIF.
CONCATENATE  YEAR_CONVERSION V_CODE SORDER+8(7) INTO SORDER_FINAL.
CLEAR YEAR_CONVERSION.
CLEAR V_CODE.
CLEAR V_PLANT.
Text Element Creation for Sales order.
ZSO_CREATE_TEXT-SORDER      = SORDER_FINAL.
ZSO_CREATE_TEXT-LR_NUMBER   = RO_HEADER-LR_NUMBER.
ZSO_CREATE_TEXT-TRANSPORTER = RO_HEADER-TRANSPORTER.
ZSO_CREATE_TEXT-Z003        = RO_HEADER-Z003.
ZSO_CREATE_TEXT-Z004        = RO_HEADER-Z004.
INSERT ZSO_CREATE_TEXT.
  PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0101'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'VBAK-SPART'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '/00'.
  PERFORM BDC_FIELD       USING 'VBAK-AUART'
                                'ZKSO'.  "AUART_001.
  PERFORM BDC_FIELD       USING 'VBAK-VKORG'
                                RO_HEADER-VKORG.  "VKORG_002.
  PERFORM BDC_FIELD       USING 'VBAK-VTWEG'
                                RO_HEADER-VTWEG.    "VTWEG_003.
  PERFORM BDC_FIELD       USING 'VBAK-SPART'
                                RO_HEADER-SPART.    "SPART_004.
Sales Order Date insertion.......
  PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=KKAU'.
  PERFORM BDC_FIELD       USING 'VBAK-VBELN'
                                SORDER_FINAL.
  PERFORM BDC_FIELD       USING 'KUAGV-KUNNR'
                                RO_HEADER-SP.
  PERFORM BDC_FIELD       USING 'KUWEV-KUNNR'
                                RO_HEADER-SH.
  PERFORM BDC_FIELD       USING 'VBKD-BSTKD'
                                RO_HEADER-REF_PO.
  PERFORM BDC_FIELD       USING 'VBKD-ZTERM'
                                RO_HEADER-ZTERM.
  WRITE RO_HEADER-SODATE TO RO_HEADER-SODATE.
  PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4002'.
  perform bdc_field       using 'BDC_OKCODE'
                              '=T\03'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'VBAK-AUDAT'.
  PERFORM BDC_FIELD       USING 'VBAK-AUDAT'
                                RO_HEADER-SODATE.  "Document Date
  PERFORM BDC_FIELD       USING 'VBKD-PRSDT'
                                RO_HEADER-SODATE.  "Pricing Date
Billing Screen    ***********************
  perform bdc_dynpro      using 'SAPMV45A' '4002'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '/EBACK'.
  perform bdc_field       using 'BDC_CURSOR'
                              'VBKD-FKDAT'.
  PERFORM BDC_FIELD       USING 'VBKD-FKDAT'
                                RO_HEADER-SODATE.  "Billing date
  PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=KKO1'.
  PERFORM BDC_FIELD       USING 'KUAGV-KUNNR'
                                RO_HEADER-SP.     "KUNNR_006.
  PERFORM BDC_FIELD       USING 'KUWEV-KUNNR'
                                RO_HEADER-SH.     "KUNNR_007.
  PERFORM BDC_FIELD       USING 'VBKD-BSTKD'
                                RO_HEADER-REF_PO. "BSTKD_008.
  PERFORM BDC_FIELD       USING 'RV45A-KETDAT'
                                RO_HEADER-SODATE. "Delivery Date.
  PERFORM BDC_FIELD       USING 'VBKD-ZTERM'
                                RO_HEADER-ZTERM.     "ZTERM_011.
************************Added for test 25-02******************
  PERFORM BDC_FIELD       USING 'RV45A-KETDAT'        " CNGD FROM 'KEDAT' TO 'KETDAT'.
                                RO_HEADER-SODATE.     "REQ DELVY DATE.
  PERFORM BDC_FIELD       USING 'VBKD-PRSDT'          "CNGD FROM 'RV45A' TO 'VBKD'.
                                RO_HEADER-SODATE.     "PRICING DATE.
************************Added for test 25-02******************
*Dont DELETE, For Future Use of Inco terms 1 & 2.
*PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                             'VBKD-INCO2'.
*PERFORM BDC_FIELD       USING 'VBKD-INCO1'
                             RO_HEADER-INCO1.  "INCO1_012.
*PERFORM BDC_FIELD       USING 'VBKD-INCO2'
                             RO_HEADER-INCO2.  "INCO2_013.
Header condition types......................................
  PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5002'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=V69A_KOAN'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KOMV-KSCHL(05)'.
IF RO_HEADER-KSCHL1 IS NOT INITIAL.
  PERFORM BDC_DYNPRO      USING  'SAPMV45A' '5002'.
  PERFORM BDC_FIELD       USING  'BDC_OKCODE'
                                 '=V69A_KOAN'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KSCHL(04)'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KBETR(02)'.
  PERFORM BDC_FIELD       USING  'KOMV-KSCHL(02)' RO_HEADER-KSCHL1.
  PERFORM BDC_FIELD       USING  'KOMV-KBETR(02)' RO_HEADER-KBETR1.
ENDIF.
IF RO_HEADER-KSCHL2 IS NOT INITIAL.
  PERFORM BDC_DYNPRO      USING  'SAPMV45A' '5002'.
  PERFORM BDC_FIELD       USING  'BDC_OKCODE'
                                 '=V69A_KOAN'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KSCHL(04)'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KBETR(02)'.
  PERFORM BDC_FIELD       USING  'KOMV-KSCHL(02)' RO_HEADER-KSCHL2.
  PERFORM BDC_FIELD       USING  'KOMV-KBETR(02)' RO_HEADER-KBETR2.
ENDIF.
IF RO_HEADER-KSCHL3 IS NOT INITIAL.
  PERFORM BDC_DYNPRO      USING  'SAPMV45A' '5002'.
  PERFORM BDC_FIELD       USING  'BDC_OKCODE'
                                 '=V69A_KOAN'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KSCHL(04)'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KBETR(02)'.
  PERFORM BDC_FIELD       USING  'KOMV-KSCHL(02)' RO_HEADER-KSCHL3.
  PERFORM BDC_FIELD       USING  'KOMV-KBETR(02)' RO_HEADER-KBETR3.
ENDIF.
*change on 11.04.2006 for adding rounding off condition type.
IF RO_HEADER-KSCHL4 IS NOT INITIAL.
  PERFORM BDC_DYNPRO      USING  'SAPMV45A' '5002'.
  PERFORM BDC_FIELD       USING  'BDC_OKCODE'
                                 '=V69A_KOAN'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KSCHL(04)'.
  PERFORM BDC_FIELD       USING  'BDC_CURSOR'
                                 'KOMV-KBETR(02)'.
  PERFORM BDC_FIELD       USING  'KOMV-KSCHL(02)' RO_HEADER-KSCHL4.
  PERFORM BDC_FIELD       USING  'KOMV-KBETR(02)' RO_HEADER-KBETR4.
ENDIF.
  PERFORM BDC_DYNPRO      USING  'SAPMV45A' '5002'.
  PERFORM BDC_FIELD       USING  'BDC_OKCODE'
                                 '/EBACK'.
Dont DELETE, For Future Use  of : Sales Person Data.................
*PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
*PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                               '=HEAD'.
*perform bdc_dynpro      using 'SAPMV45A' '4002'.
*perform bdc_field       using 'BDC_OKCODE'
                             '=T\08'.
*perform bdc_dynpro      using 'SAPMV45A' '4002'.
*perform bdc_field       using 'BDC_OKCODE'
                             '=PAAN'.
*perform bdc_field       using 'BDC_CURSOR'
                             'GVS_TC_DATA-REC-PARTNER(09)'.
*perform bdc_field       using 'GV_FILTER'
                              'PARALL'. "GV_FILTER_024.
*perform bdc_field       using 'GVS_TC_DATA-REC-PARVW(09)'
                              'VE'."REC-PARVW_09_025.
*perform bdc_field       using 'GVS_TC_DATA-REC-PARTNER(09)'
                              '0'. "REC-PARTNER_09_026.
*perform bdc_dynpro      using 'SAPMV45A' '4002'.
*perform bdc_field       using 'BDC_OKCODE'
                             '/EBACK'.
*perform bdc_field       using 'BDC_CURSOR'
                             'GVS_TC_DATA-REC-PARTNER(09)'.
*perform bdc_field       using 'GV_FILTER'
                             'PARALL'. "GV_FILTER_027.
  PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=POAN'.
  PERFORM BDC_FIELD       USING 'KUAGV-KUNNR'
                                RO_HEADER-SP.     "KUNNR_006.
  PERFORM BDC_FIELD       USING 'KUWEV-KUNNR'
                                RO_HEADER-SH.     "KUNNR_007.
  PERFORM BDC_FIELD       USING 'VBKD-BSTKD'
                                RO_HEADER-REF_PO. "BSTKD_008.
*FETCHING LINE ITEM DATA.
    LOOP AT RO_ITEM WHERE  SORDER =  RO_HEADER-SORDER.
      PERFORM BDC_DYNPRO   USING   'SAPMV45A'     '4001'.
      PERFORM BDC_FIELD    USING   'BDC_OKCODE'   '=POAN'.
      PERFORM BDC_FIELD    USING    'RV45A-MABNR(02)'  RO_ITEM-MATNR.
      PERFORM BDC_FIELD    USING    'RV45A-KWMENG(02)' RO_ITEM-QTY.
     PERFORM BDC_FIELD    USING    'VBAP-VRKME(02)' RO_ITEM-UOM. " For Future Use
      PERFORM BDC_FIELD    USING    'VBAP-WERKS(02)'  RO_ITEM-PLANT.
      PERFORM BDC_FIELD    USING    'VBAP-LGORT(02)'  RO_ITEM-SLOC.
      PERFORM BDC_FIELD    USING    'VBAP-CHARG(02)'  RO_ITEM-BATCH.
*FREE DELIVERY CHECK CHANGING OF ITEMCATEGORY : TANN.
IF RO_ITEM-KBETR1 IS INITIAL AND RO_ITEM-KBETR2 IS INITIAL.
PERFORM BDC_FIELD       USING 'VBAP-PSTYV(02)'
                              'ZANN'.
ELSE.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
Condition Types For The Items
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                               '=PKO1'.
PERFORM BDC_FIELD       USING 'RV45A-VBAP_SELKZ(01)' 'X'.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '=V69A_KOAN'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'KOMV-KSCHL(02)'.
Condition Type 1...........
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'KOMV-KSCHL(02)' RO_ITEM-KSCHL1.
PERFORM BDC_FIELD       USING 'KOMV-KBETR(02)' RO_ITEM-KBETR1.
Condition Type 2...........
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '=V69A_KOAN'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'KOMV-KSCHL(02)'.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'KOMV-KSCHL(02)' RO_ITEM-KSCHL2.
PERFORM BDC_FIELD       USING 'KOMV-KBETR(02)' RO_ITEM-KBETR2.
Condition Type 3.............
IF RO_ITEM-KSCHL3 IS NOT INITIAL.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=V69A_KOAN'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'KOMV-KSCHL(02)'.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'KOMV-KSCHL(02)' RO_ITEM-KSCHL3.
    PERFORM BDC_FIELD       USING 'KOMV-KBETR(02)' RO_ITEM-KBETR3.
ENDIF.
Condition Type 4..............
IF RO_ITEM-KSCHL4 IS NOT INITIAL.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=V69A_KOAN'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'KOMV-KSCHL(02)'.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'KOMV-KSCHL(02)' RO_ITEM-KSCHL4.
    PERFORM BDC_FIELD       USING 'KOMV-KBETR(02)' RO_ITEM-KBETR4.
ENDIF.
Condition Type 5...............
IF RO_ITEM-KSCHL5 IS NOT INITIAL.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=V69A_KOAN'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'KOMV-KSCHL(02)'.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'KOMV-KSCHL(02)' RO_ITEM-KSCHL5.
    PERFORM BDC_FIELD       USING 'KOMV-KBETR(02)' RO_ITEM-KBETR5.
ENDIF.
Condition Type 6...............
IF RO_ITEM-KSCHL6 IS NOT INITIAL.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=V69A_KOAN'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'KOMV-KSCHL(02)'.
    PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'KOMV-KSCHL(02)' RO_ITEM-KSCHL6.
    PERFORM BDC_FIELD       USING 'KOMV-KBETR(02)' RO_ITEM-KBETR6.
ENDIF.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '5003'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/EBACK'.
ENDIF.
ENDLOOP.
Saving The Sales Document
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD      USING 'BDC_OKCODE'   '=SICH'.
PERFORM BDC_TRANSACTION TABLES MESSTAB
USING                          'VA01'
                                CTU
                                MODE
                                UPDATE.
perform bdc_dynpro      using 'SAPMV50A' '4004'.
perform bdc_field       using 'BDC_CURSOR'                              'LIKP-VBELN'.
perform bdc_field       using 'BDC_OKCODE'                              '/00'.
*perform bdc_field       using 'LIKP-VBELN'         LIKP-VBELN."         '7012000733'.
perform bdc_dynpro      using 'SAPMV50A' '1000'.
perform bdc_field       using 'BDC_OKCODE'                              '=SICH_T'.
*perform bdc_field       using 'LIKP-BLDAT'       RO_HEADER-SODATE.      '27.06.2006'.
perform bdc_field       using 'BDC_CURSOR'                              'LIKP-WADAT_IST'.
perform bdc_field       using 'LIKP-WADAT'   RO_HEADER-SODATE.  "       '26.05.2006'.
*perform bdc_field       using 'LIKP-WAUHR'                              '00:00:00'.
perform bdc_field       using 'LIKP-BTGEW'                              '10'.
perform bdc_field       using 'LIKP-GEWEI'                              'KG'.
perform bdc_field       using 'LIKP-WADAT_IST' RO_HEADER-SODATE."       '26.05.2006'.
PERFORM BDC_TRANSACTION TABLES MESSTAB
USING                          'VL02N'
                                CTU
                                MODE
                                UPDATE.

Hi,
  From the explanation given, I think if you change the transaction from VL02N to VL01N this should work, because the delivery has not been created yet,
Regards,

Similar Messages

  • Facing problem in ABAP program "HINCALC0"

    hi all,
               i m facing problem in the  ABAP program "HINCALC0". when i m run this hr program we face problem in processing problem is " No entry in table T512W for key 40 /4OD for time 30.04.2009". plz suggest me hw can i rectify this problem.
    thanks

    Hi,
    As mohan said, you will need to create wage type /4OD. Some of the standand Function/PCR calculating amount and trying to push into /4OD which in not available in the system.
    Regards,
    Karunakar

  • Expression problem for ABAP program

    Hi everyone,
    Once i have saw a expression in ABAP program. as follows.
    DATA:drag_object TYPE REF TO lcl_dragdrop_dataobject.
    CATCH SYSTEM-EXCEPRIONS move_cast_error = 1.
    drag_object ?= dragdrop_object->object.
    ENDCATCH.
    IF sy-subrc = 1.
    CALL METHOD dragdrop_object->abort.
    EXIT.
    ENDIF.
    I don't know what is "?=" .
    Please help me.
    Thanks Advanced !

    DATA: airplane TYPE REF TO lcl_airplane,
                cargo_airplane TYPE REF TO lcl_cargo_airplane,
                cargo_airplane2 TYPE REF TO lcl_cargo_airplane.
          CREATE OBJECT cargo_airplane.
          airplane = cargo_airplane.
          cargo_airplane2 ?= airplane.
                 The type of case described above is known as a widening cast because it changes the
                 view to one with more details. The instance assigned (a cargo plane in the above
                 example) must correspond to the object reference (cargo_airplane in the above example),
                 that is, the instance must have the details implied by the reference. This is also known as
                 a u201Cdown castu201D. The widening cast in this case does not cause an error because the
                 reference airplane actually points to an instance in the subclass lcl_cargo_airplane. The
                 dynamic type is therefore u2018REF TO lcl_cargo_airplaneu2019.
    The widening cast logically represents the opposite of the narrowing cast. The widening cast cannot be checked statically, only at runtime. The Cast Operator u201C?=u201D (or the equivalent u201CMOVE ... ?TO u2026u201D) must be used to make this visible.

  • Problem Developing Abap program to use  Enterprise Service Client Proxy

    Hi I am new to using Webservices but I have successfully created a Client Proxy to consume a web service.  In the Abap Development Workbench and have created a Logical Port for it.  The proxy works fine when I test it using F8.
    However I do not seem to be calling it correctly from my program.  When I run the program in debug no exception is generated but the return structure is empty.
    The method call does not require any data in the input structure.
    The code is as follows :
    REPORT  zweb_test_wsclient.
    DATA: object_ref TYPE REF TO zwebco_bcepsoap,
          input TYPE   zwebget_bceplist_soap_in,
          output TYPE   zwebget_bceplist_soap_out,
          exception TYPE REF TO cx_ai_system_fault.
    START-OF-SELECTION.
      TRY.
          CREATE OBJECT object_ref.
              EXPORTING LOGICAL_PORT_NAME = 'LP1'.
        CATCH cx_ai_system_fault INTO exception.
      ENDTRY.
      TRY.
          CALL METHOD object_ref->get_bceplist
            EXPORTING
              input  = input
            IMPORTING
              output = output.
        CATCH cx_ai_system_fault INTO exception.
      ENDTRY.
    END-OF-SELECTION.
    Can tell me what I am missing or what steps I can take to identify the problem ?
    thanks

    Hello Peter,
    I have the same problem as You. Do you remember the solution?
    A lot of thanks,
    jordi

  • Performance problem in ABAP programming

    Hi!
    Please review the following program,
    LOOP AT TG_PRICE INTO WA_PRICE.
        CLEAR WA_VBELN.
        READ TABLE TG_VBELN INTO WA_VBELN WITH KEY KNUMV = WA_PRICE-KNUMV
                                                   POSNR = WA_PRICE-KPOSN.
        IF SY-SUBRC = 0.
          WA_PRICE-VKORG = WA_VBELN-VKORG.
          WA_PRICE-VBELN = WA_VBELN-VBELN.
          WA_PRICE-POSNR = WA_VBELN-POSNR.
          WA_PRICE-MATNR = WA_VBELN-MATNR.
          WA_PRICE-MAKTX = WA_VBELN-MAKTX.
          WA_PRICE-ERNAM = WA_VBELN-ERNAM.
          WA_PRICE-ERDAT = WA_VBELN-ERDAT.
          MODIFY TG_PRICE FROM WA_PRICE.
          DELETE TABLE TG_VBELN FROM WA_VBELN.
        ELSE.
          DELETE TABLE TG_PRICE FROM WA_PRICE.
        ENDIF.
      ENDLOOP.
    comments: internal table TG_PRICE has about 20,000 records and TG_VBELN has about 70,000.
    this segment run spent too much time.
    Comparing the following program, the speed is more faster.
      LOOP AT TG_PRICE INTO WA_PRICE.
        CLEAR WA_KONP.
        SELECT SINGLE KNUMH
                      KBETR
                      KONWA
                      KPEIN
                      KMEIN
                      INTO WA_KONP
        FROM KONP
        WHERE KNUMH = WA_PRICE-KNUMH.
        IF SY-SUBRC = 0.
          WA_PRICE-KBETR_FROM = WA_KONP-KBETR_FROM.
          WA_PRICE-KONWA_FROM = WA_KONP-KONWA_FROM.
          WA_PRICE-KPEIN_FROM = WA_KONP-KPEIN_FROM.
          WA_PRICE-KMEIN_FROM = WA_KONP-KMEIN_FROM.
          VL_AMOUNT = WA_PRICE-KBETR_FROM.
          CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_DISPLAY'
            EXPORTING
              CURRENCY              = WA_PRICE-KONWA_FROM
              AMOUNT_INTERNAL       = VL_AMOUNT
            IMPORTING
              AMOUNT_DISPLAY        = VL_RATE
            EXCEPTIONS
              INTERNAL_ERROR        = 1
              OTHERS                = 2 .
          IF SY-SUBRC = 0.
            WA_PRICE-PRICE_FROM = VL_RATE.
          ENDIF.
          MODIFY TG_PRICE FROM WA_PRICE.
        ELSE.
          DELETE TABLE TG_PRICE FROM WA_PRICE.
        ENDIF.
      ENDLOOP.
    commmets: internal table TG_PRICE has also 20,000 records. Within the Loop, there is system table selection clause. it should be slower than the previous program. But why the previous is more slower, is there something wrong with the READ clasue or any others?
    Many thanks,
    Aries

    Hi Suresh,
    The complete READ statment is as follows:
    READ TABLE TG_VBELN INTO WA_VBELN
         WITH KEY KNUMV = WA_PRICE-KNUMV
                  POSNR = WA_PRICE-KPOSN.
    Hi Andreas,
    The two internal tables have already been sorted as follows:
      SORT TG_PRICE BY KNUMV KPOSN.
      SORT TG_VBELN BY KNUMV POSNR.
    And these two internal table are defined as follows:
    Price
    TYPES:BEGIN OF YS_PRICE,
             KNUMV      TYPE KNUMV,     "Number of the document condition
             KPOSN      TYPE KPOSN,     "Condition item number
             KNUMH      TYPE KNUMH,     "Condition record number
             VKORG      TYPE VKORG,     "Sales orgnazation
             VBELN      TYPE VBELN_VA,  "Order Number
             POSNR      TYPE POSNR_VA,  "Item number
             MATNR      TYPE MATNR,     "Material Number
             MAKTX      TYPE MAKTX,     "Material Description
             KBETR_FROM TYPE KBETR_KOND,"Changed From Price
             KONWA_FROM TYPE KONWA,     "Price Unit
             KPEIN_FROM TYPE KPEIN,     "Per
             KMEIN_FROM TYPE KMEIN,     "Per
             KBETR_TO   TYPE KBETR_KOND,"Changed to Price
             KONWA_TO   TYPE KONWA,     "Price Unit
             KPEIN_TO   TYPE KPEIN,     "Per
             KMEIN_TO   TYPE KVMEI,     "Per
             ERNAM      TYPE ERNAM,     "Created by
             ERDAT      TYPE ERDAT,     "Date Created
             PRICE_FROM TYPE P  DECIMALS 2,
             PRICE_TO   TYPE P  DECIMALS 2,
          END OF YS_PRICE.
    Sales order
    TYPES: BEGIN OF YS_VBELN,
             KNUMV      LIKE VBAK-KNUMV,"Number of the document condition
             VKORG      TYPE VKORG,     "Sales orgnazation
             VBELN      TYPE VBELN_VA,  "Order Number
             POSNR      TYPE POSNR_VA,  "Item number
             MATNR      TYPE MATNR,     "Material Number
             MAKTX      TYPE MAKTX,     "Material Description
             ERNAM      TYPE ERNAM,     "Created by
             ERDAT      TYPE ERDAT,     "Date Created
           END OF YS_VBELN.
    DATA: TG_PRICE  TYPE YS_PRICE  OCCURS 0,
          TG_VBELN  TYPE YS_VBELN  OCCURS 0.
    Do you have any ideas?
    Many thanks,
    Aries

  • Urgent: Calling ABAP Program using JMS

    Hi,
    I have a scenario where legacy system pass some messages to ABAP Program and this program can handle one message at a time (written in that way).
    Now the receiver communication channel is configured to access J2SE adapter. This J2SE adapter stores the message on R/3 system and triggers the ABAP program located in R/3 system.
    Now when multiple messages are coming at a time in SAP-XI and processed successfully and handover to J2SE adapter. But J2SE adapter triggers the ABAP program for all messages. And here is the problem. ABAP program is not supporting multi - threading.
    my idea is to use JMS adapter...can you guys suggest me how to achieve result and how to configure JMS or any other adapter to call ABAP Program so that only one message will pass to ABAP program at a time.
    Regards,
    Gourav Khare

    Hi,
    First find out where your ABAP program the data written.You need to write it into and spool then only you can see it.
    Transaction SP01, you can use the FM 'GET_PRINT_PARAMETERS' in your abap program to write to spool.
    Thanks,
    Ravi

  • Problem in  using function module parameters in abap program

    i want to use the coding present in on one of the function module 'AS_API_INFOSTRUC_FIND'  i got the problem using the function module parameters in my abap program.
    these are the parameters inside fm
    ""Lokale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(I_FIELDCAT) TYPE  AIND_FCAT
    *"             VALUE(I_FIELDS) TYPE  TABLE OPTIONAL
    *"             VALUE(I_OBLIGATORY_FIELDS) TYPE  TABLE OPTIONAL
    *"       EXPORTING
    *"             VALUE(E_INFOSTRUC) TYPE  AIND_DESC
    *"             REFERENCE(E_ALL_FIELDS) TYPE  TABLE
    *"             REFERENCE(E_MATCHING_FIELDS) TYPE  TABLE
    *"       EXCEPTIONS
    *"              NO_INFOSTRUC_FOUND
    i want to declare     E_ALL_FIELDS  parameter    in my abap program,
    i have declared as 
    data: E_ALL_FIELDS TYPE TABLE.
    but   the system throws error that
    'type of field 'TABLE'  is generic .no table line has been specified'.
    i want to use it in my abap program how can i declare in my abap program .

    You have to declare the table using any specific type.
    The type table in the FM is generic so you can pass any type you need.
    For instance:
    TYPES: BEGIN OF ty_fields,
             fieldname LIKE dfies-fieldname,
           END OF ty_fields,
    TYPES: TY_T_GLU1              LIKE GLU1                     OCCURS 0,
           ty_t_fields            type ty_fields                occurs 0.
      DATA: lt_info_struct_fields TYPE ty_t_fields WITH HEADER LINE,
            lt_matching_fields    TYPE ty_t_fields WITH HEADER LINE.
        CALL FUNCTION 'AS_API_INFOSTRUC_FIND'
             EXPORTING
                  i_fieldcat         = ft_fieldcat-fieldcat
                  i_fields           = ft_fields_filled[]
             IMPORTING
                  e_infostruc        = lv_info_struct_name
                  e_all_fields       = lt_info_struct_fields[]
                  e_matching_fields  = lt_matching_fields[]
             EXCEPTIONS
                  no_infostruc_found = 1.

  • Problem with the active version of the transfer rule ABAP program with sour

    Hi,
    I have a problem with the active version of the transfer rule ABAP program with source system EXCEL. 
    The system does not react to changes done in the transfer rule coding. For FISCPER I have hardcoded the result 'BABABA' and still the results delivered are those from the CSV.
    Resetting the system buffers does not help. The problem is systematic in combination with source system EXCEL (i.e. not only 1 InfoSource).  Checking the active program Extras->Display Program shows the coding (result='BABABA') being there, but
    as stated, the system does not produce the result BABABA, but instead the result of the CSV.
    It seems as if the original version from the very first activation of the transfer rule program remains somewhere and continues to be used.  Does anybody know how to flush it out and get the system to actually use the coding appearing as the active program.
    I have posted an OSS note, but SAP takes it time to answer and I am under time pressure so I figured that maybe one of you know who to solve it before SAP does.
    Greetings and thanks,
    Martin

    Hi martin,
    just try to go out the RSA1 and then return to your infopac. ...
    sometimes there some "cache" trouble

  • Problem in triggering abap program in process chain

    i m running a infopackage in a process chain .
    this infopackage creates the request in the DSO .
    after infopackage i m including the abap program to delete the same request in the process chain .
    but the abap program is not getting triggered .i have maintained the variant correctly for the program in the process chain .
    what can be done so that the program gets triggered .

    Hi,
    You can trigger you ABASP program from
    1. SM64  : copy the ABAP program's Afer event and parambeter and give it there and execute
    2.or go to
    SE37 >>Program : BP_EVENT_RAISE  >> say test execute
    and give the same after event and parameter ..and execute
    this might trigger your program
    Hope this helps you,
    Regrads,
    shikha

  • Call / make a NACE-Message from an ABAP Program

    Hi all,
    Does anyone knows how to call / make a NACE-Message from an ABAP Program?
    Is there a possibility to call a functionmodul with the needed basic informations (doc. number, sales-org etc.) which will start the NACE Message Procedure?
    Reason:
    We have make IDOCs for order confirmation, delivery and billing - and make the NACE ALE/EDI Messages.
    But we have the problem that we are using Z-Reports for Mass-Printing the documents. So we have no active NACE Messages for printing and we want to send the IDOCs at the moment when we print out the docs.
    It's not possible, to change the business procedures and/or using SAP standard mass print prg. because this is too complicated (we think at the moment).
    Regards,
    Daniel

    Hi,
    Use this function module.
      CHECK xscreen = space.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
        EXPORTING
          msg_arbgb = syst-msgid
          msg_nr    = syst-msgno
          msg_ty    = syst-msgty
          msg_v1    = syst-msgv1
          msg_v2    = syst-msgv2
          msg_v3    = syst-msgv3
          msg_v4    = syst-msgv4
        EXCEPTIONS
          OTHERS    = 1.
    Regards,
    Nisrin.

  • Find abap programs

    Hi
    How can we find out that whether there is an abap program written for a paticular query or not.
    I have got a delivery report and the total volume of quantity moved is wrong.The kFigure name is moved quantity.BUt when i double click on it in the query it shows a box in which we come to know that it is geting data from delivery quantity.I want to know how can we now check the data in BW because the query is being supplied by a multi provider.How should i proceed to check where is the problem.is it i BW side or Program or query.
    Will appreciate help.thanks

    Tom,
    One of the challenges of working in BW is investigating data issues. User points out that the numbers are incorrect and you have to find out where the problem is.
    First thing I ask a user is what is the expected value and how is (s)he validating on the R/3 side. Then, I compare the filters that are used on R/3 and the filters that are used in BW query. If they are identical, we proceed with further investigation otherwise we should try to match the filters and see if the results match.
    Then, you have to see which InfoProviders are feeding the MultiProvider. Go the the manage screen of the InfoProvider where this data is stored and look at the InfoProvider contents for the same filters. More than likely it will show what the query is showing.
    From this point, there are many possible paths to choose from based on how data is being loaded. But, I am not sure if you are asking help with fundamental architecture of BW (what are all the objects that lie between a MultiProvider and R/3 extract) or if you a specific question.

  • How to get a parameter from BPC and use it in ABAP program

    Hello gurus!
    I got a problem...
    SAP BPC will send parameters such as year, division, category, company code and so on via script logic to SAP BW.
    I need to get these parameters from BPC and use them in a ABAP program as a filter.
    This ABAP program will do several routines and return new values to BPC. It must be made on ABAP and I need to filter data to avoid performance issues.
    Does anybody knows how to do it? or have a example of it?
    Thank you in advance.
    Regards,
    Rubens Kumori

    Hello, I'm looking for a suggest.
    I need to pass two parameters (users can input them in a data manager package in bpc) to a BAdI.
    In this BAdI I write a code that store those parameters in a InfoObject.
    The problem is:
    - one parameter is for CATEGORY value. CATEGORY is a dimension of the application and I read the value with a code like this:
          READ TABLE it_cv INTO l_s_it_cv
               WITH TABLE KEY dim_upper_case = 'C_CATEGORY'.
    - other parameter is a generic DATE. this parameter is not a dimension of the application and I don't know how I can retrieve this value in BAdI.
          READ TABLE it_cv INTO l_s_it_cv
               WITH TABLE KEY dim_upper_case = '.....'.
    The data manager dynamic script is:
    PROMPT(SELECTINPUT,,,,"%CATEGORY_DIM%")
    PROMPT(TEXT,%SELECTED_DAY%,"Write the date (format YYYYMMDD)",)
    I also have a dynamic constant that assign the name %CATEGORY_DIM% to "C_CATEGORY" value.
    Can anyone help me?
    thanks a lot
    Edited by: Luca Novali on Feb 13, 2012 3:49 PM

  • How to create the condition record by ABAP program

    Hi Friends,
    I want to create/change the condition record of PR00 by ABAP program. It seems that there have no such BAPI/standard function can help on this. Can any one of you point out a way to me?? Thanks in addvance.
    Joe GR.

    Joe,
      Check with below FM..
    BAPI_PRICES_CONDITIONS.
    Check this link:
    Re: Sample code for  BAPI_PRICES_CONDITIONS
    examples....
    http://www.4ap.de/abap/bapi_prices_conditions.php
    Two useful threads on Same topic
    Re: Sample code for  BAPI_PRICES_CONDITIONS
    Re: Problem with BAPI_PRICES_CONDITIONS
    BAPI_PRICES_CONDITIONS
    Please check this sample code from other thread.
    wtable1-table_no = '306'.
    wtable1-applicatio = 'V'.
    wtable1-cond_type = 'ZPR0'.
    wtable1-operation = '009'.
    wtable1-varkey = '13001001USD 000000000050068946'.
    wtable1-valid_to = '99991231'.
    wtable1-valid_from = '20051101'.
    wtable1-cond_no = '$000000001'.
    APPEND wtable1 TO table1.
    wtable2-operation = '009'.
    wtable2-cond_no = '$000000001'.
    wtable2-created_by = sy-uname.
    wtable2-creat_date = '20051022'.
    wtable2-cond_usage = 'A'.
    wtable2-table_no = '110'.
    wtable2-applicatio = 'V'.
    wtable2-cond_type = 'ZPR0'.
    wtable2-varkey = '13001001USD 000000000050068946'.
    wtable2-valid_from = '20051101'.
    wtable2-valid_to = '99991231'.
    APPEND wtable2 TO table2.
    wtable3-operation = '009'.
    wtable3-cond_no = '$000000001'.
    wtable3-cond_count = '01'.
    wtable3-applicatio = 'V'.
    wtable3-cond_type = 'ZPR0'.
    wtable3-scaletype = 'A'.
    wtable3-scalebasin = 'C'.
    wtable3-scale_qty = '1'.
    wtable3-cond_p_unt = '1'.
    wtable3-cond_unit = 'EA'.
    wtable3-calctypcon = 'C'.
    wtable3-cond_value = '454'.
    wtable3-condcurr = 'USD'.
    APPEND wtable3 TO table3.
    CALL FUNCTION 'BAPI_PRICES_CONDITIONS'
    EXPORTING
    PI_initialmode = 'X'
    PI_BLOCKNUMBER =
    TABLES
    ti_bapicondct = table1
    ti_bapicondhd = table2
    ti_bapicondit = table3
    ti_bapicondqs = table4
    ti_bapicondvs = table5
    to_bapiret2 = table6
    to_bapiknumhs = table7
    to_mem_initial = table8
    EXCEPTIONS
    update_error = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    READ TABLE table6 WITH KEY type = 'E' TRANSPORTING NO FIELDS.
    IF sy-subrc = 0.
    loop at table6 into ret.
    write: / ret-type, ret-message, ret-id, RET-LOG_NO, RET-LOG_MSG_NO,
    RET-MESSAGE_V1, RET-MESSAGE_V2, RET-MESSAGE_V3, RET-MESSAGE_V4,
    RET-PARAMETER,RET-ROW,RET-FIELD.
    endloop.
    ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    *EXPORTING
    WAIT =
    IMPORTING
    return = ret
    ENDIF.
    Don't forget to reward if useful....

  • How to check whether a batch input session is completed in ABAP program

    I have created a ABAP program to create a batch input session (reference to RSBDCSUB). After the creation of the batch input session, I kick it to start and read the execution log. However, sometimes I cannot read anything from the execution log as the execution of the batch input is a synchronized process to the execution of my program, i.e. at the time being that I try to read the log of a particular transaction, that transaction is being processing / haven't start processing.
    How can I check whether a batch input session is completed in the program?
    The code that corresponding to the triggering of batch input session:
    SUBMIT (SUBREPORT)
       USER MTAB-USERID
       VIA JOB MTAB-GROUPID
       NUMBER JNUMB
       WITH QUEUE_ID  EQ MTAB-QID
       WITH MAPPE     EQ MTAB-GROUPID
       WITH MODUS     EQ 'N'
       WITH LOGALL    EQ LMODUS
    Or is there any method to wait here until the process is completed before further processing?

    Hi gundam,
    1. Or is there any method to wait here until the process is completed before further processing?
    There is no such direct method to wait.
    2. Immediately after submitting in background,
       we cannot wait
      neither can we LOOP and go on detecting
      whether the b/g process has completed or not !
    3. To over come such problems,
      we have to use another technique.
    4. we have to submit another
       job which will get triggered
       on event SAP_END_OF_JOB
       ie. when the original job will finish,
      our new job will AUTOMATICALLY get triggered,
    5. This new job / program
       will do the FURTHER actions !
    regards,
    amit m.

  • Reading the XML message from Xi stored in XML format from a abap program.

    Hi Gurus,
    My requirement here is to read the data that will be coming from Xi from my custom abap program and updating 2 data base tables. The method is after the data mapping is done a class is generated in abap proxy in which a method is available. Inside the method i am writing the code for getting the Xi data stored as a payload message which can be seen in the transaction SXMB_MONI. My code is given below.
    ***begin code***
    method ZII_PAYROLL_HEADER_IN~PAYROLL_HEADER_IN.
    **** INSERT IMPLEMENTATION HERE **** ***
    data: ln type i.
    DATA: i_items TYPE TABLE OF ZPAYLOAD_WRAPPER_EMPLOYEE_REC3.
    *DATA: wa_items type ZPAYLOAD_WRAPPER_EMPLOYEE_TAB5.
    data: wa_items type ZPAYLOAD_WRAPPER_EMPLOYEE_REC3.
    DATA:PERNR TYPE STRING.
    *data: it_ZPAYLOAD_WRAPPER16  TYPE ZPAYLOAD_WRAPPER16.
    I_ITEMS[] = INPUT-PAYLOAD_WRAPPER-BODY-XMLDOC-PAYROLL_PERIOD_OVERVIEW-EMPLOYEE_RECORD[].
    *I_ITEMS = INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord.
    describe table i_items[] lines ln.
    endmethod.
    **End code***
    As per the logic the data stored in the XML message should be avaialble in INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord which i am assigning to a local internal table in the class.
    But in my case there is no data coming in
    INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord.
    But i can see the data transffered from XI in the transaction SXMB_MONI->XML message->inbound message->payload.
    Is there any way to read the data stored in the XML message in the transaction SXMB_MONI.
    Also why the data is not coming in
    INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord inside the class.
    If there is any solution for this problem please post it.

    You can use function module SXMB_GET_MESSAGE_PAYLOAD.
    Code snippet:
    DATA: ls_mast      TYPE sxmspmast,
          ls_msgkey    TYPE sxmsmkey,
          lv_bin_xml   TYPE xstring,
          lv_str_xml   TYPE string.
    * select sxmspmast into ls_mast
      ls_msgkey-msgid  = ls_mast-msgguid.
      ls_msgkey-pid    = 'RECEIVER'.
      CALL FUNCTION 'SXMB_GET_MESSAGE_PAYLOAD'
        EXPORTING
          im_msgkey      = ls_msgkey
          im_archive     = ' '
          im_version     = ls_mast-vers
        IMPORTING
          ex_msg_bytes   = lv_bin_xml
        EXCEPTIONS
          not_authorized = 1
          no_message     = 2
          internal_error = 3
          no_payload     = 4
          OTHERS         = 5.
      IF sy-subrc EQ 0.
          lv_str_xml = cl_soap_moni_helper=>convert_xstring_to_string( xstring_in = lv_bin_xml ).
      ENDIF.

Maybe you are looking for