Convert EBCDIC to ASCII

Hi all,
We are using XI 3.0 SP 10 and I have a scenario where I only need to retrieve a file (via FTP) and deliver it to a file share inhouse. There is no need for any mappings etc. But the file Iam retrieving is in EBCDIC and I would need to convert this into ASCII when delivering to fileshare. I have set up the communication channels and this works fine. But what would be the easiest way to convert the EBCDIC file to ASCII?
Regards,
Fredrik

Hi Fredrik,
  There is an alternate way of acehiving the same using a java program in the operatingsystem command option  of File adapter.
Steps:
1. Write a java program to read EBCDIC file and convert into ASCII file(Using codepages).
2.Create a jar for the above program and store it in a server directory.
3.Write one shell script/batch file call the java program and send command line parameters as filenames.
4.In XI File adapter -Operating system command use the Shellscript/Batch file name (Complete path)and give %F for filenames
  Eg. /usr/sap/serverdir/convert.sh %F %F
For more details refer the following link:
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm">XI File adapter</a>
Regards,
Ananth

Similar Messages

  • Problem in converting EBCDIC to ASCII in ODI

    Hi All,
    I am new to ODI.
    I am trying to convert EBCDIC file to ASCII using ODI. Each of my record is of length 140. There is no record separator, but in ODI we need to specify record separator.
    So how do i convert this file.
    I am using jdbc:snps:dbfile?ENCODING=cp037 in my data server.
    IS there any way by which i can tell ODI that the next record is after 140 characters???
    Thanks

    Yeah, I ended up going the Jython route.
    First I created a procedure called "ftpGetEbcdicFile" that takes the following options:
    1 Remote Server
    2 Remote Login
    3 Remote Password
    4 Remote Directory
    5 Remote Filename
    6 Local Directory
    7 Local Filename
    8 Record Size
    This procedure has 2 commands/steps:
    ftpGetBinary:
    import snpsftp
    # Retrieve procedure parameters
    remoteServer = '<%=odiRef.getOption("Remote Server")%>'
    remoteLogin = '<%=odiRef.getOption("Remote Login")%>'
    remotePassword = '<%=odiRef.getOption("Remote Password")%>'
    remoteDirectory = '<%=odiRef.getOption("Remote Directory")%>'
    remoteFilename = '<%=odiRef.getOption("Remote Filename")%>'
    localDirectory = '<%=odiRef.getOption("Local Directory")%>'
    localFilename = '<%=odiRef.getOption("Local Filename")%>'
    # Build full file paths
    remotePath = remoteDirectory + "/" + remoteFilename
    localPath = localDirectory + "/" + localFilename
    # Execute ftp
    ftp = snpsftp.SnpsFTP(remoteServer, remoteLogin, remotePassword)
    try:
         ftp.get(remotePath, localPath, 'BINARY')
    finally:
         ftp.close()
    and insertNewlines:
    # Retrieve procedure parameters
    localDirectory = '<%=odiRef.getOption("Local Directory")%>'
    localFilename = '<%=odiRef.getOption("Local Filename")%>'
    recordSize = <%=odiRef.getOption("Record Size")%>
    localPath = localDirectory + "/" + localFilename
    # There is probably a better way to do this
    tmpPath = localDirectory + "/" + localFilename + "~"
    inputFile = open(localPath, 'rb')
    outputFile = open(tmpPath, 'wb')
    while 1:
         line = inputFile.read(recordSize)
         if line:
              outputFile.write("%s%c" % (line, 0x15))
         else:
              break
    outputFile.close()
    inputFile.close()
    Then I created package that calls the procedure with the desired options. It still needs some work, but I think it will get the job done for now.
    Any advice or corrections from the ODI gurus out there?

  • Convert EBCDIC to ASCII and ASCII to EBCDIC in PI7.0 SP14

    Wea re going to be implementing PI7.0 SP14.
    I am writing the technical specification for an inbound/outbound interface into/out of ECC 6.0!
    I need to convert the File that is created out of SAP into EBCDIC in PI and for the inbound convert the file from EBCDIC into ASCII for import into ECC.
    I have more than one way to this...
    The ways I have found so far are:
    Use MessageTransformBean, use TextCodepageConversionBean, XmlAnonymizerBean, using the File Encoding field on the File/FTP Adapter, XSLT mapping or Java mapping!
    I have checked the OSS Note 821267, but this doesn't help.
    I am sure all these methods have pros and cons...
    What would be the most efficient method of changing this?  It will be running hourly and have upto 6000 entries an hour - each way!

    Hi Barry,
    I think the most efficient way in my thinking is XSLT and Java mapping.
    For java mapping u just need to get thye jar file.I believe that the encoding cp285 / cp500 is EBCIDIC. Try printing
    byte [] msg = .. // whatever
    System.out.println(new String(msg, "cp285"));
    if you get an exception saying Cp285 is unknown you may need an international version of the JRE, depends on the version you're using.
    Also u can use this in reverse.
    Please see this post:
    Re: Handling Packed decimals in XI
    regards
    Aashish Sinha
    Edited by: Aashish Sinha on Mar 25, 2008 6:07 PM

  • Convertion EBCDIC to ASCII

    Hi,
    I retrieved a message from AS400
    How to convert a EBCDIC Hexadecimal to ASCII String
    Where the message from AS400 is
    e2d64040d6f2f0f0f5f0f8f2f2f1f6f3f6f4f4f0f0f1f2f2020050822163644fc8e2c2c3f0f2f2f2
    Thanks

    I believe that the encoding cp285 is EBCIDIC. Try printing
    byte [] msg = .. // whatever
    System.out.println(new String(msg, "cp285"));

  • Convert EBCDIC to ASCII using sqlloader

    hi..
    i have .dat file which extract from mainframe in EBCDIC format n i have to load in table using sqlloader.
    here, my .ctl sample:
    AMTV2_RESERVE08 POSITION(857:861) DECIMAL(9,2),
    AMTV2_RESERVE09 POSITION(862:866) DECIMAL(9,2)
    here, my record layout
    10 IN4331A-AMTV2-RESERVE08
    PICTURE IS S9(7)V99
    USAGE IS COMP-3
    ELEMENT LENGTH IS 5
    POSITION IS 857
    10 IN4331A-AMTV2-RESERVE09
    PICTURE IS S9(7)V99
    USAGE IS COMP-3
    ELEMENT LENGTH IS 5
    POSITION IS 862
    when i run the sqlloader, i got this error:
    Invalid packed decimal nibble.
    what must i do?
    thanks

    i'm using this
    load data
    characterset we8ebcdic500
    infile '/xxxxx/abc.dat
    "fix 866"
    replace
    into table A
    TRAILING NULLCOLS
    AMTV2_RESERVE08 POSITION(857:861) DECIMAL(9,2),
    AMTV2_RESERVE09 POSITION(862:866) DECIMAL(9,2)
    i'm using windows OS and using PUTTY to run this sqlloader.
    but, i still have "Invalid packed decimal nibble" errors.. whats the prob with my .ctl file actually?

  • Convert JMS Headers from EBCDIC to ASCII when using JMS Bridge (WLS - WMQ)

    I have a Java app on Weblogic 11g using a Message Bridge to talk JMS with IBM Websphere MQ. The MQ server is running on IBM z/OS platform which uses EBCDIC encoding. I need to use the Weblogic message selector feature to filter messages on the bridge coming from Websphere MQ. But the JMS Headers of MSGs posted by WMQ are in EBCDIC format. How can I instruct MQ to convert the msg headers to ASCII before put on the bridge? Is there any flag on bindings config file? Or can I set some WMQ specific header before sending the msg on WLS side?
    Thanks in advance.

    Hi,
    Such option is not possible in weblogic but I think this property will help you with in MQ.
    Property - Convert EBCDIC newline
    Description - EBCDIC code pages contain a new line (NL) character that is not supported by the ASCII code pages (although some ISO variants of ASCII contain an equivalent). If messages are sent from a system that uses EBCDIC code pages (for example, a z/OS system) to a system that uses ASCII, you can control how the EBCDIC newline character is converted into ASCII format.
    The default value is NL_TO_LF, which means that the EBCDIC NL character (X'15') is converted to the ASCII line feed character LF (X'0A') for all EBCDIC to ASCII conversions. To convert the EBCDIC NL character according to the conversion tables on your operating system, click TABLE. Note that the results of a TABLE conversion can vary from platform to platform and from language to language; even on the same platform the results might vary if you use different coded character set identifiers (CCSIDs). To convert ISO CCSIDs using the TABLE method and use the NL_TO_LF method for all other CCSIDs, click ISO.
    Registry Stanza Key - ConvEBCDICNewline
    Also, the MQSeries (not MQSC) adapter provides the data conversion property may handle this conversion as well.
    Regards,
    Kal

  • EBCDIC to ASCII data conversion

    Hi,
    We have JDE system as source to bring data into BW. Howvever the format of the data is in EBCDIC and the data looks junk with out converting the same to ASCII.
    A quick research showed me that there are 3rd party tools to convert the data from EBCDIC to ASCII.
    Just wondering whether is there a function in BW system which takes care of this conversion?
    any thoughts? did any one come across this situation ?
    Inputs appreciated.
    Regards

    Hi
    Thanks for your response.
    Now where this class has to be applied ?...
    what does exactly this class do? can you share some insights on this ?
    Thanks

  • Importing COBOL copybook into OSB & converting it to ASCII

    Hi,
    I want to import a COBOL copybook(.cpy/.copy file) into OSB.
    Based on that copybook, there is an EBCDIC file which I want to convert into an ASCII file.
    I used Format Builder to import the copybook, but it does not show any indication whether the copybook got imported or not.
    Please help... this is urgent..

    There was a problem with the copybook... so it was not imported.
    The corrected copybook got imported perfectly.

  • GUIA Conversion EBCDIC to ASCII

    Dear Gurus!!
    I'm needing a manual or guide of the conversión EBCDIC to ASCII in the V5R3M0 iSeries. i570.
    Can you help me?
    Best Regards.
    Luis

    Hi Morga,
    it has nothing to do with the OS release. You can stay on EBCDIC because of that as you found out.
    But:
    All release newer than 4.6D are in ASCII and UNICODE ONLY!
    => If you want to upgrade to e.g. ECC 6.0, you MUST convert to ASCII first ...
    hope this helps,
    Regards
    Volker Gueldenpfennig, consolut.gmbh
    http://www.consolut.de - http://www.4soi.de - http://www.easymarketplace.de

  • Convert char to ascii code and vice versa

    HI
    Is there any function module to convert char to ascii code and vice versa.
    Thanks in advance

    Hi,
    be careful if you have unicode running in your system. URL_ASCII_CODE_GET is platform-dependent so it will return the internal HERX representation of the character in your system - which is hopefully and in most cases ASCII.
    Under unicode, we use double-byte characters here. I tried this function and the result CHAR_CODE is '00' regardless what character I specify for TRANS_CHAR. But the coding is so simple I corrected resultig in this sample code:
    [P]
    convert p_form to ASCII (internal) representation
      DATA:
        l_ofs TYPE syfdpos,
        l_len TYPE sy-linsz,
        l_ascii TYPE i.
      FIELD-SYMBOLS:
        <x> TYPE x.
      l_len = STRLEN( p_ascii ).
      DO l_len TIMES.
        l_ofs = sy-index - 1.
        ASSIGN p_ascii+l_ofs(1) TO <x> CASTING.
        l_ascii = <x>.
        WRITE: l_ascii.
      ENDDO.
    [/P]
    Here, for each character of string p_ascii, the internal (ASCII) representation is determined and written to the output list.
    Regards,
    Clemens

  • Problem convertting certain extended ascii characters

    I'm having problems with the extended ascii characters in the range 128-159. I'm working with SQL server environment using java. I originally had problems with characters in the range 128-159 when I did a 'select char_col from my_table' I always get junk when I try to retreive it from the ResultSet using the code 'String str = rs.getString(1)'. For example char_col would have the ascii character (in hex) '0x83' but when I retrieved it from the database, my str equaled '0x192'. I'm aware there is a gap in the range 128-159 in ISO-8859-1 charset. I've tracked the problem to be a charset issue converting the extended ascii characters in ISO-8859-1 into java's unicode charset.
    I looked on the forum and it said to try to specify the charset when I retreived it from the resultset so I did 'String str = new String(rs.getBytes(), "ISO-8859-1")' and it was able to read the characters 128-159 correctly except for five characters (129, 141, 143, 144, 157). These characters always returned the character 63 or 0x3f. Does anyone who what's happening here? How come these characters didn't work? Is there a workaround this? I need to use only use java and its default charsets and I don't want to switch to the windows Cp1252 charset cuz I'm using the java code in a unix environment as well.
    thanks.
    -B

    Normally your JDBC driver should understand the charset used in the database, and it should use that charset to produce a correct value for the result of getString(). However it does sometimes happen that the database is created by programs in some other language that ignore the database's charset and do their own encoding, bypassing the database's facilities. It is often difficult to deal with that problem, because the custodians of those other programs don't have a problem, everything is consistent for them, and they will not allow you to "repair" the database.
    I don't mean to say that really is your problem, it is a possibility though. You are using an SQL Server JDBC driver, aren't you? Does its connection URL allow you to specify the charset? If so, try specifying that SQL-Latin1 thing and see if it works.

  • Instrument I/O Assistant:Convertir les commandes ASCII en numérique?

    Bonjour à Tous,
    Je suis à la recherche des exemples d'applications et des liens sur les assistants E/S d'instruments dans le but de développer un driver pour power supply Haut Voltage.
    En effet ,dans le cadre de mon projet j'ai utilisé ces Assistants E/S directes pour communiquer (Commandes en ASCII ,Reponses en ASCII) avec des alimentations Haut Voltage de type MPS Spellman et le programme fonctionne très bien.
    Pour la suite de mon travail je voudrai utilier des commandes Numériques (Décimal) sur la face avant du CODE VI standard obtenu après conversion et avoir des réponses en numérique pour l'exploitation (Ci joint le Code VI Réalisé)
    EXP de commandes:  stx 12 EN1 Y lf = ON ( Enable )
                                        stx 12 EN0 z lf  = oFF (Disable)
                                        stx 12 V1=5 d lf : Pour appliquer 5Volt
    ,,,                               stx 12 V1=1000 X z lf : pour appliquer 1000 Volt
    Je sais pas si des fonctions existent sous Labview ou il faut écrire un autre de programme de calcul?  si quelqu'un a des remarques ou des suggestions à faire,,elles seront les bienvenues  Merci à bientot.
    Pièces jointes :
    TEST22 MPS.vi ‏15 KB

    Bonjour,
    Si je comprends bien, vous souhaitez convertir un valeur ASCII en valeur numérique. Vous pouvez utilisez la structure suivante:
    Cordialement
    Mathieu B
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Forum Aéronautique, Spatial et Défense. Avec la participation exceptionnelle de Bernard DUPRIEU, Res...

  • Two Spaces being converted to from ascii 32,32 to ascii 160,32

    Two Spaces being converted to from ascii 32,32 to ascii 160,32 when the page is
    loaded by the browser.
    This problem is exhibited when viewing an address page in personal data that contains
    two spaces in the address field. i.e.. APT102- 102 Elm St.
    We put debug traces in to display the ascii character values of the spaces before
    and after the record is brought up. This debug showed that the two spaces change
    from
    Before:      space,space or ASCII(32),ASCII(32)
    After:      ASCII(160) ASCII(32)
    This is causing the application to display a record change warning. This occurs
    on IE 5.5, 6.0, Netscape 6, but DOES NOT occur using the Opera 6 browser. For
    what it's worth, the database is Non-unicode.

    Forgot to add:
    This is WEBLOGIC SERVER 5.1 sp 9 running on Win2k

  • How to convert tdms to ascii files?

    Hello,
    I need to convert *.tdms files to an ascii file.  I have 16 channels and scalling coefficient information in the tdms file, With the TDMS-Image Viewer i can see the 1-D array waveform perfectly, but I cant write it to an ascii file. When I use a signalexpress.vi or the spreetsheat.vi for writing an LVM/ascii file,  information gets lost. (Red symbol at INPUT!!!!)
    Please answer me, because I dont have lots of experience with labview and an ascii file is more easier to handle for me! I found only export to matlab and exel, but i just want it in an ascii file.  Reading the tdms and opening it is no problem, but connecting the right blocks to the 1D array waveform without dataloss doesnt work.
    thank you for reading
    danny

    Thank you for reply,
    i have the new version 8.5.   With signalexpress.vis  i can do asciis but the red symbol (at input) is there so i dont want to get information lost.
    The tdms file has header information for scalling factors and unscalled data for 16 channels.
    so because tdms files are faster for writing i want to convert them to ascii with a Convertion Vi, but it seems that with an express vi he stops because it cant handle handle with the headerinformation.
    now i use the signalexess vi to write tdms data, before i did it manully by setting channel and group information.
    Please tell me if the red symbol AT input of a Signalexpress VI does matter?   its a 1D array wavefrom that goes in to the input.
    thank you for this discussion, i hope that i dont need to use the matlab import option for tdms!!
    greetings danny

  • EBCDIC to ASCII conversion

    Hello experts,
    i'm performing EBCDIC to ASCII  conversion in our system and the export (command R3SETUP dbextr.r3s) terminates with the error :
    EXP) TABLE: "MCDYNTYPEN"
    (EXP) TABLE: "MCDYNUM"
    DbSl Trace: Error -904 in function exec_cached_fetch
    (EXP) ERROR: DbSlExeRead: rc = 99, table "MCHA"
         (SQL error -904)
    error message returned by DbSl:
    DbSl Trace: SQL error -904 with reason code 13
    Resource limit exceeded. Job=323987/DEVCPC/R3LOAD
    #STOP: 20100416175601
    Thank you,

    Once more the installation stopped with error...
    ERROR 2010-07-07 17:33:50 DBR3LOADEXEC_IND_DB4ASCII R3loadPrepare:0
    Child exited with error: rc = 2                                
    child_pid = 3                                                  
    See logfile SAPAPPL0.log for further information
    ERROR 2010-07-07 17:34:33 DBR3LOADEXEC_IND_DB4ASCII R3loadPrepare:0 
    Child exited with error: rc = 2                                 
    child_pid = 3                                                   
    See logfile SAPAPPL1_10.log for further information
    .ERROR 2010-07-07 17:36:01 DBR3LOADEXEC_IND_DB4ASCII R3loadPrepare:0
    Processes started: 46                                          
    Ended with error:  2                                           
    load tool ended with error.                                    
    See above SAP*.log errors.
    Error: Can not unlock the LogWriter. 
    Possible reasons:                                                                   
    No permissions to set the lock             
    Error: Can not lock the LogWriter.                                  
    Possible reasons:                                                   
    No permissions to set the lock                                      
    Error: Can not unlock the LogWriter.                                
    ERROR 2010-07-07 17:36:04 DBR3LOADEXEC_IND_DB4ASCII InstallationDo:0
    Phase failed.
    The message in "SAPAPPL0.log" is that
    "(IMP) ERROR: SQL statement failed: DROP TABLE "MCHA"
    MCHA in *LIBL not table, view, or physical file.
    " and in "SAPAPPL1_10.log" is
    "#Trying to create primary key "S602+0"
    (IMP) ERROR: CREATE statement failed for object "S602"
         (ALTER TABLE R3DEVDATA/"S602" ADD CONSTRAINT "S602+0" PRIMARY KEY ( "MANDT", "SSOUR", "VRSIO", "SPMON", "SPTAG", "SPWOC", "SPBUP", "VKORG", "VTWEG", "ZZIDIWTIS", "PRODH", "MATNR", "WERKS"  ))
    DbSlExecute: rc = 99
    (SQL error -603)
    error message returned by DbSl:
    Unique index cannot be created because of duplicate keys. "

Maybe you are looking for

  • Ipone 5 stuck in recovery mode after failed update

    Hi I am stuck can anyone help? My Iphone 5s tried to do a o/s upgrade while on holiday and got  stuck in recovery mode saying it needed to connect to the pc. I connected waiting 1hr for the o/s software to download and extract only to see an error "T

  • Fixed width row for lines table

    Hi, I have a header and details tables in my template. The problem is that if there is more data for any of the column in lines, the row expands and hence the gap between footer and lines table is disturbed. Because of this reason I am unable to fix

  • How to create an xml sitemap

    I was asked to create a sitemap for one site and I had to do it the hard way. I had to upload the site, went to an online xml sitemap generator, generate the xml file and upload it. But I was wondering whether DW has an option to generate an xml site

  • No dynamic LOV in a PopUP column?

    Hi, </br></br> I've a named LOV-query for a column of the detail report on a master-detail-form. </br></br> the column is displayed as Popup LOV (named LOV) with that query: </br></br></br> IF :P306_KAT = 'KUNDE' THEN RETURN IF :P306_KAT = 'KUNDE' TH

  • Best way to use 3 ipods

    Hello All! I have a library which I store on an external hard drive which is composed of ripped CDs, Amazon.com downloads, and DRM+ and DRM- songs from the itunes store. My spouse has a 20 GB photo ipod that we used to share but which will now be her