View Full Version : Writing to flat file
I am having difficulty writing to a fixed length flat file.
I need to read records from an AS400 physical file then write them to a flat file on a 2000 server. I can read the file from the AS400 using execsql but am not sure how to write the records to the fixed length flat file, I have created a flat file schema to be used in the flow. I have tried using convertToString service but am getting no data in the string output of this service even though data is going in to the service.
Any help/quidence greatly appreciated
Regards
Tony Mundy
vinodravi
02-27-2003, 10:12
How many records do you fetch in one operation?
If your results from execSQL has only a list of strings inside then it is easy.
You can loop over the results structure and then do a simple map from each item to a string.
Hope this works.
Good luck!
Hi VR,
Thanks for the prompt reply.
How would you write the data out to the file?
Ta
Tony
vinodravi
02-27-2003, 12:21
You can write the data to a file using the utilities which are uploaded here in wmusers.
You can download that here.
Hopefully you are able to get the data from the database query now.
Thanks and Good Luck!
mcarlson
02-27-2003, 12:50
Specifically, take a look at the examples in Igor's Toolbox package in the File Share area. Here's a link: http://www.wmusers.com/shared/uploads/1631toolbox.zip
Mark
Once again, thanks for the quick response.
I can get the data from the AS400 without problem and populate a document list. I then need to convert this in to the flat file layout for which I have created a flatfile schema. My problem still lies in writing the records/fields that are in the flat file schema to the acctual flat file on the server. I have downloaded the zip file you mentioned Mark, problem is I think this has been written specifically for 4.6 rather than version 6 which we are on. One thing to note I have limited knowledge of Java.
The flow I have created goes something like this
connect (connect to As400)
execSQL (get the data from the as400)
LOOP (over all records in file retrieved)
MAP (from document list to flat file schema)
Thanks again
Tony
cypher555
02-27-2003, 17:49
I got something similar to work, here was what I did. First I leveraged the WmSamples.samples:IO example. It gives you a basic java filewriter level of IO. So, adding to your example I'd do the following:
connect
execSQL
openFilewriter (specifying filename)
LOOP
MAP (using convertToString from the flatFileIO to convert the document to a string -- STILL IN LOOP)
writeFileWriter (passing the string just created -- STILL IN LOOP)
ENDLOOP
flushFileWriter (you might need this inside the loop for large data)
closeFileWriter
That's basically what I did and it worked. I hope this helps!
Jamie Stanton
Innotrac
Another way is to use your execsql and add the following:
- stringtodocument service appling your flatfile template as input
- output of stringtodocument service to be input to documenttorecord service
- converttostring service using output of documenttorecord service as input for template and using your list string as data values input.
that's it and it will produce a flat file format of string data for you to use on Sql Server. Keep in mind that the high-level structure names of both converttostring inputs must match and your xml flatfile template must conform to webmethods rules. These 2 pieces are critical!
I am still no farther forward ( i'm beginning to think i'm
thick). What I am trying to do sounds so simple and yet is
proving quite the opposite. All I want to do is take an
AS400 Physical File (any number of records and 36 fields in
each) and from that create a flat file. My main problem is
getting results fro m convertToString (I don't get any).
I am noe trying something simple, one map service and
convertToString, I am mapping two fields in a document into
convertToString. I am supplying a Flat File schema in
convertToString which is very basic two fields. When I run
the service the output from convertToString in blank and the
error field is null.
Thanks again for any help
Regards
Tony Mundy
Tony,
I'm moving to 6.0 this week but here's my 2 cents.
Your problem seems to be convertToString not getting any
output. Check the following:
1. You are mapping your flat file record structure to the
Values input.
2. You are mapping your flat file template to the
EDITemplate input.
3. Step thru your flow and stop at convertToString. Then
view your Results tab. Double chech that the structure of
your template is the same as your flat file structure. The
problem you're describing I have seen before. If my memory
is correct it had to do with different structures between
the flat file template and the flat file record structure.
FlatFileRecList ------------- mapped to -------------
Values
--FlatFileRec
-----Field1
-----...
-----...
-----FieldN
boundnode
---FlatFileTemplate --------------- mapped to -----------
EDITemplate
Mapping the FlatFileRec level to Values or mapping the
boundnode level to EDITemplate could result in the null
error.
HTH
Hi Chris, thanks for the reply.
convertToString is getting input, very simply I have
specified a document with two fields and hard coded the
values.
EDITemplate is not used in convertToString in version 6. I
have stepped through and data is definatly getting into
convertToString.
Patrick Sclafani (patsclafani)
05-05-2003, 08:27
Tony,
Have you gotten anywhere with this ? I am having the same issue. I am now trying to duplicate the example from edi reference appendix A for FLR output. My result is a null error and an empty string. If you have had any success I would be interested to here what you did.
Pat Sclafani
Hello Tony and Patrick,
Try running the ConverttoString separately, by passing the values of the Record and the EDI Template through the input screen.
If this is working fine, then I guess, there is some problem with your mapping of the input variables to the ConverttoString service.
Good Luck
Hi,
I'm facing a similar problem wherein I have a document type based on a 4010.X12.846. I'm reading values from a database and populating this document (it works till here), and then calling the wm.b2b.edi:convertToString service by mapping this document type ref to the Values input in convertToString. The resultant string I get is empty. Can someone tell me what I missed?
Thanks
PB,
Please make sure the result 846 document structure that mapping to ffValues is exactly confirms with EDIFFSchema.
Are you seeing any error in logs?
HTH,
RMG
Hi
Found the solution. Apparently the BIS guide is incorrect in this case - or at least inconsistent with the WmEDISamples service and also with what really worked for me.
Although the document says that the value of input variable "ffschema" needs to be set the the EDI 846 schema, I had to blank out the value for the ffschema, and set the value of the document type (EDIFFSchema.X12.V4010:T846) to the input variable "nsrecord". (I followed the WmEDI samples here.)
And this worked for me.
PB
If you set either ffschema or nsrecord convertToString work as expected.But always using schema it is good.
HTH,
RMG
Raghu Seshadhri (Unregistered Guest)
05-12-2005, 07:41
Hi professionals,
I am trying to use flat file schema for converting XML data to positional EDI file . While creating flat file schema for fixed length what do I need to give in the Record length column in( Flat File structure). I am not getting a correct output when I use convert to string service . I feel my flat file schema creating is wrong .Anybody please help.
Thanks in advance
Regards
R
Raghu,
In Recordlength column (specify each record length would be)say if the records end at 30 then enter this number.
HTH,
RMG
Raghu Seshadhri (Unregistered Guest)
05-13-2005, 05:09
Hi,
Thanks RMG. My question is I am trying to define a record count for EDI (back end format) file . Each record if of different length. Then how do I give the lenght for the same.
Thanks & Regards
R
Choose the Delimiter instead of fixedlength and what you can do is when creating field definitions choosed the fixedlength option and specify the positions since your flatfile is variable fixed length.
HTH,
RMG