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

Similar Messages

  • Not able to debug the BADI implemntation-for badi   "BBP_ECS_PO_OUT_BADI"

    Hi ,
         Currently i need to debug the implemenation YBBP_ECS_PO_OUT_BADI"  of the badi  "BBP_ECS_PO_OUT_BADI"  this is used for tolerance check .but in the portal when i am click on the confirm button this  implementation need to be called for checking the tolerance but in my case the badi is not at triggering.  can any one give the solution for the above problem.
    how can i find the program calling the BADI implemenation YBBP_ECS_PO_OUT_BADI .can i know this from the portal.help me

    Hi,
    Please go through the following links:
    Re: Debug PO transfer
    How do debug BBP_ECS_PO_OUT_BADI?
    Thanks,
    Pradeep

  • OSA:Help needed to make a BAdi work

    Hi All..
    I need a help regarding the BAdi..i am using the Average BAdi in a column...I have a criterion group called critical attributes and under this there are 5 criterions..i need to insert the BAdi in the Criterion group Critical Attributes and the BAdi needs to calculate the values of the criterions and show the result in the criterion group...
    I had done the same thing for the other criterion group and the BAdi was working fine..but the BAdi is not working when i insert it in Critical Attributes criterion group....I contacted some people and they told that it is a configuration issue..so please help me out with a solution...and also the configuration which i need to do to make the BAdi work....

    Hi Maurice..
    I am using the BAdi in an enabled column..i have already used the average Badi in a different criterion group called Performance Rating..It is working fine there...there is no difference between the 2 criterion groups...but somehow it is not working here...i really dont know what is the configuration issue since i am a technical guy...
    I will tell u the issue using an example...
    I have a criterion group Critical Attributes in which i have inserted the BAdi in the score column......
    Under this i have 5 attributes like Accountability,Communication...etc..
    The manager appraises the above attributes in the FAPP column...The Badi has to calculate the average of the 5 columns...
    I have used the same average BAdi in another criterion group and it is working fine..
    so please help me out with the answer..we r using ECC 5.0 version...

  • How to debug the BADI - BBP_CREATE_BE_RQ_NEW

    Hi Experts,
    Help me how to debug the BADI in order to validate my coding.
    I have put a break point in the BADI and run the  class CL_BBP_SC_TRANSFER_CLASSIC Instance DO by giving the SC no and the GUID but still the BADI is not getting triggered.
    Suggest me any other way to debug the BADI.
    Regards
    Paul

    Hi,
    You can put an endless loop in your BADI BBP_CREATE_BE_RQ_NEW ,as shown below and force the program to stop there. Now go to SM50 and switch to debug mode for the program and start debugging(take process that keeps hangs in your endless loop).
    Data: l_flag.
    do.
    if l_flag eq 'X'.
    exit.
    endif.
    enddo.
    BR,
    Disha.
    DO reward points for useful answers.

  • Help needed to optimize the query

    Help needed to optimize the query:
    The requirement is to select the record with max eff_date from HIST_TBL and that max eff_date should be > = '01-Jan-2007'.
    This is having high cost and taking around 15mins to execute.
    Can anyone help to fine-tune this??
       SELECT c.H_SEC,
                    c.S_PAID,
                    c.H_PAID,
                    table_c.EFF_DATE
       FROM    MTCH_TBL c
                    LEFT OUTER JOIN
                       (SELECT b.SEC_ALIAS,
                               b.EFF_DATE,
                               b.INSTANCE
                          FROM HIST_TBL b
                         WHERE b.EFF_DATE =
                                  (SELECT MAX (b2.EFF_DATE)
                                     FROM HIST_TBL b2
                                    WHERE b.SEC_ALIAS = b2.SEC_ALIAS
                                          AND b.INSTANCE =
                                                 b2.INSTANCE
                                          AND b2.EFF_DATE >= '01-Jan-2007')
                               OR b.EFF_DATE IS NULL) table_c
                    ON  table_c.SEC_ALIAS=c.H_SEC
                       AND table_c.INSTANCE = 100;

    To start with, I would avoid scanning HIST_TBL twice.
    Try this
    select c.h_sec
         , c.s_paid
         , c.h_paid
         , table_c.eff_date
      from mtch_tbl c
      left
      join (
              select sec_alias
                   , eff_date
                   , instance
                from (
                        select sec_alias
                             , eff_date
                             , instance
                             , max(eff_date) over(partition by sec_alias, instance) max_eff_date
                          from hist_tbl b
                         where eff_date >= to_date('01-jan-2007', 'dd-mon-yyyy')
                            or eff_date is null
               where eff_date = max_eff_date
                  or eff_date is null
           ) table_c
        on table_c.sec_alias = c.h_sec
       and table_c.instance  = 100;

  • HT1420 My laptop crashed completely and I need to authorize a new laptop to enable it sync with itunes. I have 5 computers authorized so I am unable to add another one so I need to unauthorize the bad laptop that is no longer working. How do I authorize n

    My laptop crashed completely and I need to authorize a new laptop to enable it sync with itunes. I have 5 computers authorized so I am unable to add another one so I need to unauthorize the bad laptop that is no longer working. How do I authorize new Laptop?

    You can only deauthorize everything to do that. Click on Account under Quick Links. You can deauthorize all five there. But you can only do this once a year.

  • XRPM: Need to find the BADI for adding custom fields to  master data

    Hi,
      We have activated XRPM(4.0) business content and need to add some custom fields to some of the master data ( for example need to add custom fields to master data info object 0RPM_IHGU, 0RPM_IGCG etc).
      We have enhanced the data sources ( 0RPM_ITEM_HEADER_GUID_ATTR and 0RPM_FIN_CAT_GUID_ATTR respectively) in the source system  by appending additional fields to the append structure of the data source We are trying to find the BADI where we can implement the custom code.
      Can anybody help to find the particular BADI, id there one for all master data carrying data source in the xRPM source system?
      Thanks

    Dear Arunava,
    1) In your R3 goto  SE16 --> open table ROOSOURCE.
       Search for your OLTP source...eg: 0RPM*
       The column  EXTRACTOR will give you the module name.
    2) Also look/follow the link:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9f668696-0701-0010-22be-a278e4587b68
    Currently available BAdIs include:
    RPM_BUPA_CUST_FIELDS BUPA customer fields
    RPM_CALC_BUPA_BPFTE Calculate the business partner availability
    RPM_CALC_STAFF_ICON calculate the staffing icon
    RPM_CREATEUSR_NAME Generates user names
    RPM_HR_IN_IF001 Customer exit for inbound time processing
    RPM_HR_IN_IF002
    RPM_HR_IN_IF003
    RPM_HR_IN_IF004
    RPM_HR_IN_IF005
    RPM_HR_IN_IF006
    RPM_INTEGRATION_OPTS get and set the project integration options
    /RPM/OBJECT_SERVICES Object support services
    /RPM/PERSON_CUST_FLD Resource customer fields
    RPM_PROCESS_DATA Inbound processing of time data by customer
    Good Luck, BB

  • Help needed in debugging dynamic SQL.

    When I pass the p_deptno =30 and run the below code the refcursor returns the rows.But when I pass the dpetno =null then it goes to the condition if p_job is not null and throws an error.Can any one please help me in debugging this code.
    declare
    p_deptno number:=null;
    p_job varchar2(30):='SALESMAN';
    v_sql varchar2(4000);
    l_ename varchar2(30);
      TYPE my_cursor IS REF CURSOR;
      RC my_cursor;
    begin
      v_sql := 'select ename
                from emp
               where 1=1';
      if p_deptno is not null then
        v_sql := v_sql||' AND deptno='||p_deptno;
      else
        if p_job is not null then
          v_sql := v_sql||' AND job='||p_job;
        end if;
      end if;
      OPEN RC FOR v_sql;
      LOOP
        FETCH RC INTO l_ename;
        EXIT WHEN RC%NOTFOUND;
        dbms_output.put_line(l_ename);
      END LOOP;
      CLOSE RC;
    END;Thanks.
    Edited by: user3565577 on Mar 6, 2010 8:44 PM

    Hi
    I've mocked up a simple test and it seems to use the indexes when I try with one or the other values being supplied, I've made an assumption on the indexes you have (i.e. single column indexes on job and deptno),
    --indexes on emp table:
    p2056@dbapw01> @indexes
    Enter value for table_name: emp
    Enter value for owner: p2056
    INDEX_OWNER                    INDEX_NAME                INDEX_TYPE                  PAR COLUMN_NAME                    STATUS
    P2056                          EMPI1                     NORMAL                      NO  DEPTNO                         VALID
    P2056                          EMPI2                     NORMAL                      NO  JOB                            VALID
    2 rows selected.
    --when accessing with a job value
    p2056@dbapw01> explain plan for select *
      2  from emp
      3  where (
      4   (null is null and job = 'SALESMAN')
      5   OR
      6   ('SALESMAN' is null and deptno = null)
      7   OR
      8   ('SALESMAN' is null and null is null)
      9         );
    Explained.
    p2056@dbapw01> @xplan
    PLAN_TABLE_OUTPUT
    Plan hash value: 1888885832
    | Id  | Operation                   | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |       |     2 |   154 |     1   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| EMP   |     2 |   154 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | EMPI2 |     2 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("JOB"='SALESMAN')
    --when accessing with a deptno value
    p2056@dbapw01> explain plan for select *
      2  from emp
      3  where (
      4   (2 is null and job = null)
      5   OR
      6   (null is null and deptno = 2)
      7   OR
      8   (null is null and 2 is null)
      9         );
    Explained.
    p2056@dbapw01> @xplan
    PLAN_TABLE_OUTPUT
    Plan hash value: 1336173234
    | Id  | Operation                   | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |       |     1 |    77 |     1   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| EMP   |     1 |    77 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | EMPI1 |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("DEPTNO"=2)

  • Help needed in overriding the finalize() method!

    Hi
    I need some help in overwriting the finalize() method.
    I have a program, but at certain points, i would like to "kill" a particular object.
    I figured that the only way to do that is to make that object's class override the finalize method, and call it when i need to kill the object.
    Once that is done, i would call the garbage collector gc() to hopefully dispose of it.
    Please assist me?
    Thanks
    Regards

    To, as you put it, kill an object, just null it. This
    will be an indication for the garbage collector to
    collect the object. In the finalizer, you marely null
    all fields in the class. Like this:
    public class DummyClass
    String string = "This is a string";
    Object object = new Boolean(true);
    public void finalize() throws Throwable
    super.finalize();
    string = null;
    object = null;
    public static void main(String[] args)
    //Create a new object, i.e allocate an
    te an instance.
    DummyClass cls = new DummyClass();
    //Null the reference
    cls = null;
    This is a pointless exercise. If an object is being finalized, then all the references it contains are about to cease being relevant anyway, so there's no purpose to be served in setting them to null.
    All that clearing a reference to an object does is to clear the reference. Whether the object is subsequently finalized depends on whether the object has become unreachable.
    Directly calling finalize is permitted, but doesn't usually serve any purpose. In particular, it does not cause the object to be released. Further, calling the finalize method does not consitute finalization of the object. Finalization occurs when the method is called as a consequence of a garbage collector action.
    If a variable contains a reference to an object (say a table), and you want a new table instead, then create a new table object, and assign its reference to the variable. Assuming that the variable was the only place that the old table's reference was stored, the old table will, sooner or later, get finalized and collected.
    Sylvia.

  • Help needed in understanding the concept of hierarchical queries

    I really need help in this matter. I have a flafile containing about 4000 rows. It is from my supplier, it's structure is as follows:
    create table Flatfile
    (Pgroup varchar2(30),
    Pclass varchar2(30),
    Manufacturer varchar2(30),
    Article varchar2(30),
    Price Number(6,2));
    Insert into Flatfile Values
    ('Application Software','Database Software','Oracle','Oracle 10G',115);
    Insert into Flatfile Values
    ('Application Software','Database Software','Microsoft','MS SQL Server 2000',200);
    Insert into Flatfile Values
    ('Application Software','Spreadsheet Software','Microsoft','Excel',100);
    Insert into Flatfile Values
    ('Monitor','15"','Acer','Acer 15"" TFT superscreen',199);
    Insert into Flatfile Values
    ('Monitor','15"','Sony','Sony R1500 flat',225);
    Insert into Flatfile Values
    ('Monitor','17"','Philips','Philips Flatscreen',250);
    Insert into Flatfile Values
    ('Monitor','19"','Viewsonic','Viewsonic PLasma Monitor',275);
    Insert into Flatfile Values
    ('Processor','AMD','AMD','FX-55',600);
    Insert into Flatfile Values
    ('Processor','Intel','Intel','P4 3 GHZ',399);
    My goal is to make a hierarchical query with the start with and connect by clauses. From what I have read is that I need to normalize the data of the flatfile.
    How do I achieve a table which I can query so that the query will represent the hierarchy that exists. Namely
    Pgroup
    ++Pclasse
    Application Software
    ++Database Software
    ++Spreadsheet Software
    So a 2-level hierarchy. I'd like to understand this simple concept first. I built on the knowledge that I gain. So the questions are:
    1.What do I need to do to make the table so that I can use a hierarchical query on it?
    2. How should the query syntax be?
    3. Is it also possible to get the data in the hierarchical query sorted asec?
    I would only like to use the simple structures of the start with and connect by clauses first. I've read there are some new additions to 10G. The problem with the examples used by the tutorials is that the tables are already made so that they are suitable for hierarchical queries. I hope to understand it by this example. And take it a step further.
    Sincerely,
    Pete

    Primarily hierarchy query serves to process tree-like structures which RDBMS simulates using through parent-child relation, often in a single table (see famoust
    EMP table where employee can have the manager who is an employee at the same time).
    In your case it could look like:
    SQL> select pgroup, pclass from flatfile;
    PGROUP                         PCLASS
    Application Software           Database Software
    Application Software           Database Software
    Application Software           Spreadsheet Software
    Monitor                        15"
    Monitor                        15"
    Monitor                        17"
    Monitor                        19"
    Processor                      AMD
    Processor                      Intel
                                   Application Software
                                   Monitor
                                   Processor
    12 rows selected.
    SQL> select decode(level,1,pclass,'  ' || pclass), Manufacturer from flatfile
      2  start with pgroup is null
      3  connect by prior pclass = pgroup
      4  /
    DECODE(LEVEL,1,PCLASS,''||PCLASS MANUFACTURER
    Application Software
      Database Software              Oracle
      Database Software              Microsoft
      Spreadsheet Software           Microsoft
    Monitor
      15"                            Acer
      15"                            Sony
      17"                            Philips
      19"                            Viewsonic
    Processor
      AMD                            AMD
      Intel                          Intel
    12 rows selected.The hierarchy syntax is described completely in the documentation including
    LEVEL and PRIOR keywords.
    As for the ordering question you can use siblings ordering:
    SQL> select decode(level,1,pclass,'  ' || pclass), Manufacturer from flatfile
      2  start with pgroup is null
      3  connect by prior pclass = pgroup
      4  order siblings by 1 desc
      5  /
    DECODE(LEVEL,1,PCLASS,''||PCLASS MANUFACTURER
    Processor
      Intel                          Intel
      AMD                            AMD
    Monitor
      19"                            Viewsonic
      17"                            Philips
      15"                            Acer
      15"                            Sony
    Application Software
      Spreadsheet Software           Microsoft
      Database Software              Oracle
      Database Software              Microsoft
    12 rows selected.Rgds.

  • Help needed in using the appropriate Trigger

    I have a master detail form.DEPT block is the master block and Employee is Detail block.I need to display the message when user is
    trying to enter the ENAME field in the Employee block(detail) when the DEPTNO in the DEPT block(master) is not equal to 10.
    Messgae should be displayed when user trying to type the value but not when the user navigates into the ENAME text field.
    What is the appropriate trigger that is useful here?
    Thanks.
    GSR

    If the DEPT block is table based in the block's POST-QUERY trigger you can simply set
      if :DEPT.DEPTNO !=10 then
        set_item_proerty('DEPT.ENAME', insert_allowed, property_false);
        set_item_proerty('DEPT.ENAME', update_allowed, property_false);
      else
        set_item_proerty('DEPT.ENAME', insert_allowed, property_true);
        set_item_proerty('DEPT.ENAME', update_allowed, property_true);
      end if;if the block is a non-database one then you can put that code in EMPNAME's WHEN-VALIDATE-ITEM trigger
    Luca
    Don't forget to mark the answer as helpful/correct if it is. please.

  • Help needed in using the DocCheck utility

    Hi
    Can somebody help me to use the DocCheck utility.I need to check that all the java files have the required javadoc tags and they are correct.
    I have downloaded the zip file and I have been giving the following commands
    c:\javadoc -doclet com.sun.tools.doclets.doccheck.DocCheck -docletpath c:\svk\jdk1.2.2\bin\doccheck1.2b1\lib\doccheck.jar -sourcepath<full path with the file name>
    But I get the following error message : No package or class specified.
    I also tried giving the following command:
    D:\SegaSource\sega\src\com\sega\account>javadoc -doclet com.sun.tools.doclets.do
    ccheck.DocCheck -docletpath d:\jdk1.3\doccheck1.2b1\lib\doccheck.jar User.java
    But I get the following message:
    Loading source file User.java...
    Constructing Javadoc information...
    javadoc: warning - Import not found: com.sega.account.address.Address - ignoring
    javadoc: warning - Import not found: com.sega.account.icon.Icon - ignoring!
    javadoc: warning - Import not found: com.sega.common.DateUtil - ignoring!
    javadoc: warning - Import not found: atg.nucleus.GenericService - ignoring!
    javadoc: warning - Cannot find class com.sega.account.icon.Icon
    javadoc: warning - Cannot find class com.sega.account.address.Address
    javadoc: warning - Cannot find class com.sega.account.MasterManager
    7 warnings
    please help
    Thanks
    SVK

    I have never ran the DocCheck from the command prompt, so I really don't know how to do it, but I do run it succesfully using ant (build tool from apache - jakarta, if you use tomcat you already have it installed).
    So.. if you do use ant.. this will help:
    <target name="doccheck" depends="prepare">
         <javadoc
              packagenames="${packages}"
                    destdir="${doccheck.home}"
              doclet="com.sun.tools.doclets.doccheck.DocCheck"
              docletpath="${doccheck.path}" >
              <classpath refid="project.classpath"/>
              <sourcepath refid="project.classpath"/>
         </javadoc>
    </target>If you don't use it.. I guess I was of no help, sorry.
    Ylan

  • Debugging the BADI Enhancement while running XIF

    Hi gurus,
    I am currently trying to modify some data in the Inbound BDoc BUPA_REL (Business Partner Relationship) using the BADI CRMXIF_PARTNER_R_MAP with method CHANGE_MAPPED_DATA_IN.
    Unfortunately I am trying to debug without sucess. I tried to follow the procedure described in Note 591691.
    How shall I proceed to debug this Badi?
    Thanks in advance

    Hi Gabriel,
    It is generally you put an External Breakpoint on the method and while executig you Bdoc the debbuger should stop,
    In case you are still not able to achieve this there is a an out of box option that plaese re install your SAP GUI, coz i have seen in certain instance that the debbugger starts working.
    Regards,,
    Pranay
    Do rewrad Points

  • Please help me on Debugging the Form

    Hi All,.
    Can anyone please give the steps for Debugging the Form:
    -Actually i am trying to know what is happening when we are working with the Forms(Front End) and
    -what are the triggers firing in the backend
    - What are the Program Units are calling
    -What is complete flow,..
    -How the data get populated on to the screen from backend
    Please give the complete steps, coz i am new to the Forms & Resports.
    Please help me on this with complete steps & Documentation.
    Thanks,
    grac

    hi
    i hope it will help u too.
    here is the instructions.
    -Click on Button “Debug” on toolbar of forms, (icon like a “bug”), will active debug_mode;
    2-Execute the forms (Run);
    3-The Forms will show a windows “Forms Debugger” with 3 panels: -The first is “SOURCE PANE”, showing your source code of procedure or trigger that is running; - The second, is “Navigator Pane”, shows a tree of objects to debug; - The third is “INTERPRETER PANE”, where you do pl/sql code to run; Go to second frame(Navigator Pane) and expand node “+MODULE”, select your forms module(click on it);
    4-Open the tree, navigate until your trigger that you want to debug (or to debug ALL CODE select menu “DEBUG” -> “Trigger” and choose Location=”Every Statement”, and write “raise debug.break;” on field trigger_boddy)
    5-If you want to debug a specific trigger of a text_item, go to block, select the text_item, then select the trigger, the source code will show in “source pane”;
    6-Go to menu “DEBUG” -> “TRIGGER” and write “raise debug.break;” on field trigger_boddy (or do a double click over a line code that can be debuged); When the forms run, and run this trigger, the run mode will be “suspend” and forms return to this page of “DEBUG”, where you can view values of any variable, values of block_itens, values of SYSTEM variables and go to a “step by step” running your code line to line, and view changes on variables;
    7-In this step, you setup the debugger, to run now, click on red “X” to close debugger, the forms will be run;
    8-You go run until the code marked to break; The cursor will stop on first line that is running (Source pane) with a signal => on the line;
    9-Now you can run line by line; entire block or return to normal run (see buttons enables);
    When debugging, explore the Navigator, and see anothers variables values like :system.current_record; :system.record_status; :sytem.message_level; Global variableshttp://www.orafaq.com/forum/t/140073/0/
    sarah

  • Help needed to find out BADI's for Transaction "PECM_CHANGE_STATUS"

    Hi folks,
    I was told to use BADI "HRECM00_ACTIVATION" and code in the Method "CALC_SAL_ADJUSTMENT" within it. After coding and executing my Transaction "PECM_CHANGE_STATUS" it does'nt stop at the method (inspite of keeping a breakpoint).
    So, after suggestions from some of you folks i tried the below 2 methods to find out the relavant BADI's
    1) First way, putting a breakpoint at "CALL METHOD cl_exithandler=>get_class_name_by_interface" via SE24 and found only one BADI in exit_name which is "HRPAD_SUBTY_CHECK".
    2) Other way i checked the Package of suggested BADI "HRECM00_ACTIVATION" , which i found as "PAOC_ECM_ADM_BL". ANd when i go to SE80, for this package when i check the Enhancements section->Classic BADIs. i found about 15 BADI's ..Is this the right way to check for a BADI ? If not, how to know the relavant BADI's for my transaction "PECM_CHANGE_STATUS"
    Awaiting for response. Thanks!

    Hi,
      1. The BADI "HRECM00_ACTIVATION" does exist in this transaction, did you activate the implementation after writing the code?  The method is called in the FM HR_ECM_CALC_SAL_ADJUSTMENT.  You can try executing with breakpoint at the FM HR_ECM_CALC_SAL_ADJUSTMENT.
      2. You can try using the program in the code gallery to find user exit/Badi. Link: [Badi/exit finder|https://wiki.sdn.sap.com/wiki/display/Snippets/ToFindoutUserexitsandBAdI%27s%28New+format%29].
      3. In case you are working on ECC 6.0 the first point ( "CALL METHOD cl_exithandler=>get_class_name_by_interface"  ) mentioned by you might now return all the BADIS, as SAP has introduced a new method by which BADIS are invoked. You can try searching for Kernel Badi in SAP Help.
    Regards,
    Sai

Maybe you are looking for

  • Is youview free and what are the benefits of it?

    for BT tv you have to pay £5 a month. How many channels are there on youview and what are the main benefits of it?

  • Dutch end-user manual spa50x series

    I am looking for dutch user guides for the spa50x series of IP phones. For instance, on the cisco website I can only find a document named 'cisco_spa509g_user_guide.pdf' in English whereas I would like a Dutch version of this to supply to Dutch custo

  • HT201269 MY IPHONE 5 WILL NOT SYNC WITH ITUNES WHY

    MY IPHONE 5 WILL NOT SYNC WITH ITUNES WHY

  • Connect to firewall SSH or ASDM from VPN

    Hello, I've created an AnyConnect VPN which the client is assigned an IP from the IP Pool 10.20.20.0/255.255.255.224. I've tried to create an entry in the management access tab with the following settings, and it is not working; Type:ASDM/HTTPS, Inte

  • Format XML doc based on values in another xml doc

    Database version : Oracle 10g I have an XML "data" file and an associated error file that is also XML. I want to take the XML data file and highlight visually in a html file only those fields and contents that are there in the "error" file. There are