We are looking to integrate Windchill PLM to SAP Integration. Our goal is transfer real time data (BOM, parts) to SAP. We are looking at options on what are the best options here.what are your thoughts on using SOAP based JMS queue concept?
We want to use SAP PI system instead of TIBCO and wanted to see if we need ESI framework in order to do real time integration?
Also what is the best way for error handling mechanism where in scenarios such as if sap pi server is down, can we monitor the failed messages from PTC PLM side and can we resend those message once the SAP PI is up.
You ca use ESI with a direct integration to PI (we do this for WTpart and BOMs).
ESI will provide you an OOTB framework for publishing . And can be customized depending odf your need.
just be sure of your functionnal scope. may be it will be less painfull to develop a full legacy interface ....
depending of trigger, Change Mgmt or direct sending, BOMs, multilevel or not, effectivities ....
Error handling can be done fron Windchill, more depending of the implementation of the "ESI send" workflow you will use or develop. You can imagine a Webservice who will check that PI is up before releasing the message ....
Yes, your right.
windchill-SAP integration need use windchill ESI only which is fully developed and tested.
-- warm regards Murali www.prism-ind.com India:+91 888-00-77476 USA :+01 281-86-77476
If you want to use the ESI i would ensure first that your numbering scheme follows the system given in the ESI interface.
So one part master in Windchill should be one part in SAP -- if your numbering doesn't follow this rule i'd consider building my own interface because this would break the internal logic of the interface.
By the way -- My personal thought is that this JMS thing makes the whole interface much more complicated than necessary. If you have some trouble it's really hard to find out the location where the problems come from because the code is very splitted up.
Add following rule for publishing bill of material in SAP
it will help you,
Level assemblly name Rev
0 ABC.asm 0
1 abc-01.asm 1
2 abc-01_1.asm 1
1 abc-02.asm 0
2 abc-02_2.asm 0
Before publish above assembly check
Number in windchill =number in SAP
Rev in windchill =Rev in SAP
If yes then do not publish below items.
Because information is already available in SAP.
If no then publish to SAP.
Originally on Windchill 10.1 M040 but recently 10.2 M010 we use ESI for integration with our SAP ECC 6.06 (ERP) system.
We also have SAP PI in our landscape but PTC has too much 'business logic' currently built into their ESI/TIBCO deployment to easily replace the OOTB TIBCO with PI.
Error reporting is basic and we've definitely had some issues in understanding some of the often 'cryptic' Failed ESI transaction responses. In some cases we've done some development work on better error handling 'wrappers' to the standard SAP BAPIs etc. being called.
Part numbering is critical. In our model Windchill 'owns' the creation of the Part number, which is passed down to SAP (Material number) upon Release. We assigned a SAP External Number Range for Material numbers in SAP and updated the Windchill Sequence (we run MS SQL Svr) assinged to the WTPart sub-types we use for ERP Parts/Materials to the same. Note; same for passing WTDocument sub-types to SAP DMS.
We're currently piloting the Process Plan -> SAP Routing functionality so would definitely be interested to learn how you progressed with your integration activities.
We have a similar situation where the SAP has its own number range assigned(Not live yet with SAP, but that is what I heard)
We use 10 digit smart part numbering scheme in Windchill.
We are running Windchill on Oracle. Would you explain more about Windchill Sequence?
I think, the best solution is,
Use SAP as Part Number generator. We are done same thing for 2 customer. One is using Oracle Apps and another one is using SAP. Both cases, we are sending request to ERP and get the part number from ERP and updating in Windchill Part number by using ESI only.
So, there is no numbering complicit here.
Need more help, contact to firstname.lastname@example.org M: +91 890-400-4246
We are running MS SQL across our landscape so I can't offer any Oracle specific examples but take a look at the PTC Windchill Customization Guide (~page 1845 in the 10.2 M010 version). It offers some good instruction and examples re; creating the DB sequence.
Note; we're also not using any sort of 'smart' numbering schemes in SAP or Windchill. For this type of functionality (particualrly on the Windchill side) we've found defining additional soft type attributes has been more beneficial and a lot less complex.
An example scenario could be; we have a Part sub-type (we'll call OurPartType) which we want to assign a unique ID starting at 20000000 and incrementing by 1 for each occurance.
For our use case we defined an External Number Range in SAP for Materials (T-Code MMNR) for 20000000 - 29999999.
We then defined a Sequence (non-modeled) in our Windchill MS SQL database using the following:
CREATE TABLE Admin.wt_sequence_wtourparttypeid (dummy CHAR(1), value BIGINT IDENTITY(20000000, 1))
CREATE PROCEDURE Admin.wt_get_next_sequence_wtourparttypeid @returnValue BIGINT OUTPUT
INSERT wt_sequence_wtourparttypeid (dummy) VALUES ('x')
SELECT @returnValue = SCOPE_IDENTITY()
The final step was to update the OIR for the sub-type Part OurPartType to call the Custom Sequence:
We did look at Part (Material) Number assignment integration back to SAP in the early days of our Windchill implementation but the benefits just were not there for us. In our scenario we were looking for a 'dumb' number sequence which was owned and issued by Windchill and SAP was aware not to use.
Defining the External Number Range for the Material in SAP and assigning this range to a Non-Modeled Datastore Sequence in Windchill provided a OOTB method to accomplish this without the need and cost of developing a number generator interface.
It also provides some benefits around business process timing, i.e. Parts are often created and live in Windchill for a period of time (during the Product Design phase) prior to being Released (via a completed ECN) to SAP. Having Windchill issue the number means we didn't have to use a thrid-party number range, create a Material shell in SAP, or in some other way 'block' the Material number required by WC. In a scenario in which SAP is down it also allows most of the WC functions to continue without impact.
I'm sure there are use cases in which an integrated approach would be of benefit, i.e. if the same number range was required to be 'shared' by Windchill created Parts and natively created Materials in SAP, but this wasn't a requirement for us.
This approach (External Number Range allocation) can also be used for Documents, Process Plans, etc.