B1i Truncating space characters in elements from RegEx flat file SLD

Task:
I'm importing from a fixed-width file that's specifically 94 characters wide consisting of multiple columns.  My only concern at this point is the number of lines and their width.  I have to pad the block out to a specific number of lines, and all existing lines in my source file already fill all 94 characters.  Multiple headers and footers exist in the same flat file, so defining the format explicitly based on column width in RegEx will add significant time to the project (though it's not necessarily impossible).
This file ends lines with a single LF character (no CR), which apparently is too much for TXT and CSV formats to handle (the entire file comes in as one line).  So I turned to Regex, where I can split the document on arbitrary characters like LFs.
I've recorded a message and the lines look something like this:
"ABB CCCCCCCCC DDDDDDDDDEEEEEEFFFFGHHHIIJKKKKKK KKKK K KKKKK    KKKKKK KKKK K KKKKK    LLLLLLLL"
and column L is occasionally blank (just spaces).  This is one of the row formats present in the file.  Most of the columns use spaces as fill characters and are left justified.
Tag definition looks like this:
<tagDefinition xmlns="urn:com.sap.b1i.bizprocessor:pltdefinition" regex="\n" schemaName="" tagName="line" matchSplit="S" stackSize="10000" DOTALL="true" MULTILINE="false">
</tagDefinition>
Problems:
With a recorded test messsage, the lines build properly:
<Payload Role="S" intype="rgx_ruledoc">
<bfa:io xmlns:bfa="urn:com.sap.b1i.bizprocessor:bizatoms" pltype="rgx" schemaName="">
  <line xmlns="">ABB CCCCCCCCC DDDDDDDDDEEEEEEFFFFGHHHIIJKKKKKK KKKK K KKKKK    KKKKKK KKKK K KKKKK            </line>
</bfa:io>
</Payload>
But by the time it reaches my first XSL Transformation atom, I receive the data in this form:
<Payload Role="S" intype="rgx_ruledoc">
<bfa:io xmlns:bfa="urn:com.sap.b1i.bizprocessor:bizatoms" pltype="rgx" schemaName="">
  <line xmlns="">ABB CCCCCCCCC DDDDDDDDDEEEEEEFFFFGHHHIIJKKKKKK KKKK K KKKKK KKKKKK KKKK K KKKKK </line>
</bfa:io>
</Payload>
In other words, I'm missing 3 spaces from within the middle of K and 11 from the end of the example line.  Multiple lines are affected by this.  I've built the Regex import portion properly, judging by the test message.  But the data I build is not the data I'm given.  And the truncation seems to be happening somewhere outside my control.
Questions:
1. Is there a way to specify that all spaces are non-breaking in the input/output format descriptors?
2. Is there a way I can specify that B1i doesn't modify the data before handing it to me?
3. Is there an easier/more correct way to do this?
Also possibly 4. Can you specify line endings in TXT/CSV imports?

As far as I've found, there's no way to specify that B1i doesn't normalize spaces for you in an input Msg.  I ended up splitting the incoming message line to its individual columns using the Regex format descriptor.  That way, I was able to track the integrity of each component of the message.
However, when writing out to the same file format using the TXT file type, B1i is inserting commas between the columns, despite:
1. Being TXT format, which shouldn't use delimiters.
2. Having the delimiter field empty.  It correctly ignores this field, even if it does insert a delimiter.
3. Specifying no delimiter explicitly using <FileOut type="file_full">/<Control><deli>.
It seems odd that the included means for writing raw text would mangle the output message so.
Has anyone successfully written data to a TXT file with no delimiter?

Similar Messages

  • Reading special characters from a flat file and inserting into DB

    I'm reading data with special characters like . etc from a flat file , assigning the data to variable in my anonymous block and inserting into my DB. But the show up as inverted ? s. Any clues about how to do this?
    If i try to do the insert directly it works. It seems like the error occurs when reading this data into a variable
    thanks for the help
    Lalit Bhatia

    lalit, this is probably an character set problem, the default on Database creation tends to be 7bit Ascii which does not support special characters, it's been a while since I set up a db in this way, but you need to change settings in oracle.ini. The db will need to be restarted for this. Also, to check current settings try:
    select * from NLS_DATABASE_PARAMETERS
    You want an 8bit, unicode or multibyte character set. Sorry I cannot remember moer off the top of my head, try searching on NLS or character set

  • Is there a way to select a certain box of elements from a csv file and read that into LabVIEW?

    Hello all, I was wondering if there was a way to select only a certain "box" of elements from a .csv file in LabVIEW? I have LabVIEW 2011 and my main goal is to take two arrays and graph them against each other. I can import the .csv file just fine and separate each row and each column to be its own, but say I have an 8X8 but want to graph the middle 4X5 or something like that. Is there any way to extract an array without starting at the beginning and without ending at the end? Thank you in advance.
    Solved!
    Go to Solution.

    Hi Szklanam,
    as a CSV file is just a TXT file with a different suffix you can read a certain number of lines of that file. So you can limit the number of rows in your resultung array. To limit the number of columns you still have to use ArraySubset, so maybe it's a lot easier to read the full CSV file and pick the interesting spots with ArraySubset...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How to MODIFY A CUSTOM TABLE  FROM A FLAT FILE

    Dear Friends,
                     I have a requirement where i have to upload data from excel file to my custom table  so i have used a FM
    'TEXT_CONVERT_XLS_TO_SAP' and i have collected data into a internal table , till here i am able to get data correctly , now i hae to upload this data into a custom table .
    the flat file is having  6 fields and the custom table is having
    8 fields , for uploading the data into this custom table from the internal table where i have collected above iam getting problem . Actually iam using a modify statement to update the custom table .
    the flat file which i have collected into the internal table is as below :
      IDNo.     Name     Date      Location   Designation  Dept
      101       Raja      4/12/2007  Delhi      Manager      HR
      102       James    4/12/2007  Delhi      Clerk          HR
    Custom table  is having the below fields
    IDNO.  Name  Date  Location Designation  Dept   Manager
    101                                                                   Raja
    now when i run the program iam getting the problem   while usign the modify statment is the ID no which is already having
    a record as  IDno = 101  and manger = Raja.......with the other fields   name , date, location,designation and dept as blank.
    if i want to fill this fields from my flat file the modify statment
    just filling all the fields  for the ID no = 101  and manager field which already having Raja as being overwritten by space .....
    becasue this field is not being there in the flat file.
    the code iam using as follows.
    The flat file is having with the below structure
    TYPES: BEGIN OF t_emp_data,
              IDNO(11) TYPE c,
             Name(13) TYPE c,
             Date(20) TYPE c,
              Location (40) TYPE c,
             Designation(40) TYPE c,
             Dept(40) TYPE c,
             end of t_emp_data.
    The Custom Table(ZEMP_DATA) is having with the below structure
    TYPES: BEGIN OF t_emp_data_table,
              IDNO(11) TYPE c,
             Name(13) TYPE c,
             Date(20) TYPE c,
              Location (40) TYPE c,
             Designation(40) TYPE c,
             Dept(40) TYPE c,
             Manager(20) type c,  -- this is the extra field in table
             end of t_emp_data_table.
    data :
    it_empdata TYPE STANDARD TABLE OF t_emp_data,
    it_empdata_tmp TYPE STANDARD TABLE OF t_empdata_tmp,
    wa_empdata_tmp  type t_empdata_tmp,
    wa_empdata type t_emp_data.
    loop at it_empdata into  wa_empdata.
      move-corresponding  wa_empdata to   wa_empdata_tmp.
      modify ZEMP_DATA  from  wa_empdata_tmp .
    endloop.
    could any one please let me know what i have to do inorder to not get the manager field data not being overwritten with the modify statment , for the IDNo. 101  . I want the data which is already ( manager = Raja) shouldnt not be get overwritten with Space.
    please help me in this regard
    Regards
    Madhuri.

    Hi,
    use a slect statement before
    "move-corresponding wa_empdata to wa_empdata_tmp."
    select manager
    from ztable
    into wa_empdata_tmp-manager
    where id = 100.
    regards,
    lavanya

  • Numbering nodes when loading hierarchy from a flat file.

    Hi All,
    I want to load a hierarchy from a flat file. When we number the nodes, do they have to be in a sequence or can I give them any number I want? I want to make the GL account number as the node number since it makes it easy to generate the node number that way. The way I see it, the important thing is the parent node number; so this approach should be fine. Please correct me if I am wrong.
    Thanks,
    Uday

    Hi Uday,
       You need to have a running sequence numbers for Node Id field in the flat file. The file structure is as
    NODEID  IOBJNM      NODENAME TLEVEL LINK PARENTID
    00000001 0GLACC     GL233344             00000001
    00000002 0GLACC     GL435556             00000001
    00000003 0GLACC     GL545666             00000001
    00000004 0costcenter cc433232            00000002
    00000005 0costcenter cc433233            00000002
    00000006 0costcenter CC555551            00000003
    The Parentid will calculated by the system automatically.
    when you prepare you file csv please ensure that you have 8 characters for the Node ID " 00000003" other wise you will get error.
    And if you want to add GL Account number to your hierarchy then you need to add GL A/c Number as external characteristics in hierarchy and add it to your flat file .
    Hope it helps.
    Cheers,
    Balaji

  • Error while uploading data from a flat file to the hierarchy

    Hi guys,
    after i upload data from a flat file to the hierarchy, i get a error message "Please select a valid info object" am loading data using PSA, having activated all external chars still get the problem..some help on this please..
    regards
    Sri

    there is o relation of infoobject name in flat file and infoobjet name at BW side.
    please check with the object in the BW and their lengths and type of the object and check your flat file weather u have the same type there,
    now check the sequence of the objects in the transfer rules  and activate them.
    there u go.

  • What is the best way to load and convert data from a flat file?

    Hi,
    I want to load data from a flat file, convert dates, numbers and some fields with custom logic (e.g. 0,1 into N,Y) to the correct format.
    The rows where all to_number, to_date and custom conversions succeed should go into table STG_OK. If some conversion fails (due to an illegal format in the flat file), those rows (where the conversion raises some exception) should go into table STG_ERR.
    What is the best and easiest way to archive this?
    Thanks,
    Carsten.

    Hi,
    thanks for your answers so far!
    I gave them a thought and came up with two different alternatives:
    Alternative 1
    I load the data from the flat file into a staging table using sqlldr. I convert the data to the target format using sqlldr expressions.
    The columns of the staging table have the target format (date, number).
    The rows that cannot be loaded go into a bad file. I manually load the data from the bad file (without any conversion) into the error table.
    Alternative 2
    The columns of the staging table are all of type varchar2 regardless of the target format.
    I define data rules for all columns that require a later conversion.
    I load the data from the flat file into the staging table using external table or sqlldr without any data conversion.
    The rows that cannot be loaded go automatically into the error table.
    When I read the data from the staging table, I can safely convert it since it is already checked by the rules.
    What I dislike in alternative 1 is that I manually have to create a second file and a second mapping (ok, I can automate this using OMB*Plus).
    Further, I would prefer using expressions in the mapping for converting the data.
    What I dislike in alternative 2 is that I have to create a data rule and a conversion expression and then keep the data rule and the conversion expression in sync (in case of changes of the file format).
    I also would prefer to have the data in the staging table in the target format. Well, I might load it into a second staging table with columns having the target format. But that's another mapping and a lot of i/o.
    As far as I know I need the data quality option for using data rules, is that true?
    Is there another alternative without any of these drawbacks?
    Otherwise I think I will go for alternative 1.
    Thanks,
    Carsten.

  • Looking for a program to delete CVCs from a flat file, infocube, ztable.

    I am looking for a program that will delete CVCs from a flat file, infocube, or ztable. Based on the research I have done, I would imagine the core of such a program would be the use of function module /sapapo/ts_plob_delete.
    If anyone has such a program and would be willing to share it that would be great.
    Shane

    Hi
    Yes you can use this program, but I think the program /sapapo/ts_plob_delete will only delete the data from Master planning Object structure( MPOS). First you have to deactivate the planning are first than use this program which will delete everything and again activate the planning area.
    If you want to delete the data flat files or infocube, you require to delete the data directly from the infocubes and add this job in the process chain to delete everything.
    I hope this information help you.
    Thanks
    Amol

  • Uploading the data from a flat file into ztable

    Hi,
    I have a requirement where I have to upload the data from 2 flat files into 2 z tables(ZRB_HDR,ZRB_ITM).From the 1st flat file only data for few fields have to be uploaded into ztable(ZRB_HRD) .Fromthe 2nd flat file data for all the fields have to me uploaded into ztable(ZRB_ITM). How can I do this?
    Regards,
    Hema

    hi,
    declare two internal table with structur of your tables.
    your flat files should be .txt files.
    now make use of GUI_UPLOAD function module to upload your flatfile into internal tables.
    CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename            = 'c:\file1.txt'
          has_field_separator = 'X'
        TABLES
          data_tab            = itab1
        EXCEPTIONS
          OTHERS              = 1.
    use this function twice for two tables.
    then loop them individually and make use of insert command.

  • How to load data from a  flat file which is there in the application server

    HI All,
              how to load data from a  flat file which is there in the application server..

    Hi,
    Firstly you will need to place the file(s) in the AL11 path. Then in your infopackage in "Extraction" tab you need to select "Application Server" option. Then you need to specify the path as well as the exact file you want to load by using the browsing button.
    If your file name keeps changing on a daily basis i.e. name_ddmmyyyy.csv, then in the Extraction tab you have the option to write an ABAP routine that generates the file name. Here you will need to append sy-datum to "name" and then append ".csv" to generate complete filename.
    Please let me know if this is helpful or if you need any more inputs.
    Thanks & Regards,
    Nishant Tatkar.

  • Data from a Flat file int a Cube

    Hi experts!
    Just a quick one, could we load data from a flat file directly to an infocube?
    Or we woud need to create a ODS to load that from the flat file there and later on form the ODS to the cube?
    Thanks you very much for your time!!

    Hi,
    You can directly load the flat data into the info cube. This should not be a problem.
    Create a flat file datasource according to the structure of the flat file. Create Transformations and DTP to the Cube.
    Load the flat file data into the PSA and then DTP the request into the cube.
    If the flat file load is a full load and one time load and data has to be deleted and loaded on the next load then above approach is fine.
    But if your load is every day load and delta then it would be appropriate to have a DSO in between the data flow.
    Hope it helps.

  • Problem in the BDC program to upload the data from a flat file.

    Hi,
    I am required to write a BDC program to upload the data from a flat file. The conditions are as mentioned below:-
    1) Selection Screen will be prompted to user and user needs to provide:- File Path on presentation server (with F4 help for this obligatory parameter) and File Separator e.g. @,#,$,%,... etc(fields in the file will be separated by using this special character) or fields may be separated by tab(tab delimited).
    2) Finally after the data is uploaded, following messages need to be displayed:-
    a) Total Number of records successfully uploaded.
    b) Session Name
    c) Number of Sessions created.
    Problem is when each record is fetched from flat file, the record needs to be split into individual fields separated by delimiter or in case tab separated, then proceeding in usual manner.
    It would be great if you provide me either the logic, pseudocode, or sample code for this BDC program.
    Thanks,

    Here is an example program,  if you require the delimitor to be a TAB, then enter TAB on the selection screen, if you require the delimitor to be a comma, slash, pipe, whatever, then simply enter that value.  This example is simply the uploading of the file, not the BDC, I assume that you know what to do once you have the data into the internal table.
    REPORT zrich_0001.
    TYPES: BEGIN OF ttab,
            rec TYPE string,
           END OF ttab.
    TYPES: BEGIN OF tdat,
           fld1(10) TYPE c,
           fld2(10) TYPE c,
           fld3(10) TYPE c,
           fld4(10) TYPE c,
           END OF tdat.
    DATA: itab TYPE TABLE OF ttab.
    data: xtab like line of itab.
    DATA: idat TYPE TABLE OF tdat.
    data: xdat like line of idat.
    DATA: file_str TYPE string.
    DATA: delimitor TYPE string.
    PARAMETERS: p_file TYPE localfile.
    PARAMETERS: p_del(5) TYPE c.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      DATA: ifiletab TYPE filetable.
      DATA: xfiletab LIKE LINE OF ifiletab.
      DATA: rc TYPE i.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        CHANGING
          file_table = ifiletab
          rc         = rc.
      READ TABLE ifiletab INTO xfiletab INDEX 1.
      IF sy-subrc = 0.
        p_file = xfiletab-filename.
      ENDIF.
    START-OF-SELECTION.
      TRANSLATE p_del TO UPPER CASE.
      CASE p_del.
        WHEN 'TAB'.
          delimitor = cl_abap_char_utilities=>horizontal_tab.
        WHEN others.
          delimitor = p_del.
      ENDCASE.
      file_str = p_file.
      CALL METHOD cl_gui_frontend_services=>gui_upload
        EXPORTING
          filename = file_str
        CHANGING
          data_tab = itab.
      LOOP AT itab into xtab.
        CLEAR xdat.
        SPLIT xtab-rec AT delimitor INTO xdat-fld1
                                         xdat-fld2
                                         xdat-fld3
                                         xdat-fld4.
        APPEND xdat to idat.
      ENDLOOP.
      LOOP AT idat into xdat.
        WRITE:/ xdat-fld1, xdat-fld2, xdat-fld3, xdat-fld4.
      ENDLOOP.
    Regards,
    Rich Heilman

  • Uploading Data from a Flat File

    Hi
    I am trying to Upload data from a Flat File to the MDS. I have a few questions on the Process.
    a) XI would be the Interface, and one end would be a file adapter with the Flat File format. On the other end, which Interface should I use - ABA Business Partner In or MDM Business Partner In. I do not understand the differences between them and where should which one be used?
    B) At the moment,I want to map the data to standard Object type, Business Partner  BUS1006. This also has a staging area already defined in the System. Can I view the data which is imported into the Staging area ? How so ?
    C) The struture (or data) that I wish to upload has few fields, and does not map to the BP structure easily. In such a scenario does it make sense to
    Create a new Object type
    (ii) Create a new Business Partner type with the appropriate fields only ..
    What I need to know is if either of these options is feasible and what are the pros & cons of doing this, in terms of effort, skillset & interaction with SAP Development ?
    Kindly do reply if you have any answers to these questions.
    Regards,
    Gaurav

    Hi Markus,
    Thanks for your inputs.
    I have tried uploading some dats from a Flat file to the Business Partner Onject type, BUS1006. I initially got some ABAP Parsing errors on the MDM side, but after correcting that, I find my message triggers a short dump - with the Method SET_OBJECTKEYS, not finding any keys in the BP structure that has been created.
    Q1 - How do I get around this problem ? Is it necessary for me to specify Keys in the PartyID node of the Interface ABABusinessPartnerIn. or is it something else ?
    Q2 - How is this general process supposed to work? I would assume that for staging, I would get incomplete Master data or data from flat files, which need not neccesarily contain keys. The aim is to use the matching strategies in the CI to identify duplicates and consolidate them.
    Thanks in advance for your reply.
    Regards,
    Gaurav

  • How to read data from a specified line from a flat file

    hi all
    im having a filat file like as follows
    (eg)
    1.aaa
    2.bbb
    3.ccc
    4.ddd
    5.eee
    using gui_upload i need to read the data from the flat file from the line number 2 into an internal table.
    (eg)
    2.bbb
    3.ccc
    etc
    can any one help with this

    Hi,
        First u upload the data from flat file into the internal table.Once u uploaded read the internal table.
    Read table itab index 2.
    Thank u,
    Manjula Devi.D

  • Error while loading  data into External table from the flat files

    HI ,
    We have a data load in our project which feeds the oracle external tables with the data from the Flat Files(.bcp files) in unix.
    While loading the data, we are encountering the following error.
    Error occured (Error Code : -29913 and Error Message : ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04063: un) while loading data into table_ext
    Please let us know what needs to be done in this case to solve this problem.
    Thanks,
    Kartheek

    Kartheek,
    I used Google (mine still works).... please check those links:
    http://oraclequirks.blogspot.com/2008/07/ora-29400-data-cartridge-error.html
    http://jonathanlewis.wordpress.com/2011/02/15/ora-29913/
    HTH,
    Thierry

Maybe you are looking for

  • DIsplaying WRBTR (AMOUNT FIELD)WITHOUT  DECIMAL PLACES

    Dear all, I am facing a problem in displaying amount field  in alv report. I have two currency keys (US dollar and Japan yen). if it is japan yen I should not have to show decimal places and if it is US dollar I should show decimal places. How can I

  • Is it possible for widgets in dashboard to float over other windows?

    I'm trying to assess features in Mavericks in comparison to Snow Leopard (the OS I'm most familiar with).  I usually read the Missing Manual for the new OSes, but haven't gotten to all areas yet - it's a big book! Is it possible for widgets in dashbo

  • Service Tax on Frieght Charges in Shipment Cost Document

    Hi All, I got a requirement like calculation of service tax on freight charges in transportation.I want to know the process how to achieve this,condition records need to maintain only in TK11 or in FV11 also.By doing search in SDN i came to know that

  • GR Based IR checked in PO if SC amt exceed clip level amount

    Dear SRM Experts, We are implementing SRM 7.0 extended classic scenario. We have a business requirement to do goods receipt if the shopping cart amount exceed USD 5000. To meet this requirement we have created a custom table. This custom table has th

  • Is it possible to run a JAR?

    My high school Computer Science teacher thinks it might be possible to run a JAR file in windows and have it run the java program (command promt type) in windows. I do not believe this is possible but he wanted me to check and see. Also is there any