Tuesday, January 17, 2012

Aras Innovator Orcad CIP CIS Integration

While looking around for a cheaper PLM solution I came across ARAS's open source model. The tool itself looked great, but I needed it to integrate with our Orcad CIP system we use from EMA. I quickly found out that there were commercial solutions to this in the $15k range, a lot more than I wanted to spend just for that feature. The other problem I'd encountered with this, and other PLM systems is that often they expect to be the center of the world when it comes to part data management. If you're a CIP user though then I bet like me you don't want to give up CIP's direct integration into Digikey, or Arrow, or your favorite vendor's catalog. I mean it's nice to be able to look up a part, make sure I can buy it at Arrow and Digikey for both large and small runs, then automatically have all that data populated in our database.

The goal of this project was to bring the component data from CIP into ARAS, be able to assign it to other parts in ARAS based on the BOMS coming out of Orcad CIS. All while having CIP be the only source of the actual component data. I should warn you that the following is likely the wrong way to do things, a massive hack, and quite possibly a mess.  I only put about two to three weeks worth of effort into this before I was pulled off.   I should also warn you that, like the blog title says, I am an electrical engineer.   People come to me when they want to know why they're seeing cross talk, or a board won't boot properly, not when they want to know the right design pattern, or syntax to use.

I put this together by basically reverse engineering how ARAS worked, asking questions on their forum, and a lot of trial and error. Saying reverse engineering makes it sound like I did something ARAS didn't want me to do, on the contrary they were very helpful to me on the forum, and in fact they pointed me to the tools and methods to do the reverse engineering in the first place. Below is the list of things I did to make this work.

All disclaimers aside here's what I  did:

  • Brought the CIP component data into Innovator as federated "CIP PARTS"
  • Made a custom database view in the MS SQL CIP database to get all the part descriptions into one database.
  • Made a fake part in Innovator called CIP PART BOM to act as the container for the CIP PARTS and overloaded it's onGet function to run my own code.
  • Made a new item in Innovator called CIP LOADED BOM to keep track of the relationship between CIP PARTS and Innovator Parts
  • Some other things I've likely forgotten at the moment but should come out in the following posts.

No comments:

Post a Comment