Bapiekkn

Hi,
I am having a problem with Bapiekkn.  On execution to create a Purchase order I get the following message:
Asset 40061 1 not in company code. 
40061 is the Asset_No and 1 is the Sub_Number
What could possibly be wrong?  Is there a certain combination of Asset_No and Sub_Number that I can get the back end to accept or is this something that needs to be set in the back end?  Not very familiar with SAP backend so thanks for your help.

Brian,
Your guess is right.
If you look at the back end, the organization if divided into company codes and each asset in the organization belongs to a specific company code.
So, when you create a PO you specify the company code in the PO header data. And when you specify the account assignment data the asset that you are specifying should belong to the same company code.
The data ideally should be given to you by the SAP functional consultant, or alternatively you can look at the data in the existing PO's and use the same to test your functionality.
regards,
Ravi
Note - Please mark all the helpful answers

Similar Messages

  • Need info on how to set GR-IV indicator

    Hi,
    We are on SRM 3.0, EBP 4.0 SP11.
    We have a condition for which we need to check the GR-IV indicator for all PO' line items going to R/3 from SRM.
    I tried using the BADI BBP_CREATE_PO_BACK, method FILL_PO_INTERFACE.
    In the interface, I am not able to find GR-IV indicator. I can find the GR and GR-Non val and IR indicators, but not the GR-IV flag.
    Can someone help me as to how I can achieve this?
    Thanks,
    Srivatsan

    Which SRM and R/3 version are you using ? Which Scenario in SRM ?
    <u>I think ir_ind => GR-IV flag in the BADI</u>
    <b>Please implement the code in BADI -> BBP_CREATE_PO_BACK to get the fields mapped properly before the BAPI gets called in R/3 system.
    Make an Implementation of bbp_create_po_back BADI.
    Inside the Implementation of the BADI , bbp_create_req_back, you can do code
    according to your requirements.</b>
    <u>Sample Code</u>
    METHOD if_ex_bbp_create_po_back~fill_po_interface.
      DATA: ls_po_items          TYPE TABLE OF BAPIEKANC,
                 ls_po_items_acc_data TYPE TABLE OF  BAPIEKKN.
      CLEAR ls_req_items.
      LOOP AT req_items INTO ls_req_items.
    *--- Reset the IR Indicator for Items with Zero net price
        ls_po_items_acc_data-po_item = ls_req_items-po_item.
        ls_po_items_acc_data-ir_ind  = space.
        ls_po_items_acc_data-gr_ind  = c_x.
        ls_po_items_acc_data-gr_non_val = c_x.
    *--- Reset the IR Indicator for Zero Priced Item
        APPEND ls_req_items TO req_items_acc_data.
      ENDLOOP.
    ENDMETHOD.
    I found some links which might help you in finding the details.
    <b>http://help.sap.com/saphelp_srm50/helpdata/en/d6/e9343e8c7f6329e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/40/654d216f12754e9decdaf4d360bc1c/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/d3/3891414ef4a209e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/d1/f71e4a0757714d9b1a0d4bbaf1e440/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/0a/baf73a93ad9179e10000000a114084/frameset.htm</b>
    Please refer to following OSS notes as well
    <b>Note 508632 - Extended - Acct assgnment change from 'Multiple' to 'Single'
    Note 480540 - Changing purchase orders in enhanced classic scenario
    Note 508788 - Incorrect account assignment in purchase order back end</b>
    Hope this will help.
    Please reward suitable points, incase it suits your requirements.
    Regards
    - Atul

  • Error in transmission with BBPSC01

    I have typical problem where in
    When  ordered, SC created via BBPSC02 goes through without errors. But the cart that is created via BBPSC01 will have ' Error in Transmission, With an error 'SE142 please enter qunatity in line 3000111'. This error is coming from the backend in the RFC mode while debugging BBP_REQREQ_TRANSFER.
    This happens only when number items in the cart are more than four, if the items were less than or equal to 4, follow on document is created even in case of BBPSC01.
    We are implementing BADI for Follow-on-Document for service-category.
    May I know 1.what could be the difference between these two templates.2.And where they exactly these dump the values 3. How could I go from here 4.what fields I need to look while debugging.
    Input will be:
    BBPSC02:  User selects description item and the service button, enters the price, quantiy as 1 service unit and selects the a specific-service-Category
    BBPSC01: Selects the Same category as in BBPSC02 enters the same data .
    Thank you,
    Manyam

    Thank you.
    This is a long code please bear with me. And provide your suggestion.
    METHOD if_ex_bbp_create_req_back~fill_req_interface.
    Method Parameters:
    *LOGICAL_SYSTEM     TYPE BBP_BACKEND_DEST-LOG_SYS OPTIONAL
    *REQ_ITEMS            TYPE BBP_REQ_ITEM_SPOOL
    *REQ_ITEM_ACCOUNT     TYPE BBP_REQ_ACCT_SPOOL
    *REQ_ITEM_TEXT     TYPE BBP_REQ_TEXT_SPOOL
    *REQ_LIMITS            TYPE BBP_REQ_LIMITS_SPOOL
    *REQ_CONTRACT_LIMITS     TYPE BBP_REQ_LIMITS_CONTR_SPOOL
    *REQ_SERVICES            TYPE BBP_REQ_SERV_SPOOL
    *REQ_SERV_ACCOUNT     TYPE BBP_REQ_SERV_ACC_SPOOL
    *REQ_SERV_TEXT     TYPE BBP_REQ_SERV_TEXT_SPOOL
    *REQ_ADDRDELIVERY     TYPE BBP_REQ_ADDRDELIVERY_SPOOL
    This is the logic to create a Service Requisition based on a service
    material group selected in the Shopping Cart.  This logic is based on
    SAP's standard function SPOOL_RQ_READ_BAPI_EXPORTS from which this
    BADI is called.
    INSERT FUNCTION SPOOL_RQ_READ_BAPI_EXPORTS TO REPROCESS DATA FOR
    SERVICE SPECIAL REQUESTS.  -- IOK 07/13/01
    *function spool_rq_read_bapi_exports.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     VALUE(REQNO) LIKE  REQHEAD-REQNO
    *"     VALUE(REQUIS_NUMBER) LIKE  BAPIEBANC-PREQ_NO
    *"  EXPORTING
    *"     VALUE(SKIP_ITEMS_WITH_ERROR) LIKE  BAPIMMPARA-SELECTION
    *"     VALUE(LOGICAL_SYSTEM) LIKE  BBP_BACKEND_DEST-LOG_SYS
    *"  TABLES
    *"      REQUISITION_ITEMS STRUCTURE  BAPIEBANC
    *"      REQUISITION_ACCOUNT_ASSIGNMENT STRUCTURE  BAPIEBKN
    *"      REQUISITION_ITEM_TEXT STRUCTURE  BAPIEBANTX
    *"      REQUISITION_LIMITS STRUCTURE  BAPIESUHC
    *"      REQUISITION_CONTRACT_LIMITS STRUCTURE  BAPIESUCC
    *"      REQUISITION_SERVICES STRUCTURE  BAPIESLLC
    *"      REQUISITION_SRV_ACCASS_VALUES STRUCTURE  BAPIESKLC
    *"      RETURN STRUCTURE  BAPIRETURN
    *"      REQUISITION_SERVICES_TEXT STRUCTURE  BAPIESLLTX
    *"      REQUISITION_ADDRDELIVERY STRUCTURE  BBPS_RQADDRDELIVERY_46
    *"      CONTROL_RECORD STRUCTURE  BBP_CONTROL_RECORD
    *"  EXCEPTIONS
    *"      INTERNAL_ERROR
    ---- Data Declaration -  from LBBP_BS_RQTOP -
    - Header                         -
      DATA: reqheader TYPE reqhead.
    - Header services                -
      DATA: reqheaders TYPE reqheads.
    - References -
      TYPES: reqreferences_type TYPE reqref.
      DATA:  reqreferences      TYPE STANDARD TABLE OF reqreferences_type
                                     INITIAL SIZE 10.
      DATA:  l_reqreferences    TYPE reqreferences_type,
             x_reqreferences    TYPE reqreferences_type.
    - Administrative lines requirement request -
      TYPES: reqlines_type TYPE reqline.
      DATA:  reqlines      TYPE STANDARD TABLE OF reqlines_type
                                INITIAL SIZE 10.
      DATA:  l_reqlines    TYPE reqlines_type.
    - MRO-Lines requirement request -
      TYPES: reqlinemas_type TYPE reqlinema_eci.
      DATA:  reqlinemas      TYPE STANDARD TABLE OF reqlinemas_type
                                  INITIAL SIZE 10.
      DATA:  l_reqlinemas    TYPE reqlinemas_type.
    - SRV-Lines requirement request -
      TYPES: reqlinesrs_type TYPE bbps_reqlinesr_eci.
      DATA:  reqlinesrs      TYPE STANDARD TABLE OF reqlinesrs_type
                                  INITIAL SIZE 10.
      DATA:  l_reqlinesrs    TYPE reqlinesrs_type.
    - Texts requirement request -
      TYPES: reqtexts_type TYPE reqtext.
      DATA:  reqtexts      TYPE STANDARD TABLE OF reqtexts_type
                                INITIAL SIZE 10.
      DATA:  l_reqtexts    TYPE reqtexts_type.
    *- Delivery address
      TYPES: reqaddress_type TYPE reqaddress.
      DATA:  reqaddress      TYPE STANDARD TABLE OF reqaddress_type
                                  INITIAL SIZE 10.
      DATA:  l_reqaddress    TYPE reqaddress_type.
    - Account assignment requirement request -
      TYPES: reqaccts_type TYPE reqacct_470.
      DATA:  reqaccts      TYPE STANDARD TABLE OF reqaccts_type
                                INITIAL SIZE 10.
      DATA:  l_reqaccts    TYPE reqaccts_type.
    - tablekey with the shortlife-line -
      DATA: BEGIN OF shortkey,
               client   TYPE ec_client, "REQLINE-CLIENT,
               reqno    TYPE ec_reqno,  "REQLINE-REQNO,
               reqsline TYPE reqsline,  "REQLINE-REQSLINE,
               reqlline TYPE reqlline,  "REQLINE-REQLLINE,
            END OF shortkey.
    - tablekey with the longlife-line -
      DATA: BEGIN OF longkey,
               client   TYPE ec_client, "REQLINE-CLIENT,
               reqno    TYPE ec_reqno,  "REQLINE-REQNO,
               reqlline TYPE reqlline,  "REQLINE-REQLLINE,
            END OF longkey.
      DATA: BEGIN OF bankey,
                preq_no    TYPE banfn, "BAPIEBAN-PREQ_NO,
                preq_item  TYPE bnfpo, "BAPIPOGN-PREQ_ITEM,
            END OF bankey.
    any other working fields
      DATA: h_preq_item     TYPE bnfpo,       "BAPIEBANC-PREQ_ITEM,
            h_srv_item      TYPE bnfpo,       "BAPIEBANC-PREQ_ITEM,
            h_logsys        TYPE log_system.  "reqref-logical_system.
      DATA: h_serial_no     TYPE dzebkn.      "BAPIEBKN-SERIAL_NO.
      DATA: h_packno_item   TYPE packno,      "BAPIESLL-PCKG_NO,
            h_packno_srv    TYPE packno,      "BAPIESLL-PCKG_NO,
            h_introw        TYPE srv_line_no, "BAPIESLL-LINE_NO,
            h_serial_no_srv TYPE dzekkn,      "BAPIESKN-SERIAL_NO,
            h_srv_outl_created,
            next TYPE i,
            h_index         LIKE sy-tabix,
            h_wempf         TYPE wempf.       "bapiekkn-gr_rcpt.
    ------ End of std data declaration -
      DATA:   l_req_items               TYPE bapiebanc,
              l_req_item_account        TYPE bapiebkn,
              l_req_item_text               TYPE bapiebantx,
              l_req_limits               TYPE bapiesuhc,
              l_req_contract_limits      TYPE bapiesucc,
              l_req_services               TYPE bapiesllc,
              l_req_serv_account        TYPE bapiesklc,
              l_req_serv_text               TYPE bapieslltx,
              l_req_addrdelivery        TYPE bbps_rqaddrdelivery_46.
      DATA:
           old_req_items           TYPE STANDARD TABLE OF bapiebanc,
           old_req_item_account    TYPE STANDARD TABLE OF bapiebkn,
           old_req_item_text       TYPE STANDARD TABLE OF bapiebantx,
           old_req_limits          TYPE STANDARD TABLE OF bapiesuhc,
           old_req_contract_limits TYPE STANDARD TABLE OF bapiesucc,
           old_req_services        TYPE STANDARD TABLE OF bapiesllc,
           old_req_serv_account    TYPE STANDARD TABLE OF bapiesklc,
           old_req_serv_text       TYPE STANDARD TABLE OF bapieslltx,
           old_req_addrdelivery    TYPE STANDARD TABLE OF
                                              bbps_rqaddrdelivery_46.
      DATA: l_mat_group TYPE comm_category-category_id.
      DATA: f_change_required TYPE c,
            f_limit_change    TYPE c,
            f_mat_sr_change   TYPE c,
            f_first_change    TYPE c VALUE 'X'.
    Data declaration for Shopping Cart number and PO number
      DATA: reqno          TYPE ec_reqno,
            requis_number  TYPE banfn.
      DATA: l_current_item TYPE bnfpo,
            line_item(5)   TYPE n.
    ---- Begin Processing ----
      DATA: l_requis_number TYPE banfn.   "jms 022802
    DEBUG TOOL ****** Goto SM50
    *data: i type i value 1.
    *while i <> 0.
    i = i + 1.
    *endwhile.
    END DEBUG TOOL *******
    Get Req Number and Shopping Cart Number
    read table req_items into l_req_items index 1.
    requis_number = l_req_items-preq_no.
    select single reqno
         into  (reqno)
         from  reqref
         where refnumber = requis_number.
    read detailed data from the requirement request
    call function 'BBP_REQREQ_GETDETAIL'
          EXPORTING
               reqno               = reqno
          IMPORTING
               req_header          = reqheader
               req_header_srv      = reqheaders
          TABLES
               req_reference       = reqreferences
               req_line            = reqlines
               req_line_mat        = reqlinemas
               req_line_srv        = reqlinesrs
               req_text            = reqtexts
               req_acct            = reqaccts
               req_address         = reqaddress
          EXCEPTIONS
               not_found           = 1
               foreign_lock        = 2
               no_enqueue_possible = 3
               others              = 4.
    if sy-subrc <> 0.
       raise internal_error.
       exit.
    endif.
    Begin JMS
    PO_NUM = PO_HEADER-PO_NUMBER.
    CMH Data declaration
      TYPES: et_header TYPE bbp_pds_sc_header_d.
      DATA:  t_et_header TYPE STANDARD TABLE OF et_header INITIAL SIZE 0,
             x_et_header TYPE et_header.
      TYPES: et_item TYPE bbp_pds_sc_item_d.
      DATA:  t_et_item TYPE STANDARD TABLE OF et_item INITIAL SIZE 0,
             x_et_item TYPE et_item.
      TYPES: sc_header TYPE bbp_pds_sc_header_d.
      DATA:  x_sc_header TYPE sc_header.
      TYPES: sc_is_pd TYPE xfeld.
      DATA:  l_sc_is_pd TYPE sc_is_pd.
      TYPES: sc_item TYPE bbp_pds_sc_item_d.
      DATA:  t_sc_item TYPE STANDARD TABLE OF sc_item INITIAL SIZE 0,
             x_sc_item TYPE sc_item.
      TYPES: sc_account TYPE bbp_pds_acc.
      DATA:  t_sc_account TYPE STANDARD TABLE OF sc_account INITIAL SIZE 0,
             x_sc_account TYPE sc_account.
      TYPES: sc_partner TYPE bbp_pds_partner.
      DATA:  t_sc_partner TYPE STANDARD TABLE OF sc_partner INITIAL SIZE 0,
             x_sc_partner TYPE sc_partner.
      TYPES: sc_confirm TYPE bbp_pds_con.
      DATA:  t_sc_confirm TYPE STANDARD TABLE OF sc_confirm INITIAL SIZE 0,
             x_sc_confirm TYPE sc_confirm.
      TYPES: sc_longtext TYPE bbp_pds_longtext.
      DATA:  t_sc_longtext TYPE
               STANDARD TABLE OF sc_longtext INITIAL SIZE 0,
             x_sc_longtext TYPE sc_longtext.
      TYPES: sc_limit TYPE bbp_pds_limit.
      DATA:  t_sc_limit TYPE STANDARD TABLE OF sc_limit INITIAL SIZE 0,
             x_sc_limit TYPE sc_limit.
      TYPES: sc_orgdata TYPE bbp_pds_org.
      DATA:  t_sc_orgdata TYPE
               STANDARD TABLE OF sc_orgdata INITIAL SIZE 0,
             x_sc_orgdata TYPE sc_orgdata.
      TYPES: sc_tax TYPE bbp_pds_tax.
      DATA:  t_sc_tax TYPE STANDARD TABLE OF sc_tax INITIAL SIZE 0,
             x_sc_tax TYPE sc_tax.
      TYPES: sc_pridoc TYPE bbp_pds_prc.
      DATA:  t_sc_pridoc TYPE STANDARD TABLE OF sc_pridoc INITIAL SIZE 0,
             x_sc_pridoc TYPE sc_pridoc.
      TYPES: sc_messages TYPE bbp_pds_messages.
      DATA:  t_sc_messages TYPE
               STANDARD TABLE OF sc_messages INITIAL SIZE 0,
             x_sc_messages TYPE sc_messages.
      TYPES: sc_actval TYPE bbp_pds_actval.
      DATA:  t_sc_actval TYPE STANDARD TABLE OF sc_actval INITIAL SIZE 0,
             x_sc_actval TYPE sc_actval.
      TYPES: sc_acc_actval TYPE bbp_pds_actval.
      DATA:  t_sc_acc_actval TYPE STANDARD TABLE OF sc_acc_actval
                                                          INITIAL SIZE 0,
             x_sc_acc_actval TYPE sc_acc_actval.
      TYPES: sc_header_rel TYPE bbp_pds_hrel.
      DATA:  t_sc_header_rel TYPE STANDARD TABLE OF sc_header_rel
                                                          INITIAL SIZE 0,
             x_sc_header_rel TYPE sc_header_rel.
      TYPES: sc_itmlim_rel TYPE bbp_pds_ilrel.
      DATA:  t_sc_itmlim_rel TYPE STANDARD TABLE OF sc_itmlim_rel
                                                          INITIAL SIZE 0,
             x_sc_itmlim_rel TYPE sc_itmlim_rel.
      TYPES: it_cuf_item_type TYPE bbps_cuf_item.
      DATA:  t_it_cuf_item TYPE STANDARD TABLE OF it_cuf_item_type
                                                          INITIAL SIZE 0,
             x_it_cuf_item TYPE it_cuf_item_type.
    - Contract limits                -
      TYPES: reqconlimits_type TYPE reqheads.
      DATA:  reqconlimits      TYPE STANDARD TABLE OF reqconlimits_type
                                INITIAL SIZE 10.
      DATA:  l_reqconlimits    TYPE reqconlimits_type.
      DATA:   lv_abort      TYPE xfeld,
              lv_is_pd      TYPE xfeld,
              lv_deliv_date LIKE sy-datum,
              lv_tabix      LIKE sy-tabix,
              lv_line       TYPE introw,
              lv_msarg      TYPE char200,
              lv_sc_guid    TYPE bbp_pdview_iap-header,
              lv_req_guid   TYPE bbp_pdview_iap-header.
      DATA: x_requis_number TYPE bapiebanc.
      IF NOT req_items[] IS INITIAL.
        CLEAR l_requis_number.
        READ TABLE req_items INTO x_requis_number INDEX 1.
        l_requis_number = x_requis_number-preq_no.
        requis_number = x_requis_number-preq_no.
      ENDIF.
    Get PO Guid from Backend Table.
      SELECT SINGLE guid
             INTO   lv_req_guid
             FROM   bbp_pdbei
             WHERE  be_object_id   =  l_requis_number
             AND    be_object_type = 'BUS2105'.
    Get Shopping Cart Guid from PO Guid
      SELECT SINGLE header
             INTO   lv_sc_guid
             FROM   bbp_pdview_iap
             WHERE  guid = lv_req_guid.
    Get detail from shopping cart
      CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
        EXPORTING
          i_guid                  = lv_sc_guid
          i_with_itemdata         = 'X'
        IMPORTING
          e_header                = x_sc_header
          ev_is_pd                = l_sc_is_pd
        TABLES
          e_item                  = t_sc_item
          e_account               = t_sc_account
          e_partner               = t_sc_partner
          e_confirm               = t_sc_confirm
          e_longtext              = t_sc_longtext
          e_limit                 = t_sc_limit
          e_orgdata               = t_sc_orgdata
          e_tax                   = t_sc_tax
          e_pridoc                = t_sc_pridoc
          e_messages              = t_sc_messages
          e_actval                = t_sc_actval
          e_acc_actval            = t_sc_acc_actval
          e_header_rel            = t_sc_header_rel
          e_itmlim_rel            = t_sc_itmlim_rel.
      lv_is_pd = l_sc_is_pd.
    message handling
      IF NOT t_sc_messages[] IS INITIAL.
        CALL FUNCTION 'BBP_BS_ADD_MESSAGES'
          IMPORTING
            ev_abort    = lv_abort
          TABLES
            it_messages = t_sc_messages.
      ENDIF.
    if error occured set alert/ exception.
      IF NOT lv_abort IS INITIAL.
        CALL FUNCTION 'BBP_ALERT_SB_LOCAL'
          EXPORTING
            msgid              = 'BBP_PD'
            msgno              = 280
            msgarg1            = lv_msarg
          EXCEPTIONS
            invalid_parameters = 1
            OTHERS             = 2.
       RAISE internal_error.
      ENDIF.
    map shopping cart in new structure into old structure to be able
    to continue with the old coding
      REFRESH t_sc_messages.
      CALL FUNCTION 'BBP_SC_MAP_PD_TO_REQ'
        EXPORTING
          is_new_header    = x_sc_header
        IMPORTING
          es_reqhead       = reqheader
          es_req_heads     = reqheaders
         es_cuf_header    = is_cuf_header
        TABLES
          et_req_reference = reqreferences
          et_req_line      = reqlines
          et_req_line_mat  = reqlinemas
          et_req_line_srv  = reqlinesrs
          et_req_text      = reqtexts
          et_req_acct      = reqaccts
          et_req_address   = reqaddress
          et_req_conlimit  = reqconlimits
          it_new_items     = t_sc_item
          it_account       = t_sc_account
          it_partner       = t_sc_partner
          it_longtext      = t_sc_longtext
          it_limit         = t_sc_limit
          it_orgdata       = t_sc_orgdata
          it_tax           = t_sc_tax
          it_actval        = t_sc_actval
          it_itmlim_rel    = t_sc_itmlim_rel
          et_messages      = t_sc_messages.
         et_cuf_item      = it_cuf_item
         et_cuf_acc       = it_cuf_acc.
      IF NOT t_sc_messages[] IS INITIAL.
    message handling
        CALL FUNCTION 'BBP_BS_ADD_MESSAGES'
          IMPORTING
            ev_abort    = lv_abort
          TABLES
            it_messages = t_sc_messages.
      ENDIF.
    if error occured set alert/ exception.
      IF NOT lv_abort IS INITIAL.
        CALL FUNCTION 'BBP_ALERT_SB_LOCAL'
          EXPORTING
            msgid              = 'BBP_PU'
            msgno              = 326
            msgarg1            = lv_msarg
          EXCEPTIONS
            invalid_parameters = 1
            OTHERS             = 2.
       RAISE internal_error.
      ENDIF.
    End insert 03/26/2003
    ReqReferences doesn't list the PO item number.  We'll need that to
    associate the WBS to a Service Sub Item later.  Let's put it in.
      SORT reqreferences BY client refnumber reqlline.
      LOOP AT reqreferences INTO x_reqreferences.
        IF x_reqreferences-refline IS INITIAL.
          IF l_requis_number = x_reqreferences-refnumber. "jms 022802
            ADD 1 TO line_item.
          ELSE.
            l_requis_number = x_reqreferences-refnumber.  "jms 022802
            line_item = 1.
          ENDIF.
        Accumulate the line item
          x_reqreferences-refline = line_item.
          MODIFY reqreferences FROM x_reqreferences INDEX sy-tabix.
        ENDIF.
      ENDLOOP.
      SORT reqlines      BY client reqno reqlline.
      SORT reqreferences BY client reqno reqlline counter.
      SORT reqlinemas    BY client reqno reqsline reqlline.
      SORT reqlinesrs    BY client reqno reqsline reqlline.
      SORT reqaccts      BY client reqno reqlline serial_no. " note 359605
      CLEAR: h_preq_item.
      CLEAR: h_srv_item, h_srv_outl_created,
             h_packno_item, h_packno_srv, h_introw.
    First, the Shopping Cart number should be extracted from REQREF table
    based on the Req number.
    take all items with the specific reference number
      LOOP AT reqreferences
         INTO l_reqreferences                                  "iok 091701
        WHERE refnumber EQ requis_number.
       if logical_system is initial.
         logical_system = l_reqreferences-logical_system.
       endif.
        MOVE-CORRESPONDING l_reqreferences TO longkey.
      read table reqlines with key longkey binary search.
        READ TABLE reqlines INTO l_reqlines                    "iok 091701
            WITH KEY client = longkey-client
                      reqno = longkey-reqno
                   reqlline = longkey-reqlline
                   BINARY SEARCH.
        CHECK sy-subrc EQ 0.
        h_preq_item = l_reqlines-reqsline+5(5).
      clear h_preq_item.
      Change line_type based on Material Group
      add code here later.
        CLEAR: f_change_required,
               f_mat_sr_change,
               f_limit_change.
        SELECT SINGLE category_id
          INTO l_mat_group
          FROM comm_category
         WHERE category_guid = l_reqlines-category.
      Check if Services Special Request
        IF l_reqlines-catalogid IS INITIAL AND
           l_reqlines-product   IS INITIAL AND
           l_mat_group(1)        = 'S'     AND
           l_reqlines-line_type  = '1'.     "Service Special Request
        Set flags for future processing
          l_reqlines-line_type = '3'.
          f_change_required    = 'X'.
          f_limit_change       = 'X'.
      Check if Material Special Request
        ELSEIF l_reqlines-catalogid IS INITIAL AND
               l_reqlines-product   IS INITIAL AND
               l_mat_group(1)       <> 'S'     AND
               l_reqlines-line_type = '1'. "Material Special Request
        Set flags for future processing
          f_change_required = 'X'.
          f_mat_sr_change = 'X'.
        ENDIF.
        CHECK f_change_required = 'X'.
      For Material Special Requests only need to select and store UNSPSC
      code   -- iok 092401
        IF f_mat_sr_change = 'X'.
        Get UNSPSC code (first hit) based on Material Group and store
        in text id B05.   iok 092101
          READ TABLE req_items INTO l_req_items
              WITH KEY preq_item = h_preq_item
                       mat_grp   = l_mat_group.
          READ TABLE req_item_text INTO l_req_item_text
              WITH KEY preq_no   = requis_number
                       preq_item = l_req_items-preq_item
                       text_id = 'B05'.
          IF sy-subrc <> 0.
            CLEAR l_req_item_text.
          Find a UNSPSC Code from a Material Group .. even it's arbitrary
            SELECT unspsc_code UP TO 1 ROWS
                 FROM zxl8_category_id
                 INTO l_req_item_text-text_line
                WHERE category_id = l_mat_group.
            ENDSELECT.
          If nothing found then fill in a dummy UNSPSC.  The first
          letter of the Material will designate whether it's a Material
          or Service.
            IF sy-subrc NE 0.
            Move the Material Group value into a holding variable
              CONCATENATE l_mat_group(1) 'XXXXXXXX'
                     INTO l_req_item_text-text_line.
            ENDIF.
            l_req_item_text-preq_no   = requis_number.
            l_req_item_text-preq_item = l_req_items-preq_item.
            l_req_item_text-text_id   = 'B05'.
            INSERT l_req_item_text INTO TABLE req_item_text.
          ENDIF.
          CONTINUE.  "to next item.
        ENDIF.
        IF f_first_change = 'X' AND f_limit_change = 'X'.
        Save old P.Req. data and clear tables
          old_req_items[]           = req_items[].
          old_req_item_account[]    = req_item_account[].
          old_req_item_text[]       = req_item_text[].
          old_req_limits[]          = req_limits[].
          old_req_contract_limits[] = req_contract_limits[].
          old_req_services[]        = req_services[].
          old_req_serv_account[]    = req_serv_account[].
          old_req_serv_text[]       = req_serv_text[].
          old_req_addrdelivery[]    = req_addrdelivery[].
          REFRESH:  req_items,
                    req_item_account,
                  req_item_text,
                    req_limits,
                    req_contract_limits,
                    req_services,
                    req_serv_account,
                    req_serv_text.
                  req_addrdelivery.
          CLEAR f_first_change.
        ENDIF.
      Limit
        IF l_reqlines-line_type EQ '3'.
          and not reqheaders-limit is initial.
          DATA: l_reqreferences_temp   TYPE reqreferences_type.
        +JMS 2/26/2002
          CLEAR l_reqreferences_temp.
          READ TABLE reqreferences INTO l_reqreferences_temp
            WITH KEY client   = longkey-client
                     reqno    = longkey-reqno
                     reqlline = longkey-reqlline
                     BINARY SEARCH.
          IF sy-subrc = 0.
            h_preq_item = l_reqreferences_temp-refline.
          ENDIF.
          CLEAR l_req_items.
          READ TABLE old_req_items INTO l_req_items
              WITH KEY preq_item = h_preq_item.
          MOVE-CORRESPONDING l_req_items TO reqheaders.
          reqheaders-begdate   = l_req_items-deliv_date.
          reqheaders-limit     = l_req_items-c_amt_bapi.
          reqheaders-exp_value = l_req_items-c_amt_bapi.
          reqheaders-gr_ind    = 'X'.
          reqheaders-reqno     = l_req_items-preq_no.           "jms 022602
          CLEAR l_req_items.
    INSERT FORM **** CREATE_SERVICE_ITEM
          h_packno_item = h_packno_item + 1.
          h_packno_srv  = h_packno_srv  + 10000.
          h_introw      = h_introw + 1.
          CLEAR l_req_items.                                 " Note 364396
          MOVE-CORRESPONDING reqheaders TO l_req_items.
          l_req_items-preq_no = reqheaders-reqno.               "jms 022602
         l_REQ_ITEMS-PREQ_NO = REQUIS_NUMBER.                 "jms 022602
    l_REQ_ITEMS-PREQ_ITEM = H_PREQ_ITEM + 1.    "iok 091801
          l_req_items-preq_item = h_preq_item.                  "iok 091801
          l_current_item = h_preq_item.                         "iok 092101
          h_srv_item  = l_req_items-preq_item.
          h_preq_item = h_preq_item + 1.
          IF NOT reqheaders-limit IS INITIAL OR
             NOT reqheaders-exp_value IS INITIAL.
            IF reqheaders-gr_ind IS INITIAL.
              l_req_items-item_cat = '1'.
            ELSE.
              l_req_items-item_cat = '9'.
            ENDIF.
            l_req_items-deliv_date = reqheaders-begdate.
          ELSE.
            l_req_items-item_cat = '9'.
          ENDIF.
          IF l_req_items-del_datcat IS INITIAL.
            l_req_items-del_datcat = '1'.
          ENDIF.
          l_req_items-quantity = 1.
          l_req_items-pckg_no  = h_packno_item.
          IF l_req_items-preq_name EQ space.
            l_req_items-preq_name = sy-uname.
          ENDIF.
          APPEND l_req_items TO req_items.
    END OF FORM INSERTION ********
          l_req_limits-pckg_no    = h_packno_item.
          l_req_limits-limit      = reqheaders-limit.
          l_req_limits-exp_value  = reqheaders-exp_value.
          l_req_limits-no_limit   =  reqheaders-no_limit.
          l_req_limits-no_frlimit = 'X'.
          APPEND l_req_limits TO req_limits.
    *.... Account assignment
        clear requisition_srv_accass_values.
          CLEAR l_req_serv_account.
          l_req_serv_account-pckg_no = h_packno_item.
          MOVE-CORRESPONDING l_reqlines TO longkey.
        read table reqaccts with key longkey binary search. "iok 091801
          READ TABLE reqaccts INTO l_reqaccts                   "iok 091801
            WITH KEY client   = longkey-client
                     reqno    = longkey-reqno
                     reqlline = longkey-reqlline
                     BINARY SEARCH.
          IF sy-subrc = 0.
            LOOP AT reqaccts
                INTO l_reqaccts
                WHERE reqno    = l_reqreferences-reqno
                AND   reqlline = l_reqreferences-reqlline.
    INSERT FULL FORM *********** FILL_REQ_ACCT_SRV
              DATA: acctcomp1 TYPE bapiebkn,
                    acctcomp2 TYPE bapiebkn,
                    high_serial TYPE dzekkn.  "LIKE BAPIEKKN-SERIAL_NO.
              CLEAR l_req_serv_account-serial_no.
              CLEAR acctcomp1.
              MOVE-CORRESPONDING l_reqaccts TO acctcomp1.
              CLEAR: acctcomp1-preq_no,
                     acctcomp1-preq_item,
                     acctcomp1-serial_no,
                     acctcomp1-created_on,
                     acctcomp1-created_by,
                     acctcomp1-preq_qty,
                     acctcomp1-distr_perc,
                     acctcomp1-change_id,
                     acctcomp1-currency.
              LOOP AT req_item_account INTO l_req_item_account.
                CLEAR acctcomp2.
      MOVE-CORRESPONDING l_req_item_account TO ACCTCOMP2.  "is blank
                CLEAR: acctcomp2-preq_no,
                       acctcomp2-preq_item,
                       acctcomp2-serial_no,
                       acctcomp2-created_on,
                       acctcomp2-created_by,
                       acctcomp2-preq_qty,
                       acctcomp2-distr_perc,
                       acctcomp2-change_id,
                       acctcomp2-currency.
               IF acctcomp1 EQ acctcomp2  AND h_srv_outl_created IS INITIAL.
                l_req_serv_account-serial_no = l_req_item_account-serial_no.
                  EXIT.
                ENDIF.
                high_serial = l_req_item_account-serial_no.
              ENDLOOP.
              h_srv_outl_created = ' '.
              IF l_req_serv_account-serial_no IS INITIAL.
                MOVE-CORRESPONDING l_reqaccts TO l_req_item_account.
               l_REQ_item_ACCOUNT-PREQ_NO   = REQUIS_NUMBER.   "jms 022702
                l_req_item_account-preq_no = l_req_items-preq_no."jms 022702
                l_req_item_account-preq_item = h_srv_item.
    REQUISITION_ACCOUNT_ASSIGNMENT-WBS_ELEM_E = REQACCT-BBP_PROJECT.
                l_req_item_account-serial_no = high_serial + 1.
                l_req_serv_account-serial_no = l_req_item_account-serial_no.
                APPEND l_req_item_account TO req_item_account.
              ENDIF.
    END OF FORM INSERTION ***********
              h_serial_no = h_serial_no + 1.
              l_req_serv_account-serno_line = h_serial_no.
              l_req_serv_account-percentage = l_reqaccts-distr_perc.
              APPEND l_req_serv_account TO req_serv_account.
            ENDLOOP.
    INSERT FULL FORM **************** CONVERT_ACCOUNT_***_CAT
    data: account_tab LIKE bbp_pds_acc OCCURS 0 WITH HEADER LINE.
            DATA: account_tab TYPE STANDARD TABLE OF bbp_pds_acc.
            DATA: l_account_tab TYPE bbp_pds_acc.
            DATA: h_knttp TYPE knttp.
          move the accounting data to that item into the interface table
                LOOP AT reqaccts
               INTO l_reqaccts
              WHERE reqno    EQ l_reqreferences-reqno
                AND reqlline EQ l_reqreferences-reqlline.
              MOVE-CORRESPONDING l_reqaccts TO l_account_tab.
              APPEND l_account_tab TO account_tab.
            ENDLOOP.
          call the convert API
            CALL FUNCTION 'BBP_ACCCAT_MAP_EXP'
                 EXPORTING
                      i_logical_system = logical_system
                 IMPORTING
                      e_r3_acc_cat     = h_knttp
                 TABLES
                      i_pd_account     = account_tab.
            IF h_knttp IS INITIAL.
              h_knttp = 'X'.
            ENDIF.
          +JMS 2/14/2002 Issue #1590
            CLEAR   account_tab.
            REFRESH account_tab.
          account assignment category - set in the correct item
            LOOP AT req_items
               INTO l_req_items
              WHERE preq_item EQ l_req_item_account-preq_item.
              l_req_items-acctasscat = h_knttp.
              MODIFY req_items FROM l_req_items INDEX sy-tabix.
            ENDLOOP.
    END OF FORM INSERTION ************
          ELSE.
    INSERT FULL FORM ************* Form  CONVERT_ACCOUNT_***_CAT_U
            LOOP AT req_items
               INTO l_req_items
              WHERE preq_item EQ l_current_item.
              l_req_items-acctasscat = 'U'.
              MODIFY req_items FROM l_req_items INDEX sy-tabix.
            ENDLOOP.
    END OF FORM INSERTION ************
          ENDIF.
        Get UNSPSC code (first hit) based on Material Group and store
        in text id B05.   iok 092101
          READ TABLE req_items INTO l_req_items
              WITH KEY preq_item = l_current_item
                       mat_grp   = l_mat_group.
          READ TABLE req_item_text INTO l_req_item_text
              WITH KEY preq_no   = requis_number
                       preq_item = l_req_items-preq_item
                       text_id   = 'B05'.
          IF sy-subrc <> 0.
            CLEAR l_req_item_text.
          Get UNSPSC Code from Material Group .. even if arbitrary
            SELECT unspsc_code UP TO 1 ROWS
              FROM zxl8_category_id
              INTO l_req_item_text-text_line
             WHERE category_id = l_mat_group.
            ENDSELECT.
          If nothing found then fill in a dummy UNSPSC.  The first
          letter of the Material will designate whether it's a Material
          or Service.
            IF sy-subrc NE 0.
            Move the Material Group value into a holding variable
              CONCATENATE l_mat_group(1) 'XXXXXXX'
                     INTO l_req_item_text-text_line.
            ENDIF.
            l_req_item_text-preq_no   = requis_number.
            l_req_item_text-preq_item = l_req_items-preq_item.
            l_req_item_text-text_id   = 'B05'.
            INSERT l_req_item_text INTO TABLE req_item_text.
          ENDIF.
        Don't send Internal Note to Backend
         delete req_item_text where text_id = 'B02'.
    Service -- NOT NEEDED -- IOK 07/13/01
       elseif not reqlines-reqsline is initial
             and reqlines-line_type eq '2'.
         move-corresponding reqlines to shortkey.
         read table reqlinesrs with key shortkey binary search.
         if sy-subrc = 0.
           h_serv = reqlinesrs.
           append h_serv.
         endif.
    material item -- NOT NEEDED -- IOK 07/13/01
        ENDIF.
      ENDLOOP.
    Services -- NOT NEED -- IOK 07/13/01
      IF f_limit_change = 'X'.
      Check multiple account assignment
        LOOP AT req_items INTO l_req_items.
          h_index = sy-tabix.
          CLEAR next.
          LOOP AT req_item_account
             INTO l_req_item_account
            WHERE preq_item EQ l_req_items-preq_item.
            next = next + 1.
          ENDLOOP.
          IF next > 1.
            l_req_items-distrib    = '2'. "prozentuale Verteilung
            l_req_items-part_inv   = '1'.
            l_req_items-gr_non_val = 'X'.
           MODIFY req_items FROM l_req_items INDEX h_index.     "217191
         modify requisition_items.                                "217191
          ENDIF.
        ENDLOOP.
      ENDIF.
    Remap delivery address for backend processing
      LOOP AT req_addrdelivery INTO l_req_addrdelivery.
        MOVE:  l_req_addrdelivery-name_2   TO l_req_addrdelivery-name,
               l_req_addrdelivery-c_o_name TO l_req_addrdelivery-name_2.
        CLEAR: l_req_addrdelivery-c_o_name.
        MODIFY req_addrdelivery FROM l_req_addrdelivery INDEX sy-tabix.
      ENDLOOP.
    CHM 07/16/2003 Changed created by to always be actual creator even
                   for on behalf of situations
        LOOP AT req_items
           INTO l_req_items.
          l_req_items-created_by = x_sc_header-created_by.
          MODIFY req_items FROM l_req_items INDEX sy-tabix.
        ENDLOOP.
    CMH - end change
    MA 12/10/04 - Pass MP2 number from Manu Prod# to Req Item Text
    LOOP AT req_items INTO l_req_items.
        READ TABLE t_sc_item into x_sc_item
             WITH KEY number_int  = l_req_items-preq_item.
        l_req_item_text-preq_no   = requis_number.
        l_req_item_text-preq_item = l_req_items-preq_item.
        l_req_item_text-text_id   = 'B06'.
        l_req_item_text-text_line = x_sc_item-manu_prod.
        INSERT l_req_item_text INTO TABLE req_item_text.
    ENDLOOP.
    ENDMETHOD.

  • BAPI_PO_CHANGE with scheduling

    Hai frnds,
      Im using BAPI_PO_CHANGE for changing the quantity of the existing item and need to create an new item also. For this im using scheduling table(poschedule),where one item has two scheduling line.
    Existing details
    Eg: POHEADER:    0210000001
        POITEM:
          10 -> 400(quantity)
        POSCHEDULE:
          10 -> 1(1st sched) -> 100(quantity)
          10 -> 2(2nd sched) -> 300(quantity)
    After modification
    Eg: POHEADER:    0210000001
        POITEM:
         10 -> 60(quantity)
         20 -> 340(quantity)
        POSCHEDULE:
         10 -> 1(1st sched) -> 60(quantity)
         10 -> 2(2nd sched) -> 0(quantity)
         20 -> 1(1st sched) -> 40(quantity)
         20 -> 2(2nd sched) -> 300(quantity)
    Can anyone help me to solve this problem??? wat are the fields to be considered in POITEM,POSCHEDULE?
    Suganya Jayabalan.

    Hai Thomas,
      this is the code:
    REPORT  zfi_upd_import_process NO STANDARD PAGE HEADING
                                     MESSAGE-ID z6 .
    TABLES: zmmpoamend,ekko, ekpo.
    DATA:t_zmmpo_amend_tab LIKE zmmpoamend OCCURS 0 WITH HEADER LINE.
    DATA:t_zmmpo_amend_tab1 LIKE zmmpoamend OCCURS 0 WITH HEADER LINE.
    DATA:v_bstmg     LIKE bapimepoitem-quantity,
         v_ebelp     LIKE bapimepoitem-po_item,
         v_belnr1    LIKE bkpf-belnr,
         v_awkey     LIKE bkpf-awkey,
         v_orderunit LIKE ekpo-meins,
         v_currency  LIKE tcurc-waers,
         v_ebeln     LIKE ekko-ebeln,
         v_payterm   LIKE ekko-zterm,
         v_zfbdt     LIKE bseg-zfbdt,
         v_flag(1)   TYPE c,
         v_flgbdc(1) TYPE c.
    DATA: wa_bapiquantity1 like eket-menge,
          wa_bapiquanfin1 like eket-menge,
          wa_bapiquantot like eket-menge,
          wa_bapiquantity2 like eket-menge,
          wa_bapiquanfin2 like eket-menge.
    DATA: BEGIN OF t_belnr_tab OCCURS 0,
            belnr LIKE bkpf-belnr,
            gjahr LIKE bkpf-gjahr,
          END OF t_belnr_tab.
    DATA: BEGIN OF t_ret_tab OCCURS 0.
            INCLUDE STRUCTURE bapiret2.
    DATA: END OF t_ret_tab.
    FOR PO AMENDMENT POSTING ****************
    DATA:BEGIN OF t_bapimepocond_tab OCCURS 0.
            INCLUDE STRUCTURE bapimepocond.
    DATA:END OF t_bapimepocond_tab.
    DATA:BEGIN OF t_bapimepoitem_tab OCCURS 0.
            INCLUDE STRUCTURE bapimepoitem.
    DATA:END OF t_bapimepoitem_tab.
    DATA: t_bapimepoitem_tab1 LIKE t_bapimepoitem_tab OCCURS 0 WITH HEADER
    LINE
    DATA:BEGIN OF t_bapimepoitemdet_tab OCCURS 0.
            INCLUDE STRUCTURE bapiekpo.
    DATA:END OF t_bapimepoitemdet_tab.
    DATA:BEGIN OF t_bapieket_tab OCCURS 0.
            INCLUDE STRUCTURE bapieket.
    DATA:END OF t_bapieket_tab.
    DATA:BEGIN OF t_bapiposchedule OCCURS 0.
            INCLUDE STRUCTURE BAPIMEPOSCHEDULE.
    DATA:END OF t_bapiposchedule.
    data: w_no type i,
          w_no1 type i,
          w_idx type i.
    DATA: w_ebelp like ekpo-ebelp.
    DATA:BEGIN OF t_bapimepoaccount_tab OCCURS 0.
            INCLUDE STRUCTURE bapimepoaccount.
    DATA:END OF t_bapimepoaccount_tab.
    DATA:BEGIN OF t_bapimepoaccountx_tab OCCURS 0.
            INCLUDE STRUCTURE bapimepoaccountx.
    DATA:END OF t_bapimepoaccountx_tab.
    DATA:BEGIN OF t_bapimepoaccountdet_tab OCCURS 0.
            INCLUDE STRUCTURE bapiekkn.
    DATA:END OF t_bapimepoaccountdet_tab.
    DATA:BEGIN OF t_bapimepoitemx_tab OCCURS 0.
            INCLUDE STRUCTURE bapimepoitemx.
    DATA:END OF t_bapimepoitemx_tab.
    DATA:wa_bapimepoitem LIKE LINE OF t_bapimepoitem_tab.
    data: begin of t_bapiposchedulex occurs 0.
            include structure BAPIMEPOSCHEDULX.
    data: end of t_bapiposchedulex.
    END OF FOR PO AMENDMENT POSTING **********
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_poamd RADIOBUTTON GROUP rad1,
               p_mirofs RADIOBUTTON GROUP rad1,
               p_mirocd RADIOBUTTON GROUP rad1,
               p_mirofr RADIOBUTTON GROUP rad1,
               p_j1iex RADIOBUTTON GROUP rad1.
    SELECT-OPTIONS:s_zzboe FOR zmmpoamend-zzboe NO INTERVALS NO-EXTENSION
                               OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    IF p_poamd = 'X'.
    begin of internal table processing for calling BAPI's*******
      SELECT * FROM zmmpoamend INTO TABLE t_zmmpo_amend_tab
         WHERE zzboe IN s_zzboe AND
               zzpostat = ' '.
      IF sy-subrc <> '0'.
        MESSAGE 'No PO found which has to be updated.' TYPE 'E'.
      ENDIF.
    begin of PO Amendment****************
      LOOP AT t_zmmpo_amend_tab .
        t_zmmpo_amend_tab-waers = 'INR'.
        t_zmmpo_amend_tab1 = t_zmmpo_amend_tab.
        t_zmmpo_amend_tab1-zzpostat = 'X'.
        APPEND t_zmmpo_amend_tab1.
        IF t_zmmpo_amend_tab-zzwrbtrvcd NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvcd.
          t_bapimepocond_tab-cond_type = 'ZVCD'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvnv NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvnv.
          t_bapimepocond_tab-cond_type = 'ZVNV'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrccd NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrccd.
          t_bapimepocond_tab-cond_type = 'ZCCD'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvcv NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvcv.
          t_bapimepocond_tab-cond_type = 'ZVCV'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvce NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvce.
          t_bapimepocond_tab-cond_type = 'ZVCE'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvfi NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvfi.
          t_bapimepocond_tab-cond_type = 'ZVFI'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvad NE '0'.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvad.
          t_bapimepocond_tab-cond_type = 'ZVAD'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvac NE '0'.
    ZVAC added..
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvac.
          t_bapimepocond_tab-cond_type = 'ZVAC'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrvae NE '0'.
    ZVAE added..
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrvae.
          t_bapimepocond_tab-cond_type = 'ZVAE'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzwrbtrmis NE '0'.
    ZMIS(Miscellaenous charges) added..
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzwrbtrmis.
          t_bapimepocond_tab-cond_type = 'ZMIS'.
          t_bapimepocond_tab-currency = t_zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzinsper NE '0'.
    insurance
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzinsper.
          t_bapimepocond_tab-cond_type = 'ZPIN'.
          t_bapimepocond_tab-currency = '%'. "zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        IF t_zmmpo_amend_tab-zzclsper NE '0'.
    *clearing charges.
          CLEAR t_bapimepocond_tab.
          t_bapimepocond_tab-itm_number = t_zmmpo_amend_tab-ebelp.
          t_bapimepocond_tab-cond_value = t_zmmpo_amend_tab-zzclsper.
          t_bapimepocond_tab-cond_type = 'ZPCL'.
          t_bapimepocond_tab-currency = '%'. "zmmpo_amend_tab-waers.
          t_bapimepocond_tab-change_id = 'I'.
          APPEND t_bapimepocond_tab.
        ENDIF.
        v_bstmg = t_zmmpo_amend_tab1-menge + v_bstmg.
        AT END OF ebelp.
         t_bapimepoitem_tab-po_number = t_zmmpo_amend_tab1-ebeln .
          t_bapimepoitem_tab-po_item = t_zmmpo_amend_tab1-ebelp .
          t_bapimepoitem_tab-quantity = v_bstmg.
          APPEND t_bapimepoitem_tab.
          CLEAR v_bstmg.
        ENDAT.
        AT END OF  ebeln.
         L_EBELN =
          CALL FUNCTION 'BAPI_PO_GETDETAIL'
            EXPORTING
              purchaseorder                    = t_zmmpo_amend_tab-ebeln
             items                            = 'X'
             account_assignment               = 'X'
             SCHEDULES                        = 'X'
           TABLES
             po_items                         = t_bapimepoitemdet_tab
             po_item_account_assignment       = t_bapimepoaccountdet_tab
             PO_ITEM_SCHEDULES                = t_bapieket_tab.
          CLEAR v_ebelp.
          v_ebelp = t_bapimepoitemdet_tab-po_item.
          LOOP AT t_bapimepoitem_tab.
            v_bstmg = t_bapimepoitem_tab-quantity.
            LOOP AT t_bapimepoitemdet_tab WHERE
                              po_number = t_zmmpo_amend_tab-ebeln AND
                              po_item = t_bapimepoitem_tab-po_item.
              IF t_bapimepoitemdet_tab-quantity =
              t_bapimepoitem_tab-quantity.
               MOVE-CORRESPONDING t_bapimepoitemdet_tab TO wa_bapimepoitem.
                wa_bapimepoitem-gr_basediv = ' '.
                APPEND wa_bapimepoitem TO t_bapimepoitem_tab1.
                t_bapimepoitemx_tab-po_item = wa_bapimepoitem-po_item.
                t_bapimepoitemx_tab-gr_basediv = 'X'.
                APPEND t_bapimepoitemx_tab.
              ELSE.
                v_ebelp = v_ebelp + '10'.
                MOVE-CORRESPONDING t_bapimepoitemdet_tab TO wa_bapimepoitem.
                wa_bapimepoitem-quantity = t_bapimepoitemdet_tab-quantity -
                                           t_bapimepoitem_tab-quantity.
                wa_bapimepoitem-po_item = v_ebelp .
                APPEND wa_bapimepoitem TO t_bapimepoitem_tab1.
                LOOP AT t_bapimepoaccountdet_tab
                  WHERE po_item = t_bapimepoitem_tab-po_item.
                  MOVE-CORRESPONDING t_bapimepoaccountdet_tab TO
                                    t_bapimepoaccount_tab.
                  t_bapimepoaccount_tab-gl_account =
                    t_bapimepoaccountdet_tab-g_l_acct.
                  t_bapimepoaccount_tab-itm_number =
                    t_bapimepoaccountdet_tab-sdoc_item.
                  t_bapimepoaccount_tab-quantity = wa_bapimepoitem-quantity.
                  t_bapimepoaccount_tab-po_item = v_ebelp.
                  t_bapimepoaccountx_tab-po_item = v_ebelp.
                  t_bapimepoaccountx_tab-quantity = 'X'.
                  t_bapimepoaccountx_tab-creat_date = 'X'.
                  t_bapimepoaccountx_tab-quantity = 'X'.
                  t_bapimepoaccountx_tab-gl_account = 'X'.
                  t_bapimepoaccountx_tab-bus_area = 'X'.
                  t_bapimepoaccountx_tab-costcenter = 'X'.
                  t_bapimepoaccountx_tab-sd_doc = 'X'.
                  t_bapimepoaccountx_tab-itm_number = 'X'.
                  t_bapimepoaccountx_tab-co_area = 'X'.
                  t_bapimepoaccountx_tab-part_acct = 'X'.
                  APPEND  t_bapimepoaccount_tab.
                  APPEND  t_bapimepoaccountx_tab.
                ENDLOOP.
                t_bapimepoitemx_tab-po_item = wa_bapimepoitem-po_item.
                t_bapimepoitemx_tab-quantity = 'X'.
                t_bapimepoitemx_tab-stge_loc = 'X'.
                t_bapimepoitemx_tab-preq_no = 'X'.
                t_bapimepoitemx_tab-preq_item = 'X'.
                t_bapimepoitemx_tab-material = 'X'.
                t_bapimepoitemx_tab-po_unit = 'X'.
                t_bapimepoitemx_tab-plant = 'X'.
                APPEND t_bapimepoitemx_tab.
                MOVE-CORRESPONDING t_bapimepoitemdet_tab TO wa_bapimepoitem.
                wa_bapimepoitem-quantity = v_bstmg.
                wa_bapimepoitem-gr_basediv = ' '.
                APPEND wa_bapimepoitem TO t_bapimepoitem_tab1.
                t_bapimepoitemx_tab-po_item = wa_bapimepoitem-po_item.
               t_bapimepoitemx_tab-quantity = 'X'.
               t_bapimepoitemx_tab-gr_basediv = 'X'.
                APPEND t_bapimepoitemx_tab.
    *********this is wer new coding starts*****************************
    *inserted for delivery scheduling foe PO
              loop at t_bapieket_tab
                      where po_item = t_bapimepoitemdet_tab-po_item.
                w_idx = sy-tabix.
              IF t_bapieket_tab-SERIAL_NO = '0001'.
               IF t_bapimepoitem_tab-quantity > t_bapieket_tab-quantity or
                  t_bapimepoitem_tab-quantity = t_bapieket_tab-quantity.
                 wa_bapiquantity1 = t_bapieket_tab-quantity.
               ELSEIF t_bapimepoitem_tab-quantity < t_bapieket_tab-quantity.
                 wa_bapiquantity1 = t_bapimepoitem_tab-quantity.
               ENDIF.
                 wa_bapiquanfin1 = t_bapieket_tab-quantity - wa_bapiquantity1.
                 t_bapieket_tab-QUANTITY = wa_bapiquantity1.
                 modify t_bapieket_tab index w_idx transporting quantity.
                  t_bapieket_tab-po_item = v_ebelp.
                  t_bapieket_tab-quantity = wa_bapiquanfin1.
                  append t_bapieket_tab.
              ELSE.
                 IF t_bapimepoitem_tab-quantity > t_bapieket_tab-quantity.
                  wa_bapiquantity2 = t_bapimepoitem_tab-quantity - wa_bapiquantity1.
                 ELSEIF t_bapimepoitem_tab-quantity < t_bapieket_tab-quantity or
                        t_bapimepoitem_tab-quantity = t_bapieket_tab-quantity.
                  wa_bapiquantity2 = 0.
                 ENDIF.
                 wa_bapiquanfin2 = t_bapieket_tab-quantity - abs( wa_bapiquantity2 ).
                 t_bapieket_tab-QUANTITY = abs( wa_bapiquantity2 ).
                 modify t_bapieket_tab index w_idx transporting quantity.
                  t_bapieket_tab-po_item = v_ebelp.
                  t_bapieket_tab-quantity = wa_bapiquanfin2.
                  append t_bapieket_tab.
              ENDIF.
              endloop.
              Sort t_bapieket_tab by po_item.
              sort t_bapimepoitem_tab1 by po_item.
              sort t_bapimepoitemx_tab by po_item.
              loop at t_bapieket_tab.
                move: t_bapieket_tab-po_item to t_bapiposchedule-po_item,
                      t_bapieket_tab-serial_no to t_bapiposchedule-sched_line,
                      t_bapieket_tab-quantity to t_bapiposchedule-quantity,
                      t_bapieket_tab-preq_no to t_bapiposchedule-preq_no,
                      t_bapieket_tab-preq_item to t_bapiposchedule-preq_item.
                if  t_bapieket_tab-quantity = 0.
                 t_bapiposchedule-delete_ind = 'X'.
                endif.
                append t_bapiposchedule.
                move: t_bapieket_tab-po_item to t_bapiposchedulex-po_item,
                      t_bapieket_tab-serial_no to t_bapiposchedulex-sched_line.
                t_bapiposchedulex-po_itemx = 'X'.
                t_bapiposchedulex-sched_linex = 'X'.
                if  t_bapieket_tab-quantity = 0.
                 t_bapiposchedulex-delete_ind = 'X'.
                elseif  t_bapieket_tab-quantity <> 0.
                 t_bapiposchedulex-quantity = 'X'.
                endif.
                clear: w_ebelp.
                select single ebelp from ekpo
                       into w_ebelp
                       where ebeln = t_zmmpo_amend_tab-ebeln and
                             ebelp = t_bapieket_tab-po_item.
                if w_ebelp is initial.
                 t_bapiposchedulex-preq_no = 'X'.
                 t_bapiposchedulex-preq_item = 'X'.
                endif.
                append t_bapiposchedulex.
                clear: t_bapiposchedulex, t_bapiposchedule.
               endloop.
              ENDIF.
            ENDLOOP.
    ***********end of new insertion**********************************************
            CLEAR t_bapimepoitemdet_tab.
            CLEAR v_bstmg.
          ENDLOOP.
          CALL FUNCTION 'BAPI_PO_CHANGE'
            EXPORTING
              purchaseorder                = t_zmmpo_amend_tab-ebeln
           TABLES
             return                       = t_ret_tab
             poitem                       = t_bapimepoitem_tab1
             poitemx                      = t_bapimepoitemx_tab
    *****************inserted by suganya-2006/06/27*************************
             POSCHEDULE                   = t_bapiposchedule
             POSCHEDULEX                  = t_bapiposchedulex
    *****************end of insertion-suganya-2006/06/27********************
             poaccount                    =  t_bapimepoaccount_tab
             poaccountx                   =  t_bapimepoaccountx_tab
             pocond                       = t_bapimepocond_tab
          CLEAR v_flag.
          LOOP AT t_ret_tab.
            IF t_ret_tab-type = 'E'.
              v_flag = 'X'.
              WRITE:/2 t_zmmpo_amend_tab-ebeln,
                   15 t_ret_tab-type,
                   25 t_ret_tab-message.
            ENDIF.
            AT LAST.
              IF v_flag <> 'X'.
                UPDATE zmmpoamend FROM TABLE t_zmmpo_amend_tab1.
                CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                  EXPORTING
                    wait = 'X'.
                WRITE:/2 'PO ',5 t_zmmpo_amend_tab-ebeln,
                               16 ' changed succesfully'.
              ENDIF.
            ENDAT.
          ENDLOOP.
          CLEAR t_ret_tab.
          REFRESH t_ret_tab.
          CLEAR t_bapimepocond_tab.
          REFRESH t_bapimepocond_tab.
          CLEAR t_zmmpo_amend_tab1.
          REFRESH t_zmmpo_amend_tab1.
          CLEAR t_bapimepoitem_tab.
          REFRESH t_bapimepoitem_tab.
          CLEAR t_bapimepoitemdet_tab.
          REFRESH t_bapimepoitemdet_tab.
          CLEAR t_bapimepoitem_tab1.
          REFRESH t_bapimepoitem_tab1.
          CLEAR t_bapimepoitemx_tab.
          REFRESH t_bapimepoitemx_tab.
          CLEAR t_bapimepoaccount_tab.
          REFRESH t_bapimepoaccount_tab.
          CLEAR t_bapimepoaccountdet_tab.
          REFRESH t_bapimepoaccountdet_tab.
          CLEAR t_bapimepoaccountx_tab.
          REFRESH t_bapimepoaccountx_tab.
        ENDAT.
      ENDLOOP.
    ENDIF.
    End of PO Amendment****************
    Regrads,
    Suganya Jayabalan

  • Error in bapi_po_getdetail

    Hi all,
    I am using BAPI_PO_GETDETAIL to get required data. cODE IS
    data: po_items type table of bapiekpo with header line.
    data: po_item_schedules type table of   BAPIEKET with header line.
    data: PO_ITEM_TEXTS type table of BAPIEKPOTX with header line.
    data: PO_ITEM_ACCOUNT_ASSIGNMENT type table of BAPIEKKN
                                         with header line.
    data: PO_HEADER_TEXTS type table of BAPIEKKOTX with header line.
    data: PO_HEADER type BAPIEKKOL.
    data: return1 type table of BAPIRETURN with header line.
    parameters: p_ebeln type ekko-ebeln.
    call function 'BAPI_PO_GETDETAIL'
      exporting
        purchaseorder                    = p_ebeln
        ITEMS                            = 'X'
      ACCOUNT_ASSIGNMENT               = ' '
      SCHEDULES                        = ' '
      HISTORY                          = ' '
      ITEM_TEXTS                       = ' '
      HEADER_TEXTS                     = ' '
      SERVICES                         = ' '
      CONFIRMATIONS                    = ' '
      SERVICE_TEXTS                    = ' '
      EXTENSIONS                       = ' '
    IMPORTING
        PO_HEADER                        = PO_HEADER
      PO_ADDRESS                       =
    tables
    PO_HEADER_TEXTS                  = PO_HEADER_TEXTS
       po_items                         = po_items
    PO_ITEM_ACCOUNT_ASSIGNMENT   = ITEMACCOUNT_ASSIGNMENT
       PO_ITEM_SCHEDULES                = PO_ITEM_SCHEDULES
    PO_ITEM_CONFIRMATIONS            =
    PO_ITEM_TEXTS                    = PO_ITEM_TEXTS
      PO_ITEM_HISTORY                  =
      PO_ITEM_HISTORY_TOTALS           =
      PO_ITEM_LIMITS                   =
      PO_ITEM_CONTRACT_LIMITS          =
      PO_ITEM_SERVICES                 =
      PO_ITEM_SRV_ACCASS_VALUES        =
        RETURN                           = RETURN1
      PO_SERVICES_TEXTS                =
      EXTENSIONOUT                     =
    Problum is there is no data in PO_ITEM_SCHEDULES. But there is data in database.
    What would be problum?
    plese let me know as soon as possible.
    Thank you,
    shashikanth.

    CALL FUNCTION 'BAPI_PO_GETDETAIL'
      EXPORTING
        PURCHASEORDER                    =
       ITEMS                            = 'X'
       SCHEDULES                        = 'X'
    IMPORTING
       PO_HEADER                        = tabx
       PO_ADDRESS                       = tabx
    TABLES
       PO_HEADER_TEXTS                  = tabx
       PO_ITEMS                         = tabx
       PO_ITEM_SCHEDULES                = tabx.

  • Help needed in debugging the BADI: BBP_CREATE_REQ_BACk

    Hi,
    I  need help in debugging a BADI which causing an error ' SE142 please enter quantity in line 3000111'.
    This happens only when number items in the cart are more than four and only for Service category items for which we have this BADI, if the items were less than or equal to 4, follow on document is created.
    Please let me know what could be the error.
    Thank you,
    Manyam
    METHOD if_ex_bbp_create_req_back~fill_req_interface.
    Method Parameters:
    *LOGICAL_SYSTEM     TYPE BBP_BACKEND_DEST-LOG_SYS OPTIONAL
    *REQ_ITEMS            TYPE BBP_REQ_ITEM_SPOOL
    *REQ_ITEM_ACCOUNT     TYPE BBP_REQ_ACCT_SPOOL
    *REQ_ITEM_TEXT     TYPE BBP_REQ_TEXT_SPOOL
    *REQ_LIMITS            TYPE BBP_REQ_LIMITS_SPOOL
    *REQ_CONTRACT_LIMITS     TYPE BBP_REQ_LIMITS_CONTR_SPOOL
    *REQ_SERVICES            TYPE BBP_REQ_SERV_SPOOL
    *REQ_SERV_ACCOUNT     TYPE BBP_REQ_SERV_ACC_SPOOL
    *REQ_SERV_TEXT     TYPE BBP_REQ_SERV_TEXT_SPOOL
    *REQ_ADDRDELIVERY     TYPE BBP_REQ_ADDRDELIVERY_SPOOL
    This is the logic to create a Service Requisition based on a service
    material group selected in the Shopping Cart.  This logic is based on
    SAP's standard function SPOOL_RQ_READ_BAPI_EXPORTS from which this
    BADI is called.
    INSERT FUNCTION SPOOL_RQ_READ_BAPI_EXPORTS TO REPROCESS DATA FOR
    SERVICE SPECIAL REQUESTS.  -- IOK 07/13/01
    *function spool_rq_read_bapi_exports.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     VALUE(REQNO) LIKE  REQHEAD-REQNO
    *"     VALUE(REQUIS_NUMBER) LIKE  BAPIEBANC-PREQ_NO
    *"  EXPORTING
    *"     VALUE(SKIP_ITEMS_WITH_ERROR) LIKE  BAPIMMPARA-SELECTION
    *"     VALUE(LOGICAL_SYSTEM) LIKE  BBP_BACKEND_DEST-LOG_SYS
    *"  TABLES
    *"      REQUISITION_ITEMS STRUCTURE  BAPIEBANC
    *"      REQUISITION_ACCOUNT_ASSIGNMENT STRUCTURE  BAPIEBKN
    *"      REQUISITION_ITEM_TEXT STRUCTURE  BAPIEBANTX
    *"      REQUISITION_LIMITS STRUCTURE  BAPIESUHC
    *"      REQUISITION_CONTRACT_LIMITS STRUCTURE  BAPIESUCC
    *"      REQUISITION_SERVICES STRUCTURE  BAPIESLLC
    *"      REQUISITION_SRV_ACCASS_VALUES STRUCTURE  BAPIESKLC
    *"      RETURN STRUCTURE  BAPIRETURN
    *"      REQUISITION_SERVICES_TEXT STRUCTURE  BAPIESLLTX
    *"      REQUISITION_ADDRDELIVERY STRUCTURE  BBPS_RQADDRDELIVERY_46
    *"      CONTROL_RECORD STRUCTURE  BBP_CONTROL_RECORD
    *"  EXCEPTIONS
    *"      INTERNAL_ERROR
    ---- Data Declaration -  from LBBP_BS_RQTOP -
    - Header                         -
      DATA: reqheader TYPE reqhead.
    - Header services                -
      DATA: reqheaders TYPE reqheads.
    - References -
      TYPES: reqreferences_type TYPE reqref.
      DATA:  reqreferences      TYPE STANDARD TABLE OF reqreferences_type
                                     INITIAL SIZE 10.
      DATA:  l_reqreferences    TYPE reqreferences_type,
             x_reqreferences    TYPE reqreferences_type.
    - Administrative lines requirement request -
      TYPES: reqlines_type TYPE reqline.
      DATA:  reqlines      TYPE STANDARD TABLE OF reqlines_type
                                INITIAL SIZE 10.
      DATA:  l_reqlines    TYPE reqlines_type.
    - MRO-Lines requirement request -
      TYPES: reqlinemas_type TYPE reqlinema_eci.
      DATA:  reqlinemas      TYPE STANDARD TABLE OF reqlinemas_type
                                  INITIAL SIZE 10.
      DATA:  l_reqlinemas    TYPE reqlinemas_type.
    - SRV-Lines requirement request -
      TYPES: reqlinesrs_type TYPE bbps_reqlinesr_eci.
      DATA:  reqlinesrs      TYPE STANDARD TABLE OF reqlinesrs_type
                                  INITIAL SIZE 10.
      DATA:  l_reqlinesrs    TYPE reqlinesrs_type.
    - Texts requirement request -
      TYPES: reqtexts_type TYPE reqtext.
      DATA:  reqtexts      TYPE STANDARD TABLE OF reqtexts_type
                                INITIAL SIZE 10.
      DATA:  l_reqtexts    TYPE reqtexts_type.
    *- Delivery address
      TYPES: reqaddress_type TYPE reqaddress.
      DATA:  reqaddress      TYPE STANDARD TABLE OF reqaddress_type
                                  INITIAL SIZE 10.
      DATA:  l_reqaddress    TYPE reqaddress_type.
    - Account assignment requirement request -
      TYPES: reqaccts_type TYPE reqacct_470.
      DATA:  reqaccts      TYPE STANDARD TABLE OF reqaccts_type
                                INITIAL SIZE 10.
      DATA:  l_reqaccts    TYPE reqaccts_type.
    - tablekey with the shortlife-line -
      DATA: BEGIN OF shortkey,
               client   TYPE ec_client, "REQLINE-CLIENT,
               reqno    TYPE ec_reqno,  "REQLINE-REQNO,
               reqsline TYPE reqsline,  "REQLINE-REQSLINE,
               reqlline TYPE reqlline,  "REQLINE-REQLLINE,
            END OF shortkey.
    - tablekey with the longlife-line -
      DATA: BEGIN OF longkey,
               client   TYPE ec_client, "REQLINE-CLIENT,
               reqno    TYPE ec_reqno,  "REQLINE-REQNO,
               reqlline TYPE reqlline,  "REQLINE-REQLLINE,
            END OF longkey.
      DATA: BEGIN OF bankey,
                preq_no    TYPE banfn, "BAPIEBAN-PREQ_NO,
                preq_item  TYPE bnfpo, "BAPIPOGN-PREQ_ITEM,
            END OF bankey.
    any other working fields
      DATA: h_preq_item     TYPE bnfpo,       "BAPIEBANC-PREQ_ITEM,
            h_srv_item      TYPE bnfpo,       "BAPIEBANC-PREQ_ITEM,
            h_logsys        TYPE log_system.  "reqref-logical_system.
      DATA: h_serial_no     TYPE dzebkn.      "BAPIEBKN-SERIAL_NO.
      DATA: h_packno_item   TYPE packno,      "BAPIESLL-PCKG_NO,
            h_packno_srv    TYPE packno,      "BAPIESLL-PCKG_NO,
            h_introw        TYPE srv_line_no, "BAPIESLL-LINE_NO,
            h_serial_no_srv TYPE dzekkn,      "BAPIESKN-SERIAL_NO,
            h_srv_outl_created,
            next TYPE i,
            h_index         LIKE sy-tabix,
            h_wempf         TYPE wempf.       "bapiekkn-gr_rcpt.
    ------ End of std data declaration -
      DATA:   l_req_items               TYPE bapiebanc,
              l_req_item_account        TYPE bapiebkn,
              l_req_item_text               TYPE bapiebantx,
              l_req_limits               TYPE bapiesuhc,
              l_req_contract_limits      TYPE bapiesucc,
              l_req_services               TYPE bapiesllc,
              l_req_serv_account        TYPE bapiesklc,
              l_req_serv_text               TYPE bapieslltx,
              l_req_addrdelivery        TYPE bbps_rqaddrdelivery_46.
      DATA:
           old_req_items           TYPE STANDARD TABLE OF bapiebanc,
           old_req_item_account    TYPE STANDARD TABLE OF bapiebkn,
           old_req_item_text       TYPE STANDARD TABLE OF bapiebantx,
           old_req_limits          TYPE STANDARD TABLE OF bapiesuhc,
           old_req_contract_limits TYPE STANDARD TABLE OF bapiesucc,
           old_req_services        TYPE STANDARD TABLE OF bapiesllc,
           old_req_serv_account    TYPE STANDARD TABLE OF bapiesklc,
           old_req_serv_text       TYPE STANDARD TABLE OF bapieslltx,
           old_req_addrdelivery    TYPE STANDARD TABLE OF
                                              bbps_rqaddrdelivery_46.
      DATA: l_mat_group TYPE comm_category-category_id.
      DATA: f_change_required TYPE c,
            f_limit_change    TYPE c,
            f_mat_sr_change   TYPE c,
            f_first_change    TYPE c VALUE 'X'.
    Data declaration for Shopping Cart number and PO number
      DATA: reqno          TYPE ec_reqno,
            requis_number  TYPE banfn.
      DATA: l_current_item TYPE bnfpo,
            line_item(5)   TYPE n.
    ---- Begin Processing ----
      DATA: l_requis_number TYPE banfn.   "jms 022802
    DEBUG TOOL ****** Goto SM50
    *data: i type i value 1.
    *while i <> 0.
    i = i + 1.
    *endwhile.
    END DEBUG TOOL *******
    Get Req Number and Shopping Cart Number
    read table req_items into l_req_items index 1.
    requis_number = l_req_items-preq_no.
    select single reqno
         into  (reqno)
         from  reqref
         where refnumber = requis_number.
    read detailed data from the requirement request
    call function 'BBP_REQREQ_GETDETAIL'
          EXPORTING
               reqno               = reqno
          IMPORTING
               req_header          = reqheader
               req_header_srv      = reqheaders
          TABLES
               req_reference       = reqreferences
               req_line            = reqlines
               req_line_mat        = reqlinemas
               req_line_srv        = reqlinesrs
               req_text            = reqtexts
               req_acct            = reqaccts
               req_address         = reqaddress
          EXCEPTIONS
               not_found           = 1
               foreign_lock        = 2
               no_enqueue_possible = 3
               others              = 4.
    if sy-subrc <> 0.
       raise internal_error.
       exit.
    endif.
    Begin JMS
    PO_NUM = PO_HEADER-PO_NUMBER.
    CMH Data declaration
      TYPES: et_header TYPE bbp_pds_sc_header_d.
      DATA:  t_et_header TYPE STANDARD TABLE OF et_header INITIAL SIZE 0,
             x_et_header TYPE et_header.
      TYPES: et_item TYPE bbp_pds_sc_item_d.
      DATA:  t_et_item TYPE STANDARD TABLE OF et_item INITIAL SIZE 0,
             x_et_item TYPE et_item.
      TYPES: sc_header TYPE bbp_pds_sc_header_d.
      DATA:  x_sc_header TYPE sc_header.
      TYPES: sc_is_pd TYPE xfeld.
      DATA:  l_sc_is_pd TYPE sc_is_pd.
      TYPES: sc_item TYPE bbp_pds_sc_item_d.
      DATA:  t_sc_item TYPE STANDARD TABLE OF sc_item INITIAL SIZE 0,
             x_sc_item TYPE sc_item.
      TYPES: sc_account TYPE bbp_pds_acc.
      DATA:  t_sc_account TYPE STANDARD TABLE OF sc_account INITIAL SIZE 0,
             x_sc_account TYPE sc_account.
      TYPES: sc_partner TYPE bbp_pds_partner.
      DATA:  t_sc_partner TYPE STANDARD TABLE OF sc_partner INITIAL SIZE 0,
             x_sc_partner TYPE sc_partner.
      TYPES: sc_confirm TYPE bbp_pds_con.
      DATA:  t_sc_confirm TYPE STANDARD TABLE OF sc_confirm INITIAL SIZE 0,
             x_sc_confirm TYPE sc_confirm.
      TYPES: sc_longtext TYPE bbp_pds_longtext.
      DATA:  t_sc_longtext TYPE
               STANDARD TABLE OF sc_longtext INITIAL SIZE 0,
             x_sc_longtext TYPE sc_longtext.
      TYPES: sc_limit TYPE bbp_pds_limit.
      DATA:  t_sc_limit TYPE STANDARD TABLE OF sc_limit INITIAL SIZE 0,
             x_sc_limit TYPE sc_limit.
      TYPES: sc_orgdata TYPE bbp_pds_org.
      DATA:  t_sc_orgdata TYPE
               STANDARD TABLE OF sc_orgdata INITIAL SIZE 0,
             x_sc_orgdata TYPE sc_orgdata.
      TYPES: sc_tax TYPE bbp_pds_tax.
      DATA:  t_sc_tax TYPE STANDARD TABLE OF sc_tax INITIAL SIZE 0,
             x_sc_tax TYPE sc_tax.
      TYPES: sc_pridoc TYPE bbp_pds_prc.
      DATA:  t_sc_pridoc TYPE STANDARD TABLE OF sc_pridoc INITIAL SIZE 0,
             x_sc_pridoc TYPE sc_pridoc.
      TYPES: sc_messages TYPE bbp_pds_messages.
      DATA:  t_sc_messages TYPE
               STANDARD TABLE OF sc_messages INITIAL SIZE 0,
             x_sc_messages TYPE sc_messages.
      TYPES: sc_actval TYPE bbp_pds_actval.
      DATA:  t_sc_actval TYPE STANDARD TABLE OF sc_actval INITIAL SIZE 0,
             x_sc_actval TYPE sc_actval.
      TYPES: sc_acc_actval TYPE bbp_pds_actval.
      DATA:  t_sc_acc_actval TYPE STANDARD TABLE OF sc_acc_actval
                                                          INITIAL SIZE 0,
             x_sc_acc_actval TYPE sc_acc_actval.
      TYPES: sc_header_rel TYPE bbp_pds_hrel.
      DATA:  t_sc_header_rel TYPE STANDARD TABLE OF sc_header_rel
                                                          INITIAL SIZE 0,
             x_sc_header_rel TYPE sc_header_rel.
      TYPES: sc_itmlim_rel TYPE bbp_pds_ilrel.
      DATA:  t_sc_itmlim_rel TYPE STANDARD TABLE OF sc_itmlim_rel
                                                          INITIAL SIZE 0,
             x_sc_itmlim_rel TYPE sc_itmlim_rel.
      TYPES: it_cuf_item_type TYPE bbps_cuf_item.
      DATA:  t_it_cuf_item TYPE STANDARD TABLE OF it_cuf_item_type
                                                          INITIAL SIZE 0,
             x_it_cuf_item TYPE it_cuf_item_type.
    - Contract limits                -
      TYPES: reqconlimits_type TYPE reqheads.
      DATA:  reqconlimits      TYPE STANDARD TABLE OF reqconlimits_type
                                INITIAL SIZE 10.
      DATA:  l_reqconlimits    TYPE reqconlimits_type.
      DATA:   lv_abort      TYPE xfeld,
              lv_is_pd      TYPE xfeld,
              lv_deliv_date LIKE sy-datum,
              lv_tabix      LIKE sy-tabix,
              lv_line       TYPE introw,
              lv_msarg      TYPE char200,
              lv_sc_guid    TYPE bbp_pdview_iap-header,
              lv_req_guid   TYPE bbp_pdview_iap-header.
      DATA: x_requis_number TYPE bapiebanc.
      IF NOT req_items[] IS INITIAL.
        CLEAR l_requis_number.
        READ TABLE req_items INTO x_requis_number INDEX 1.
        l_requis_number = x_requis_number-preq_no.
        requis_number = x_requis_number-preq_no.
      ENDIF.
    Get PO Guid from Backend Table.
      SELECT SINGLE guid
             INTO   lv_req_guid
             FROM   bbp_pdbei
             WHERE  be_object_id   =  l_requis_number
             AND    be_object_type = 'BUS2105'.
    Get Shopping Cart Guid from PO Guid
      SELECT SINGLE header
             INTO   lv_sc_guid
             FROM   bbp_pdview_iap
             WHERE  guid = lv_req_guid.
    Get detail from shopping cart
      CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
        EXPORTING
          i_guid                  = lv_sc_guid
          i_with_itemdata         = 'X'
        IMPORTING
          e_header                = x_sc_header
          ev_is_pd                = l_sc_is_pd
        TABLES
          e_item                  = t_sc_item
          e_account               = t_sc_account
          e_partner               = t_sc_partner
          e_confirm               = t_sc_confirm
          e_longtext              = t_sc_longtext
          e_limit                 = t_sc_limit
          e_orgdata               = t_sc_orgdata
          e_tax                   = t_sc_tax
          e_pridoc                = t_sc_pridoc
          e_messages              = t_sc_messages
          e_actval                = t_sc_actval
          e_acc_actval            = t_sc_acc_actval
          e_header_rel            = t_sc_header_rel
          e_itmlim_rel            = t_sc_itmlim_rel.
      lv_is_pd = l_sc_is_pd.
    message handling
      IF NOT t_sc_messages[] IS INITIAL.
        CALL FUNCTION 'BBP_BS_ADD_MESSAGES'
          IMPORTING
            ev_abort    = lv_abort
          TABLES
            it_messages = t_sc_messages.
      ENDIF.
    if error occured set alert/ exception.
      IF NOT lv_abort IS INITIAL.
        CALL FUNCTION 'BBP_ALERT_SB_LOCAL'
          EXPORTING
            msgid              = 'BBP_PD'
            msgno              = 280
            msgarg1            = lv_msarg
          EXCEPTIONS
            invalid_parameters = 1
            OTHERS             = 2.
       RAISE internal_error.
      ENDIF.
    map shopping cart in new structure into old structure to be able
    to continue with the old coding
      REFRESH t_sc_messages.
      CALL FUNCTION 'BBP_SC_MAP_PD_TO_REQ'
        EXPORTING
          is_new_header    = x_sc_header
        IMPORTING
          es_reqhead       = reqheader
          es_req_heads     = reqheaders
         es_cuf_header    = is_cuf_header
        TABLES
          et_req_reference = reqreferences
          et_req_line      = reqlines
          et_req_line_mat  = reqlinemas
          et_req_line_srv  = reqlinesrs
          et_req_text      = reqtexts
          et_req_acct      = reqaccts
          et_req_address   = reqaddress
          et_req_conlimit  = reqconlimits
          it_new_items     = t_sc_item
          it_account       = t_sc_account
          it_partner       = t_sc_partner
          it_longtext      = t_sc_longtext
          it_limit         = t_sc_limit
          it_orgdata       = t_sc_orgdata
          it_tax           = t_sc_tax
          it_actval        = t_sc_actval
          it_itmlim_rel    = t_sc_itmlim_rel
          et_messages      = t_sc_messages.
         et_cuf_item      = it_cuf_item
         et_cuf_acc       = it_cuf_acc.
      IF NOT t_sc_messages[] IS INITIAL.
    message handling
        CALL FUNCTION 'BBP_BS_ADD_MESSAGES'
          IMPORTING
            ev_abort    = lv_abort
          TABLES
            it_messages = t_sc_messages.
      ENDIF.
    if error occured set alert/ exception.
      IF NOT lv_abort IS INITIAL.
        CALL FUNCTION 'BBP_ALERT_SB_LOCAL'
          EXPORTING
            msgid              = 'BBP_PU'
            msgno              = 326
            msgarg1            = lv_msarg
          EXCEPTIONS
            invalid_parameters = 1
            OTHERS             = 2.
       RAISE internal_error.
      ENDIF.
    End insert 03/26/2003
    ReqReferences doesn't list the PO item number.  We'll need that to
    associate the WBS to a Service Sub Item later.  Let's put it in.
      SORT reqreferences BY client refnumber reqlline.
      LOOP AT reqreferences INTO x_reqreferences.
        IF x_reqreferences-refline IS INITIAL.
          IF l_requis_number = x_reqreferences-refnumber. "jms 022802
            ADD 1 TO line_item.
          ELSE.
            l_requis_number = x_reqreferences-refnumber.  "jms 022802
            line_item = 1.
          ENDIF.
        Accumulate the line item
          x_reqreferences-refline = line_item.
          MODIFY reqreferences FROM x_reqreferences INDEX sy-tabix.
        ENDIF.
      ENDLOOP.
      SORT reqlines      BY client reqno reqlline.
      SORT reqreferences BY client reqno reqlline counter.
      SORT reqlinemas    BY client reqno reqsline reqlline.
      SORT reqlinesrs    BY client reqno reqsline reqlline.
      SORT reqaccts      BY client reqno reqlline serial_no. " note 359605
      CLEAR: h_preq_item.
      CLEAR: h_srv_item, h_srv_outl_created,
             h_packno_item, h_packno_srv, h_introw.
    First, the Shopping Cart number should be extracted from REQREF table
    based on the Req number.
    take all items with the specific reference number
      LOOP AT reqreferences
         INTO l_reqreferences                                  "iok 091701
        WHERE refnumber EQ requis_number.
       if logical_system is initial.
         logical_system = l_reqreferences-logical_system.
       endif.
        MOVE-CORRESPONDING l_reqreferences TO longkey.
      read table reqlines with key longkey binary search.
        READ TABLE reqlines INTO l_reqlines                    "iok 091701
            WITH KEY client = longkey-client
                      reqno = longkey-reqno
                   reqlline = longkey-reqlline
                   BINARY SEARCH.
        CHECK sy-subrc EQ 0.
        h_preq_item = l_reqlines-reqsline+5(5).
      clear h_preq_item.
      Change line_type based on Material Group
      add code here later.
        CLEAR: f_change_required,
               f_mat_sr_change,
               f_limit_change.
        SELECT SINGLE category_id
          INTO l_mat_group
          FROM comm_category
         WHERE category_guid = l_reqlines-category.
      Check if Services Special Request
        IF l_reqlines-catalogid IS INITIAL AND
           l_reqlines-product   IS INITIAL AND
           l_mat_group(1)        = 'S'     AND
           l_reqlines-line_type  = '1'.     "Service Special Request
        Set flags for future processing
          l_reqlines-line_type = '3'.
          f_change_required    = 'X'.
          f_limit_change       = 'X'.
      Check if Material Special Request
        ELSEIF l_reqlines-catalogid IS INITIAL AND
               l_reqlines-product   IS INITIAL AND
               l_mat_group(1)       <> 'S'     AND
               l_reqlines-line_type = '1'. "Material Special Request
        Set flags for future processing
          f_change_required = 'X'.
          f_mat_sr_change = 'X'.
        ENDIF.
        CHECK f_change_required = 'X'.
      For Material Special Requests only need to select and store UNSPSC
      code   -- iok 092401
        IF f_mat_sr_change = 'X'.
        Get UNSPSC code (first hit) based on Material Group and store
        in text id B05.   iok 092101
          READ TABLE req_items INTO l_req_items
              WITH KEY preq_item = h_preq_item
                       mat_grp   = l_mat_group.
          READ TABLE req_item_text INTO l_req_item_text
              WITH KEY preq_no   = requis_number
                       preq_item = l_req_items-preq_item
                       text_id = 'B05'.
          IF sy-subrc <> 0.
            CLEAR l_req_item_text.
          Find a UNSPSC Code from a Material Group .. even it's arbitrary
            SELECT unspsc_code UP TO 1 ROWS
                 FROM zxl8_category_id
                 INTO l_req_item_text-text_line
                WHERE category_id = l_mat_group.
            ENDSELECT.
          If nothing found then fill in a dummy UNSPSC.  The first
          letter of the Material will designate whether it's a Material
          or Service.
            IF sy-subrc NE 0.
            Move the Material Group value into a holding variable
              CONCATENATE l_mat_group(1) 'XXXXXXXX'
                     INTO l_req_item_text-text_line.
            ENDIF.
            l_req_item_text-preq_no   = requis_number.
            l_req_item_text-preq_item = l_req_items-preq_item.
            l_req_item_text-text_id   = 'B05'.
            INSERT l_req_item_text INTO TABLE req_item_text.
          ENDIF.
          CONTINUE.  "to next item.
        ENDIF.
        IF f_first_change = 'X' AND f_limit_change = 'X'.
        Save old P.Req. data and clear tables
          old_req_items[]           = req_items[].
          old_req_item_account[]    = req_item_account[].
          old_req_item_text[]       = req_item_text[].
          old_req_limits[]          = req_limits[].
          old_req_contract_limits[] = req_contract_limits[].
          old_req_services[]        = req_services[].
          old_req_serv_account[]    = req_serv_account[].
          old_req_serv_text[]       = req_serv_text[].
          old_req_addrdelivery[]    = req_addrdelivery[].
          REFRESH:  req_items,
                    req_item_account,
                  req_item_text,
                    req_limits,
                    req_contract_limits,
                    req_services,
                    req_serv_account,
                    req_serv_text.
                  req_addrdelivery.
          CLEAR f_first_change.
        ENDIF.
      Limit
        IF l_reqlines-line_type EQ '3'.
          and not reqheaders-limit is initial.
          DATA: l_reqreferences_temp   TYPE reqreferences_type.
        +JMS 2/26/2002
          CLEAR l_reqreferences_temp.
          READ TABLE reqreferences INTO l_reqreferences_temp
            WITH KEY client   = longkey-client
                     reqno    = longkey-reqno
                     reqlline = longkey-reqlline
                     BINARY SEARCH.
          IF sy-subrc = 0.
            h_preq_item = l_reqreferences_temp-refline.
          ENDIF.
          CLEAR l_req_items.
          READ TABLE old_req_items INTO l_req_items
              WITH KEY preq_item = h_preq_item.
          MOVE-CORRESPONDING l_req_items TO reqheaders.
          reqheaders-begdate   = l_req_items-deliv_date.
          reqheaders-limit     = l_req_items-c_amt_bapi.
          reqheaders-exp_value = l_req_items-c_amt_bapi.
          reqheaders-gr_ind    = 'X'.
          reqheaders-reqno     = l_req_items-preq_no.           "jms 022602
          CLEAR l_req_items.
    INSERT FORM **** CREATE_SERVICE_ITEM
          h_packno_item = h_packno_item + 1.
          h_packno_srv  = h_packno_srv  + 10000.
          h_introw      = h_introw + 1.
          CLEAR l_req_items.                                 " Note 364396
          MOVE-CORRESPONDING reqheaders TO l_req_items.
          l_req_items-preq_no = reqheaders-reqno.               "jms 022602
         l_REQ_ITEMS-PREQ_NO = REQUIS_NUMBER.                 "jms 022602
    l_REQ_ITEMS-PREQ_ITEM = H_PREQ_ITEM + 1.    "iok 091801
          l_req_items-preq_item = h_preq_item.                  "iok 091801
          l_current_item = h_preq_item.                         "iok 092101
          h_srv_item  = l_req_items-preq_item.
          h_preq_item = h_preq_item + 1.
          IF NOT reqheaders-limit IS INITIAL OR
             NOT reqheaders-exp_value IS INITIAL.
            IF reqheaders-gr_ind IS INITIAL.
              l_req_items-item_cat = '1'.
            ELSE.
              l_req_items-item_cat = '9'.
            ENDIF.
            l_req_items-deliv_date = reqheaders-begdate.
          ELSE.
            l_req_items-item_cat = '9'.
          ENDIF.
          IF l_req_items-del_datcat IS INITIAL.
            l_req_items-del_datcat = '1'.
          ENDIF.
          l_req_items-quantity = 1.
          l_req_items-pckg_no  = h_packno_item.
          IF l_req_items-preq_name EQ space.
            l_req_items-preq_name = sy-uname.
          ENDIF.
          APPEND l_req_items TO req_items.
    END OF FORM INSERTION ********
          l_req_limits-pckg_no    = h_packno_item.
          l_req_limits-limit      = reqheaders-limit.
          l_req_limits-exp_value  = reqheaders-exp_value.
          l_req_limits-no_limit   =  reqheaders-no_limit.
          l_req_limits-no_frlimit = 'X'.
          APPEND l_req_limits TO req_limits.
    *.... Account assignment
        clear requisition_srv_accass_values.
          CLEAR l_req_serv_account.
          l_req_serv_account-pckg_no = h_packno_item.
          MOVE-CORRESPONDING l_reqlines TO longkey.
        read table reqaccts with key longkey binary search. "iok 091801
          READ TABLE reqaccts INTO l_reqaccts                   "iok 091801
            WITH KEY client   = longkey-client
                     reqno    = longkey-reqno
                     reqlline = longkey-reqlline
                     BINARY SEARCH.
          IF sy-subrc = 0.
            LOOP AT reqaccts
                INTO l_reqaccts
                WHERE reqno    = l_reqreferences-reqno
                AND   reqlline = l_reqreferences-reqlline.
    INSERT FULL FORM *********** FILL_REQ_ACCT_SRV
              DATA: acctcomp1 TYPE bapiebkn,
                    acctcomp2 TYPE bapiebkn,
                    high_serial TYPE dzekkn.  "LIKE BAPIEKKN-SERIAL_NO.
              CLEAR l_req_serv_account-serial_no.
              CLEAR acctcomp1.
              MOVE-CORRESPONDING l_reqaccts TO acctcomp1.
              CLEAR: acctcomp1-preq_no,
                     acctcomp1-preq_item,
                     acctcomp1-serial_no,
                     acctcomp1-created_on,
                     acctcomp1-created_by,
                     acctcomp1-preq_qty,
                     acctcomp1-distr_perc,
                     acctcomp1-change_id,
                     acctcomp1-currency.
              LOOP AT req_item_account INTO l_req_item_account.
                CLEAR acctcomp2.
      MOVE-CORRESPONDING l_req_item_account TO ACCTCOMP2.  "is blank
                CLEAR: acctcomp2-preq_no,
                       acctcomp2-preq_item,
                       acctcomp2-serial_no,
                       acctcomp2-created_on,
                       acctcomp2-created_by,
                       acctcomp2-preq_qty,
                       acctcomp2-distr_perc,
                       acctcomp2-change_id,
                       acctcomp2-currency.
               IF acctcomp1 EQ acctcomp2  AND h_srv_outl_created IS INITIAL.
                l_req_serv_account-serial_no = l_req_item_account-serial_no.
                  EXIT.
                ENDIF.
                high_serial = l_req_item_account-serial_no.
              ENDLOOP.
              h_srv_outl_created = ' '.
              IF l_req_serv_account-serial_no IS INITIAL.
                MOVE-CORRESPONDING l_reqaccts TO l_req_item_account.
               l_REQ_item_ACCOUNT-PREQ_NO   = REQUIS_NUMBER.   "jms 022702
                l_req_item_account-preq_no = l_req_items-preq_no."jms 022702
                l_req_item_account-preq_item = h_srv_item.
    REQUISITION_ACCOUNT_ASSIGNMENT-WBS_ELEM_E = REQACCT-BBP_PROJECT.
                l_req_item_account-serial_no = high_serial + 1.
                l_req_serv_account-serial_no = l_req_item_account-serial_no.
                APPEND l_req_item_account TO req_item_account.
              ENDIF.
    END OF FORM INSERTION ***********
              h_serial_no = h_serial_no + 1.
              l_req_serv_account-serno_line = h_serial_no.
              l_req_serv_account-percentage = l_reqaccts-distr_perc.
              APPEND l_req_serv_account TO req_serv_account.
            ENDLOOP.
    INSERT FULL FORM **************** CONVERT_ACCOUNT_***_CAT
    data: account_tab LIKE bbp_pds_acc OCCURS 0 WITH HEADER LINE.
            DATA: account_tab TYPE STANDARD TABLE OF bbp_pds_acc.
            DATA: l_account_tab TYPE bbp_pds_acc.
            DATA: h_knttp TYPE knttp.
          move the accounting data to that item into the interface table
                LOOP AT reqaccts
               INTO l_reqaccts
              WHERE reqno    EQ l_reqreferences-reqno
                AND reqlline EQ l_reqreferences-reqlline.
              MOVE-CORRESPONDING l_reqaccts TO l_account_tab.
              APPEND l_account_tab TO account_tab.
            ENDLOOP.
          call the convert API
            CALL FUNCTION 'BBP_ACCCAT_MAP_EXP'
                 EXPORTING
                      i_logical_system = logical_system
                 IMPORTING
                      e_r3_acc_cat     = h_knttp
                 TABLES
                      i_pd_account     = account_tab.
            IF h_knttp IS INITIAL.
              h_knttp = 'X'.
            ENDIF.
          +JMS 2/14/2002 Issue #1590
            CLEAR   account_tab.
            REFRESH account_tab.
          account assignment category - set in the correct item
            LOOP AT req_items
               INTO l_req_items
              WHERE preq_item EQ l_req_item_account-preq_item.
              l_req_items-acctasscat = h_knttp.
              MODIFY req_items FROM l_req_items INDEX sy-tabix.
            ENDLOOP.
    END OF FORM INSERTION ************
          ELSE.
    INSERT FULL FORM ************* Form  CONVERT_ACCOUNT_***_CAT_U
            LOOP AT req_items
               INTO l_req_items
              WHERE preq_item EQ l_current_item.
              l_req_items-acctasscat = 'U'.
              MODIFY req_items FROM l_req_items INDEX sy-tabix.
            ENDLOOP.
    END OF FORM INSERTION ************
          ENDIF.
        Get UNSPSC code (first hit) based on Material Group and store
        in text id B05.   iok 092101
          READ TABLE req_items INTO l_req_items
              WITH KEY preq_item = l_current_item
                       mat_grp   = l_mat_group.
          READ TABLE req_item_text INTO l_req_item_text
              WITH KEY preq_no   = requis_number
                       preq_item = l_req_items-preq_item
                       text_id   = 'B05'.
          IF sy-subrc <> 0.
            CLEAR l_req_item_text.
          Get UNSPSC Code from Material Group .. even if arbitrary
            SELECT unspsc_code UP TO 1 ROWS
              FROM zxl8_category_id
              INTO l_req_item_text-text_line
             WHERE category_id = l_mat_group.
            ENDSELECT.
          If nothing found then fill in a dummy UNSPSC.  The first
          letter of the Material will designate whether it's a Material
          or Service.
            IF sy-subrc NE 0.
            Move the Material Group value into a holding variable
              CONCATENATE l_mat_group(1) 'XXXXXXX'
                     INTO l_req_item_text-text_line.
            ENDIF.
            l_req_item_text-preq_no   = requis_number.
            l_req_item_text-preq_item = l_req_items-preq_item.
            l_req_item_text-text_id   = 'B05'.
            INSERT l_req_item_text INTO TABLE req_item_text.
          ENDIF.
        Don't send Internal Note to Backend
         delete req_item_text where text_id = 'B02'.
    Service -- NOT NEEDED -- IOK 07/13/01
       elseif not reqlines-reqsline is initial
             and reqlines-line_type eq '2'.
         move-corresponding reqlines to shortkey.
         read table reqlinesrs with key shortkey binary search.
         if sy-subrc = 0.
           h_serv = reqlinesrs.
           append h_serv.
         endif.
    material item -- NOT NEEDED -- IOK 07/13/01
        ENDIF.
      ENDLOOP.
    Services -- NOT NEED -- IOK 07/13/01
      IF f_limit_change = 'X'.
      Check multiple account assignment
        LOOP AT req_items INTO l_req_items.
          h_index = sy-tabix.
          CLEAR next.
          LOOP AT req_item_account
             INTO l_req_item_account
            WHERE preq_item EQ l_req_items-preq_item.
            next = next + 1.
          ENDLOOP.
          IF next > 1.
            l_req_items-distrib    = '2'. "prozentuale Verteilung
            l_req_items-part_inv   = '1'.
            l_req_items-gr_non_val = 'X'.
           MODIFY req_items FROM l_req_items INDEX h_index.     "217191
         modify requisition_items.                                "217191
          ENDIF.
        ENDLOOP.
      ENDIF.
    Remap delivery address for backend processing
      LOOP AT req_addrdelivery INTO l_req_addrdelivery.
        MOVE:  l_req_addrdelivery-name_2   TO l_req_addrdelivery-name,
               l_req_addrdelivery-c_o_name TO l_req_addrdelivery-name_2.
        CLEAR: l_req_addrdelivery-c_o_name.
        MODIFY req_addrdelivery FROM l_req_addrdelivery INDEX sy-tabix.
      ENDLOOP.
    CHM 07/16/2003 Changed created by to always be actual creator even
                   for on behalf of situations
        LOOP AT req_items
           INTO l_req_items.
          l_req_items-created_by = x_sc_header-created_by.
          MODIFY req_items FROM l_req_items INDEX sy-tabix.
        ENDLOOP.
    CMH - end change
    MA 12/10/04 - Pass MP2 number from Manu Prod# to Req Item Text
    LOOP AT req_items INTO l_req_items.
        READ TABLE t_sc_item into x_sc_item
             WITH KEY number_int  = l_req_items-preq_item.
        l_req_item_text-preq_no   = requis_number.
        l_req_item_text-preq_item = l_req_items-preq_item.
        l_req_item_text-text_id   = 'B06'.
        l_req_item_text-text_line = x_sc_item-manu_prod.
        INSERT l_req_item_text INTO TABLE req_item_text.
    ENDLOOP.
    ENDMETHOD.

    Any help guys?
    Thanks
    Manyam

  • Error in GUI_down load

    hi,
    i am using gui_down load fm to down load the data into excel,but i need the excel sheet with headers,how to extract the data with field names.
    i am using following code.
    *& Report  ZTEST                                                       *
    REPORT  ZTEST                                   .
    *DATA: BEGIN OF IT_PO_HEADER OCCURS 20,
         BSART LIKE EKKO-BSART,
         EBELN LIKE EKKO-EBELN,
         SUPERFIELD LIKE MEPO_TOPLINE-SUPERFIELD,
         BEDAT LIKE EKKO-BEDAT,
         ZTERM LIKE EKKO-ZTERM,
         NETWR LIKE EKKO-NETWR,
         TABLES: EKKO.
    *PARAMETERS : P_EBELN TYPE EBELN.
    SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
    TYPES: BEGIN OF T_PO,
             EBELN TYPE EBELN,
           END OF T_PO.
    DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
          WA_PO TYPE T_PO.
    DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
    DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
    DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
    DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
    WITH HEADER LINE.
    DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
    DATA: PO_HEADER TYPE BAPIEKKOL.
    DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
    data : begin of itab1 occurs 0,
             line(750) type c,
           end of itab1.
    SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
    PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE.
    LOOP AT IT_PO INTO WA_PO.
    CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
           PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
    CALL FUNCTION 'BAPI_PO_GETDETAIL'
      EXPORTING
        PURCHASEORDER              = WA_PO-EBELN
        ITEMS                      = 'X'
        ACCOUNT_ASSIGNMENT         = 'x'
        SCHEDULES                  = ' '
        HISTORY                    = 'X'
        ITEM_TEXTS                 = 'X'
        HEADER_TEXTS               = 'X'
      TABLES
        PO_HEADER_TEXTS            = PO_HEADER_TEXTS
        PO_ITEMS                   = IT_ITEMS
        PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
        PO_ITEM_SCHEDULES          = PO_ITEMS_SHEDULE
        PO_ITEM_TEXTS              = PO_ITEM_TEXT
        RETURN                     = RETURN1.
    PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'X',
                           TABLES IT_ITEMS USING 'X',
                           TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X',
                           TABLES PO_ITEMS_SHEDULE USING 'X',
                           TABLES PO_ITEM_TEXT USING 'X'.
    ENDLOOP.
    *&      Form  DOWNLOAD_DATA
    FORM DOWNLOAD_DATA  TABLES   IT_TAB
                        USING    P_APP.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        FILENAME = 'C:/poextract.xls'
        APPEND =  P_APP
        WRITE_FIELD_SEPARATOR = 'X'
      TABLES
        DATA_TAB = IT_TAB
        FIELDNAMES = FIELDNAME
      EXCEPTIONS
        FILE_WRITE_ERROR        = 1
        NO_BATCH                = 2
        GUI_REFUSE_FILETRANSFER = 3
        INVALID_TYPE            = 4
        NO_AUTHORITY            = 5
        UNKNOWN_ERROR           = 6
        HEADER_NOT_ALLOWED      = 7
        SEPARATOR_NOT_ALLOWED   = 8
        FILESIZE_NOT_ALLOWED    = 9
        HEADER_TOO_LONG         = 10
        DP_ERROR_CREATE         = 11
        DP_ERROR_SEND           = 12
        DP_ERROR_WRITE          = 13
        UNKNOWN_DP_ERROR        = 14
        ACCESS_DENIED           = 15
        DP_OUT_OF_MEMORY        = 16
        DISK_FULL               = 17
        DP_TIMEOUT              = 18
        FILE_NOT_FOUND          = 19
        DATAPROVIDER_EXCEPTION  = 20
        CONTROL_FLUSH_ERROR     = 21
        OTHERS                  = 22.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " DOWNLOAD_DATA
    Thanks,
    Rammohan.

    Hi Ram
    Please try with below code and let us know if you are still encountering the problem while downloading headers:
    TABLES: EKKO.
    *PARAMETERS : P_EBELN TYPE EBELN.
    SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
    TYPES: BEGIN OF T_PO,
             EBELN TYPE EBELN,
           END OF T_PO.
    DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
          WA_PO TYPE T_PO.
    DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
    DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
    DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
    DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
    WITH HEADER LINE.
    DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
    DATA: PO_HEADER TYPE BAPIEKKOL.
    DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
    DATA: RC TYPE I.
    SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
    PERFORM FILE_DELETE.
    LOOP AT IT_PO INTO WA_PO.
      CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
             PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
      CALL FUNCTION 'BAPI_PO_GETDETAIL'
        EXPORTING
          PURCHASEORDER              = WA_PO-EBELN
          ITEMS                      = 'X'
          ACCOUNT_ASSIGNMENT         = 'X'
          SCHEDULES                  = ' '
          HISTORY                    = 'X'
          ITEM_TEXTS                 = 'X'
          HEADER_TEXTS               = 'X'
        TABLES
          PO_HEADER_TEXTS            = PO_HEADER_TEXTS
          PO_ITEMS                   = IT_ITEMS
          PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
          PO_ITEM_SCHEDULES          = PO_ITEMS_SHEDULE
          PO_ITEM_TEXTS              = PO_ITEM_TEXT
          RETURN                     = RETURN1.
      PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'BAPIEKKOTX',
                             TABLES IT_ITEMS USING 'BAPIEKPO',
                             TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING
    'BAPIEKKN',
                             TABLES PO_ITEMS_SHEDULE USING 'BAPIEKET',
                             TABLES PO_ITEM_TEXT USING 'BAPIEKPOTX'.
    ENDLOOP.
    *&      Form  DOWNLOAD_DATA
    FORM DOWNLOAD_DATA  TABLES   IT_TAB
                        USING    STRUC_NAME.
      DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
            IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
      DATA: IT_HEAD TYPE TABLE OF STRING,
            WA_HEAD TYPE STRING.
      DATA: L_TAB(1) TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
      IF NOT IT_TAB[] IS INITIAL.
        CALL FUNCTION 'DD_GET_DD03P_ALL'
          EXPORTING
            TABNAME       = STRUC_NAME
          TABLES
            A_DD03P_TAB   = IT_DD03P
            N_DD03P_TAB   = IT_DD03P1
          EXCEPTIONS
            ILLEGAL_VALUE = 1
            OTHERS        = 2.
        IF SY-SUBRC EQ 0.
          LOOP AT IT_DD03P.
            IF SY-TABIX EQ 1.
              MOVE IT_DD03P-DDTEXT TO WA_HEAD.
            ELSE.
        CONCATENATE WA_HEAD IT_DD03P-DDTEXT INTO WA_HEAD SEPARATED BY L_TAB.
            ENDIF.
          ENDLOOP.
          APPEND WA_HEAD TO IT_HEAD.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = 'C:poextract.xls'
          APPEND                  = 'X'
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = IT_HEAD
    *      FIELDNAMES              = IT_HEAD
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = 'C:poextract.xls'
          APPEND                  = 'X'
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = IT_TAB
    *      FIELDNAMES              = IT_HEAD
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DOWNLOAD_DATA
    *&      Form  FILE_DELETE
    FORM FILE_DELETE .
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_DELETE
        EXPORTING
          FILENAME             = 'C:poextract.xls'
        CHANGING
          RC                   = RC
        EXCEPTIONS
          FILE_DELETE_FAILED   = 1
          CNTL_ERROR           = 2
          ERROR_NO_GUI         = 3
          FILE_NOT_FOUND       = 4
          ACCESS_DENIED        = 5
          UNKNOWN_ERROR        = 6
          NOT_SUPPORTED_BY_GUI = 7
          WRONG_PARAMETER      = 8
          OTHERS               = 9.
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " FILE_DELETE
    Kind Regards
    Eswar

  • HOW TO EXTRACT THE PO CONDITIONS

    HI,
    i am using the following code,but in this i am not geting the po conditions values,is there any way to get the condition values into excel sheet.
    report ztest1.
    TABLES: EKKO.
    *PARAMETERS : P_EBELN TYPE EBELN.
    SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
    TYPES: BEGIN OF T_PO,
             EBELN TYPE EBELN,
           END OF T_PO.
    DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
          WA_PO TYPE T_PO.
    DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
    DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
    DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
    DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
    WITH HEADER LINE.
    DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
    DATA: PO_HEADER TYPE BAPIEKKOL.
    DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
    DATA: RC TYPE I.
    SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
    PERFORM FILE_DELETE.
    LOOP AT IT_PO INTO WA_PO.
      CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
             PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
      CALL FUNCTION 'BAPI_PO_GETDETAIL'
        EXPORTING
          PURCHASEORDER              = WA_PO-EBELN
          ITEMS                      = 'X'
          ACCOUNT_ASSIGNMENT         = 'X'
          SCHEDULES                  = ' '
          HISTORY                    = 'X'
          ITEM_TEXTS                 = 'X'
          HEADER_TEXTS               = 'X'
        TABLES
          PO_HEADER_TEXTS            = PO_HEADER_TEXTS
          PO_ITEMS                   = IT_ITEMS
          PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
          PO_ITEM_SCHEDULES          = PO_ITEMS_SHEDULE
          PO_ITEM_TEXTS              = PO_ITEM_TEXT
          RETURN                     = RETURN1.
      PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'BAPIEKKOTX',
                             TABLES IT_ITEMS USING 'BAPIEKPO',
                             TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING
    'BAPIEKKN',
                             TABLES PO_ITEMS_SHEDULE USING 'BAPIEKET',
                             TABLES PO_ITEM_TEXT USING 'BAPIEKPOTX'.
    ENDLOOP.
    *&      Form  DOWNLOAD_DATA
    FORM DOWNLOAD_DATA  TABLES   IT_TAB
                        USING    STRUC_NAME.
      DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
            IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
      DATA: IT_HEAD TYPE TABLE OF STRING,
            WA_HEAD TYPE STRING.
      DATA: L_TAB(1) TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
      IF NOT IT_TAB[] IS INITIAL.
        CALL FUNCTION 'DD_GET_DD03P_ALL'
          EXPORTING
            TABNAME       = STRUC_NAME
          TABLES
            A_DD03P_TAB   = IT_DD03P
            N_DD03P_TAB   = IT_DD03P1
          EXCEPTIONS
            ILLEGAL_VALUE = 1
            OTHERS        = 2.
        IF SY-SUBRC EQ 0.
          LOOP AT IT_DD03P.
            IF SY-TABIX EQ 1.
              MOVE IT_DD03P-DDTEXT TO WA_HEAD.
            ELSE.
        CONCATENATE WA_HEAD IT_DD03P-DDTEXT INTO WA_HEAD SEPARATED BY L_TAB.
            ENDIF.
          ENDLOOP.
          APPEND WA_HEAD TO IT_HEAD.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = 'C:\poextract.xls'
          APPEND                  = 'X'
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = IT_HEAD
         FIELDNAMES              = IT_HEAD
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = 'C:\poextract.xls'
          APPEND                  = 'X'
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = IT_TAB
         FIELDNAMES              = IT_HEAD
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DOWNLOAD_DATA
    *&      Form  FILE_DELETE
    FORM FILE_DELETE .
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_DELETE
        EXPORTING
          FILENAME             = 'C:\poextract.xls'
        CHANGING
          RC                   = RC
        EXCEPTIONS
          FILE_DELETE_FAILED   = 1
          CNTL_ERROR           = 2
          ERROR_NO_GUI         = 3
          FILE_NOT_FOUND       = 4
          ACCESS_DENIED        = 5
          UNKNOWN_ERROR        = 6
          NOT_SUPPORTED_BY_GUI = 7
          WRONG_PARAMETER      = 8
          OTHERS               = 9.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " FILE_DELETE

    HI Ram
    Am not able to access SAP now, I guess FM: 'BAPI_PO_GETDETAIL' itself can return PO conditions as well. Please check the same.
    Kind Regards
    Eswar

  • Problem in the downloading the excel sheet.

    hi i am using the following code,i am getting the data into internal table,but it is not comming in to excel sheel can any body tell why the data is not comming,
    it_head is the table for headers.
    report ztest1.
    TABLES: EKKO.
    *PARAMETERS : P_EBELN TYPE EBELN.
    SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
    TYPES: BEGIN OF T_PO,
             EBELN TYPE EBELN,
           END OF T_PO.
    DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
          WA_PO TYPE T_PO.
    DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
    DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
    DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
    DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
    WITH HEADER LINE.
    DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
    DATA: PO_HEADER TYPE BAPIEKKOL.
    DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
    SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
    PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE 'BAPIEKPO'.
    LOOP AT IT_PO INTO WA_PO.
      CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
             PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
      CALL FUNCTION 'BAPI_PO_GETDETAIL'
        EXPORTING
          PURCHASEORDER              = WA_PO-EBELN
          ITEMS                      = 'X'
          ACCOUNT_ASSIGNMENT         = 'X'
          SCHEDULES                  = ' '
          HISTORY                    = 'X'
          ITEM_TEXTS                 = 'X'
          HEADER_TEXTS               = 'X'
        TABLES
          PO_HEADER_TEXTS            = PO_HEADER_TEXTS
          PO_ITEMS                   = IT_ITEMS
          PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
          PO_ITEM_SCHEDULES          = PO_ITEMS_SHEDULE
          PO_ITEM_TEXTS              = PO_ITEM_TEXT
          RETURN                     = RETURN1.
      PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'X' 'BAPIEKKOTX',
                             TABLES IT_ITEMS USING 'X' 'BAPIEKPO',
                             TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X'
      'BAPIEKKN',
                             TABLES PO_ITEMS_SHEDULE USING 'X' 'BAPIEKET',
                             TABLES PO_ITEM_TEXT USING 'X' 'BAPIEKPOTX'.
    ENDLOOP.
    *&      Form  DOWNLOAD_DATA
    FORM DOWNLOAD_DATA  TABLES   IT_TAB
                        USING    P_APP
                                 STRUC_NAME.
      DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
            IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
      TYPES: BEGIN OF T_HEAD,
               TEXT TYPE AS4TEXT,
             END OF T_HEAD.
      DATA: IT_HEAD TYPE TABLE OF T_HEAD.
      IF NOT IT_TAB[] IS INITIAL.
        CALL FUNCTION 'DD_GET_DD03P_ALL'
          EXPORTING
            TABNAME       = STRUC_NAME
          TABLES
            A_DD03P_TAB   = IT_DD03P
            N_DD03P_TAB   = IT_DD03P1
          EXCEPTIONS
            ILLEGAL_VALUE = 1
            OTHERS        = 2.
        IF SY-SUBRC EQ 0.
          LOOP AT IT_DD03P.
            APPEND IT_DD03P-DDTEXT TO IT_HEAD.
          ENDLOOP.
        ENDIF.
      ENDIF.
    break-point.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = 'C:\poextract.xls'
          APPEND                  = P_APP
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = IT_TAB
          FIELDNAMES              = IT_HEAD
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DOWNLOAD_DATA

    HI HILEMEN,
    in 4.7 we have option to download the data ,like this
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                    =
        filename                        =
      FILETYPE                        = 'ASC'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
    IMPORTING
      FILELENGTH                      =
      tables
        data_tab                        =
      FIELDNAMES                      =
    any how i need the filed names in the header ,in excel sheet i need column heading but it is not comming can any body tell.

  • Purchase order creation error

    Hi, please see below code to create PO. PO is creating perfectly alright but some how Goods Receipt Check is not there in Delivery tab for line item. Could you please tell me how do i get that GR filed checked? I don't know what mistake i am making.
    Note : I am trying to create PO aganist Contract and trying to create Standard order (NB)
    form map_input_data.
    perform fill_bapiekkoc.
    perform fill_bapiekkoa.
    perform fill_bapiekpoc.
    perform fill_bapiekpoa.
    perform fill_bapieket.
    perform fill_bapiekkn.
    perform fill_bapiekpotx.
    *----CALL THE FUNCTION TO CREATE THE PURCHASEORDER
    perform call_create_purchaseorder.
    endform. " MAP_INPUT_DATA
    form call_create_purchaseorder.
    call function 'BAPI_PO_CREATE'
    exporting
    po_header = bapiekkoc
    po_header_add_data = bapiekkoa
    importing
    purchaseorder = vbeln
    tables
    po_items = bapiekpoc
    po_item_schedules = bapieket
    return = bapireturn1
    exceptions
    others = 1.
    if sy-subrc = 0.
    clear bapireturn1.
    read table bapireturn1 index 1.
    if bapireturn1-type = ' ' or bapireturn1-type = 'S'.
    clear itab_message.
    move vbeln to itab_message-vbeln.
    move ' : PURCHASEORDER CREATED SUCCESSFULLY' to itab_message-mess.
    append itab_message.
    else.
    clear itab_error.
    move bapireturn1 to itab_error.
    append itab_error.
    endif.
    else.
    write : / 'ERROR IN FUNCTION CALL'.
    exit.
    endif.
    endform. " CALL_CREATE_PURCHASEORDER
    form fill_bapiekkoc.
    clear bapiekkoc.
    bapiekkoc-doc_date = u201802/23/2009u2019.
    bapiekkoc-doc_type = 'NB'.
    move itab- to bapiekkoc-DOC_CAT.
    move itab- to bapiekkoc-CO_CODE.
    bapiekkoc-purch_org = '1000'.
    bapiekkoc-pur_group = '001'.
    move itab- to bapiekkoc-AGREEMENT.
    bapiekkoc-vendor = 'SCM550-12'.
    endform. " FILL_BAPIEKKOC
    form fill_bapiekpoc.
    clear bapiekpoc.
    bapiekpoc-po_item = '00010'.
    move itab- to bapiekpoc-AGREEMENT.
    move itab- to bapiekpoc-AGMT_ITEM.
    bapiekpoc-plant = '1000'.
    bapiekpoc-unit = 'EA'.
    bapiekpoc-net_price = '100000'.
    bapiekpoc-price_unit = '5'.
    bapiekpoc-orderpr_un = 'EA' .
    append bapiekpoc.
    endform. " FILL_BAPIEKPOC
    form fill_bapieket.
    clear bapieket.
    bapieket-po_item = '000010'.
    bapieket-deliv_date = sy-datum.
    append bapieket.
    endform. " FILL_BAPIEKET
    form fill_bapiekkn.
    clear bapiekkn.
    bapiekkn-po_item = '000010'.
    move itab- to bapiekkn-G_L_ACCT.
    move itab- to bapiekkn-COST_CTR.
    move itab- to bapiekkn-GR_RCPT.
    move itab- to bapiekkn-UNLOAD_PT.
    move itab- to bapiekkn-CO_AREA.
    append bapiekkn.
    endform. " FILL_BAPIEKKN

    Hi,
    Yes I am filling table bapiekkn.
    form fill_bapiekkn.
    clear bapiekkn.
    bapiekkn-po_item = '000010'.
    move itab- to bapiekkn-G_L_ACCT.
    move itab- to bapiekkn-COST_CTR.
    move itab- to bapiekkn-GR_RCPT.
    move itab- to bapiekkn-UNLOAD_PT.
    move itab- to bapiekkn-CO_AREA.
    append bapiekkn.
    endform. " FILL_BAPIEKKN
    thanks
    sarath

  • Problem in extracting po data

    Hi,
    i am using the following code to extract the po data,i am trying to extract multiple pos,but i am not getting multiple items into the excel sheet,i mean if i had one po with 4 items ,i am getting only last item,if any body have the idea kindly send me,
    ITS URGENT ISSUE.
    *& Report  ZTEST                                                       *
    REPORT  ZTEST                                   .
    *DATA: BEGIN OF IT_PO_HEADER OCCURS 20,
         BSART LIKE EKKO-BSART,
         EBELN LIKE EKKO-EBELN,
         SUPERFIELD LIKE MEPO_TOPLINE-SUPERFIELD,
         BEDAT LIKE EKKO-BEDAT,
         ZTERM LIKE EKKO-ZTERM,
         NETWR LIKE EKKO-NETWR,
         TABLES: EKKO.
    *PARAMETERS : P_EBELN TYPE EBELN.
    SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
    TYPES: BEGIN OF T_PO,
             EBELN TYPE EBELN,
           END OF T_PO.
    DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
          WA_PO TYPE T_PO.
    DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
    DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
    DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
    DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
    WITH HEADER LINE.
    DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
    DATA: PO_HEADER TYPE BAPIEKKOL.
    DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
    data : begin of itab1 occurs 0,
             line(750) type c,
           end of itab1.
    DATA PO_HEADER TYPE BAPIEKKOL .
    SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
    PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE 'C:/poextract6.txt'.
    LOOP AT IT_PO INTO WA_PO.
    CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
           PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
    CALL FUNCTION 'BAPI_PO_GETDETAIL'
      EXPORTING
        PURCHASEORDER              = WA_PO-EBELN
        ITEMS                      = 'X'
        ACCOUNT_ASSIGNMENT         = 'X'
        SCHEDULES                  = 'X'
        HISTORY                    = 'X'
        ITEM_TEXTS                 = 'X'
        HEADER_TEXTS               = 'X'
      IMPORTING
        PO_HEADER                  = PO_HEADER
      TABLES
        PO_HEADER_TEXTS            = PO_HEADER_TEXTS
        PO_ITEMS                   = IT_ITEMS
        PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
        PO_ITEM_SCHEDULES          = PO_ITEMS_SHEDULE
        PO_ITEM_TEXTS              = PO_ITEM_TEXT
        RETURN                     = RETURN1.
    DATA PO_HEADER1 LIKE TABLE OF PO_HEADER.
    APPEND PO_HEADER TO PO_HEADER1.
    PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS
                                      USING 'X' 'C:/poextract1.xls',
                           TABLES IT_ITEMS USING 'X' 'C:/poextract2.xls',
          TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X' 'C:/poextract3.xls',
              TABLES PO_ITEMS_SHEDULE USING 'X' 'C:/poextract4.xls',
                           TABLES PO_ITEM_TEXT USING 'X' 'C:/poextract5.xls'
    PERFORM DOWNLOAD_DATA: TABLES PO_HEADER1 USING SPACE 'C:/poextract6.xls'
    *DATA: PO_HEADER1 TYPE BAPIEKKOC,
    *PO_NUM TYPE BAPIMEPOHEADER-PO_NUMBER,
    *BAPI_RET TYPE TABLE OF BAPIRET2 with header line,
    *IT_ITEMS1 TYPE TABLE OF BAPIEKPOC WITH HEADER LINE.
    *MOVE-CORRESPONDING PO_HEADER TO PO_HEADER1.
    *PO_HEADER1-PO_NUMBER = ''.
    *PO_HEADER1-PURCH_ORG = PO_HEADER-PURCH_ORG.
    *MOVE-CORRESPONDING IT_ITEMS TO IT_ITEMS1.
    *IT_ITEMS1-PO_NUMBER = ''.
    *IT_ITEMS1-MATERIAL = IT_ITEMS-MATERIAL.
    *APPEND IT_ITEMS1.
    *CALL FUNCTION 'BAPI_PO_CREATE'
    EXPORTING
       po_header                        = PO_HEADER1
      PO_HEADER_ADD_DATA               =
      HEADER_ADD_DATA_RELEVANT         =
      PO_ADDRESS                       =
      SKIP_ITEMS_WITH_ERROR            = 'X'
      ITEM_ADD_DATA_RELEVANT           =
      HEADER_TECH_FIELDS               =
    IMPORTING
      PURCHASEORDER                    =
    tables
       po_items                         = IT_ITEMS1
      PO_ITEM_ADD_DATA                 =
       po_item_schedules                = PO_ITEMS_SHEDULE
      PO_ITEM_ACCOUNT_ASSIGNMENT       =
      PO_ITEM_TEXT                     =
      RETURN                           = BAPI_RET
      PO_LIMITS                        =
      PO_CONTRACT_LIMITS               =
      PO_SERVICES                      =
      PO_SRV_ACCASS_VALUES             =
      PO_SERVICES_TEXT                 =
      PO_BUSINESS_PARTNER              =
      EXTENSIONIN                      =
      POADDRDELIVERY                   =
    *CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT          =
    IMPORTING
      RETURN        =
    *loop at bapi_ret.
    *write: bapi_ret-MESSAGE.
    *endloop.
    ENDLOOP.
    *&      Form  DOWNLOAD_DATA
    FORM DOWNLOAD_DATA  TABLES   IT_TAB
                        USING    P_APP
                        FILENAME.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        FILENAME = FILENAME "'C:/poextract.xls'
       APPEND =  P_APP
        WRITE_FIELD_SEPARATOR = 'X'
      TABLES
        DATA_TAB = IT_TAB
       FIELDNAMES = FIELDNAME
      EXCEPTIONS
        FILE_WRITE_ERROR        = 1
        NO_BATCH                = 2
        GUI_REFUSE_FILETRANSFER = 3
        INVALID_TYPE            = 4
        NO_AUTHORITY            = 5
        UNKNOWN_ERROR           = 6
        HEADER_NOT_ALLOWED      = 7
        SEPARATOR_NOT_ALLOWED   = 8
        FILESIZE_NOT_ALLOWED    = 9
        HEADER_TOO_LONG         = 10
        DP_ERROR_CREATE         = 11
        DP_ERROR_SEND           = 12
        DP_ERROR_WRITE          = 13
        UNKNOWN_DP_ERROR        = 14
        ACCESS_DENIED           = 15
        DP_OUT_OF_MEMORY        = 16
        DISK_FULL               = 17
        DP_TIMEOUT              = 18
        FILE_NOT_FOUND          = 19
        DATAPROVIDER_EXCEPTION  = 20
        CONTROL_FLUSH_ERROR     = 21
        OTHERS                  = 22.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " DOWNLOAD_DATA

    Dear Rammohan,
    After going through your code, I'm jotting down the following mistakes:
    <b>(1)</b> Initially you're firing the query,
         SELECT EBELN INTO TABLE IT_PO
                                  FROM EKKO
                                  WHERE EBELN IN S_EBELN.
         Since you're using EKKO you want to get the header details.
    <b>(2)</b> Just after this SELECT statement you're calling the
         subroutine DOWNLOAD_DATA with Table IT_ITEMS, where IT_ITEMS is still
         not populated.
    <b>(3)</b> I'm suggesting you an easy way out,
         SELECT   IT1~EBELN
                         IT1~EBELP
                         IT1~MATNR
                                            INTO   TABLE   IT_PO
                                            FROM EKPO AS IT1   INNER JOIN   EKKO AS IT2
                                            WHERE  IT1EBELN   EQ   IT2EBELN     AND
                                                          IT2~EBELN   EQ   S_EBELN.
          By firing the above Query you'll able to get hold of the the PO Data along with
          the respective Line Item Data.
    Regards,
    Abir
    Don't forget to award points *

  • Business object for PO and SWOTICE entries

    Hi all,
    We've copied the standard business object for a PO - BUS2012 to a Z object to be used in a workflow. In one of the methods for this Z object, we've used BAPI_PO_CHANGE to block an item of the PO. As soon as the program was generated, under the object list of the transport request for these changes, some entries got created for table SWOTICE -
        BAPIADDRESS     
        BAPIEKET        
        BAPIEKKN        
        BAPIEKKOA       
        BAPIEKKOC       
        BAPIEKKOP       
        BAPIEKPOA       
        BAPIEKPOC       
        BAPIEKPOTX      
        BAPIESKLC       
        BAPIESLLC       
        BAPIESLLTX      
        BAPIESUCC       
        BAPIESUHC       
        BAPIMMPARA      
        BAPIRETURN      
        BAPIEKKO        
        BAPIEKKOL       
        BAPIEKPO        
        BAPIEKAN        
        BAPIEKBE        
        BAPIEKBES       
        BAPIEKES        
        BAPIEKKOTX      
        BAPIESKL        
        BAPIESLL        
        BAPIESUC        
        BAPIESUH        
        BAPIRLCOPO      
        BAPIRLGNPO      
    SWOTICE - index of frozen DDIC structures.
    What is the significance of this table and items? Why did they appear in the object list of the transport request when the program was generated?
    I checked these structures if they're a part of the BAPI_PO_CHANGE interface, but they're not.
    They were present in the main program for the original business object BUS2012.
    Could somebody throw some light on this?
    Regards
    Deepthi.

    These are internally related to BUS2012. When ever U copy to a Z object and generate the object, some of the objects which runs the object gets generated automatically in the transport list. These are as such needed for the program to work fine.

  • Bapi purchase oder problem

    While creating PO i am getting following three error, i am using bapi_create_po1 for me21n  , TRPO
    1. No instance of object type PurchaseOrder has been created. External reference:
    2. Purchase order still contains faulty items
    3. Unknown account assignment not defined for use here
    Please help
    Ankesh

    This is my Complete code below , waiting 4 ur reply
    *& Report  ZPURCHASE_ORDER_BAPI
    REPORT  ZPURCHASE_ORDER_BAPI.
    DATA PO_HEADER TYPE BAPIMEPOHEADER.
    DATA POHEADERX TYPE BAPIMEPOHEADERX.
    DATA PO_ITEM TYPE  BAPIMEPOITEM OCCURS 0 WITH HEADER LINE. " ITEM LEVEL
    DATA POITEMX TYPE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE. " ITEM LEVEL
    DATA PO_LIMITS TYPE BAPIESUHC OCCURS 0 WITH HEADER LINE.  " LIMIT DATA
    DATA PO_SERVICES TYPE BAPIESLLC OCCURS 0 WITH HEADER LINE. " TAX DATA
    DATA POSCHEDULE TYPE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE . " DELIVERY SCDHULE DATA
    DATA POSCHEDULEX TYPE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE . " DELIVERY SCDHULE DATA
    DATA SALESDOCUMENT TYPE BAPIMEPOHEADER-PO_NUMBER.
    DATA PO_ITEM_ACCOUNT_ASSIGNMENT     TYPE     BAPIEKKN OCCURS 0 WITH HEADER LINE.
    DATA POACCOUNT     LIKE     BAPIMEPOACCOUNT OCCURS 0 WITH HEADER LINE.
    DATA POACCOUNTX     LIKE     BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE.
    DATA V_MESSAGE TYPE STRING.
    DATA : RETURN LIKE BAPIRET2  OCCURS 0 WITH HEADER LINE.
    ********MESSAGE RELATED DATA
    DATA: GD_CURRENTROW TYPE I.
    DATA : PURCHASEORDER LIKE EKKO-EBELN.
    DATA: TOT_REC TYPE I,     "Total Records
         GD_UPDATE TYPE I,   "Main Table Increement Counter
         GD_LINES TYPE I,    "Success Table increement Counter
         W_TEXTOUT LIKE T100-TEXT. "VARIABLE TO GET ERRORLOG
    DATA : BEGIN OF IT_SUCCESS OCCURS 0,
            SALESDOCUMENT LIKE BAPIVBELN-VBELN,  "PROJECT
          END OF IT_SUCCESS.
    DATA V_TEXT TYPE CHAR33.
    DATA : BEGIN OF IT_ERROR OCCURS 0,
            SRNO(4),
            ERR_MSG(73) TYPE C,    "TO RETREIVE ERROR MESSAGES
         END OF IT_ERROR.
    DATA : SRNO(4).
    ****HEADER DATA.
    PO_HEADER-CREAT_DATE  = SY-DATUM.
    PO_HEADER-DOC_DATE    = SY-DATUM.
    PO_HEADER-DOC_TYPE    = 'TRPO'.
    *po_header-DOC_CAT =
    PO_HEADER-COMP_CODE   = '1000'.
    PO_HEADER-PURCH_ORG   = '1000'.
    PO_HEADER-PUR_GROUP   = '402'.
    PO_HEADER-VENDOR      = 'A000010'. "'JR00006'.
    PO_HEADER-CURRENCY    = 'INR'.
    PO_HEADER-VPER_START  = '20081001'.
    PO_HEADER-VPER_END    = '20081030'.
    PO_HEADER-LANGU       = 'E'.
    ****another header FOR INTERFACE
    POHEADERX-CREAT_DATE = SY-DATUM.
    POHEADERX-DOC_DATE   =  'X'.
    POHEADERX-DOC_TYPE   =  'X'.
    POHEADERX-COMP_CODE  = 'X'.
    POHEADERX-PURCH_ORG  =  'X'.
    POHEADERX-PUR_GROUP  =  'X'.
    POHEADERX-VENDOR     =  'X'.
    POHEADERX-CURRENCY   =  'X'.
    POHEADERX-VPER_START =  'X'.
    POHEADERX-VPER_END   = 'X'.
    PO_HEADER-LANGU      = 'X'.
    ****ITEM LEVEL DETAILS
    PO_ITEM-PO_ITEM     = '00010'.
    PO_ITEM-ACCTASSCAT  = 'D'.
    PO_ITEM-ITEM_CAT    = 'D'.
    PO_ITEM-SHORT_TEXT  = 'CEMENT'.     " SHORT TEXT
    PO_ITEM-MATL_GROUP  = '101001'.     " MAT GRP
    PO_ITEM-PLANT       = '1100'.     " PLANT
    PO_ITEM-STGE_LOC    =  'FG01'.   " STORAGE LOCATION
    PO_ITEM-TRACKINGNO  = '41'.  " DEPARTMENT CODE
    PO_ITEM-QUANTITY   = '1.00'.
    PO_ITEM-PO_UNIT    = 'AU'.
    PO_ITEM-PREQ_NAME  = 'Abc@xyz'.
    PO_ITEM-NET_PRICE  = '1000'.
    APPEND PO_ITEM.
    *** ITEM LEVEL DETAIL FOR INTERFACE
    POITEMX-PO_ITEM     = '00010'.
    POITEMX-ACCTASSCAT  = 'X'.
    PO_ITEM-ITEM_CAT    = 'X'.
    POITEMX-SHORT_TEXT  = 'X'.     " SHORT TEXT
    POITEMX-MATL_GROUP  = 'X'.     " MAT GRP
    POITEMX-PLANT       = 'X'.     " PLANT
    POITEMX-STGE_LOC    =  'X'.   " STORAGE LOCATION
    POITEMX-TRACKINGNO  = 'X'.  " DEPARTMENT CODE
    POITEMX-QUANTITY    = 'X'.
    POITEMX-PO_UNIT     = 'X'.
    POITEMX-PREQ_NAME   = 'X'.
    POITEMX-NET_PRICE   = 'X'.
    APPEND POITEMX.
    ******LIMIT DATA
    PO_LIMITS-LIMIT  =  '1000'.
    PO_LIMITS-EXP_VALUE = '1000'.
    APPEND PO_LIMITS.
    *****TAX DATA
    PO_SERVICES-TAX_CODE = 'JA'.
    APPEND PO_SERVICES.
    ****DELIVERY SCDDULE DATA.
    POSCHEDULE-PO_ITEM        = '00010'.
    POSCHEDULE-SCHED_LINE     = '0001'.
    POSCHEDULE-DEL_DATCAT_EXT =  'M'.
    POSCHEDULE-DELIVERY_DATE  = '102008'.
    POSCHEDULE-STAT_DATE      = '20081030'.
    APPEND POSCHEDULE.
    ****FOR INTERFACE DELIVERY DATA
    POSCHEDULEX-PO_ITEM        = '00010'.
    POSCHEDULEX-SCHED_LINE     = '0001'.
    POSCHEDULEX-DEL_DATCAT_EXT =  'X'.
    POSCHEDULEX-DELIVERY_DATE  = 'X'.
    POSCHEDULEX-STAT_DATE      = 'X'.
    APPEND POSCHEDULEX .
    *********PO ACCOUNT ASSIGNMENT.
    *POACCOUNT-PO_ITEM    = '00010'.
    *POACCOUNT-SERIAL_NO  = '01'.
    *POACCOUNT-CREAT_DATE = SY-DATUM.
    *POACCOUNT-GL_ACCOUNT = '0000400000'.
    *POACCOUNT-COSTCENTER = '0000001000' .
    *APPEND POACCOUNT .
    *POACCOUNTX-PO_ITEM    = '00010'.
    *POACCOUNTX-SERIAL_NO  = '01'.
    *POACCOUNTX-CREAT_DATE = 'X'.
    *POACCOUNTX-GL_ACCOUNT = 'X'.
    *POACCOUNTX-CO_AREA    = 'X'.
    *POACCOUNT-COSTCENTER  = 'X' .
    *APPEND POACCOUNTX.
    CALL FUNCTION 'BAPI_PO_CREATE1'
      EXPORTING
       POHEADER                     = PO_HEADER
       POHEADERX                    = POHEADERX
    *   POADDRVENDOR                 =
    *   TESTRUN                      =
    *   MEMORY_UNCOMPLETE            =
    *   MEMORY_COMPLETE              =
    *   POEXPIMPHEADER               =
    *   POEXPIMPHEADERX              =
    *   VERSIONS                     =
    *   NO_MESSAGING                 =
    *   NO_MESSAGE_REQ               =
    *   NO_AUTHORITY                 =
    *   NO_PRICE_FROM_PO             =
    IMPORTING
       EXPPURCHASEORDER             = SALESDOCUMENT
    *   EXPHEADER                    =
    *   EXPPOEXPIMPHEADER            =
    TABLES
       RETURN                       =  RETURN
       POITEM                       = PO_ITEM
       POITEMX                      = POITEMX
    *   POADDRDELIVERY               =
       POSCHEDULE                   = POSCHEDULE
       POSCHEDULEX                  = POSCHEDULEX
       POACCOUNT                    =  POACCOUNT
    *   POACCOUNTPROFITSEGMENT       =
       POACCOUNTX                   =  POACCOUNTX
    *   POCONDHEADER                 =
    *   POCONDHEADERX                =
    *   POCOND                       =
    *   POCONDX                      =
       POLIMITS                     = PO_LIMITS
    *   POCONTRACTLIMITS             =
       POSERVICES                   = PO_SERVICES
    *   POSRVACCESSVALUES            =
    *   POSERVICESTEXT               =
    *   EXTENSIONIN                  =
    *   EXTENSIONOUT                 =
    *   POEXPIMPITEM                 =
    *   POEXPIMPITEMX                =
    *   POTEXTHEADER                 =
    *   POTEXTITEM                   =
    *   ALLVERSIONS                  =
    *   POPARTNER                    =
    *   POCOMPONENTS                 =
    *   POCOMPONENTSX                =
    *   POSHIPPING                   =
    *   POSHIPPINGX                  =
    *   POSHIPPINGEXP                =
    *CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    * EXPORTING
    *   WAIT          =
    * IMPORTING
    *   RETURN        =
    IF SALESDOCUMENT <> SPACE.
      COMMIT WORK.
      ADD 1 TO GD_UPDATE.
      IT_SUCCESS-SALESDOCUMENT = SALESDOCUMENT.
      APPEND IT_SUCCESS.
      CLEAR :SALESDOCUMENT,PO_HEADER.
    *        REFRESH : RETURN,ORDER_ITEMS_IN,ORDER_PARTNERS.
    ELSE.
      LOOP AT RETURN.
    *          IT_ERROR-SRNO = TAB-SRNO.
        IT_ERROR-ERR_MSG = RETURN-MESSAGE .
        APPEND IT_ERROR.
      ENDLOOP.
      CLEAR :SALESDOCUMENT,PO_HEADER.
    *        REFRESH : RETURN,ORDER_ITEMS_IN,ORDER_PARTNERS.
    ENDIF.
    DESCRIBE TABLE IT_SUCCESS LINES GD_LINES.
    IF GD_LINES GT 0.
    *     Display result report column headings
      PERFORM DISPLAY_COLUMN_HEADINGS.
      PERFORM DISPLAY_SUCESS.
    ENDIF.
    * IF SUCESS FAILS Display Error Report
    DESCRIBE TABLE IT_ERROR LINES GD_LINES.
    IF GD_LINES GT 0.
      PERFORM ERRORHEADINGS.
      PERFORM ERRORREPORT.
    ENDIF.
    *&      Form  DISPLAY_COLUMN_HEADINGS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM DISPLAY_COLUMN_HEADINGS .
      WRITE:2 ' Success Report '(014) COLOR COL_POSITIVE.
      SKIP.
      WRITE:2 'The following records inserted successfully:'(013).
      WRITE:/ SY-ULINE(15).
      FORMAT COLOR COL_HEADING.
      WRITE:/      SY-VLINE,
               (10) 'Sales order'(004), SY-VLINE.
      WRITE:/ SY-ULINE(15).
      "display_column_headings
    ENDFORM.                    " DISPLAY_COLUMN_HEADINGS
    *&      Form  DISPLAY_SUCESS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM DISPLAY_SUCESS .
      FORMAT COLOR COL_NORMAL.
      LOOP AT IT_SUCCESS.
        WRITE:/      SY-VLINE,
            (10)  IT_SUCCESS-SALESDOCUMENT, SY-VLINE.
        CLEAR IT_SUCCESS.
      ENDLOOP.
      WRITE:/ SY-ULINE(15).
      REFRESH: IT_SUCCESS.
      FORMAT COLOR COL_BACKGROUND.
    ENDFORM.                    " DISPLAY_SUCESS
    *&      Form  ERRORHEADINGS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM ERRORHEADINGS .
      SKIP.
      WRITE:2 ' Error Report '(007) COLOR COL_NEGATIVE.
      SKIP.
      WRITE:2 'The following records failed during update:'(008).
      WRITE:/ SY-ULINE(104).
      FORMAT COLOR COL_HEADING.
      WRITE:/      SY-VLINE,
              (10) 'ERROR.'(009), SY-VLINE.
      WRITE:/ SY-ULINE(104).
      FORMAT COLOR COL_NORMAL.
    ENDFORM.                    " ERRORHEADINGS
    *&      Form  ERRORREPORT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM ERRORREPORT .
      LOOP AT IT_ERROR.
        WRITE:/      SY-VLINE,
                (10) IT_ERROR-SRNO, SY-VLINE,
                 (40) IT_ERROR-ERR_MSG, SY-VLINE.
      ENDLOOP.
      WRITE:/ SY-ULINE(104).
      REFRESH: IT_ERROR.

  • Regarding BAPI_ENTRYSHEET_CREATE .

    Hi All,
    We are trying to create Service entry sheet using BAPI_ENTRYSHEET_CREATE using the follwonig code:
    DATA: wa_header TYPE bapiessrc,
      i_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,
      ws_entrysheet_no TYPE bapiessr-sheet_no,
      i_service TYPE bapiesllc OCCURS 0 WITH HEADER LINE,
      i_service_acc TYPE bapiesklc OCCURS 0 WITH HEADER LINE,
      i_service_text TYPE bapieslltx OCCURS 0 WITH HEADER LINE,
      i_account TYPE bapiesknc OCCURS 0 WITH HEADER LINE,
      i_accass TYPE bapiesknc OCCURS 0 WITH HEADER LINE,
      ws_pack_no TYPE packno.
      DATA: ws_po TYPE bapiekko-po_number,
      po_items TYPE bapiekpo OCCURS 0 WITH HEADER LINE,
      po_services TYPE bapiesll OCCURS 0 WITH HEADER LINE,
      po_accass TYPE bapiekkn OCCURS 0 WITH HEADER LINE.
      DATA: BEGIN OF wa_po_header OCCURS 1.
              INCLUDE STRUCTURE bapiekkol.
      DATA: END OF wa_po_header.
      DATA: BEGIN OF bapi_return_po OCCURS 1.
              INCLUDE STRUCTURE bapireturn.
      DATA: END OF bapi_return_po.
      DATA: serial_no LIKE bapiesknc-serial_no,
      line_no LIKE bapiesllc-line_no.
      DATA: bapi_esll LIKE bapiesllc OCCURS 1 WITH HEADER LINE.
      ws_po = '4500146696'.
      CALL FUNCTION 'BAPI_PO_GETDETAIL'
        EXPORTING
          purchaseorder              = ws_po
          items                      = 'X'
          services                   = 'X'
        IMPORTING
          po_header                  = wa_po_header
        TABLES
          po_items                   = po_items
          po_item_services           = po_services
          return                     = bapi_return_po.
      wa_header-po_number  = po_items-po_number.
      wa_header-po_item    = po_items-po_item.
      wa_header-short_text = 'Sample'.
      wa_header-pckg_no    = 1.
      wa_header-acceptance = 'X'.
      wa_header-doc_date   = '20080819'.
      wa_header-post_date  = '20080819'.
      serial_no = 0.
      line_no = 1.
      bapi_esll-pckg_no    = 1.
      bapi_esll-line_no    = line_no.
      bapi_esll-outl_level = '0'.
      bapi_esll-outl_ind   = 'X'.
      bapi_esll-subpckg_no = 2.
      APPEND bapi_esll.
      LOOP AT po_services WHERE NOT short_text IS INITIAL.
        line_no = line_no + 1.
        CLEAR bapi_esll.
        bapi_esll-pckg_no    = 2.
        bapi_esll-line_no    = line_no.
        bapi_esll-service    = po_services-service.
    *    bapi_esll-quantity   = po_services-quantity.
        bapi_esll-quantity   = 1.
        bapi_esll-gr_price   = po_services-gr_price.
        bapi_esll-price_unit = po_services-price_unit.
        APPEND bapi_esll.
      ENDLOOP.
      LOOP AT po_accass .
        i_accass-gl_account = po_accass-g_l_acct.
        i_accass-bus_area = po_accass-bus_area.
        i_accass-costcenter = po_accass-cost_ctr.
        i_accass-co_area = po_accass-co_area.
        APPEND i_accass.
      ENDLOOP.
      CALL FUNCTION 'BAPI_ENTRYSHEET_CREATE'
        EXPORTING
          entrysheetheader            = wa_header
        IMPORTING
          entrysheet                  = ws_entrysheet_no
        TABLES
          entrysheetservices          = bapi_esll
          entrysheetaccountassignment = i_accass
          return                      = i_return.
    In debugging we get a proper value in the parameter ws_entrysheet_no , but when we check in ml81n usig this ws_entrysheet_no
    we get the error 'ws_entrysheet_no does not exists'.
    What is the reason?
    Thanks,
    Anubhav.

    Hi Pushkar,
    Even after using BAPI_TRANSACTION_COMMIT  , i am facing the same issue.
    But if remove the following code lines from the code in my previous post , i can see the SES in ml81n:
    wa_header-acceptance = 'X'.
    Please help,
    Anubhav.
    Edited by: Anubhav Jain on Aug 22, 2008 7:35 AM

  • Calling BAPI with SAP connector

    Hello All,
    I've created an aspnet application using SAP connector and I'm calling BAPI_PO_GETDetail but I'm not sure to use it correctly because I have not all of fields in my datagrid (for example I cannot see the vendor name or code)...
    I think that I don't understand something ! 
    Thanks for your help (and sorry for my English) !
    here is my code :
        ' create proxy variable
                Dim proxy2 As New SapConnectPO.POSAPProxy
                ' get a connection
                Dim conn = SAP.Connector.SAPConnection.GetConnection(ConfigurationManager.AppSettings("connSAP"))
                conn.Open()
                proxy2.Connection = conn
                ' create structure variables
                Dim t1 As New SapConnectPO.BAPIADDRESS
                Dim t2 As New SapConnectPO.BAPIEKBE
                Dim t3 As New SapConnectPO.BAPIEKBES
                Dim t4 As New SapConnectPO.BAPIEKBESTable
                Dim t5 As New SapConnectPO.BAPIEKBETable
                Dim t6 As New SapConnectPO.BAPIEKBETable
                Dim t7 As New SapConnectPO.BAPIEKES
                Dim t8 As New SapConnectPO.BAPIEKESTable
                Dim t9 As New SapConnectPO.BAPIEKET
                Dim t10 As New SapConnectPO.BAPIEKETTable
                Dim t11 As New SapConnectPO.BAPIEKKN
                Dim t12 As New SapConnectPO.BAPIEKKNTable
                Dim t13 As New SapConnectPO.BAPIEKKOL
                Dim t14 As New SapConnectPO.BAPIEKKOTX
                Dim t15 As New SapConnectPO.BAPIEKKOTXTable
                Dim t16 As New SapConnectPO.BAPIEKPO
                Dim t17 As New SapConnectPO.BAPIEKPOTable
                Dim t18 As New SapConnectPO.BAPIEKPOTX
                Dim t19 As New SapConnectPO.BAPIEKPOTXTable
                Dim t20 As New SapConnectPO.BAPIESKL
                Dim t25 As New SapConnectPO.BAPIESKLTable
                Dim t26 As New SapConnectPO.BAPIESLL
                Dim t27 As New SapConnectPO.BAPIESLLTable
                Dim t28 As New SapConnectPO.BAPIESLLTX
                Dim t29 As New SapConnectPO.BAPIESLLTXTable
                Dim t30 As New SapConnectPO.BAPIESUC
                Dim t31 As New SapConnectPO.BAPIESUCTable
                Dim t32 As New SapConnectPO.BAPIESUH
                Dim t33 As New SapConnectPO.BAPIESUHTable
                Dim t34 As New SapConnectPO.BAPIPAREX
                Dim t35 As New SapConnectPO.BAPIPAREXTable
                Dim t36 As New SapConnectPO.BAPIRETURN
                Dim t37 As New SapConnectPO.BAPIRETURNTable
                ' Call method
                Try
                    proxy2.Bapi_Po_Getdetail(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "X", TextBox1.Text, Nothing, Nothing, Nothing, t1, t13, t35, t15, t12, t8, t31, t5, t4, t33, t10, t27, t25, t19, t17, t29, t37)
                Catch ex As Exception
                    Response.Write(ex)
                End Try
                ' result is bound to datagrid1
                GridView1.DataSource = t17
                GridView1.DataBind()
    conn.close()

    Hi Christine:
    Actually this is the correct forum...But don't expect to recieve an answer too soon...We all have works besides SDN...Also, at least talking about myself...I don't know the solution to your problem -:( But I'm sure that there other members that can help you out -;)
    Greetings,
    Blag.

Maybe you are looking for

  • Changed our ASA IP address and we're no longer able to Authenticate with RSA.

    Hi, We changed our ASA IP last night and since then we can no longer authenticate with RSA.  I know we had to modify the IAS policy on our DC to the new IP but I'm not sure where I would change that in RSA.  Any one have an idea? ASA 5510 (8.3) RSA (

  • Setting up family sharing

    I am trying to set up family sharing.  I put myself as the organizer and tried to add my husband.  I get all the way to the share location page, and every time I click next, it asks me to enter my Apple ID.  I do this, and it takes me back to the sha

  • Weblogic application roles not visible

    Hello, We are trying to grant a weblogic account the application role BPMWorkflowAdmin using the enterprise manager of the SOA Suite 11g. This works without problems on a non-clustered environment. However, in our clustered environment we cannot see

  • RAID in HP ENVY 6

    HP ENVY 6 1253er the computer has a regular hard drive and ssd cache. As far as I understood these two drives must be in a RAID 0, but at the moment ssd appears as a regular disk is not labeled, ie raid no. when you try to go to configuration utility

  • IAS 6.5 on DB2/UDB connection never released?

    We installed an application on DB2/UDB 7.1 (using JDBC type 2 driver) and found the connections never get released after use. Same code, if I switch to Oracle, MSSQL (using Merant), or Sybase. They all work fine - all connections are released properl