Saturday, 22 December 2012

UPLOAD DATA FROM LEGACY TO CRM DB


&---------------------------------------------------------------------*
*& Report  ZDEMO_BOL_UPLOAD
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZDEMO_BOL_UPLOAD.

data : lr_core type ref to cl_crm_bol_core,
       lr_factory type ref to CL_CRM_BOL_ENTITY_FACTORY,
       lr_btorder type ref to cl_crm_bol_entity,
       lr_btadminh type ref to cl_crm_bol_entity,
       lr_btpartnerset type ref to cl_crm_bol_entity,
       lr_btpartner type ref to cl_crm_bol_entity,
       lr_tx type ref to IF_BOL_TRANSACTION_CONTEXT,
       it_param type CRMT_NAME_VALUE_PAIR_TAB,
       wa_param type CRMT_NAME_VALUE_PAIR,
       v_id type string.

lr_core = cl_crm_bol_core=>get_instance( ).

lr_core->load_component_set( IV_COMPONENT_SET_NAME = 'ONEORDER' ).

*loop at it itab into wa

CALL METHOD LR_CORE->GET_ENTITY_FACTORY
  EXPORTING
    IV_ENTITY_NAME = 'BTOrder'
  RECEIVING
    RV_RESULT      = lr_factory.

wa_param-name = 'OBJECT_TYPE'.
wa_param-value = 'BUS2000111'.
append wa_param to it_param.

wa_param-name = 'PROCESS_TYPE'.
wa_param-value = 'OPFS'.
append wa_param to it_param.


CALL METHOD LR_FACTORY->CREATE
  EXPORTING
    IV_PARAMS = it_param
  RECEIVING
    RV_RESULT = lr_btorder.

TRY.
    CALL METHOD LR_BTORDER->GET_RELATED_ENTITY
      EXPORTING
        IV_RELATION_NAME = 'BTOrderHeader'
*    IV_MODE          = NORMAL
      RECEIVING
        RV_RESULT        = lr_btadminh.

  CATCH CX_CRM_GENIL_MODEL_ERROR .
ENDTRY.


*if lr_btadminh is not bound.
*
*  endif.

lr_btadminh->set_property_as_string( iv_attr_name = 'DESCRIPTION'
                                      iv_value = 'Test BOL Upload' ). "wa-description
lr_core->modify( ).
TRY.
    CALL METHOD LR_BTADMINH->CREATE_RELATED_ENTITY
      EXPORTING
        IV_RELATION_NAME = 'BTHeaderPartnerSet'
      RECEIVING
        RV_RESULT        = lr_btpartnerset.
  CATCH CX_CRM_GENIL_DUPLICATE_REL .
  CATCH CX_CRM_GENIL_MODEL_ERROR .
ENDTRY.

TRY.
    CALL METHOD LR_Btpartnerset->CREATE_RELATED_ENTITY
      EXPORTING
        IV_RELATION_NAME = 'BTPartner_PFT_0006_MAIN'
      RECEIVING
        RV_RESULT        = lr_btpartner.
  CATCH CX_CRM_GENIL_DUPLICATE_REL .
  CATCH CX_CRM_GENIL_MODEL_ERROR .
ENDTRY.

lr_btpartner->set_property_as_string( iv_attr_name = 'PARTNER_NO'
                                       iv_value = '3274' )."wa-partner

lr_core->modify( ).


lr_tx = lr_btorder->get_transaction( ).

if lr_tx->save( ) = abap_true.
  lr_tx->commit( ).
  v_id = lr_btadminh->get_property_as_string( iv_attr_name = 'OBJECT_ID' ).
else.
  lr_tx->rollback( ).
endif.


write v_id.

1 comment: