Steps to convert data during implementation

Need to know the basic steps that are needed to be kept in mind for converting data from multiple legacy systems to SAP application in addition of the list given at "[Data Conversion in SAP|http://bit.ly/DataConversion]". Also, are there any tools available for data cleaning before converting, if this is part of the deliverables of service providers?

Meblogger,
There is not much you can do to cleanse data without help from the legacy people.  Any changes to legacy-created data must be approved by someone on the legacy team.  I usually break the data into chunks (never more than a million records), and then use MS Access on a PC to identify problem areas.  Especially in the case of elimination of duplicate records, you should not automatically consider yourself competent to determine which one(s) should remain.
You need to establish ground rules early on as to what languages and character sets will be moved into SAP, and then ensure the extracted data matches this specification.
I encourage the legacy people to establish a cross-functional group (members of legacy IT plus the key business owners of the data) to act as a point of contact.  As Vivek states, timely answers are extremely important.
I also encourage the legacy programmers to map the master data internally somewhere in their own system.  For instance, for each record in their part number database, I suggest that they find an available field and place the agreed upon SAP Material number there.  Likewise, any other legacy master data.  Although they always squawk at this request, on the go live day when you actually have to transfer the transactional data, they agree that their legacy extraction programs are easier to manage.
Speaking of go-live day, you have to clearly understand beforehand what constitutes 'acceptable' level of conversion.  If the acceptable level for a particular set of data is less than 100%, then you have to have a clear guideline what is to be done with the data that could not be converted.
Rgds,
DB49

Similar Messages

  • LSMW dump at step 11-Convert data

    Hi Guys,
    i uploaded some vendors using LSMW in my DEV System. For testing purposes in the test client,a project import from DEV into TST which went on well.Unfortunately at step 11-convert Data , it flagged an error and threw a dump.
    The dump file is below.
    Please does anyone have a clue
    <removed by moderator>
    Moderator message: please post only relevant parts of the dump, your posts must contain less than 5000 characters to preserve formatting.
    Edited by: Thomas Zloch on Apr 6, 2011 12:40 PM

    Hi  Saravanan M,
    I got some assistance that before  step 110convert Data , i could generate my conversion  program i which i have done.
    the issue now is that i have an error at line 98: the error is 'ZFB60_NEW has already been declared'.
    This is the generated conversion code
    <removed by moderator>
    Moderator message: please post only relevant code parts, your posts must contain less than 5000 characters to preserve formatting.
    Edited by: Thomas Zloch on Apr 6, 2011 12:39 PM

  • LSMW - Direct Input- RMDATIND- Converted data is different.

    Hi Experts,
    I am working on LSMW - Direct Input- by std. program RMDATIND for material Update,
    When I display converted data, its different than data that I see in display read data step,
    Each time in step display converted data,one perticular record is  displayed.. Even though
    I change input data.
    I like to know why converted data shown is wrong?
    thanks & regards
    Ashish

    Hi thomas,
    thanks for your help....  
    i created 2 materials in file, i.e. with material no. xxxxx2 & material no.xxxxx 3.
    Or even if i created record in iput file with other materila no.
    At each end every time I can see only one converted data record eith Material no. Value = xxxxx1.
    thanks & regards
    Ashish

  • LSMW Issue_Eliminate lines in Convert data step

    Dear Gurus,
    I have a problem with LSWM.
    Imagine that we create price conditions -VK11- and have 1000 lines in text file.
    And some customers does not created in SAP yet.
    So  LSMW gives error during its run.
    I want to know whether  there is  a way to eliminate these lines in LSMW (Convert Data) step.
    So if ı eliminate lines which customer  codes have not created in SAP, I can directly upload it..
    Regards

    In specify files you have a node for converted file name. as Converted Files..
    There will be some name mentioned there...
    Change it and it will prompt you and ask if u want to create such a file... say yes..
    After this your problem should be resolved.
    Revert if u need more.

  • Problem in LSMW using IDOC in convert data step

    Hi,
    I am getting a Run-time error in CONVERT DATA step of LSMW using IDOC. The error diplayed is a syntax error. I am not able to figure out the error. Anybody having idea about this, please help me...
    The data is read successfully.
    Edited by: majualex on Nov 4, 2009 9:23 AM

    Error in the ABAP Application Program
    The current ABAP program "/SAPDMC/SAPLLSMW_OBJ_070" had to be terminated
      because it has
    come across a statement that unfortunately cannot be executed.
    The following syntax error occurred in program "/1CADMC/SAP_LSMW_CONV_00000051
      " in include "/1CADMC/SAP_LSMW_CONV_00000051 " in
    line 25:
    ""." expected after "DATA"."
    I think the pgm is standard ABAP program.....

  • LSMW problem during display converted data

    Dear Expert,
    We have problem in LSMW during display converted data.
    When using display converted data, the output will show many of rows based on data content.
    For example, contains 6 rows. But when we want to see details of the data for one row (example row 2) by double clicking on it, the problem occurs, the output will show the details of the data from the last row (row 6).
    Please your advice.
    Thanks and Regards

    Hi,
    There seems to be sorting issue. Do you have dependency on data while executing the script?
    how about reading the data , is it getting uploaded correctly?
    Regards

  • Data Cartridge Implementation - PGA Memory Problem

    Hi,
    I have modified the Data Cartridge implementation explained in the article at http://www.oracle-developer.net/display.php?id=422.
    More precisely I have modified it to create not only the type returned, but also the select statement.
    The problem I have, is that the PGA memory through the execution of my package always increases, and when it ends the execution the PGA doesn't get released.
    I'm wondering if i'm missing something on the ODCITableClose.
    Object spec:
    create or replace type t_conf_obj as object
      atype anytype, --<-- transient record type
      static function ODCITableDescribe(rtype                  out anytype,
                                        p_cz_conf_categoria in     number,
                                        p_id_profilo        in     number   default null,
                                        p_cz_conf_livello   in     number   default null,
                                        p_dt_rif            in     varchar2 default to_char(sysdate,'ddmmyyyy')
                                       ) return number,
      static function ODCITablePrepare(sctx                   out t_conf_obj,
                                       tf_info             in     sys.ODCITabFuncInfo,
                                       p_cz_conf_categoria in     number,
                                       p_id_profilo        in     number   default null,
                                       p_cz_conf_livello   in     number   default null,
                                       p_dt_rif            in     varchar2 default to_char(sysdate,'ddmmyyyy')
                                      ) return number,
      static function ODCITableStart(sctx                in out t_conf_obj,
                                     p_cz_conf_categoria in     number,
                                     p_id_profilo        in     number   default null,
                                     p_cz_conf_livello   in     number   default null,
                                     p_dt_rif            in     varchar2 default to_char(sysdate,'ddmmyyyy')
                                    ) return number,
      member function ODCITableFetch(self  in out t_conf_obj,
                                     nrows in     number,
                                     rws      out anydataset
                                    ) return number,
      member function ODCITableClose(self in t_conf_obj
                                    ) return number
    );Object Body
    create or replace type body t_conf_obj as
      static function ODCITableDescribe(rtype                  out anytype,
                                        p_cz_conf_categoria in     number,
                                        p_id_profilo        in     number   default null,
                                        p_cz_conf_livello   in     number   default null,
                                        p_dt_rif            in     varchar2 default to_char(sysdate,'ddmmyyyy')
                                       ) return number
      is
        r_sql   pck_conf_calcolo.rt_dynamic_sql;
        v_rtype anytype;
        stmt    dbms_sql.varchar2a;
      begin
          HERE I CREATE MY SELECT STATEMENT
        if p_cz_conf_livello is null and p_id_profilo is null then
          stmt := pck_conf_calcolo.GetSQLConfCategoria(p_cz_conf_categoria
        elsif p_cz_conf_livello is not null then
          stmt (1) := pck_conf_calcolo.GetSQLConfCategoria(p_cz_conf_categoria,
                                                           p_id_profilo,
                                                           p_cz_conf_livello,
                                                           p_dt_rif
        else
          stmt (1) := pck_conf_calcolo.GetSQLConfCategoria(p_cz_conf_categoria,
                                                           p_id_profilo
        end if;
        || parse the sql and describe its format and structure.
        r_sql.cursor := dbms_sql.open_cursor;
        dbms_sql.parse(r_sql.cursor, stmt, stmt.first, stmt.last, false, dbms_sql.native);
        dbms_sql.describe_columns2(r_sql.cursor,
                                   r_sql.column_cnt,
                                   r_sql.description);
        dbms_sql.close_cursor(r_sql.cursor);
        || create the anytype record structure from this sql structure.
        anytype.begincreate(dbms_types.typecode_object, v_rtype);
        for i in 1 .. r_sql.column_cnt loop
          v_rtype.addattr(r_sql.description(i).col_name,
                          case
                          --<>--
                            when r_sql.description(i).col_type in (1, 96, 11, 208) then
                             dbms_types.typecode_varchar2
                          --<>--
                            when r_sql.description(i).col_type = 2 then
                             dbms_types.typecode_number
                            when r_sql.description(i).col_type in (112) then
                             dbms_types.typecode_clob
                          --<>--
                            when r_sql.description(i).col_type = 12 then
                             dbms_types.typecode_date
                          --<>--
                            when r_sql.description(i).col_type = 23 then
                             dbms_types.typecode_raw
                          --<>--
                            when r_sql.description(i).col_type = 180 then
                             dbms_types.typecode_timestamp
                          --<>--
                            when r_sql.description(i).col_type = 181 then
                             dbms_types.typecode_timestamp_tz
                          --<>--
                            when r_sql.description(i).col_type = 182 then
                             dbms_types.typecode_interval_ym
                          --<>--
                            when r_sql.description(i).col_type = 183 then
                             dbms_types.typecode_interval_ds
                          --<>--
                            when r_sql.description(i).col_type = 231 then
                             dbms_types.typecode_timestamp_ltz
                          --<>--
                          end,
                          r_sql.description(i).col_precision,
                          r_sql.description(i).col_scale,
                          r_sql.description(i).col_max_len,
                          r_sql.description(i).col_charsetid,
                          r_sql.description(i).col_charsetform);
        end loop;
        v_rtype.endcreate;
        || now we can use this transient record structure to create a table type
        || of the same. this will create a set of types on the database for use
        || by the pipelined function...
        anytype.begincreate(dbms_types.typecode_table, rtype);
        rtype.setinfo(null,
                      null,
                      null,
                      null,
                      null,
                      v_rtype,
                      dbms_types.typecode_object,
                      0);
        rtype.endcreate();
        return odciconst.success;
      exception when others then
        -- indicate that an error has occured somewhere.
        return odciconst.error;
      end odcitabledescribe;
      static function ODCITablePrepare(sctx                   out t_conf_obj,
                                       tf_info             in     sys.ODCITabFuncInfo,
                                       p_cz_conf_categoria in     number,
                                       p_id_profilo        in     number   default null,
                                       p_cz_conf_livello   in     number   default null,
                                       p_dt_rif            in     varchar2 default to_char(sysdate,'ddmmyyyy')
                                      ) return number
      is
        r_meta pck_conf_calcolo.rt_anytype_metadata;
      begin
        || we prepare the dataset that our pipelined function will return by
        || describing the anytype that contains the transient record structure...
        r_meta.typecode := tf_info.rettype.getattreleminfo(1,
                                                           r_meta.precision,
                                                           r_meta.scale,
                                                           r_meta.length,
                                                           r_meta.csid,
                                                           r_meta.csfrm,
                                                           r_meta.type,
                                                           r_meta.name);
        || using this, we initialise the scan context for use in this and
        || subsequent executions of the same dynamic sql cursor...
        sctx := t_conf_obj(r_meta.type);
        return odciconst.success;
      end;
      static function ODCITableStart(sctx                in out t_conf_obj,
                                     p_cz_conf_categoria in     number,
                                     p_id_profilo        in     number   default null,
                                     p_cz_conf_livello   in     number   default null,
                                     p_dt_rif            in     varchar2 default to_char(sysdate,'ddmmyyyy')
                                    ) return number
      is
        r_meta pck_conf_calcolo.rt_anytype_metadata;
        stmt    dbms_sql.varchar2a;
      begin
          HERE I CREATE MY SELECT STATEMENT
        if p_cz_conf_livello is null and p_id_profilo is null then
          stmt := pck_conf_calcolo.GetSQLConfCategoria(p_cz_conf_categoria
        elsif p_cz_conf_livello is not null then
          stmt(1) := pck_conf_calcolo.GetSQLConfCategoria(p_cz_conf_categoria,
                                                           p_id_profilo,
                                                           p_cz_conf_livello,
                                                           p_dt_rif
        else
          stmt(1) := pck_conf_calcolo.GetSQLConfCategoria(p_cz_conf_categoria,
                                                          p_id_profilo
        end if;
        || we now describe the cursor again and use this and the described
        || anytype structure to define and execute the sql statement...
        pck_conf_calcolo.r_sql.cursor := dbms_sql.open_cursor;
        dbms_sql.parse(pck_conf_calcolo.r_sql.cursor, stmt, stmt.first, stmt.last, false, dbms_sql.native);
        dbms_sql.describe_columns2(pck_conf_calcolo.r_sql.cursor,
                                   pck_conf_calcolo.r_sql.column_cnt,
                                   pck_conf_calcolo.r_sql.description);
        for i in 1 .. pck_conf_calcolo.r_sql.column_cnt loop
          || get the anytype attribute at this position...
          r_meta.typecode := sctx.atype.getattreleminfo(i,
                                                        r_meta.precision,
                                                        r_meta.scale,
                                                        r_meta.length,
                                                        r_meta.csid,
                                                        r_meta.csfrm,
                                                        r_meta.type,
                                                        r_meta.name);
          case r_meta.typecode
          --<>--
            when dbms_types.typecode_varchar2 then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor, i, '', 32767);
              --<>--
            when dbms_types.typecode_number then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as number));
              --<>--
            when dbms_types.typecode_date then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as date));
              --<>--
            when dbms_types.typecode_raw then
              dbms_sql.define_column_raw(pck_conf_calcolo.r_sql.cursor,
                                         i,
                                         cast(null as raw),
                                         r_meta.length);
              --<>--
            when dbms_types.typecode_timestamp then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as timestamp));
              --<>--
            when dbms_types.typecode_timestamp_tz then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as timestamp with time zone));
              --<>--
            when dbms_types.typecode_timestamp_ltz then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as timestamp with local time zone));
              --<>--
            when dbms_types.typecode_interval_ym then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as interval year to month));
              --<>--
            when dbms_types.typecode_interval_ds then
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as interval day to second));
              --<>--
            when dbms_types.typecode_clob then
              --<>--
              dbms_sql.define_column(pck_conf_calcolo.r_sql.cursor,
                                     i,
                                     cast(null as clob));
              --<>--
          end case;
        end loop;
        || the cursor is prepared according to the structure of the type we wish
        || to fetch it into. we can now execute it and we are done for this method...
        pck_conf_calcolo.r_sql.execute := dbms_sql.execute(pck_conf_calcolo.r_sql.cursor);
        return odciconst.success;
      end;
      member function ODCITableFetch(self  in out t_conf_obj,
                                     nrows in     number,
                                     rws      out anydataset
                                    ) return number
      is
        type rt_fetch_attributes is record(
          v2_column    varchar2(32767),
          num_column   number,
          date_column  date,
          clob_column  clob,
          raw_column   raw(32767),
          raw_error    number,
          raw_length   integer,
          ids_column   interval day to second,
          iym_column   interval year to month,
          ts_column    timestamp,
          tstz_column  timestamp with time zone,
          tsltz_column timestamp with local time zone,
          cvl_offset   integer := 0,
          cvl_length   integer);
        r_fetch rt_fetch_attributes;
        r_meta  pck_conf_calcolo.rt_anytype_metadata;
      begin
        rws := null;
        if dbms_sql.fetch_rows(pck_conf_calcolo.r_sql.cursor) > 0 then
          || first we describe our current anytype instance (self.a) to determine
          || the number and types of the attributes...
          r_meta.typecode := self.atype.getinfo(r_meta.precision,
                                                r_meta.scale,
                                                r_meta.length,
                                                r_meta.csid,
                                                r_meta.csfrm,
                                                r_meta.schema,
                                                r_meta.name,
                                                r_meta.version,
                                                r_meta.attr_cnt);
          || we can now begin to piece together our returning dataset. we create an
          || instance of anydataset and then fetch the attributes off the dbms_sql
          || cursor using the metadata from the anytype. longs are converted to clobs...
          anydataset.begincreate(dbms_types.typecode_object, self.atype, rws);
          rws.addinstance();
          rws.piecewise();
          for i in 1 .. pck_conf_calcolo.r_sql.column_cnt loop
            r_meta.typecode := self.atype.getattreleminfo(i,
                                                          r_meta.precision,
                                                          r_meta.scale,
                                                          r_meta.length,
                                                          r_meta.csid,
                                                          r_meta.csfrm,
                                                          r_meta.attr_type,
                                                          r_meta.attr_name);
            case r_meta.typecode
            --<>--
              when dbms_types.typecode_varchar2 then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.v2_column);
                rws.setvarchar2(r_fetch.v2_column);
                --<>--
              when dbms_types.typecode_number then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.num_column);
                rws.setnumber(r_fetch.num_column);
                --<>--
              when dbms_types.typecode_date then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.date_column);
                rws.setdate(r_fetch.date_column);
                --<>--
              when dbms_types.typecode_raw then
                dbms_sql.column_value_raw(pck_conf_calcolo.r_sql.cursor,
                                          i,
                                          r_fetch.raw_column,
                                          r_fetch.raw_error,
                                          r_fetch.raw_length);
                rws.setraw(r_fetch.raw_column);
                --<>--
              when dbms_types.typecode_interval_ds then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.ids_column);
                rws.setintervalds(r_fetch.ids_column);
                --<>--
              when dbms_types.typecode_interval_ym then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.iym_column);
                rws.setintervalym(r_fetch.iym_column);
                --<>--
              when dbms_types.typecode_timestamp then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.ts_column);
                rws.settimestamp(r_fetch.ts_column);
                --<>--
              when dbms_types.typecode_timestamp_tz then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.tstz_column);
                rws.settimestamptz(r_fetch.tstz_column);
                --<>--
              when dbms_types.typecode_timestamp_ltz then
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.tsltz_column);
                rws.settimestampltz(r_fetch.tsltz_column);
                --<>--
              when dbms_types.typecode_clob then
                --<>--
                dbms_sql.column_value(pck_conf_calcolo.r_sql.cursor,
                                      i,
                                      r_fetch.clob_column);
                rws.setclob(r_fetch.clob_column);
                --<>--
            end case;
          end loop;
          || our anydataset instance is complete. we end our create session...
          rws.endcreate();
        end if;
        return odciconst.success;
      end;
      member function ODCITableClose(self in t_conf_obj
                                    ) return number
      is
      begin
        dbms_sql.close_cursor(pck_conf_calcolo.r_sql.cursor);
        pck_conf_calcolo.r_sql := null;
        return odciconst.success;
      end;
    end;We have an Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 running on Windows 2003 sp2.
    Thanks in advance.
    Riccardo.

    I'm getting confused with so much answers!!!

  • How To... Update Master Data during upload of transaction data

    Can anybody let me know how this can be achieved.
    I have datasource (Legacy not R3) where I am getting both master data and text for number of infoobjects.
    I dont want separate datasources.
    The datasource is actually transactional datasource.
    I dont need text in the cubes or DSO I need the text tables of the infoobjects to be updated.
    I could find this on SDN but do anyone have document based on the below link.I was not able to find it.
    How To... Update Master Data during upload of transaction data
    Thanks.

    Dear Praveen
    I guess yr req is demanding the knowledge of Data Unification and Synchronization whose scope is a bit outer the area of BW.( its MDM actually )
    In BW we could very well fetch data out of different data sources (even across the different system) with no issues so why not u trying that. if there is any issue implementing that then please specify what kind of trouble you are interfacing...
    I got the below link which may be helpful
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e7bd6389-0a01-0010-eb95-d45835d446a8

  • Steps to convert a song to mp3

    Hello
    I need the steps to convert the songs that I purchased into mp3, I've already burned them into a cd and I will import them, so what I need it is to know what do I do next.
    Note: I want to convert my purchased song into an audible cd.
    Thank you!

    From the sound of it, you may have simply burned a data CD containing your .m4p files. This is great for backup purposes, but if you want to do anything else with the files, you would first need to burn a playlist containing purchased music to audio CD. To do this, be sure to go to iTunes > Preferences > Advanced, and click the Burning tab. From there, make sure the Disc Format is set to Audio CD (I would also set the Gap Between Songs to "none"). Now, you can burn an audio CD from the playlist containing purchased music.
    Once you have your audio CD, you can import it into iTunes any way you like, but if your goal is simply to have an audio CD you can play anywhere, you've already accomplished that.
    When you use the word "audible," it makes me wonder if you're talking about an audio book. In this case, you may need to do something else, but I would first need to know if that's what you mean--rather than just a CD that's audible (that you can hear).
    If you want to import the contents of your audio CD into iTunes as MP3 files, as implied by the subject line of your post, you would just need to go to iTunes > Preferences > Advanced, click on the Importing tab, and choose MP3 Encoder from the Import Using drop-down list. Note that you can fine-tune your MP3 encoding preferences if you like. Once that's taken care of, you would simply import the CD into iTunes as usual.

  • Syntax error while doing Convert data in LSMW

    Hi experts,
          I am using direct input method for uploading customer master records. After display read data step, when i click Convert data button, i get a runtime error saying that:
          the data object "LEGACY_CUSTOMER_MASTER" has no component called "OLD_CUST_NO", but there is a component called "SAP_CUST_NO".
        But actually we do not need OLD_CUST_NO field, so i did not include it while maintaining source fields. Someone plz help. I urgently need to resolve this.
    Thanks.

    Hi ,
    I think you have declared the filed old_cust_no in the maintain field mapping step may be in global declaration or in the mapping section of hte field. Without the use of filed OLD_CUST_NO you wont get the syntax error. Check the sysntax error in field mapping step and delete the unwanted field.Check the filed mapping section carefully based on the error.
    Thanks.

  • Methods in bapi used to convert data into XML

    Methods in bapi used to convert data into XML,
    how to implement those also,
    points will be rewarded
    Thank you,
    Regards,
    Jagrut BharatKumar Shukla

    Hi
    Check this
    http://www.sap-img.com/abap/sample-xml-source-code-for-sap.htm
    https://forums.sdn.sap.com/click.jspa?searchID=2889167&messageID=3406594
    Reward points for useful Answers
    Regards
    Anji

  • Convert Date to Week - ABAP Routine in transformation

    Hi all,
    I am trying to convert a date to a week using ABAP in a transformation.
    The date is coming from an external database and has the format YYYYMMDD.  I want to convert this into the standard 0CALWEEK format.
    I thought that converting the date to the SAP internal format, and then running DATE_GET_WEEK on it, would work.  Firstly I am running the FM 'CONVERSION_EXIT_PDATE_OUTPUT' to get the date into the DDMMYYYY format then running DATE_GET_WEEK on the result of the first FM.
    This works up until the end of the first step; the internal date format is returned.  However, the code fails when it hits the 'DATE_GET_WEEK' FM.
    I would be really grateful if someone could tell me where I am going wrong.  Thanks, Mischa
    My code so far is:
    DATA:
    WEEK(6) TYPE C,
    CS_DT(8) TYPE C,
    TEMP_DT TYPE D,
    RESULT1 TYPE D.
    CLEAR RESULT.
    CLEAR RESULT1.
        CS_DT = SOURCE_FIELDS-CASE_DT.
    CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
      EXPORTING
        INPUT         = CS_DT
    IMPORTING
       OUTPUT        = TEMP_DT
    MOVE TEMP_DT TO RESULT1.
    CALL FUNCTION 'DATE_GET_WEEK'
      EXPORTING
        DATE               = RESULT1
    IMPORTING
       WEEK               = WEEK
    EXCEPTIONS
      DATE_INVALID       = 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.
    RESULT = WEEK.

    Hi all,
    Thanks for your replies, but the automatic conversion doesn't work.  I assume this is because the source field is a CHAR field with 8 characters, rather than a Date field as recognised by SAP.  Literally the field contains 8 characters YYYYMMDD for example 20090601. 
    If I try to assign directly, I get the error
    "Automatic time conversion is not possible for source field CASE_DT
    Cannot establish automatic time conversion to 0CALWEEK for source field CASE_DT. The source is a DataSource and consists of fields, not InfoObjects. Time conversion can only be performed automatically for InfoObjects."
    This is why I assumed I needed some ABAP code.  I  have tried assigning the time char 0CALDAY to my source field CASE_DT in the transformation, and this is not accepted either - I get the message
    "The properties of the InfoObject selected, 0CALDAY, do not match the properties of the available source field."
    Again, grateful for any help.
    Mischa

  • Syntax error after convert data : LSMW

    Hi,
      I am doing a LSMW for MM01. After the convert data step I get the following syntax error:
    The following syntax error was found in program
    /1CADMC/SAP_LSMW_COMV_00000168
    For typr "C", a max length specification of 65535 is allowed.
    Can anybody help me in figuring out where I am going wrong.
    Thanks,
    Nilesh

    just execute ur lsmw in this, there is tab button user menu next to execute button , click on that , u come across a pop screen where u have a check box in that just select generate conversion program and display conversion program. and press enter.
    afterwards select the radio button generate conversion program , it will shows the program in this do systax check. u will findout the error .
    do syntax check by running step generate conversion programe,
    and also check source fields step , r u giving correct length or not for each field.
    Thanks
    null

  • Convert data is not writng anythng in LSMW?

    Hi Friends,
    After uplaoding the data, when I goto convert data step and execute. It reads 2 records but it doesn't write anything. So I am not able to execute the batch input method? I am doing that for Material master? Can any one help me regarding this. It would be of great help?
    Thanks,
    SAP ABAPer

    Check in the 5th step (Field Mapping) is there any standard function '<b>skip_record</b>,<b>'skip_transaction'</b> by searching globally.
    If any such standard function is there, check when exactly its triggering.
    I think for your data conversion, those standard functions are triggering.
    in this case only the data will not be converted, the conversion of the data does not depend on whether the data exists in the destination system or not.
    Regards,
    Rajinikanth

  • LSMW -File Name 'Converted Data': Max. 45 Characters. Remaining data saved

    Hi to all,
    I am facing the error message while specifying the file(7th step) in LSMW as below
    <b>File Name 'Converted Data': Max. 45 Characters. Remaining data saved.
    Message no. /SAPDMC/LSMW_OBJ_060028</b>
    Diagnosis
    Some import interfaces only accept file names (including path) that have a maximum of 45 characters.
    System Response
    All data except the file name of the converted data is saved.
    Procedure
    Adjust the file name for the converted data.
    I am not able proceed further steps in LSMW..
    please give your valuable suggation and solutions.
    Thanks in advance..
    Amar.

    HI
    Even I am facing this error. I tried from the root directory also. But I am getting the same error. (D:\LSMW\t.txt).
    Also,  another text file with the path name C:\Documents and Settings\Desktop\testmass.txt was uploaded without any problem.
    Can anyone please help in solving this?
    Regards

Maybe you are looking for

  • HT3702 How can I remove credit card from file

    I can't update my apps I want to remove credit card information on file

  • How to put a variable column value in a "vlookup"

    Hello there, I am trying to put a variably chosen column value in a "vlookup" function. Logically this should work, but it does not, and I cannot figger out why.: "=vloookup("a", B5:Z28, {=MATCH(4, B4:Z4, 0)})" (replaced brackets with {} for this pos

  • Problem with keeping attributes updated

    We have a problem with the server model in Designer. We have made a E/R diagram and genereted it to a server model diagram. Afterwards we want to delete some attributes which we delete back in the E/R program. Then we make some new attributes instead

  • What's the most current OX system can I run on the power Mac g5

    What's the most current OX system can I run on the power Mac g5

  • Heap implementation in ABAP

    I try to implement in ABAP a heap. I created an class which simulate this heap but I'm interesting that in ABAP is an ready implementation of heap class? My definition of class have methods: - GET_LAST_TOKEN - ADD_TOKEN - RELEASE_TOKEN - CHECK_IS_EMP