thespot4sap.com independent sap information
 

New - get SAP Access - pay monthly

SAP Tutorials    Online SAP Training    SAP CBT's    Forums    SAP Articles    SAP Jobs    Resumes
  SAP Access    SAP Blogs    SAP Books     Links     Vendor Directory     Submit Content    Search
 

ABAP to Mass Select and Print
Material Master Changed History

Submitted by webmaster at www.sap-basis-abap.com

 

 

New Page 1


Have you tried
our new
SAP
Blog
Aggregator

yet?
 

==================================================
Mass Select and Print Material Master Changed History
==================================================
4.6x

REPORT ZMMCHGHISTORY NO STANDARD PAGE HEADING
                LINE-SIZE 195 LINE-COUNT 60.

* Change doc listing
* Grouped into 3 chg types: 1. Part revision  2. Price change  3. Others

TABLES:
        CDHDR, CDPOS, MARA, MAKT, MARD.

FIELD-GROUPS: HEADER.

DATA: BEGIN OF CHGDOC OCCURS 50.
        INCLUDE STRUCTURE CDRED.
DATA: END OF CHGDOC.


DATA:
      CHGTYPE(1),
      PLANT(4),
      MATNR1 LIKE CHGDOC-OBJECTID.


SELECT-OPTIONS:
    XMATNR  FOR CDHDR-OBJECTID,    "Material
    XUDATE  FOR CDHDR-UDATE,       "Change Date
    XUNAME  FOR CDHDR-USERNAME,    "User Name
    XTCODE  FOR CDHDR-TCODE,       "Transaction Code
    XWERKS  FOR MARD-WERKS.        "Plants

SELECTION-SCREEN SKIP.

*Filter change type
SELECTION-SCREEN BEGIN OF BLOCK CHG0 WITH FRAME TITLE TEXT-001.
   PARAMETERS : XCHG1 AS CHECKBOX DEFAULT 'X',
                XCHG2 AS CHECKBOX DEFAULT 'X',
                XCHG3 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK CHG0.



START-OF-SELECTION.

INSERT:
        CHGDOC-OBJECTID        "Material
        CHGTYPE                "Change type
        PLANT
        CHGDOC-CHANGENR
        CHGDOC-USERNAME
        CHGDOC-UDATE
        CHGDOC-TCODE
        CHGDOC-TABNAME
        CHGDOC-TABKEY
        CHGDOC-CHNGIND
        CHGDOC-FNAME
        CHGDOC-FTEXT
        CHGDOC-TEXTART
        CHGDOC-OUTLEN
        CHGDOC-F_OLD
        CHGDOC-F_NEW

INTO HEADER.

SELECT * FROM MARA WHERE MATNR IN XMATNR.

   MATNR1 = MARA-MATNR.

   CALL FUNCTION 'CHANGEDOCUMENT_READ'
     EXPORTING
*         ARCHIVE_HANDLE             = 0
*         CHANGENUMBER               = ' '
*         DATE_OF_CHANGE             = '00000000'
          OBJECTCLASS                = 'MATERIAL'
          OBJECTID                   = MATNR1
*         TABLEKEY                   = ' '
*         TABLENAME                  = ' '
*         TIME_OF_CHANGE             = '000000'
*         USERNAME                   = ' '
*         LOCAL_TIME                 = ' '
     TABLES
          EDITPOS                    = CHGDOC
     EXCEPTIONS
          NO_POSITION_FOUND          = 1
          WRONG_ACCESS_TO_ARCHIVE    = 2
          TIME_ZONE_CONVERSION_ERROR = 3
          OTHERS                     = 4.

   LOOP AT CHGDOC.

      CHECK:  CHGDOC-UDATE    IN XUDATE,
              CHGDOC-USERNAME IN XUNAME,
              CHGDOC-TCODE    IN XTCODE.

*     Chg type: 1. Part revision, 2. Price change, 3. Others
      CASE CHGDOC-TCODE.
         WHEN 'MM01' OR 'MM02' OR 'MM03'.  CHGTYPE = '1'.
         WHEN 'MR21'.  CHGTYPE = '2'.
         WHEN OTHERS.  CHGTYPE = '3'.
      ENDCASE.

*     Filter chg type
      IF ( CHGTYPE = '1' AND XCHG1 <> 'X' ) OR
         ( CHGTYPE = '2' AND XCHG2 <> 'X' ) OR
         ( CHGTYPE = '3' AND XCHG3 <> 'X' ).
         CONTINUE.
      ENDIF.

*     Plant is a substring of tabkey
      PLANT = CHGDOC-TABKEY+21(4).

      IF NOT ( XWERKS IS INITIAL ) AND NOT ( PLANT IS INITIAL ).
         CHECK PLANT IN XWERKS.
      ENDIF.

      EXTRACT HEADER.

   ENDLOOP.

ENDSELECT.

END-OF-SELECTION.

SORT.
LOOP.
*  Material
   AT NEW CHGDOC-OBJECTID.
      SELECT SINGLE * FROM MAKT  WHERE MATNR = CHGDOC-OBJECTID.
      FORMAT INTENSIFIED ON.
      SKIP.  SKIP.
      WRITE:/' *** Material:', (18) CHGDOC-OBJECTID, MAKT-MAKTX.
   ENDAT.

*  Change type
   AT NEW CHGTYPE.
      FORMAT INTENSIFIED ON.
      SKIP.
      CASE CHGTYPE.
         WHEN '1'.   WRITE:/ '  **  Change type:  PARTS REVISION'.
         WHEN '2'.   WRITE:/ '  **  Change type:  PRICE CHANGE'.
         WHEN '3'.   WRITE:/ '  **  Change type:  OTHERS'.
      ENDCASE.
      SKIP.
   ENDAT.

   SHIFT CHGDOC-F_OLD LEFT DELETING LEADING SPACE.
   SHIFT CHGDOC-F_NEW LEFT DELETING LEADING SPACE.

   FORMAT INTENSIFIED OFF.
   WRITE:
     /     PLANT          UNDER 'Plant',
      (50) CHGDOC-FTEXT   UNDER 'Field',
      (45) CHGDOC-F_OLD   UNDER 'Old value',
      (45) CHGDOC-F_NEW   UNDER 'New value'.

   AT NEW CHGDOC-CHANGENR.
      FORMAT INTENSIFIED OFF.
      WRITE:
           CHGDOC-CHANGENR   UNDER 'Change doc',
           CHGDOC-TCODE      UNDER 'Tcod',
           CHGDOC-USERNAME   UNDER 'User name   ',
           CHGDOC-UDATE      UNDER 'Date    ' DD/MM/YY.
   ENDAT.

   AT END OF CHGDOC-OBJECTID.
      SKIP.
      ULINE.
      SKIP.
   ENDAT.
ENDLOOP.


TOP-OF-PAGE.
WRITE: / SY-DATUM, SY-UZEIT,
    50 'ABC PTE LTD',
   100 'page', SY-PAGNO,
       / SY-REPID,
    48 'Change Documents Report',
   100 SY-UNAME.

SKIP.
ULINE.

WRITE:/3
        'Change doc',
        'Tcod',
        'User name   ',
        'Date    ',
        'Plant',
   (50) 'Field',
   (45) 'Old value',
   (45) 'New value'.

ULINE.

===============================================

SAP users use CATT frequently to upload master data or to make changes to master data records. SAP Consultants and Abapers tend to use it for creating test data. The transactions run without user interaction. You can check system messages and test database changes. All tests are logged. The CATT records your keystrokes while performing the actual transaction. You then identify the fields that you wish to change in that view. Then export this data to a spreadsheet to populate with the data required. This is uploaded and executed saving you keying in the data manually.

To perform CATT, it has to be enabled in your production environment (your systems administrator should be able to do this - SCC4). You will also need access to your development system to create the CATT script.

The process of uploading data with a CATT:

Activate CATT in your client
In transaction code SCC4 - click the change button
Double click on the client number
In the Restriction section, tick Allows CATT processes to be started.

Upload data using CATT

1. Create Import variant for the fields you need
Transaction SCAT
Goto Parameters
Create Import Variant
Goto Variant -> Edit
Goto Variant -> Fast entry or F9
Duplicate 01

2. To change the MRP Group for a list of Material
Assuming that I want to change the MRP Group for a list of Material.
My text files should look something like this:
[Variant ID] [Variant Text] &ZDISGR &ZMATNR
--> Parameter texts MRP group Material
--> Default Values M1 A001
*** Changes to the default values displayed above not effective
#01  M1 A001
#02  ''     A002
#03  M1 A003
Note : '' denotes a blank in the field. e.g. Material A002 MRP group will be replaced by a blank.

3. Configure the recorded entry fields to read from the imported text file data
In the CATT : Maintain functions test case Screen
Double click on the Object Name
Double click on the screen number with your desired fields
Park the cursor on the fields
Click Edit -> Details
Fill in the Parameters Name and Field Contents
Finish Save it.

Assign your text file data.

In the CATT : Execute test case Screen
Click External from file and choose your text file
CATT will now read from your text file and update whatever data you have specified.

Continue on the 'techie' Article Tour (3 of 6)


 

New Page 1

 

 
     

About Us   Contact Us   Privacy   Disclaimer   Feedback   Email Discussion   Newsletter  

Copyright © - Independent SAP Information
Partners: Learn XML, SAPdox, Worldwide Guesthouses and B&B's