BP Credit Data Update - BAPI or FM for UKM_BP

2145 단어

Here is a requirement need to update the BP credit data by batch job, usually, we have 3 ways to do it:
  • BAPI, it is our 1st choice, but unfortunately we can't find it in this case.
  • FM, we couldn't find it either, actually we do find some related FMs, they just don't work.
  • BDC, we hate it, but sometimes it is our only choice.

  • I really don't want to choose BDC, after research for a while, finally, we found the 4th way to do it by code - using standard class, we can found a series classes related TCODE UKM_BP named CL_UKM*,  all these classes are controled byCL_UKM_BUPA_FACTORY.
    below is example code to update a risk class and credit limit for a BP:
    DATA: io_facade        TYPE REF TO cl_ukm_facade,
          io_partner       TYPE REF TO cl_ukm_business_partner,
          io_bupa_factory  TYPE REF TO cl_ukm_bupa_factory,
          io_account       TYPE REF TO cl_ukm_account,
          lw_bp_credit_sgm TYPE ukm_s_bp_cms_sgm.
    
    DATA: lwa_ukm_s_bp_cms TYPE ukm_s_bp_cms.
    
     
    DATA: lv_partner      TYPE bu_partner,      
          lv_credit_sgmnt TYPE ukm_credit_sgmnt.
    
    io_facade = cl_ukm_facade=>create( i_activity = cl_ukm_cnst_eventing=>bp_maintenance ).
    io_bupa_factory = io_facade->get_bupa_factory( ).
    
    lv_partner      = '0006000021'.
    lv_credit_sgmnt = '0000'.
    
    io_partner = io_bupa_factory->get_business_partner( lv_partner ).
    
    io_partner->get_bp_cms( IMPORTING es_bp_cms =  lwa_ukm_s_bp_cms ).
    lwa_ukm_s_bp_cms-risk_class = 'ZXX'.
    io_partner->set_bp_cms( lwa_ukm_s_bp_cms ).
    
    
    CALL METHOD io_bupa_factory->get_credit_account
      EXPORTING
        i_partner         = lv_partner
        i_credit_sgmnt    = lv_credit_sgmnt
      RECEIVING
        ro_credit_account = io_account.
    
    io_account->get_bp_cms_sgm( IMPORTING es_bp_cms_sgm = lw_bp_credit_sgm ).
    lw_bp_credit_sgm-credit_limit   = '1.00'.
    lw_bp_credit_sgm-xcritical      = 'X'.
    lw_bp_credit_sgm-limit_chg_date = sy-datum.
    io_account->set_bp_cms_sgm( EXPORTING is_bp_cms_sgm = lw_bp_credit_sgm ).
    
    io_bupa_factory->save_all( ).
    

     

    좋은 웹페이지 즐겨찾기