About transfering master data to mobile client site on extract....

Hi everyone,
I want to flow the master data (i.e country, region, title specific data which is not user specific etc..)
from CRM to Mobile client for perticular site using SMOEAC.
what happened is first time when I have done whole conntrans I got 8000 messages for a perticular mobile client site.
after 2 months when i configured a new machine for same cilent and done complete extract using smoeac the master data is not flown( messages where around 3000 only).
this means after doing complete extract on mobile site the complete data is not flowing....
Please suggest if you come across some like this...
regards,
Dhanraj.

Hi,
you can find the load objects by searching for the tables they contain in tables "smofmaptab" & "smoftables".
Another method is extracting all the info out of the CRM system. Try implementing the following program in your CRM system. It will extract all data of the objects in an XML file and will create an accompanying CSS file to view the data. Open the XML file in a browser and search for your tables in it.
*& Report  ZMVGTEST12                                                  *
*& Written by Michael Van Geet                                         *
*& The report extracts all object data to an XML file                  *
REPORT  zmvgtest12                              .
TYPES: BEGIN OF t_objects,
         objname    LIKE smofobject-objname,
         objclass   LIKE smofobject-objclass,
         text       LIKE smofobjctt-text,
         r3tabname  LIKE smoftables-r3tabname,
         sfatabname LIKE smofmaptab-sfatabname,
       END OF t_objects,
       BEGIN OF t_systems,
         objname    LIKE smofobject-objname,
         sourcestid LIKE smofinicon-sourcestid,
         targetstid LIKE smofinicon-targetstid,
       END OF t_systems,
       BEGIN OF t_data,
         data(500),
       END OF t_data.
DATA: it_objects TYPE STANDARD TABLE OF t_objects,
      is_objects TYPE t_objects,
      is2_objects TYPE t_objects,
      it_systems TYPE STANDARD TABLE OF t_systems,
      is_systems TYPE t_systems,
      it_data TYPE STANDARD TABLE OF t_data,
      is_data TYPE t_data,
      h_lines TYPE i,
      h_file  TYPE string.
RANGES: r_objclass FOR smofobject-objclass.
SELECTION-SCREEN BEGIN OF BLOCK blok1 WITH FRAME TITLE text-001.
PARAMETERS: p_obj RADIOBUTTON GROUP grp1,
            p_cus RADIOBUTTON GROUP grp1,
            p_con RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK blok1.
SELECTION-SCREEN BEGIN OF BLOCK blok2 WITH FRAME.
PARAMETERS: p_extr AS CHECKBOX DEFAULT 'X',
            p_file(50) DEFAULT 'c:\temp\'.
SELECTION-SCREEN END OF BLOCK blok2.
IF NOT p_obj IS INITIAL.
  REFRESH r_objclass.
  r_objclass-sign = 'I'.
  r_objclass-option = 'NE'.
  r_objclass-low = 'CUSTOMIZING'.
  APPEND r_objclass.
  r_objclass-low = 'CONDCUSTOMIZING'.
  APPEND r_objclass.
  r_objclass-low = 'CONDITIONS'.
  APPEND r_objclass.
ELSEIF NOT p_cus IS INITIAL.
  REFRESH r_objclass.
  r_objclass-sign = 'I'.
  r_objclass-option = 'EQ'.
  r_objclass-low = 'CUSTOMIZING'.
  APPEND r_objclass.
ELSE.
  REFRESH r_objclass.
  r_objclass-sign = 'I'.
  r_objclass-option = 'EQ'.
  r_objclass-low = 'CONDCUSTOMIZING'.
  APPEND r_objclass.
  r_objclass-low = 'CONDITIONS'.
  APPEND r_objclass.
ENDIF.
SELECT obobjname obobjclass obttext tabr3tabname map~sfatabname
            FROM ( ( smofobject AS ob JOIN smofobjctt AS obt
                      ON obtobjname EQ obobjname )
                 JOIN smoftables AS tab ON tabobjname EQ obobjname )
                 JOIN smofmaptab AS map ON mapobjname EQ obobjname
                  AND mapr3tabname EQ tabr3tabname
            INTO TABLE it_objects
            WHERE ob~objclass IN r_objclass
              AND obt~spras   EQ 'E'.
SELECT obobjname insourcestid in~targetstid
        INTO TABLE it_systems
        FROM smofobject AS ob JOIN smofinicon AS IN
             ON inobjname EQ obobjname
        WHERE ob~objclass IN r_objclass.
PERFORM xlmdoc  TABLES it_data
                USING 'open'.
LOOP AT it_objects INTO is_objects.
  CLEAR is2_objects.
  is2_objects = is_objects.
  AT NEW objname.
    WRITE:/ is2_objects-objname COLOR 1,
            is2_objects-objclass COLOR 1,
            is2_objects-text COLOR 1.
    PERFORM open_objects TABLES it_data
                         USING is2_objects.
    WRITE:/30 'SYSTEMS:'.
    PERFORM xlmdoc  TABLES it_data
                    USING '<SYSTEMMAPPING>'.
    LOOP AT it_systems INTO is_systems
         WHERE objname EQ is_objects-objname.
      WRITE:/40 is_systems-sourcestid,
                is_systems-targetstid.
      PERFORM add_system TABLES it_data
                         USING is_systems.
    ENDLOOP.
    PERFORM xlmdoc  TABLES it_data
                    USING '</SYSTEMMAPPING>'.
    PERFORM xlmdoc  TABLES it_data
                    USING '<TABLEMAPPING>'.
    WRITE:/30 'TABLES:'.
  ENDAT.
  WRITE:/40 is2_objects-r3tabname COLOR 5,
            is2_objects-sfatabname COLOR 5.
  PERFORM add_table TABLES it_data
                    USING is2_objects.
  AT END OF objname.
    PERFORM xlmdoc  TABLES it_data
                    USING '</TABLEMAPPING>'.
    PERFORM xlmdoc  TABLES it_data
                    USING '</OBJECT>'.
  ENDAT.
ENDLOOP.
PERFORM xlmdoc  TABLES it_data
                USING '</OBJECT_OVERVIEW>'.
IF NOT p_extr IS INITIAL.
  CLEAR h_file.
  CONCATENATE p_file 'objects.xml' INTO h_file.
  CALL METHOD cl_gui_frontend_services=>gui_download
    EXPORTING
      filename = h_file
    CHANGING
      data_tab = it_data.
  PERFORM cssdoc  TABLES it_data.
  CLEAR h_file.
  CONCATENATE p_file 'xml.css' INTO h_file.
  CALL METHOD cl_gui_frontend_services=>gui_download
    EXPORTING
      filename = h_file
    CHANGING
      data_tab = it_data.
ENDIF.
*&      Form  open_objects
      text
     -->P_IS2_OBJECTS  text
     -->P_IT_DATA  text
FORM open_objects  TABLES   p_data
                   USING    p_object STRUCTURE is_objects.
  CLEAR is_data.
  is_data-data = '<OBJECT>'.
  APPEND is_data TO p_data.
  CLEAR is_data.
  CONCATENATE '<TITLE>' p_object-objname '</TITLE>' INTO is_data-data.
  APPEND is_data TO p_data.
  CLEAR is_data.
  CONCATENATE '<DESCRIPTION>' p_object-text '</DESCRIPTION>' INTO is_data-data.
  APPEND is_data TO p_data.
  CLEAR is_data.
  CONCATENATE '<CLASS>' p_object-objclass '</CLASS>' INTO is_data-data.
  APPEND is_data TO p_data.
ENDFORM.                    " open_objects
*&      Form  add_system
      text
     -->P_P_DATA  text
     -->P_IS_SYSTEMS  text
FORM add_system  TABLES   p_data
                 USING    p_systems STRUCTURE is_systems.
  CLEAR is_data.
  is_data-data = '<SYSTEM>'.
  APPEND is_data TO it_data.
  CLEAR is_data.
  CONCATENATE '<SOURCESYSTEM>' p_systems-sourcestid '</SOURCESYSTEM>'
             INTO is_data-data.
  APPEND is_data TO p_data.
  CLEAR is_data.
  CONCATENATE '<TARGETSYSTEM>' p_systems-targetstid '</TARGETSYSTEM>'
              INTO is_data-data.
  APPEND is_data TO p_data.
  CLEAR is_data.
  is_data-data = '</SYSTEM>'.
  APPEND is_data TO it_data.
ENDFORM.                    " add_system
*&      Form  add_table
FORM add_table  TABLES   p_data
                USING    p_objects STRUCTURE is_objects.
  CLEAR is_data.
  is_data-data = '<TABLE>'.
  APPEND is_data TO it_data.
  CLEAR is_data.
  CONCATENATE '<SOURCETABLE>' p_objects-r3tabname '</SOURCETABLE>'
              INTO is_data-data.
  APPEND is_data TO p_data.
  CLEAR is_data.
  CONCATENATE '<TARGETTABLE>' p_objects-sfatabname '</TARGETTABLE>'
              INTO is_data-data.
  APPEND is_data TO p_data.
  CLEAR is_data.
  is_data-data = '</TABLE>'.
  APPEND is_data TO it_data.
ENDFORM.                    " add_table
*&      Form  xlmdoc
FORM xlmdoc  TABLES   p_data
             USING    p_action.
  CASE p_action.
    WHEN 'open'.
      CLEAR is_data.
      is_data-data = '<?xml version="1.0"?>'.
      APPEND is_data TO p_data.
      CLEAR is_data.
      is_data-data = '<?xml-stylesheet href="xml.css" type="text/css" ?>'.
      APPEND is_data TO p_data.
      CLEAR is_data.
      is_data-data = '<OBJECT_OVERVIEW>'.
      APPEND is_data TO p_data.
    WHEN OTHERS.
      CLEAR is_data.
      is_data-data = p_action.
      APPEND is_data TO p_data.
  ENDCASE.
ENDFORM.                    " xlmdoc
*&      Form  cssdoc
      text
     -->P_IT_DATA  text
FORM cssdoc  TABLES   p_data.
  REFRESH it_data.
  is_data-data = 'OBJECT'.
  APPEND is_data TO p_data.
  is_data-data = 'TITLE{text-decoration: underline;font: bold; width: 180px; float: left; }'.
  APPEND is_data TO p_data.
  is_data-data = 'DESCRIPTION{margin-left: 2px; width: 150px;float: left;}'.
  APPEND is_data TO p_data.
  is_data-data = 'CLASS'.
  APPEND is_data TO p_data.
  is_data-data = 'SYSTEMMAPPING{background-color: #BBB;margin-left: 2px; border: inset;  width:200px; float: left;padding: 2px;font-size:0.7em; }'.
  APPEND is_data TO p_data.
  is_data-data = 'SYSTEM'.
  APPEND is_data TO p_data.
  is_data-data = 'SOURCESYSTEM'.
  APPEND is_data TO p_data.
  is_data-data = 'TARGETSYSTEM'.
  APPEND is_data TO p_data.
  is_data-data = 'TABLEMAPPING{background-color: #AAA;margin-left: 2px; border: inset;width: 370px;float: left;padding: 2px;font-size:0.7em;  }'.
  APPEND is_data TO p_data.
  is_data-data = 'TABLE'.
  APPEND is_data TO p_data.
  is_data-data = 'SOURCETABLE'.
  APPEND is_data TO p_data.
  is_data-data = 'TARGETTABLE'.
  APPEND is_data TO p_data.
ENDFORM.                    " cssdoc
Michael.

Similar Messages

  • DSD: Transferring Master Data to Handheld

    Hi Folks,
    I'm pretty new to this subject and I have the doubt if its possible to synchronize only master data for testing to the Hand held. We have configured everything (RFCs, Logical Systems, IDOC Configuration, IDOC Message types, etc) and the client is installed correctly and synchronization with MI Server is OK.
    What I'm doing is using transaction /DSD/HH_DRIV to send driver information for example, and transfer this to the DSD Connector. From here what should I do next so this information can be transferred to our hand held.
    We are using MDSD 3.0
    Thanks in advance for your help.
    Regards,
    Gilberto Li
    Edited by: Gilberto Li on Mar 2, 2010 7:02 PM

    Hi Gilberto,
    I am also configuring DSD in IDES.I am bit stuck on the architecture front.
    Configuration guide which I am referring to has the steps to proceed.
    I have configured DSD backend and DSD connector as two logical system.
    Next step is assign client to this logical system.
    Now do we assign client to DSD backend only?
    Or to both DSD backend and DSD connector. Please advise.
    For example I am in CLIENT100
    Do we need to create two client 110 and 120
    And assign 110 client to DSD backend and 120 to DSD Connector.
    Thanks for your help.
    Thanks & Regards,
    Vishwas

  • Transaction data tobe separated from master data&customising in client copy

    HI Guys,
    In my present server i have Transaction data, Master data & Customizing data. Through client copy only Master data & Customizing should be copied in new client. Transaction Data should not be copied to new client. This is not possible through any of the given profiles for copy.
    or can we delete all transaction data in present server?
    Thanks.
    Abhijit..

    Hi Ashok,
    With SAP_CUST i won't get the Master Data to the copied client. It will only provide Customization.
    Thanks,
    Abhijit.

  • About material master data batch input

    hello
        i wrote a batch input for material master data. but it can't work ,i can't use it to create material.hope someone help me!thanks.code is below.
    report z_mat_batchinput no standard page heading
          line-size 255 message-id YB.
           mat batch input
    include bdcrecx1.
    include .
    tables: mara,marm,MARC,MARD,T134,NRIV,T006A,T023,T001W,T001L,
            TVKO,TVTW,T025,TTGR,TLGR,TVKWZ,T006.
    data: DIMID like t006-DIMID.
    data: flag, K, tmp.
    DATA: X TYPE I.
    ************ÉÏÔØÎļþÄÚ±í************************
    data: begin of record occurs 0,
            MATNR(018),        " ÎïÁϺÅ
            MTART(004),        " ÎïÁÏÀàÐÍ
    **generaldata1**
            MAKTX(040),        " ÎïÁÏÃèÊö
           EAKTX(040),        " Ó¢ÎÄÃèÊö
            MEINS(003),        " »ù±¾¼ÆÁ¿µ¥Î»
            MATKL(009),        " ÎïÁÏ×é
            BISMT(018),        " ¾ÉÎïÁϺÅ
           EXTWG(018),        " ÍⲿÎïÁÏ×é
           SPART(002),        " ²¿ÃÅ
            MTPOS_MARA(004),   " ÆÕͨÏîÄ¿Àà±ð×é
            BRGEW(017),        " ëÖØ
            GEWEI(003),        " ÖØÁ¿µ¥Î»
            NTGEW(017),        " ¾»ÖØ
            VOLUM(017),        " Ìå»ý
            VOLEH(003),        " Ìå»ýµ¥Î»
            GROES(032),        " Á¿¸Ù
            MAGRV(004),        " ÎïÁÏ×éµÄ°ü×°Îï
    **generaldata2**
            NORMT(018),        " ¹¤Òµ±ê×¼ÃèÊö
            FERTH(018),        " ÀàÐÍ
            WRKST(048),        " ¹æ¸ñ
    **generaldata1**
           EAN11(018),        " ²úÆ·±íʶÂë
    **generaldata2**
           ZEIAR(003),        " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
            WERKS(004),        " ¹¤³§
            VKORG(004),        " ÏúÊÛ×éÖ¯
            VTWEG(002),        " ·ÖÏúÇþµÀ
    **salesorg 1**
           VRKME(003),        " ÏúÊÛµ¥Î»
           VMREN(006),        " ÏúÊÛµ¥Î»×ª»»Òò×Ó
           VMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
            SPART(002),        " ²úÆ·×é
            DWERK(004),        " ½»»õ¹¤³§
            TAXKM(001),        " ÎïÁÏË°·ÖÀà
    **salesorg 2**
            KONDM(002),        " ÎïÁ϶¨¼Û×é
            KTGRM(002),        " ¿ÆÄ¿ÉèÖÃ×é
           MVGR1(003),                                         " ÎïÁÏ×é 1
           MVGR2(003),                                         " ÎïÁÏ×é 2
            MTPOS(004),        " ÏîÄ¿Àà±ð×é
           VERSG(001),        " ÎïÁÏͳ¼Æ×é
    **ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
            MTVFP(002),        " ¿ÉÓÃÐÔ¼ì²é
            XCHPF(001),        " Åú´Î¹ÜÀí
           YCHPF(001),        " ÅúÁ¿¹ÜÀí
            TRAGR(004),        " ÔËÊä×é
            ladgr(004),        " ×°ÔØ×é
    **pur**
           BSTME(003),        " ¶©µ¥µ¥Î»
           UMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREN(006),        " ¶©µ¥µ¥Î»×ª»»Òò×Ó
           WEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            EKGRP(003),        " ²É¹º×é
          LGORT(004),        " ¿â´æµØ
    **Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
           AUSME(003),        " ·¢»õµ¥Î»
           UMREJ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREF(006),        " ·¢»õµ¥Î»×ª»»Òò×Ó
           XCHPF(001),        " ÅúÁ¿¹ÜÀí
    **MRP 1**
           DISGR(004),        " MRP×é
            DISMM(002),        " MRPÀàÐÍ
           FXHOR(003),        " ¼Æ»®µÄʱ½ì
            DISPO(003),        " MRP¿ØÖÆÕß
            DISLS(002),        " ÅúÁ¿
            MAABC(001),        " ABC±êʶ
           BSTFE(018),        " ¹Ì¶¨ÅúÁ¿´óС
    **MRP 2**
           RESKZ(001),        " »ñÈ¡ÀàÐÍ
            BESKZ(001),        " ²É¹ºÀàÐÍ
           SOBSL(002),        " ÌØÊâ²É¹ºÀà
           LGPRO(004),        " ·¢»õ²Ö´¢µØµã
           RGEKZ(001),        " ·´³å
            PLIFZ(003),        " ¼Æ»®½»»õʱ¼ä
           VEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            DZEIT(008),        "×ÔÖÆÉú²ú
            FHORI(003),        " ¼Æ»®±ß¼ÊÂë
           EISBE(018),        " °²È«¿â´æ
    **MRP 3**
            PERKZ(001),        " ÆÚ¼ä±êʶ
            STRGR(002),        " ²ßÂÔ×é
           VRMOD(001),        " ÏûºÄģʽ
           VINT1(003),        " ÄæÏòÏûºÄÆÚ¼ä
           VINT2(003),        " ÏòÇ°ÏûºÄÆÚ¼ä
            NTVFP(002),        " ¿ÉÓÃÐÔ¼ì²é
    **MRP 4**
           SAUFT(001),        " Öظ´ÖÆÔì±êÖ¾
           SFEPR(004),        " Öظ´Éú²ú²ÎÊýÎļþ
    **¹¤×÷¼Æ»®**
           FEVOR(003),        " Éú²úµ÷¶ÈÔ±
           FRTME(003),        " Éú²úµ¥Î»
           SMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           SMREN(006),        " Éú²úµ¥Î»×ª»»Òò×Ó
           UEETK(001),        " ÎÞÏÞÖƹýÁ¿½»»õ
    **»á¼Æ 1**
            BKLAS(004),        " ÆÀ¹ÀÀà
           BWTTY(001),        " ¹À¼Û·ÖÀà
            VPRSV(001),        " ¼Û¸ñ¿ØÖÆ
            PEINH(006),        " ¼Û¸ñµ¥Î»
            VERPR(015),        " Òƶ¯Æ½¾ù¼Û
            STPRS(015),        " ±ê×¼¼Û
    **»á¼Æ 2**
           BWPRH(014),        " ÉÌÒµ¼Û¸ñ 1
    **³É±¾ 1**
           LOSGR(018),        " ÅúÁ¿³É±¾ºËËã
    **³É±¾ 2**
           ZPLP1(014),        " ¼Æ»®¼Û¸ñ 1
           ZPLD1(010),        " ¼Æ»®ÈÕÆÚ 1
    **qm**
            ART1(8),            "¼ìÑéÀàÐÍ1
            AKTIV1(1),          "ÒѼ¤»î
            QMPUR(1),             "¼¤»î²É¹ºÖÐµÄ QM
            SSQSS(8),          "QM ¿ØÖÆÂë¡¢
           QMATV(8),          "QM¼ìÑéÉèÖÃ
           ART2(8),            "¼ìÑéÀàÐÍ2
           AKTIV2(6),          "ÒѼ¤»î
           ART3(8),            "¼ìÑéÀàÐÍ3
           AKTIV3(6),          "ÒѼ¤»î
          end of record.
    ************ÏÂÔظñʽ/´íÎóÎļþÄÚ±í**************
    data: begin of record1 occurs 0,
            MATNR(018),        " ÎïÁϺÅ
            MTART(008),        " ÎïÁÏÀàÐÍ
    **»ù±¾Êý¾Ý1**
            MAKTX(040),        " ÎïÁÏÃèÊö
           EAKTX(040),        " Ó¢ÎÄÃèÊö
            MEINS(013),        " »ù±¾¼ÆÁ¿µ¥Î»
            MATKL(009),        " ÎïÁÏ×é
            BISMT(018),        " ¾ÉÎïÁϺÅ
           EXTWG(018),        " ÍⲿÎïÁÏ×é
           SPART(002),        " ²¿ÃÅ
            MTPOS_MARA(004),   " ÆÕͨÏîÄ¿Àà±ð×é
            BRGEW(017),        " ëÖØ
            GEWEI(008),        " ÖØÁ¿µ¥Î»
            NTGEW(017),        " ¾»ÖØ
            VOLUM(017),        " Ìå»ý
            VOLEH(008),        " Ìå»ýµ¥Î»
            GROES(032),        " Á¿¸Ù
            MAGRV(014),        " ÎïÁÏ×éµÄ°ü×°Îï
    **»ù±¾Êý¾Ý2**
            NORMT(018),        " ¹¤Òµ±ê×¼ÃèÊö
            FERTH(018),        " ÀàÐÍ
            WRKST(048),        " ¹æ¸ñ
    **»ù±¾Êý¾Ý1**
           EAN11(018),        " ²úÆ·±íʶÂë
    **»ù±¾Êý¾Ý2**
           ZEIAR(003),        " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
            WERKS(004),        " ¹¤³§
            VKORG(008),        " ÏúÊÛ×éÖ¯
            VTWEG(008),        " ·ÖÏúÇþµÀ
    **ÏúÊÛ×éÖ¯ 1**
           VRKME(003),        " ÏúÊÛµ¥Î»
           VMREN(006),        " ÏúÊÛµ¥Î»×ª»»Òò×Ó
           VMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
            SPART(006),        " ²úÆ·×é
            DWERK(008),        " ½»»õ¹¤³§
            TAXKM(010),        " ÎïÁÏË°·ÖÀà
    **ÏúÊÛ×éÖ¯ 2**
            KONDM(010),        " ÎïÁ϶¨¼Û×é
            KTGRM(010),        " ¿ÆÄ¿ÉèÖÃ×é
           MVGR1(003),                                         " ÎïÁÏ×é 1
           MVGR2(003),                                         " ÎïÁÏ×é 2
            MTPOS(010),        " ÏîÄ¿Àà±ð×é
           VERSG(001),        " ÎïÁÏͳ¼Æ×é
    **ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
            MTVFP(010),        " ¿ÉÓÃÐÔ¼ì²é
            XCHPF(008),        " Åú´Î¹ÜÀí
           YCHPF(001),        " ÅúÁ¿¹ÜÀí
            TRAGR(006),        " ÔËÊä×é
            ladgr(006),        " ×°ÔØ×é
    **²É¹º**
           BSTME(003),        " ¶©µ¥µ¥Î»
           UMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREN(006),        " ¶©µ¥µ¥Î»×ª»»Òò×Ó
           WEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            EKGRP(006),        " ²É¹º×é
          LGORT(004),        " ¿â´æµØ
    **Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
           AUSME(003),        " ·¢»õµ¥Î»
           UMREJ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREF(006),        " ·¢»õµ¥Î»×ª»»Òò×Ó
           XCHPF(001),        " ÅúÁ¿¹ÜÀí
    **MRP 1**
           DISGR(004),        " MRP×é
            DISMM(009),        " MRPÀàÐÍ
           FXHOR(003),        " ¼Æ»®µÄʱ½ì
            DISPO(011),        " MRP¿ØÖÆÕß
            DISLS(004),        " ÅúÁ¿
            MAABC(007),        " ABC±êʶ
           BSTFE(018),        " ¹Ì¶¨ÅúÁ¿´óС
    **MRP 2**
           RESKZ(001),        " »ñÈ¡ÀàÐÍ
            BESKZ(008),        " ²É¹ºÀàÐÍ
           SOBSL(002),        " ÌØÊâ²É¹ºÀà
           LGPRO(004),        " ·¢»õ²Ö´¢µØµã
           RGEKZ(001),        " ·´³å
            PLIFZ(012),        " ¼Æ»®½»»õʱ¼ä
           VEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            DZEIT(008),        "×ÔÖÆÉú²ú
            FHORI(010),        " ¼Æ»®±ß¼ÊÂë
           EISBE(018),        " °²È«¿â´æ
    **MRP 3**
            PERKZ(008),        " ÆÚ¼ä±êʶ
            STRGR(006),        " ²ßÂÔ×é
           VRMOD(001),        " ÏûºÄģʽ
           VINT1(003),        " ÄæÏòÏûºÄÆÚ¼ä
           VINT2(003),        " ÏòÇ°ÏûºÄÆÚ¼ä
            NTVFP(010),        " ¿ÉÓÃÐÔ¼ì²é
    **MRP 4**
           SAUFT(001),        " Öظ´ÖÆÔì±êÖ¾
           SFEPR(004),        " Öظ´Éú²ú²ÎÊýÎļþ
    **¹¤×÷¼Æ»®**
           FEVOR(003),        " Éú²úµ÷¶ÈÔ±
           FRTME(003),        " Éú²úµ¥Î»
           SMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           SMREN(006),        " Éú²úµ¥Î»×ª»»Òò×Ó
           UEETK(001),        " ÎÞÏÞÖƹýÁ¿½»»õ
    **»á¼Æ 1**
            BKLAS(006),        " ÆÀ¹ÀÀà
           BWTTY(001),        " ¹À¼Û·ÖÀà
            VPRSV(008),        " ¼Û¸ñ¿ØÖÆ
            PEINH(008),        " ¼Û¸ñµ¥Î»
            VERPR(015),        " Òƶ¯Æ½¾ù¼Û
            STPRS(015),        " ±ê×¼¼Û
    **»á¼Æ 2**
           BWPRH(014),        " ÉÌÒµ¼Û¸ñ 1
    **³É±¾ 1**
           LOSGR(018),        " ÅúÁ¿³É±¾ºËËã
    **³É±¾ 2**
           ZPLP1(014),        " ¼Æ»®¼Û¸ñ 1
           ZPLD1(010),        " ¼Æ»®ÈÕÆÚ 1
    **ÖÊÁ¿¹ÜÀí**
            ART1(8),            "¼ìÑéÀàÐÍ1
            AKTIV1(6),          "ÒѼ¤»î
            QMPUR(010),             "¼¤»î²É¹ºÖÐµÄ QM
            SSQSS(8),          "QM ¿ØÖÆÂë¡¢
           QMATV(8),          "QM¼ìÑéÉèÖÃ
           ART2(8),            "¼ìÑéÀàÐÍ2
           AKTIV2(6),          "ÒѼ¤»î
           ART3(8),            "¼ìÑéÀàÐÍ3
           AKTIV3(6),          "ÒѼ¤»î
          end of record1.
    selection-screen begin of block 0 with frame title text-001.
    selection-screen begin of line .
    selection-screen position 1.
    parameters: test like rkec1-test .
    selection-screen
      comment 3(4) text-004 for field test.
    selection-screen position 26.
    parameters: oldfile like rlgrap-filename.
    selection-screen
      comment 9(17) text-003 for field oldfile.
    selection-screen: end of line.
    selection-screen begin of line.
    selection-screen position 1.
    parameters: dnldflag like rkec1-test default 'X'.
    selection-screen
      comment 3(4) text-005 for field dnldflag.
    selection-screen position 26.
    parameters: outfile like rlgrap-filename .
    selection-screen
      comment 9(17) text-006 for field outfile.
    selection-screen: end of line.
    selection-screen end of block 0 .
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-002.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: GEN1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(9) text-007 for field GEN1.
    selection-screen position 26.
    PARAMETERS: GEN2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(9) text-008 for field GEN2.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: SALORG1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(21) text-009 for field SALORG1.
    selection-screen position 26.
    PARAMETERS: SALORG2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(21) text-010 for field SALORG2.
    selection-screen position 51.
    PARAMETERS: SALPLANT LIKE RKEC1-TEST.
    selection-screen
      comment 53(19) text-011 for field SALPLANT.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: PURCHASE LIKE RKEC1-TEST.
    selection-screen
      comment 3(21) text-012 for field PURCHASE.
    selection-screen position 26.
    PARAMETERS: PLTSTRG1 LIKE RKEC1-TEST.
    selection-screen
      comment 28(21) text-018 for field PLTSTRG1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: MRP1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(4) text-013 for field MRP1.
    selection-screen position 13.
    PARAMETERS: MRP2 LIKE RKEC1-TEST.
    selection-screen
      comment 15(4) text-014 for field MRP2.
    selection-screen position 26.
    PARAMETERS: MRP3 LIKE RKEC1-TEST.
    selection-screen
      comment 28(4) text-015 for field MRP3.
    selection-screen position 37.
    PARAMETERS: MRP4 LIKE RKEC1-TEST.
    selection-screen
      comment 39(4) text-016 for field MRP4.
    selection-screen position 51.
    PARAMETERS: PLANTSTR LIKE RKEC1-TEST.
    selection-screen
      comment 53(8) text-017 for field PLANTSTR.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: QAU LIKE RKEC1-TEST.
    selection-screen
      comment 3(8) text-023 for field QAU.
    selection-screen position 13.
    PARAMETERS: ACC1 LIKE RKEC1-TEST.
    selection-screen
      comment 15(5) text-019 for field ACC1.
    selection-screen position 26.
    PARAMETERS: ACC2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(5) text-020 for field ACC2.
    selection-screen position 37.
    PARAMETERS: COR1 LIKE RKEC1-TEST.
    selection-screen
      comment 39(5) text-021 for field COR1.
    selection-screen position 51.
    PARAMETERS: COR2 LIKE RKEC1-TEST.
    selection-screen
      comment 53(5) text-022 for field COR2.
    selection-screen end of line.
    SELECTION-SCREEN END OF BLOCK 1.
    at selection-screen on value-request for oldfile.
      call function 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = ',Îı¾Îļþ(ÖƱí·û·Ö¸ô),*.txt'
                static    = 'X'
           CHANGING
                file_name = oldfile.
    at selection-screen on value-request for outfile.
      call function 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = ',Microsoft Excel¹¤×÷²¾,*.xls'
                static    = 'X'
           CHANGING
                file_name = outfile.
    initialization.
    ******µÃµ½ÎļþĿ¼*******
      call function 'WS_QUERY'
           EXPORTING
                query  = 'CD'
           IMPORTING
                return = outfile.
      if sy-subrc <> 0.
        message e005 with outfile.
      endif.
      oldfile = outfile.
      concatenate outfile 'mat_fat' into outfile.
    *ÅúÊäÈëĬÈÏÃû³Æ
      group = 'MATBATCHIN'.
    start-of-selection.
      if dnldflag eq 'X' and not ( outfile is initial ).
        perform download_data.
        stop.
      endif.
      perform upload_data.
      if test = ' '.
    *ÊÓͼ²ÎÊý¼ì²é
        IF ( GEN1 NE 'X' AND GEN2 NE 'X' AND SALORG1 NE 'X'
           AND SALORG2 NE 'X' AND SALPLANT NE 'X'
           AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
           AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
               AND MRP4 NE 'X' AND PLANTSTR NE 'X'
           AND ACC1 NE 'X' AND ACC2 NE 'X'
           AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
          MESSAGE E000 WITH 'ÇëÑ¡ÔñÐèά»¤ÊÓͼ'.
        ENDIF.
        perform open_group.
        SORT RECORD BY WERKS MATNR.
        loop at record.
          perform bdc_fill.
          perform bdc_transaction using 'MM01'.
          clear: bdcdata.
          refresh: bdcdata.
        endloop.
        perform close_group.
      else.
        perform file_check.
      endif.
    end-of-selection.
    *&      Form  UPLOAD_DATA
          ÉÏÔØÅúÊäÈëÊý¾Ý
    -->  p1        text
    <--  p2        text
    form upload_data.
      call function 'WS_UPLOAD'
           EXPORTING
                filename                = oldfile
                filetype                = 'DAT'
           TABLES
                data_tab                = record
           EXCEPTIONS
                conversion_error        = 1
                file_open_error         = 2
                file_read_error         = 3
                invalid_table_width     = 4
                invalid_type            = 5
                no_batch                = 6
                unknown_error           = 7
                gui_refuse_filetransfer = 8
                customer_error          = 9
                others                  = 10.
      if sy-subrc <> 0.
        message E000 with 'ÇëÊäÈëÉÏÔØÎļþ'.
      endif.
      read table record with key MATNR = '**'.
      if sy-tabix lt 1.
        message E000 with 'ÉÏÔØÎļþÎļþÍ·ÓëÊý¾ÝÖ®¼äÎÞ**'.
      endif.
      delete record from 1 to sy-tabix.
    endform.                               " UPLOAD_DATA
    *&      Form  BDC_FILL
          ÅúÊäÈë
    -->  p1        text
    <--  p2        text
    form bdc_fill.
      data: N type I,
            M type I,
            S_MATNR(018),
            test(1) type N.
      PERFORM BDC_FILL_INITALSCR.    "³õʼÆÁÄ»
      tmp = '0'.
      condense record-matnr no-gaps.
      test =  record-matnr(1).
      if test <> ''.
        M = STRLEN( RECORD-MATNR ).
        M = 18 - M.
        DO M TIMES.
          CONCATENATE '0' RECORD-MATNR INTO S_MATNR.
          RECORD-MATNR = S_MATNR.
        ENDDO.
      endif.
    **ÅжÏÎïÁÏ»ù±¾ÊÓͼÊÇ·ñÒѾ±»Î¬»¤¹ý**
      SELECT SINGLE * FROM MARA WHERE MATNR = RECORD-MATNR.
      IF SY-SUBRC NE 0.
        K = '0'.
      Else.
        condense MARA-PSTAT no-gaps.
        N = strlen( mara-pstat ).
        M = 0.
        record-meins = mara-meins.
        do N times.
          K = MARA-PSTAT+M.
          IF K = 'K'.
            EXIT.
          ENDIF.
          M = M + 1.
        enddo.
      ENDIF.
      IF ( ( GEN1 EQ 'X' OR GEN2 EQ 'X' ) AND SALORG1 NE 'X'
         AND SALORG2 NE 'X' AND SALPLANT NE 'X'
         AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
         AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
             AND MRP4 NE 'X' AND PLANTSTR NE 'X'
         AND ACC1 NE 'X' AND ACC2 NE 'X'
         AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
        IF K EQ 'K'.
          perform bdc_dynpro      using 'SAPLMGMM' '0070'.
          perform bdc_field       using 'BDC_CURSOR'
                                        'MSICHTAUSW-DYTXT(15)'.
          perform bdc_field       using 'BDC_OKCODE'
                                        '/N'.
        ELSE.
          PERFORM BDC_FILL_CHOICEVIEW.   "Ñ¡ÔñÊÓͼ
        ENDIF.
      ELSE.
        PERFORM BDC_FILL_CHOICEVIEW.   "Ñ¡ÔñÊÓͼ
        PERFORM BDC_FILL_ORGVIEW.      "×éÖ¯¼¶±ð
      ENDIF.
      TRANSLATE record-MEINS TO UPPER CASE.
    TRANSLATE record-BSTME TO UPPER CASE.
    TRANSLATE record-VRKME TO UPPER CASE.
    TRANSLATE record-FRTME TO UPPER CASE.
    TRANSLATE record-AUSME TO UPPER CASE.
      if gen1 eq 'X'.
        IF K NE 'K'.
          PERFORM GENERALDATA1.
        ENDIF.
      endif.
      if gen2 eq 'X'.
        IF K NE 'K'.
          perform generaldata2.
        ENDIF.
      endif.
      if salorg1 eq 'X'.
        perform salorg1.
      endif.
      if salorg2 eq 'X'.
        perform salorg2.
      endif.
      if salplant eq 'X'.
        perform salplant.
      endif.
      if purchase eq 'X'.
        perform purchasedata.
      endif.
      if mrp1 eq 'X'.
        perform MRP1.
      endif.
      if mrp2 eq 'X'.
        perform MRP2.
      endif.
      if mrp3 eq 'X'.
        perform MRP3.
      endif.
      if mrp4 eq 'X'.
        perform MRP4.
      endif.
      if PLANTSTR eq 'X'.
        perform PLANTSTR.
      endif.
      if PLTSTRG1 eq 'X'.
        perform PLTSTRG1.
      endif.
      if qau eq 'X'.
        perform qualitydata.
      endif.
      if ACC1 eq 'X'.
        perform ACC1DATA.
      endif.
      if ACC2 eq 'X'.
        perform ACC2DATA.
      endif.
      if COR1 eq 'X'.
        perform COR1DATA.
      endif.
      if COR2 eq 'X'.
        perform COR2DATA.
      endif.
      perform BDC_SAVE.
    endform.                               " BDC_FILL
    *&      Form  GENERALDATA1
          Ò»°ãÊý¾Ý 1
    -->  p1        text
    <--  p2        text
    form generaldata1.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    "'=ZU01'.
                                    '/00'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.       " ÎïÁÏÃèÊö
      perform bdc_field       using 'MARA-MEINS'
                                    record-MEINS.       " »ù±¾¼ÆÁ¿µ¥Î»
      perform bdc_field       using 'MARA-MATKL'
                                    record-MATKL.       " ÎïÁÏ×é
      perform bdc_field       using 'MARA-BISMT'
                                    record-BISMT.
    perform bdc_field       using 'MARA-EXTWG'
                                   record-EXTWG.
    perform bdc_field       using 'MARA-SPART'
                                   record-SPART.
      perform bdc_field       using 'MARA-MTPOS_MARA'
                                    record-MTPOS_MARA.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-GROES'.
      perform bdc_field       using 'MARA-BRGEW'
                                    record-BRGEW.
      if record-gewei = '' and ( salorg1 = 'X' or salorg2 = 'X'
                           or salplant = 'X' ).
        perform bdc_field       using 'MARA-GEWEI'
                                      'KG'.              " ÖØÁ¿µ¥Î»
      else.
        perform bdc_field       using 'MARA-GEWEI'
                                      record-GEWEI.      " ÖØÁ¿µ¥Î»
      endif.
      perform bdc_field       using 'MARA-NTGEW'
                                    record-NTGEW.
      perform bdc_field       using 'MARA-VOLUM'
                                    record-VOLUM.
      perform bdc_field       using 'MARA-VOLEH'
                                    record-VOLEH.
      perform bdc_field       using 'MARA-GROES'
                                    record-GROES.
    condense record-EAN11 no-gaps.
    if record-EAN11 <> ''.
       perform bdc_field       using 'MARA-EAN11'
                                     record-EAN11.
       perform bdc_field       using 'MARA-NUMTP'
                                     'HT'.
    endif.
      perform bdc_field       using 'MARA-MAGRV'
                                    record-MAGRV.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=ZU02'.
    condense record-EAKTX no-gaps.
    if record-EAKTX <> ''.
       perform bdc_field       using 'SKTEXT-SPRAS(2)'
                                     'EN'.
       perform bdc_field       using 'SKTEXT-MAKTX(2)'
                                     record-EAKTX.
    endif.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=MAIN'.
    if record-meins <> 'PAK'.
       perform bdc_field       using 'SMEINH-UMREN(05)'
                                     '1'.
       perform bdc_field       using 'SMEINH-MEINH(05)'
                                     'PAK'.
       perform bdc_field       using 'SMEINH-UMREZ(05)'
                                     '1'.
    endif.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    endform.                               " GENERALDATA
    *&      Form  generaldata2
          Ò»°ãÊý¾Ý 2
    -->  p1        text
    <--  p2        text
    FORM generaldata2.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-NORMT'.
      condense record-ferth no-gaps.
      if record-ferth <> ''.
        perform bdc_field       using 'MARA-FERTH'
                                      record-FERTH.
      endif.
      perform bdc_field       using 'MARA-NORMT'
                                    record-NORMT.
      perform bdc_field       using 'MARA-WRKST'
                                    record-WRKST.
    perform bdc_field       using 'MARA-ZEIAR'
                                   record-ZEIAR.
    ENDFORM.                    " generaldata2
    *&      Form  salorg1
          ÏúÊÛ×éÖ¯ 1
    -->  p1        text
    <--  p2        text
    FORM salorg1.
      condense RECORD-SPART no-gaps.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'MAKT-MAKTX'
                                    RECORD-MAKTX.     " ÎïÁÏÃèÊö
      IF K NE 'K'.
        perform bdc_field       using 'MARA-MEINS'
                                      record-MEINS.   " »ù±¾¼ÆÁ¿µ¥Î»
      ENDIF.
      perform bdc_field       using 'MARA-SPART'
                                    record-SPART.     " ²úÆ·×é
      perform bdc_field       using 'MVKE-DWERK'
                                    record-DWERK.     " ½»»õ¹¤³§
      PERFORM BDC_FIELD       USING 'MG03STEUER-TAXKM(01)'
                                    RECORD-TAXKM.     " ÎïÁÏË°·ÖÀà
    condense RECORD-VRKME no-gaps.
    IF RECORD-MEINS <> RECORD-VRKME and RECORD-VRKME <> ''.
       perform bdc_field       using 'MVKE-VRKME'
                                     record-VRKME.     " ÏúÊÛµ¥Î»
       select single * from MARM where matnr = record-matnr
                     and meinh = record-vrkme.
       if SY-SUBRC NE 0.
         tmp = 'W'.
         select single * from t006 where MSEHI = record-meins.
         if t006-DIMID = 'AAAADL'.
           DIMID = ''.
         else.
           DIMID = t006-DIMID.
         endif.
         select single * from t006 where MSEHI = record-vrkme.
         if dimid <> t006-DIMID.
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0510'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '=ENTR'.
           perform bdc_field       using 'RMMZU-UMREN'
                                         record-VMREN.  "ÏúÊÛµ¥Î»×ª»»Òò×Ó
           perform bdc_field       using 'RMMZU-UMREZ'
                                         record-VMREZ.  "»ù±¾µ¥Î»×ª»»Òò×Ó
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '/00'.
         endif.
       endif.
    ENDIF.
      perform bdc_dynpro      using 'SAPLMGMM' '4200'.
      perform bdc_field       using 'BDC_OKCODE'      " µ÷ÓÃË°Àà×ÓÆÁÄ»
                                    '/00'.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'      " ·µ»ØÏúÊÛ×éÖ¯ 1ÆÁÄ»
                                    '/00'.
    ENDFORM.                                                    " salorg1
    *&      Form  salorg2
          ÏúÊÛ×éÖ¯ 2
    -->  p1        text
    <--  p2        text
    FORM salorg2.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'MVKE-KTGRM'.
    PERFORM BDC_FIELD       USING 'MVKE-VERSG'
                                   RECORD-VERSG.     " ÎïÁÏͳ¼Æ×é
      PERFORM BDC_FIELD       USING 'MVKE-KTGRM'
                                    RECORD-KTGRM.     " ¿ÆÄ¿ÉèÖÃ×é
      PERFORM BDC_FIELD       USING 'MVKE-KONDM'
                                    RECORD-KONDM.     " ÎïÁ϶¨¼Û×é
      perform bdc_field       using 'MVKE-MTPOS'
                                    RECORD-MTPOS.     " ÏîÄ¿Àà±ð×é
    PERFORM BDC_FIELD       USING 'MVKE-MVGR1'
                                   RECORD-MVGR1.               " ÎïÁÏ×é 1
    PERFORM BDC_FIELD       USING 'MVKE-MVGR2'
                                   RECORD-MVGR2.               " ÎïÁÏ×é 2
    ENDFORM.                                                    " salorg2
    *&      Form  salplant
          ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý
    -->  p1        text
    <--  p2        text
    FORM salplant.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      select single * from marc where matnr = record-matnr
                                  and werks = record-werks.
      if SY-SUBRC NE 0  OR  MARC-MTVFP = ''.
        PERFORM BDC_FIELD       USING 'MARC-MTVFP'
                                      RECORD-MTVFP.     " ¿ÉÓÃÐÔ¼ì²é
      endif.
      PERFORM BDC_FIELD       USING 'MARA-TRAGR'
                                      RECORD-TRAGR.   " ÔËÊä×é
      PERFORM BDC_FIELD       USING 'MARC-LADGR'
                                    RECORD-LADGR.     " ×°ÔØ×é
      perform bdc_field       using 'MARC-XCHPF'
                                    record-XCHPF.     " ÅúÁ¿¹ÜÀí
    ENDFORM.                    " salplant
    *&      Form  PURCHASEDATA
          ²É¹ºÊý¾Ý
    -->  p1        text
    <--  p2        text
    form purchasedata.
      perform bdc_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARC-WEBAZ'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.
      IF K NE 'K'.
        perform bdc_field       using 'MARA-MEINS'
                                      record-MEINS.     " »ù±¾¼ÆÁ¿µ¥Î»
        perform bdc_field       using 'MARA-MATKL'
                                      record-MATKL.     " ÎïÁÏ×é
      ENDIF.
    condense RECORD-BSTME no-gaps.
    IF RECORD-MEINS <> RECORD-BSTME and RECORD-BSTME <> ''.
       perform bdc_field       using 'MARA-BSTME'
                                     record-BSTME.     " ¶©µ¥µ¥Î»
       select single * from MARM where matnr = record-matnr
                     and meinh = record-bstme.
       if SY-SUBRC NE 0 and
             ( record-vrkme <> record-bstme or tmp <> 'W' ).
         tmp = 'W'.
         select single * from t006 where MSEHI = record-meins.
         if t006-DIMID = 'AAAADL'.
           DIMID = ''.
         else.
           DIMID = t006-DIMID.
         endif.
         select single * from t006 where MSEHI = record-bstme.
         if dimid <> t006-DIMID.
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0510'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '=ENTR'.
           perform bdc_field       using 'RMMZU-UMREN'
                                         record-UMREN.  "¶©µ¥µ¥Î»×ª»»Òò×Ó
           perform bdc_field       using 'RMMZU-UMREZ'
                                         record-UMREZ.  "»ù±¾µ¥Î»×ª»»Òò×Ó
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '/00'.
         endif.
       endif.
    ENDIF.
      perform bdc_field       using 'MARC-EKGRP'
                                    record-EKGRP.       " ²É¹º×é
    perform bdc_field       using 'MARC-WEBAZ'
                                   record-WEBAZ.       " ÊÕ»õ´¦Àíʱ¼ä
    endform.                               " PURCHASEDATA
    *&      Form  MRP1
          text
    -->  p1        text
    <--  p2        text
    FORM MRP1.
      perform bdc_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   record-MAKTX.       " ÎïÁÏÃèÊö
    IF K NE 'K'.
       perform bdc_field       using 'MARA-MEINS'
                                     record-MEINS.     " »ù±¾µ¥Î»
    ENDIF.
    perform bdc_field       using 'MARC-DISGR'
                                   record-DISGR.       " MRP×é
      perform bdc_field       using 'MARC-MAABC'
                                    record-MAABC.       " ABC±êʶ
      perform bdc_field       using 'MARC-DISMM'
                                    record-DISMM.       " MRPÀàÐÍ
    perform bdc_field       using 'MARC-FXHOR'
                                   record-FXHOR.       " ¼Æ»®µÄʱ½ì
      perform bdc_field       using 'MARC-DISPO'
                                    record-DISPO.       " MRP¿ØÖÆÕß
      perform bdc_field       using 'MARC-DISLS'
                                    record-DISLS.       " ÅúÁ¿
    perform bdc_field       using 'MARC-BSTFE'
                   

    Here is a sample program which creates a material with the bare minmal fields,  this will get you started.
    report zrich_0003 .
    data: headdata type bapimathead.
    data: clientdata type bapi_mara.
    data: clientdatax type bapi_marax.
    data: descdata type table of BAPI_MAKT with header line.
    data: return type  bapiret2 .
    data: returnm type table of bapi_matreturn2 with header line.
    data: xmara type mara.
    parameters: p_matnr type mara-matnr.
    headdata-material        = p_matnr.
    headdata-ind_sector      = 'M'.
    headdata-matl_type       = 'FERT'.
    headdata-basic_view = 'X'.
    clientdata-BASE_UOM   = 'EA'.
    clientdatax-BASE_UOM   = 'X'.
    clientdata-old_mat_no = 'Old Material'.
    clientdatax-old_mat_no = 'X'.
    clientdata-division = '00'.
    clientdatax-division = 'X'.
    descdata-LANGU = sy-langu.
    descdata-MATL_DESC = 'This is the description'.
    append descdata.
    call function 'BAPI_MATERIAL_SAVEDATA'
      exporting
        headdata                   = headdata
        clientdata                 = clientdata
        clientdatax                = clientdatax
    *   PLANTDATA                  =
    *   PLANTDATAX                 =
    *   FORECASTPARAMETERS         =
    *   FORECASTPARAMETERSX        =
    *   PLANNINGDATA               =
    *   PLANNINGDATAX              =
    *   STORAGELOCATIONDATA        =
    *   STORAGELOCATIONDATAX       =
    *   VALUATIONDATA              =
    *   VALUATIONDATAX             =
    *   WAREHOUSENUMBERDATA        =
    *   WAREHOUSENUMBERDATAX       =
    *   SALESDATA                  =
    *   SALESDATAX                 =
    *   STORAGETYPEDATA            =
    *   STORAGETYPEDATAX           =
    importing
       return                     = return
      tables
        MATERIALDESCRIPTION        = descdata
    *   UNITSOFMEASURE             =
    *   UNITSOFMEASUREX            =
    *   INTERNATIONALARTNOS        =
    *   MATERIALLONGTEXT           =
    *   TAXCLASSIFICATIONS         =
        returnmessages             = returnm
    *   PRTDATA                    =
    *   PRTDATAX                   =
    *   EXTENSIONIN                =
    *   EXTENSIONINX               =
    check sy-subrc  = 0.
    Regards,
    Rich Heilman

  • Vendor Master Data Transfer Between the Clients

    Hello Everyone,
    I want to transfer Vendor master data between the clients, can any one help me in this Please?
    I don't want to use LSMW, Is there any other method by which i can copy the vendor between the clients or i have to do it manually?
    Please Help ASAP
    Thanks
    M

    Hi,
    You have to do necessary setting for ALE and IDOC will get generated and data will get transfer based on the Program Schedule in Bacground.
    You can schedule program in bacground as per your requirement of IDOC transfer and data generation from One Client to other. [i.e. end of the day, Hourly, monthly etc.]
    Regards,
    Manish

  • QM master Data copy from one client to another client

    Hi QM guru...
    Kindly suggest me how i will copy all  qm master data  from one client to another client
    QM master Data like....Catlogs. MIC inspection method. sampling...etc
    Kindly suggest me how i will copy all master data
    Thanx
    Regards
    Akil

    Dear Akil,
    I think that LSMW can be of help in this case.
    Otherwise, please check with your ABAPer whether any BDC is there for mass uploading of master data.
    Regards,
    Kaushik

  • Client Copy "only" Master data

    Hi,
    How can i copy only master data from a client ?
    Thank's

    Hello Eduardo,
    Client copy of master data alone maynot possible. I mean even if you use SAP_APPL even then transactional data will also get migrated. So I would suggest of sending the data through ALE (idocs).
    We do it on large scale regularily.
    But still please wait for opinion from others. May be they might have a better solution.
    Regards.
    Ruchit Khushu.

  • Client copy customizing data + master data

    while i am performing client copy using SAP_UCUS,SAP_UCSV i used these two profiles but i am not getting  master data .Please help me out in this friends.

    Hi Sridhar,
    SAP_UCUS is the profile  which comes with client specific
    customizing including auth.profile,the application data is
    deleted and user data is retained.
    SAP_CUSV is SAP_CUST with variants.
    Go through the forum posts you may get more information....Also check the
    existence of user master data in your client.Go through the [post|Client Copy for only SAP_CUST erasing master data of target client; .It might help you.
    Regards,
    Manjula.U

  • Master Data Distribution !

    Hi!
       I want to know the purpose of master data distribution for the following between the vendor & the customer.
       1. Material Master
       2. Vendor Master & Customer Master.
      Whats the purpose of linking our system with our vendor or customer etc with <b>regard to master data</b>
      Pls explain in detail.
      Thanks
      Rahul.

    Hi Rahul,
    We dont do master data distribution with customer system or vendor system.
    Master data distribution is done between distributed systems of the same organization using ALE configuration. So we dont link to customer or vendor systems for transfering master data but for transfering transactional data like purchase orders or sales orders etc.
    Master Data Distribution
    Rather than distributing the complete master data information, views of the master data can be distributed (for example, material sales data, material purchase data). Each view of the master data is stored in a separate message type.
    Users can specify which data elements in a master record are to be distributed.
    Various distribution strategies are supported:
    ·        Cross-system master data can be maintained centrally and then distributed. The final values are assigned locally.
    ·        A view of the master data can be maintained locally. In this case there is always one maintenance system for each view. After the master data has been maintained it is transferred to a central SAP system and distributed from there.
    Types of Distribution
    ·        Active distribution (PUSH)
    If the master data is changed (for example, new data, changes or deletions), a master data IDoc is created in the original system and is distributed by class as specified in the distribution model.
    ·        Requests (PULL)
    A request occurs when a client system needs information about master data held in the system. You can select specific information about the master data, for example, the plant data for a material.
    If you want to be notified of all subsequent changes to the master data, this has to be set up “manually” between the two systems. It is not yet possible for this to be done automatically in the distribution mechanism in the original system.
    Transferring the Master Data
    A distinction is made between transferring the entire master data and transferring only changes to the master data.
    If the entire master data is transferred, a master IDoc is created for the object to be distributed in response to a direct request from a system. Only the data that was actually requested is read and then sent. The customer specifies the size of the object to be distributed in a request report.
    If only changes are transferred, the master IDoc is created based on the logged changes.
    Reward points for the useful answers,
    Aleem.

  • Data (Master Data Changes and Transaction Data) from SAP BW to SAP BPC 5.1

    Hi guys
    I have seen posts on this forum describing data transfers from SAP R/3 to SAP BPC. I assume the procedure for data transfers from SAP BW to SAP BPC 5.1 should be the same i.e. using SSIS packages.
    However I have some unique requirements -
    1. DATA AT DIFFERENT AGGREGATED LEVELS - I need data from SAP BW at different levels - Some data comes at Product level while other at Customer level and some at Project Level. The current procedure takes BW queries output in excel sheets (6 files) and then use the data manager package to load the data in SAP BPC 5.1 using appropriate transformation and conversion files. This procedure is highly manual and I am looking at using SSIS package to do this. However, because of having data at different levels, it becomes a little tricky. How can we achieve this using SSIS?
    2. UPDATING MASTER DATA - I need to update the master data (dimension members) in SAP BPC 5.1 at the start of every month. The current procedure compares (in MS ACCESS) the data from the queries mentioned in 1 to the dimension members in SAP BPC 5.1 and spits a file with the new entries which needs to be manually updated in the appropriate dimensions using Admin Console. I am looking at automating this task. I cannot just replace all the contents of a dimension with the members coming from SAP BW since the dimension members contains some dummy members which are used for planning.
    3. HIERARCHY CHANGES - What is the best way to capture the hierarchy changes in SAP BW into SAP BPC 5.1?
    Please advise.
    Thanks,
    Ameya Kulkarni

    Hi Ameya,
    how did you solve the described problems? Can you give some hints about uploading master data and updating the hierarchy?
    BR, André

  • PA30, attaching documents through the employee personal master dat

    Dear freinds,
    We are attaching documents through the employee personal master data
    PA30, Our client wants to know where exactly these attachments are
    getting saved; Our SAP environment is ECC6.0 on AIX 5.3. so i exactly would like to know what is the exact path where these documents are getting saved on AIX machine.
    I would appreciate if you can tell us where exactly these documents are
    getting saved at OS level, any particular file system you think,
    because I probed in but couldnu2019t find where exactly there are on the
    OS..
    Regards
    ayush

    hello,
    SAP generally recommends that you store employee documents with a bar code. You can find the documentation to 'Storage Within Personnel Administration' using the following path:
    => Help => SAP Library => Human Resources => Personnel Management (PA)=> Personnel Administration (PA-PA) => Storage Within Personnel Administration (PA-PA)
    In the SAP Standard it is not possible to tie original documents to specific personnel numbers in the PA30 transaction. The only exceptions are two specific scenarios where you can tie original documents in the PA30 transaction:
    1. late storing with bar code
    2. late storing without bar code
    During both scenarios you start out in the Trx PA30. If the bar code entry is deactivated the actual key data will have to be transferred to the document in any case, otherwise you will be asked to enter a barcode again. Therefore the document would be transferred to the scanning location and then assigned to a specific business object.
    Unfortunately it is NOT possible to upload a document directly into archive in the PA30 any other way.
    Let me emphasize once more that PA30 can not be used for storing infotype specific documents. Via the special scenarios mentioned already by my colleague you are able to assign documents to the specific infotypes but the storing has to be completed outside of PA30.
    Using the option Extras -> Assign facsimile in PA30 will be interpreted by the system as start for late scanning with barcode thus the error message.
    Hope this help
    Sarah

  • Master Data & Data Migration in PS

    MODERATOR:  no emails please.  message LOCKED.
    Hi All,
    Can you please brief me about the Master data in PS.
    Also how to move the data from legacy to PS.My client has only excel sheets pls advice.
    Muzamil

    The main master data in PS are specified earlier.
    YOu can use BDC upload program which can be developed based on the Projecst that you want to define- Bu you need help from ABAP.
    Like earlier suggested you can use LSMW tool to upload the data. You need to go into the tcode LSMW and create Project and follow the steps
    1. TCode : LSMW.
    2. Enter Project name, sub project name and object name.
        Execute.
    3. Maintain object attributes.
        Execute
        select Batch Input recording 
        goto->Recording overview
        create
        recording name.
        enter transaction code.
        start recording
        do recording as per ur choice.
        save + back.
        enter recording name in lsmw screen.
        save + back
    Now there will be 14 steps.
    2. MAINTAIN SOURCE STRUCTURES.
        Here you have  to enter the name of internal table.
        display change
        create 
        save + back
    3. MAINTAIN SOURCE FIELDS.
        display change
        select structure
        source_fields->copy fields.
        a dialogue window will come .
        select -> from data file
        apply source fields
        enter No. of fields 
        length of fields
        attach file
        save + back
    4. MAINTAIN STRUCTURE RELATIONS
        display change
        save + back
    5. MAINTAN FIELD MAPPING & CONVERSION RULE
        display change
        click on source field, select exact field from structue
    and enter
        repeat these steps for all fields.
        save+back
    6. MAINTAIN FIXED VALUES, TRANSACTION, USER DEFINED
        execute 
        save + back
    7. SPECIFY FILES.
        display change
        click on legacy data
        attah flat file
        give description
        select tabulatore 
        enter
        save + back
    8. ASSIGN FILE 
        execute 
        display  change
        save + back
    9. IMPORT DATA.
        execute 
        display  change
        save + back
    10. DISPLAY IMPORTED DATA
          enter ok, it willl show records only.
          back
    11. CONVERT DATA
          execute 
          display  change
          save + back
    12. DISPLAY CONVERTED DATA
          execute 
          display  change
          save + back
    13. CREATE BATCH INPUT SESSION
          tick keep batch input folder 
          F8
          back
    14. RUN BATCH INPUT SESSION.
          sm35 will come
          Object name will be shown here 
          select object & process

  • BI-IP WEB characteristic without master data

    Hello!
    In Bex ready for input query i can use characteristic without master data and then i can insert new values in characteristic key (maintain this characteristic from ready for input query). But when i try use this feature in WEB application i get error messsage about incorrect master data validation. Do you have any idea  how use this feature in WEB?
    Thanks

    Hi,
    please be aware that this is called "Master data planning". Master data plannig is not supported in BI-IP although it may work in some cases. As far as I remember somebody posted how this could be done in the Web recently. I remember he used a class to achieve it. I have not tested the approach, but you should find the thread in the forum. Nevertheless you should try to find a "better" approach for generating new master data.
    See [Data entry of Character values;
    Regards
    Matthias Nutt
    SAP Consulting Switzerland

  • What are the settings master data and transaction data from r/3 to in APO.

    Hi all,
    Can u suggest me ,I need to conform in apo what are the setting when transfering master data and transaction data from r/3 to APO.
    frm
    babu

    Hi
    The data get transfered from R3 to APO via CIF which is SAP standard.
    Please find enclosed herewith the link which will provide you detail information regarding it.
    http://help.sap.com/saphelp_scm41/helpdata/en/9b/954d3baf755b67e10000000a114084/frameset.htm
    Please let us know if it helps you. Please also let us know if you have any more specific question.
    Thanks
    Amol

  • Master Data and Transaction Data For DB Connect extracted Data...

    Dear Experts,
    I have been working on SAP NetWeaver BW 7.3 and for the first time I have extracted data from Oracle DBMS by using DB Connect. I have successfully extracted data of a View namely Sales_View into BW by creating a DataSource. This View has about 100 fields and I have been told that this view consists of Master Data and Transaction Data too. For my further reporting needs say building a Dashboard or InfoSpace I have to design a DSO and InfoCube for this DataSource. I'm bit confused about the Master Data and Transaction Data of this DataSource.
    1. Should I create all custom InfoObject against all fields of DataSource for DSO and InfoCube design?
    2. Do I need to create and load the Master Data for all InfoObjects or I need to create or load the Master Data for only those InfoOjects which will be   
         used for drill down or reporting in Dashboard or InfoSpace?
    3. Do I need to load the Master Data manually by creating Flat Files and using these files for Master Data loading for required objects?
    4. How should I approach the designing of DSO and InfoCube?
    I will appreciate your inputs in this matter.
    Many thanks!
    Tariq Ashraf

    Thanks!

Maybe you are looking for

  • How to generate individual HTML files from linked help?

    Hi folks, I'm trying to figure out how to generate individual web pages - based on heading types - from a help project this is linked to a FrameMaker book. I'm linking to the FM book, rather than importing, because the import process ruins my graphic

  • Ledgers and registers

    Hi, We are in receipt of the Notice for Assessment from the I.T Dept.They have asked for u201CBooks of accounts for the Financial Year  in CD form for Stock register, Purchase Register and Sales Register, Ledgeru201D Can any one proprose the best sol

  • SharePoint Modal Popup

      Hi..  How to create a SharePoint Modal Popup window and when we select some value in modal popup that value should be redirected to parent form.. Ravindranath

  • Compass direction in Extended Info

    I have the new new Sony Cybershot HX5V which records GPS co-ordinates, altitude and compass setting with each photo. In iPhoto 09 I pull up extended info for a photo and see the GPS coordinates and the Altitude but I do not see any Compass setting da

  • How  the condition of combo box of matrix can be passed in query

    Hi, I want to get the parameter code and description for a particular category. Category code is in the matrix combo box  if i pass tat field in a where condition i cant retrieve the parameter code but its working in the database. Please identify the