Skip to main content
avillanueva
23-Emerald I
23-Emerald I
May 17, 2022
Question

So how are you managing your Windchill code?

  • May 17, 2022
  • 2 replies
  • 4809 views

Curious about best practices and how others manage their Windchill code. Always looking for better ways and tips. Obviously this depends upon the OS you use for your servers and your chosen IDE.  Let me start. I've taken different approaches over the years but since I mainly a single developer, its been ok. The occasional intern does present config management challenges. 

IDE: Eclipse

Windchill OS: Redhat Linux

Source Control: GIT/Bitbucket/Jira

Environments: Test/Prod but looking to build out Dev with next upgrade (long story).

Process: Code changes against Jira issues. Compile in IDE and copy to Linux side to Test Env. Execute Jira test scripts. Once tests pass, push code changes into Bitbucket tied to Jira ticket. Plan downtime to move code changes to Production. Process to move code to Prod is same (copy from landing place where I posted last Test server copy). Yes, I am using wtSafeArea and ant scripts to push into codebases.

Any suggestion? Share your process?

2 replies

16-Pearl
May 17, 2022

Hi,

 

I really appreciate that you have started this thread. 

 

We have four environments DEV/TEST/QA/PRD. For each environment we have parallel GIT repository. Rehost is very common to make sure it will work on prod.

 

I follow the Windchill folder structure for code management.

  • src : for all source code changes
  • wtsafearea : new and changed windchill files like jsp
  • wtCustom : custom states 
  • load files : everything custom that can be loaded , through load from files or manually through UI
  • other parallel Windchill folder structure which deploy customization doesn't support e.g. conf/wvs.agent.ini

Deployment is simple. Copy all the changes from GIT and deploy to Windchill. We use ant to deploy majority of the stuffs. 

 

Process is like this.

 

DEV : Almost a nice play ground for developers. Multiple GIT repository check-in. After all development we finally rehost DEV again and verify code and deployment works. 

 

TEST : Manual copy of code from DEV to TEST. Rehost TEST and deploy the code. Verify all the functionalities and check for regression. 

All the issues found needs to be fixed on DEV first and then we move to TEST. 

 

QA : Once we have go -ahead on TEST. Manual copy of code from TEST to QA. Rehost deploy the code. Again verify all functionalities.

This is final check point before prd. Go no go decision happens here. 

 

PRD : Same Manual code copy from OQ. Take production down. Take necessary backups.

Deploy customization. Verification. Go live or rollback. 

 

Sorry for long reply. Hope you find this helpful. 

 

Regards

Ajit 

 

avillanueva
23-Emerald I
23-Emerald I
May 18, 2022

Curious about your GIT integration. It seems like your Dev environments have Windchill loaded. How much of that do you manage in GIT? Is it just source or are you managing compiled classes to? Here is an example of mine. I've tried to be religious about linking Jira issues to commits in BitBucket. I think I need to amend my steps to pull from repository not from local compiled classes in Eclipse. I can see potential for error here or at least create a separate build environment. Just might be too much overhead for my small operation. 

avillanueva_0-1652874964800.png

 

HelesicPetr
22-Sapphire II
22-Sapphire II
May 18, 2022

Hi @avillanueva 

I use SVN.

In my case I have different folder structure which follows customers then Windchill structure.  

In SVN I keep just java source.

I only keep Classes in a package committed in SVN which are deployed on production server. 

 

HelesicPetr_0-1652876006080.png

 

PetrH

HelesicPetr
22-Sapphire II
22-Sapphire II
May 18, 2022

Hi @avillanueva 

I'm also curious :D.

IDE: IntelliJ Idea

OS: Windows

Source Control: just SVN

Environments: Develop/Test/Production

 

I have more customers so I need to keep one project for one main Windchill version with right version of Java and wch library. 

For each customer I keep one module with source code. Also I have one module to share methods which are used everywhere.

 

Deployment depend on Customers restrictions. Sometimes it is complicated because the process is fully manual work. copy files/ update properties/ configs atc.

In another cases there is a full automatization with scripts that they do everything for you in one doubleclick. 

 

I guess that interesting information is that my IDE is installed on computer without Windchill installation. I use only libraries from specific Windchill versions.

 

in other hand if I need to create new object soft types in Windchill I use the Eclipse as described in development manual or help.

There is some procedure to generate SQL scripts to create correct tables in Windchill database which I was not able to reproduce with IntelliJIdea.

 

PetrH

avillanueva
23-Emerald I
23-Emerald I
May 18, 2022

Same here as for developing on system without Windchill installed. I just had to make sure the codebase and library jars were copied across. Yes, looks like moving files to higher environments is the same all around. I only have 200+ modified files so its not hard to keep track of them. Just need to ensure that you keep timestamps the same when moving so its easier to see that files are identical. It does seem like extra work where I post to my home area (mirror of wtSafeArea) then copy to Windchill's wtSafeArea. I guess I can learn ant better and write some scripts to shuffle files.