IBM Sterling Transformation Extender

Sterling Transformation Extender

Come for answers, stay for best practices. All we're missing is you.


#Sterling
#Supplychain
 View Only
  • 1.  Using a variable in terminators

    Posted 05/26/08 05:52 AM

    Originally posted by: SystemAdmin


    I am writing a map for Mainframe which will run in Batch mode. When i run the map on PC with <CR><LF> terminators it works. But when i upload the file on Mainframe, the <CR><LF>s are removed and map recieves the full file as one string of data and fails with maximum size error as it does not get any terminator. I want the terminator to be of variable type which should accept nothing as well as CRLF. Is anybody aware how can this be done?
    #DataExchange
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender


  • 2.  Re: Using a variable in terminators

    Posted 05/26/08 07:15 AM

    Originally posted by: cemeinz


    hi!

    switch to <NL>, because this works for Windows (design time) and should work for Mainframe (run time).
    #DataExchange
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender


  • 3.  Re: Using a variable in terminators

    Posted 05/26/08 08:06 AM

    Originally posted by: SystemAdmin


    When the data is sent to map on mainframe, it hasnt got any hex characters between two lines. Its just one big string of data. So i need to have none as one of the terminator options. And other to be <CR><LF>/<NL>.
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender


  • 4.  Re: Using a variable in terminators

    Posted 05/29/08 09:52 AM

    Originally posted by: SystemAdmin


    If the first record is fixed; i.e.

    field1 (10:10 bytes)
    field2 (10:10 bytes)
    then the terminator (1 byte)

    You define a field "terminator" as "syntax" and make it the last field in the first record. Then for each following record, you put the record terminator as "varible" , and it will list (in the drop down) the items you created as syntax. Do this for every record, then whatever is in the 21st byte for the first record will be the terminator for every subsequent record.

    What cemeinz is saying is, using <NL> is like saying, what ever platform I'm on, use what is normally the record term. I develop in Windows, <CR><LF>, but deploy in Unix <LF>, and using <NL> allows me to not have to change the terminator when I deploy.
    But what you're saying is the the <CR><LF> is removed and one record stops, and the next one starts with no data inbetween. If you can't identify the end of one record or the start of another, how can the map? If there is no hex value to make the determination, then the records have to be fixed.
    #IBM-Websphere-Transformation-Extender
    #DataExchange
    #IBMSterlingTransformationExtender


  • 5.  Re: Using a variable in terminators

    Posted 06/06/08 10:05 AM

    Originally posted by: jvanboga


    Ok, I may have missed something here but this is my understading....

    you're developing on the desktop, deploying to Mainframe. The input data doesn't contain terminators but your mapping it to a format that has terminators. Your map is able to read the data but your output doesn't appear to have the terminator.

    Are you developing with ASCII while the mainframe is EBCDIC? Have you looked at your MF output in hex? If so, did you see 0D0A where you thought it would be? If so, per cemeinz, changing your terminator to <NL> should solve the problem.

    The other thing is when you upload the file to the mainframe, depending on how you transport it you could convert the data to the mainframe's native. For example, in an FTP you can convert ASCII to EBCDIC and the other way around. You could also perform the conversion with a map. See the mapping examples that came with your install.

    Message was edited by: jvanboga
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender
    #DataExchange


  • 6.  Re: Using a variable in terminators

    Posted 06/06/08 09:30 AM

    Originally posted by: Staar


    Don't define it as a terminator or syntax at all. Instead, set the terminator for the record to None and add another field at the end instead whose size is Min 1 and Max 2. Set the range of this field in the record group to 0:1. In the component rule for this field specify: $ = <CR> | $ = <LF> | $ = <CR><LF> | $ = <NL>. That should do it if it's a fixed length record. If it's a delimited record you may need to tweak some other tree settings depending on the layout of the rest of the record but it still should work. Dont forget to check the trace to make sure the last/first fields are evaluating properly and test it with each possible terminator.
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender


  • 7.  Re: Using a variable in terminators

    Posted 06/06/08 10:07 AM

    Originally posted by: jvanboga


    <NL> actually does that in the background based on platform.
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender
    #DataExchange