cancel
Showing results for 
Search instead for 
Did you mean: 

Master data Management??

Former Member
0 Kudos

Hi All,

I am new to MDM,at present I am working as a BASIS Consultant.My Question is whether Transaction data can be maintened in MDM??If not why??

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

MDM-Master Data Management.

It only maintains master data.

It wont care about transactional data.

bacause transactional data is not a static data.

The unchangable or static data can only be handled by MDM.

ex.customer master data, vendor master data.

Regards,

vijay

Former Member
0 Kudos

Thanks Vija..Can u pls give some examples of Transactional data.Is it possible to harmonise transactional data like master data by any other means??

Former Member
0 Kudos

Hi,

Transactional Data are : Sales Order Number , Purchase Order Number , Purchase Requisition Number etc.....

To Harmonise the Transactional data through MDM is not possible since MDM does not stores the Transactional data and hence cannot be harmonised .... but by SAP R/3 we can Harmonise the Transactional data Using ALE and IDOCS .......

If u want the details of how to harmonise the Transactional data using IDOC do reply...

hope i answered ur question....

regards,

Jay.

Former Member
0 Kudos

hi,

Let me differentiate the Master data & Transactional data first with example.

I will take a bank account data.

Name : xxx ( Master Data )

A/c number : 12344 ( Master Data )

A/c open date: 23/4/2008. ( Master Data )

Last transaction through ATM : 29/09/2008 ( Transactional Data ).

So these transaction data will change frequently.Thats why we cant harmonize it.

But before sending the data to MDM from SAP R/3 ( example) we can harmonoze using java API.

Its very clear for you i think.

Regards,

Vijay

Former Member
0 Kudos

Thanks Jay..Can u pls send me the details of how to harmonise the Transactional data??

Former Member
0 Kudos

To Harmonise the Data in R/3 :

From Legacy System To SAP System :

1. Create the IDOC -- > IDOC Segment which contains the Structure of the data of Legacy System (Transaction : we31 ).

2. Read the data to the passed tio the IDOC Segment using the Standard or Customise Inbound Function Module available.(Structure SDATA will contain the Idoc data in the structure ).

Code for ReadING idoc.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD

*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC

*" EXPORTING

*" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK

*" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS

*" VALUE(WORKFLOW_RESULT) LIKE BDWFAP_PAR-RESULT

*" VALUE(APPLICATION_VARIABLE) LIKE BDWFAP_PAR-APPL_VAR

*" TABLES

*" IDOC_CONTRL STRUCTURE EDIDC

*" IDOC_DATA STRUCTURE EDIDD

*" IDOC_STATUS STRUCTURE BDIDOCSTAT

*" RETURN_VARIABLES STRUCTURE BDWFRETVAR

*" SERIALIZATION_INFO STRUCTURE BDI_SER

*" EXCEPTIONS

*" WRONG_FUNCTION_CALLED

*"----


************************************************************************

*

CLEAR: vx_error_flag,

fl_mirs_ret.

REFRESH it_idoc_status.

  • Check if the function is called correctly

READ TABLE idoc_contrl INDEX 1.

v_docnum = idoc_contrl-docnum.

IF sy-subrc NE 0 OR idoc_contrl-mestyp NE 'ZMIRS_PCR'.

PERFORM update_status USING '1' 'E' '110' '' ''.

ENDIF.

READ TABLE idoc_data INDEX 1.

  • Check for valid IDOC Segment Name

IF sy-subrc NE 0 OR idoc_data-segnam NE 'Z1MIRS_PCR'.

PERFORM update_status USING '1' 'E' '110' '' ''.

ENDIF.

  • Set MIRS Transaction Id to return

fl_mirs_ret-tran_id = idoc_data-sdata+0(300).

  • Determining conditions for parts change processing fl_z1mir = idoc_data-sdata.

  • Function module to determine whethere the customer is Integrated or Non Integrated.

CALL FUNCTION 'ZFMM_SD_CUSTOMER_TYPE'

EXPORTING

kunnr = fl_z1mir-customer_id

  • VBELN =

IMPORTING

customer_type = v_cust

EXCEPTIONS

invalid_customer = 1

invalid_sales_order = 2

input_customer_or_salesorder = 3

OTHERS = 4

.

  • Line Item

v_item = fl_z1mir-sap_sales_ord_nbr+10(6).

  • Select data from VBAP table for given sales order no.

CLEAR v_posnr01.

SELECT SINGLE posnr

FROM vbap

INTO v_posnr01

WHERE vbeln = fl_z1mir-sap_sales_ord_nbr+0(10)

AND posnr = v_item.

IF sy-subrc NE 0.

  • Program will continue its execution.

ENDIF.

  • Send the Error message if Line Item does not exists

IF v_item IS NOT INITIAL AND v_posnr01 IS NOT INITIAL.

CONCATENATE fl_z1mir-cur_mpn c_colon fl_z1mir-cur_cage_cd INTO v_curmpn.

PERFORM convert_material_number USING v_curmpn.

IF fl_z1mir-sap_sales_ord_nbr IS NOT INITIAL. "

  • Select data from VBAP table for given sales order no.

CLEAR : v_matnr_vbap,

v_posnr.

SELECT SINGLE matnr posnr

FROM vbap

INTO (v_matnr_vbap , v_posnr)

WHERE vbeln = fl_z1mir-sap_sales_ord_nbr+0(10) "

AND matnr = v_curmpn. "

IF sy-subrc NE 0 . "

  • Send Information message to MIRS. " Part no is not of Type NHA "

PERFORM update_status USING c_1 c_i c_999 text-040 ''. "

ENDIF. "

IF v_matnr_vbap IS NOT INITIAL.

IF fl_z1mir-cur_cage_cd IS NOT INITIAL.

  • Concatecate Part no and cage code in into variable v_cur_var.

CONCATENATE fl_z1mir-cur_mpn c_colon fl_z1mir-cur_cage_cd INTO v_cur_var. "

ENDIF. "if fl_z1mir-cur_cage_cd is not initial.

IF fl_z1mir-new_cage_cd IS NOT INITIAL.

  • Concatecate Part no and cage code in into variable v_cur_var.

CONCATENATE fl_z1mir-new_mpn c_colon fl_z1mir-new_cage_cd INTO v_new_var. "

ENDIF. "if fl_z1mir-new_cage_cd is not initial.

  • Convert the Material Number from IDOC to corresponding SAP material

PERFORM convert_material_number USING v_cur_var. "

  • Convert the Material Number from IDOC to corresponding SAP material

PERFORM convert_material_number USING v_new_var.

IF v_item0(2) = v_posnr0(2) "

AND v_cur_var NE v_new_var.

v_num = v_posnr - v_item.

IF v_num < c_900.

*Function module for Processing if Parts change Scenario

CALL FUNCTION 'ZFMM_PARTS_CHANGE_PROCESSING'

EXPORTING

fl_z1pcr = fl_z1mir

TABLES

return = it_return .

IF sy-subrc NE 0.

  • No need of explicit error handling required here.

ENDIF.

ENDIF. "if v_num < c_900.

ENDIF. "IF v_item0(2) = v_posnr0(2)

ENDIF. "IF v_matnr_VBAP IS NOT INITIAL.

ENDIF. " fl_z1mir-sap_sales_ord_nbr not null "DV1K925904+

ELSE.

  • Send the error messgae back to ZMIRS.

v_message1 = text-001. "

  • Get the Trans ID

CONCATENATE fl_z1mir-tran_id1 fl_z1mir-tran_id2 fl_z1mir-tran_id3 INTO v_trans."

*Fill Return Idoc Structure

IF v_trans IS NOT INITIAL. "

fl_ret-tran_id = v_trans+0(300). "

ENDIF."if v_trans is not initial.

fl_ret-proc_flag1 = c_e. "

fl_ret-msg_text1 = v_message1. "

*Call function module to return idoc to MIRS

CALL FUNCTION 'Z_MMI_IDOC_OUTPUT_ZMIRS_RET' "

CHANGING

fl_mirs_ret = fl_ret

EXCEPTIONS

idoc_create_failed = 1

OTHERS = 2.

ENDIF. " if v_item is not initial.

  • Process IDOC Data Record for Parts Changes

IF vx_error_flag = ''.

PERFORM process_pcr_data_record USING idoc_data.

ENDIF.

  • Call Function to send Return Record back to MIRS

CALL FUNCTION 'Z_MMI_IDOC_OUTPUT_ZMIRS_RET'

CHANGING

fl_mirs_ret = fl_mirs_ret

EXCEPTIONS

idoc_create_failed = 1

OTHERS = 2.

IF sy-subrc NE 0.

vx_error_flag = 'X'.

ENDIF.

  • Fill IDOC Function Fields to Return to ALE Processing

IF vx_error_flag NE ''.

workflow_result = '99999'.

return_variables-wf_param = c_error_idocs.

return_variables-doc_number = idoc_contrl-docnum.

APPEND return_variables.

ELSE.

CLEAR workflow_result.

return_variables-wf_param = c_processed_idocs.

return_variables-doc_number = idoc_contrl-docnum.

APPEND return_variables.

ENDIF.

idoc_status[] = it_idoc_status[].

  • Call Function to Update IDOC Status Database

DO 5 TIMES.

CALL FUNCTION 'IDOC_STATUS_WRITE_TO_DATABASE'

EXPORTING

idoc_number = idoc_contrl-docnum

no_dequeue_flag = 'X'

IMPORTING

idoc_control = idoc_contrl

TABLES

idoc_status = idoc_status

EXCEPTIONS

idoc_foreign_lock = 1

idoc_not_found = 2

idoc_status_records_empty = 3

idoc_status_invalid = 4

db_error = 5

OTHERS = 6.

IF sy-subrc = 0.

EXIT.

ENDIF..

WAIT UP TO '2' SECONDS.

ENDDO.

ENDFUNCTION.

Answers (0)