Professional Documents
Culture Documents
03 Inital - Delta Download - Ztable - EINA
03 Inital - Delta Download - Ztable - EINA
Table of contents
1.0 Technology Environment....................................................................4
2.0 Business Requirement Analysis.............................................................4
2.1 Problem definition.........................................................................4
2.2 Business Requirements....................................................................4
3.0 Solution Walkthrough.........................................................................5
4.0 Solution Details................................................................................6
4.1 Solution Overview..........................................................................6
4.2 Process Enhancements....................................................................7
Record of Release
As a solution, a table ZEINA has been created in CRM which is an exact replica of
table EINA in ECC. Also a BDoc type is created that will be replicating ECC data
into CRM table. A complete replication procedure is devised which takes care of
Initial and Delta load of EINA data.
The system is now ready for initial download of the tables using transaction code
R3AS.
Delta Download
Since these are standard ECC table, delta download should be activated by
enhancing the standard function module which updates the ECC database.
Table Type
1. ZCRM_MW_EINA_ROOT_TAB (Table type for EINA root data)
Transaction: SBDM
BDoc Type
BDOC Name: ZMBDOC_EINA (mBDOC for Purchasing Information)
Related Data type: ZCRM_MW_EINA_EXTENSION
* Variables
DATA: LV_LOAD_HEADER LIKE BAPICRMDH2 VALUE IS INITIAL.
DATA: LV_BLOCKNO LIKE BAPICRMDH2-BLOCKNO VALUE IS INITIAL.
DATA: LV_RECORDNO LIKE BAPICRMDH2-RECORDNO VALUE IS INITIAL.
DATA: LAST_INFNR LIKE EINA-INFNR VALUE IS INITIAL.
DATA: LV_RECS_FOUND LIKE SY-DBCNT VALUE IS INITIAL.
DATA: LV_LASTBLOCK TYPE C VALUE IS INITIAL.
DATA: LV_FORCE_ERROR TYPE C VALUE IS INITIAL.
DATA: LV_USE_CRMMWTST LIKE CRM_PARA-XFELD VALUE IS INITIAL.
CLEAR LAST_INFNR.
DO. " for all blocks.
LV_LOAD_HEADER-BLOCKNO = LV_LOAD_HEADER-BLOCKNO + 1.
SELECT * FROM EINA
UP TO I_BAPICRMDH1-BLOCKSIZE ROWS
INTO CORRESPONDING FIELDS OF TABLE LT_EINA
WHERE ( INFNR > LAST_INFNR )
AND (LT_CONDITION) ORDER BY PRIMARY KEY.
IF SY-DBCNT LT I_BAPICRMDH1-BLOCKSIZE.
LV_LOAD_HEADER-LASTBLOCK = GC_X.
LV_RECS_FOUND = SY-DBCNT.
else.
lv_recs_found = I_BAPICRMDH1-BLOCKSIZE.
ENDIF.
IF LV_LOAD_HEADER-LASTBLOCK = gc_x.
EXIT.
ENDIF.
ENDDO.
ENDFUNCTION.
FUNCTION ZCRM_MW_MAP_EINA.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_OBJ_NAME) LIKE BAPICRMOBJ-OBJ_NAME
*" REFERENCE(I_BAPICRMDH1) LIKE BAPICRMDH1 STRUCTURE BAPICRMDH1
*" EXPORTING
*" REFERENCE(E_STATUS) LIKE BAPICRMEXP-STATUS_EXT
*" TABLES
*" TI_EINA STRUCTURE EINA
*" TE_BAPIMTCS STRUCTURE BAPIMTCS
*"----------------------------------------------------------------------
LT_EINA-MANDT = LV_EINA-MANDT.
LT_EINA-INFNR = LV_EINA-INFNR.
LT_EINA-MATNR = LV_EINA-MATNR.
LT_EINA-LIFNR = LV_EINA-LIFNR.
LT_EINA-LOEKZ = LV_EINA-LOEKZ.
LT_EINA-ERDAT = LV_EINA-ERDAT.
APPEND TE_BAPIMTCS.
ENDLOOP.
ENDFUNCTION.
*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZEINA_CRM_SEND. "active version
DATA lt_bapimtcs LIKE bapimtcs OCCURS 0 WITH HEADER LINE.
DATA lv_bapicrmdh2 LIKE bapicrmdh2 VALUE IS INITIAL.
DATA lv_objname LIKE crmobject-objname VALUE 'ZKONP'.
DATA: lt_eina TYPE TABLE OF eina WITH HEADER LINE.
DATA: lt_eine TYPE TABLE OF eine WITH HEADER LINE.
DATA lt_bapicrmmsg LIKE bapicrmmsg OCCURS 0 WITH HEADER LINE.
DATA: lv_bapicrmdh1 LIKE bapicrmdh1.
lv_bapicrmdh2-dwnloadtyp = 'D'.
lv_bapicrmdh2-uploadstat = 'S'.
lv_bapicrmdh2-lastblock = 'X'.
lv_bapicrmdh2-blockno = 1.
lv_bapicrmdh2-recordno = 1.
lv_bapicrmdh2-delta_op = 'I'.
* LOOP AT xeina.
MOVE-CORRESPONDING xeina TO lt_eina.
APPEND lt_eina.
* ENDLOOP.
* LOOP AT xeine.
MOVE-CORRESPONDING xeine TO lt_eine.
APPEND lt_eine.
* ENDLOOP.
* T_KEY_INFO =
* T_OTHER_INFO =
* T_BAPISTRUCTURES_OLD =
* TI_INIT_FILTER =
* TI_IDLIST =
EXCEPTIONS
data_not_sent =1
OTHERS =2
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDENHANCEMENT.
*$*$-End: (1 )--------------------------------------------------------------------------------$*$*
*-----------------------------------------------------------------------------*
* Purpose : BDOC to BAPIMTCS Function module for EINA *
*-----------------------------------------------------------------------------*
* Modification Logs: *
* *
* Date Programmer Change Request# Description *
* ========== =============== =============== =============== *
*-----------------------------------------------------------------------------*
** Data declaration for BDOC and DDIC component of mBDOC and
* Classic BDOC part
DATA: MESSAGE TYPE ZMBDOC_EINA000 VALUE IS INITIAL.
FIELD-SYMBOLS: <BDOC> TYPE ZMBDOC_EINA000.
R3K_VALUES = TRANSFER_STRUCTURE-INFNR.
EXT_LINE-DATAX-INFNR = GC_X.
EXT_LINE-DATAX-MATNR = GC_X.
EXT_LINE-DATAX-LIFNR = GC_X.
EXT_LINE-DATAX-LOEKZ = GC_X.
EXT_LINE-DATAX-ERDAT = GC_X.
EXT_LINE-CONTROL-TASK = E_BAPICRMDH2-DELTA_OP.
APPEND EXT_LINE TO <DDIC>-ZEINA_ROOT.
ENDLOOP.
ENDFUNCTION.
FUNCTION ZCRM_MW_VALIDATION_EINA.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(OPTIONS) TYPE SMW3FOPT
*" EXPORTING
*" REFERENCE(STATUS) TYPE SMWVALSTAT
*" CHANGING
*" REFERENCE(TRANSACTION_MESSAGE) TYPE ZMBDOC_EINA000
*" REFERENCE(MESSAGE_EXT) TYPE ZCRM_MW_EINA_EXTENSION
*" REFERENCE(ERROR_SEGMENTS) TYPE SMW_ERRTAB OPTIONAL
*" REFERENCE(OBJECT_LINES) TYPE TRL_BORID OPTIONAL
*" REFERENCE(HEADER) TYPE SMW3_FHD
*" EXCEPTIONS
*" TECHNICAL_ERROR
*"----------------------------------------------------------------------
*-----------------------------------------------------------------------------*
* Program Name : ZCRM_MW_VALIDATION_EINA *
* Object No : *
* Created by : Gaurav Gera *
* Created on : 10/05/2009 *
* Transport Request No: CS1K900198 *
*-----------------------------------------------------------------------------*
* Purpose : Validation Module for EINA *
*-----------------------------------------------------------------------------*
* Modification Logs: *
* *
* Date Programmer Change Request# Description *
* ========== =============== =============== =============== *
*-----------------------------------------------------------------------------*
DATA: LT_MESSAGES TYPE TABLE OF BAPICRMMSG.
DATA: LT_ZEINA_INSERT TYPE ZEINA OCCURS 0.
DATA: LT_ZEINA_UPDATE TYPE ZEINA OCCURS 0.
DATA: LT_ZEINA_DELETE TYPE ZEINA OCCURS 0.
DATA: LV_ZEINA TYPE ZEINA VALUE IS INITIAL.
DATA: LV_ZEINA_SEG TYPE ZCRM_MW_EINA_ROOT.
ENDLOOP.
ENDFUNCTION.