CRM and CX Blogs by SAP
Stay up-to-date on the latest developments and product news about intelligent customer experience and CRM technologies through blog posts from SAP experts.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
2,039

When you download material from ECC to CRM, the product attribute 'serial number processing' can be transferred if the customizing is set up properly. But the logic of how product attribute 'serial number processing' will be set is not widely known.

In ECC transaction MM01, you can create a material. Under tab 'Sales: General/Plant', in field 'SerialNoProfile', you can assign the serial number profile. This will be downloaded into CRM product as field 'Serial No. Processing', under tab Material.

The serial number profile is maintained in ECC at the following path:

IMG

-- Sales and Distribution

-- Basic Functions

-- Serial Numbers

-- Determine Serial Number Profiles

Under each profile, you can define a series of procedures,

If the material is downloaded for the first time(initial download, or when you create a new material in ECC), the application will evaluate the serial number profile you assigned to this material by the following logic:

Within the serial number profile, it has procedure 'MMSL' (Maintain goods receipt and issue doc). For MMSL procedure,  if its serial number usage is 03 (Obligatory),

the CRM product attribute 'serial number processing' will be set to 4. Otherwsie, the product attribute 'serial number processing' will be 0.

in ECC FM CRS_SERIAL_PROFIL_DETERMINE, line 38,

    LOOP AT IT_MARC_NEW ASSIGNING <fs_marc>.
    CALL FUNCTION 'SERIAL_PROFILE_READ'
      EXPORTING
        PROFILE_R      = <fs_marc>-sernp
        OPERATION_R    = 'MMSL'
      IMPORTING
        T_377          = lt_T377
      EXCEPTIONS
        NO_T377P_ENTRY = 1
        NO_T377_ENTRY  = 2
        OTHERS         = 3.
    IF SY-SUBRC = 0.
      IF lt_T377-SERPFLICHT = '03'.
        EV_SERIALNO_PROCESS_NEW = '4'.
        EXIT.
      ENDIF.
    ENDIF.
  ENDLOOP.

it will read the MMSL procedure in the serial number profile which is assigned to the current material, then it will check if the MMSL procedure usage is 03(Obligatory). If so, the CRM product attribute 'serial number processing' will be set to 4.

When the material is not downloaded for the first time, that is to say, before the download, the product already exists in CRM and it's mapped to the ECC material. When you change the serial number profile in ECC material, the delta download of material works like this:

in FM CRS_SERIAL_PROFIL_DETERMINE

line 19,

   LOOP AT IT_MARC_OLD ASSIGNING <fs_marc>.
    CALL FUNCTION 'SERIAL_PROFILE_READ'
      EXPORTING
        PROFILE_R      = <fs_marc>-sernp
        OPERATION_R    = 'MMSL'
      IMPORTING
        T_377          = lt_T377
      EXCEPTIONS
        NO_T377P_ENTRY = 1
        NO_T377_ENTRY  = 2
        OTHERS         = 3.
    IF SY-SUBRC = 0.
      IF lt_T377-SERPFLICHT = '03'.
        EV_SERIALNO_PROCESS_OLD = '4'.
        EXIT.
      ENDIF.
    ENDIF.
  ENDLOOP.

it reads the MMSL procedure of the old serial number profile and if it has usage 03, it will set EV_SERIALNO_PROCESS_OLD = '4'.

line 38,

   LOOP AT IT_MARC_NEW ASSIGNING <fs_marc>.
    CALL FUNCTION 'SERIAL_PROFILE_READ'
      EXPORTING
        PROFILE_R      = <fs_marc>-sernp
        OPERATION_R    = 'MMSL'
      IMPORTING
        T_377          = lt_T377
      EXCEPTIONS
        NO_T377P_ENTRY = 1
        NO_T377_ENTRY  = 2
        OTHERS         = 3.
    IF SY-SUBRC = 0.
      IF lt_T377-SERPFLICHT = '03'.
        EV_SERIALNO_PROCESS_NEW = '4'.
        EXIT.
      ENDIF.
    ENDIF.
  ENDLOOP.

it reads the MMSL procedure of the new serial number profile and if it has usage 03, it will set EV_SERIALNO_PROCESS_NEW = '4'.

Later, in include LCRM1F11,

FORM get_serialno_processing,

line 30,

    CALL FUNCTION lv_function  "provided by Service
    IMPORTING
      ev_serialno_process_old = ls_mara_ser_old-serialnoprocess
      ev_serialno_process_new = es_mara_ser_new-serialnoprocess
    TABLES
      it_marc_old             = lt_marc_old
      it_marc_new             = lt_marc_new.

  IF es_mara_ser_new-serialnoprocess =
     ls_mara_ser_old-serialnoprocess.
    CLEAR: es_mara_ser_new.           "No changes
  ELSE.
*   es_mara_ser_new-material
    IF es_mara_ser_new-serialnoprocess IS INITIAL.
      es_mara_ser_new-operation = 'D'.
    ELSE.
      es_mara_ser_new-operation = 'I'.
    ENDIF.
  ENDIF.

** here lv_function  = CRS_SERIAL_PROFIL_DETERMINE, so it will call CRS_SERIAL_PROFIL_DETERMINE to get the serial number process of both the old profile and the new profile. It then compare the serial number process of the old profile and serial number process of the new profile, if they are equal, it will clear the es_mara_ser_new. Then the CRM product attribute 'serial number processing' will be set to 0.

2 Comments