Interfacing Legacy with JDE!

jdedebug

Active Member
Hi
I need an help on integrating Legacy with JDE OneWorld Xe. I have to integrate an legacy system which is having SQL Server as Data base. JDE is with SQL Server DB.

1. How to add only newly added records to Z files from Legacy DB? That is when U add some records into Legacy DB only those records newly added should only to be added to Z files. If you use JDE Table Conversion Batch application, it will add all records from Legacy DB to Z file. How to prevent this? OR Can I use FLAT File?
2.Sheduler for getting records from Z files to Transaction tables of JDE?

If you have any idea please share with me.

Regards
Bal
 
Hi. We (the company I work for, I mean) do a lot of such interfaces in almost every major project we get.

Some ideas: usually we tend to keep steps and processes separated. Selecting the records that must be passed on to the z-files is a matter of the legacy system or the person responsible for it. How it happens might change a lot.

Our customers sometimes write code into the legacy system to properly select the records and insert them into the z-file. Sometimes, they generate flat files (format might be CSV or positional, tough we tend to prefer positional, since we've developed a tool for dealing with positional files of all kinds).

How to control the records that are to be selected? Several ways. You can have a date/time field in the source table and select by some value (ie, all records which have date/time greater than the date/time I've performed the last interface).

You can have a status field and, everytime you send the record, you change the status to "SENT" and everytime you insert/change a record, you change the status to "NOT SENT".

You can add a trigger to the table you're interfacing and make this trigger insert the record into the z-file on the fly, so you end up building your z-file selection as you're working with the legacy system and after you run the UBE that gets data from z-file into transaction table, you purge the z-file.

Tip: if possible, make sure it's a one-way thing. Trying to control the interfacing from legacy to JDE both ways might be a pain.

Usually, we try to stick with the JDE part of the business, ie, build the z-file, if it doesn't exist, build the UBE that gets data from z-file to transaction file if it doesn't exist and let the customer handle the legacy part. In the project I'm currently assigned for, we have more than 40 interfaces. We've pretty much covered anything: flat-file, triggers, batch processing, legacy system inserting data into the z-file directly, etc.

Hope it helps.
 
Hi
Thanks a lot for your detailed reply.
I am having some more doubts on this:
1. Are the legacy people(client) will give everytime new flat file (with only
the records to be added to "z" file)
2. Can U please let me know what U mean by Positional format?
3. How the leagacy will write records to JDE - Z file?
4. How will you update legacy DB table field like "SENT" OR "NOT SENT"?
5. Will JDE allow us to add records into its tables on the FLY using "Legacy DB TRIGGERS"?

Please share your experience on interfacing with us.

Note: First time I am involved in interfacing.

Regards
Bal
 
Hi,
No problem, let's see if I can help a bit. Before I start: my experience (around 4-5 years) is only with Oneworld. I know nothing about WorldSoftware and I've never used Oneworld with A/S400 and DB2. Only Intel and Unix with Oracle and SQL Server.

1) Usually, the legacy people is responsible for the files. All we do is suggest some ways to handle the operation properly and avoid problems.

Flat files is one of the possibilities. This option suits you better when the data to be exchanged is usually new data, altough it works with any situation. For instance: the company has a legacy system to handle sales orders from their customers and every new sales order must be entered also into JD Edwards. So they produce a flat file with all the new sales orders and interface it with JDE. Flat files are great for that kind of stuff.

When your needs are more like replying to JD Edwards any operation performed over a record into a legacy system, then I think that using an intermediary table suits you better. It's easyer to handle all the operations (insert, update, delete), while flat files are better for inserting new records.

2) CSV is when we have a flat file with several different fields, each separated by a comma or any other mark character (@,#,*,.,;, etc).

Positional format is when we have a logical layout to the file that is based on the starting position and the ending position of the field. For instance: we have a file of 100 columns, where from column 1 to 10 there will be numeric data and it will be the equivalent to a primary key, from columns 11 to 50 there will be string data and it will be the equivalent to a description and so on and so forth.

To handle them, usually we get a single line of the file and then break it into several variables, according to the logical layout stablished previously. You can build an UBE that reads the file and then process each line. For each line, you have the data in the variables and then you can insert it into a z-file.

Again, you are not obliged to use it. We do it because it's very common around here (Brazil - we have this format as a standard format for electronic banking operations, such as paying supplyers or billing customers), people are used to it and we've built a tool that gives us power and flexibility to handle virtually any kind of layout.

3) It depends on how you are extracting the data from the legacy. If you have a flat file, you create a table convertion UBE from the flat file to the z-file. If you have data into a table outside JDE, you can create SQL (outside JDE, also) to handle the data and get it into the Z-file.

4) Again, it depends on the way you are extracting data. Usually, you modify your legacy programs to handle this control.

5) JDE's tables, in a last instance, are database tables into an Oracle, SQL Server or DB2 DBMS. So you can handle JDE's tables at the DBMS level fine. What you can't do is handling external tables from inside JDE, because it doesn't see those tables, only the tables created into JDE.

So, yes, you can create a trigger into an external table and make it populate an JDE table after any operation is performed. Please, do it carefully and only populate temporary tables such as the z-files, do not populate a transactional data table.

For instance: you have a system that must generate G/L records into F0911. You can build a trigger into your legacy system G/L table that after any operation will populate F0911Z1. Once the record is in it, it's just a matter of running the UBE that gets data from F0911Z1 to F0911.

Hope it helps.

Best.
 
Hi
Thanks a lot for your detailed reply.
We have decided to use Table Convertion Batch Application to copy records from legacy to "z" table in scheduler and mark the records copied as "Y" in the legacy table column.
Next time using Data selection filter records having flag "Y".
I have tried to update legacy table column(flag "Y") from Table Conversion Batch Application, but failed.
Any idea how to update legacy table column from TC Batch Application.

Once again thank you very much for your help.

Regards
Bal
 
Hi,

Sorry about the delay. We went live last week and I've been quite busy.

I'm not very experienced with TCs. Can't help you much with that one. I hope you can fugure it out.

Regards
 
Back
Top Bottom