Includes: Windchill API, Windchill REST Services, Info*Engine, UI Customization
Recently active
For Creo Parametric, I would like to store the "Controlled" versions of files in Windchill (Primarily things like symbols and manikin configuration files) but have Windchill do a nightly or hourly write of those files to shared network locations so that the common Robocopy method can be used to pull the files to the users local machines. (Creo has slow down issues when reading symbols and manikin poses from Windchill directly). Is this possible? Can I be pointed to the correct terminology or relevant help files. Even better would be if there is a way for Windchill to update the users local Creo Parametric files without needed to use RoboCopy. Thanks for any help or direction. (Using Creo 9 and Windchill 12. But should be moving to W13 soon)
Hi, I noticed that the columns with dates and time are not formatted the same in my report. Is there a way to format date and time properties in a Report Template in Query Builder? I thought maybe a database function or a java method would help, but I can not figure out which. Thank you,Maria
We have our Windchill servers deployed in Windows environments and have been stuck using command prompt and batch files to manage our servers... Not too long ago, we started on a journey of pipeline based configuration using Azure Devops. Officially PTC says they don't support Powershell.https://www.ptc.com/en/support/article/CS323668?&language=en&posno=3&q=powershell&source=searchBut I think I figured out how to at least get the environment variables from that handy windchill2.bat script. foreach ($line in $(cmd.exe /c "E:\ptc\Windchill\bin\windchill2.bat setenv && set")) { [System.Environment]::SetEnvironmentVariable($line.split("=")[0], $line.split("=")[1], [System.EnvironmentVariableTarget]::Process) } Comment below on how you're managing your deployments? What language(s) are you using?
I have a Spring scheduled method in Windchill and want to call some methods, but i get the erro that there is no active method context. So I tried to call the method via RemoteMethodServer.invoke(). This actually works but i always get the following error in the log:2023-12-07 10:44:13,675 ERROR [pool-14-thread-1] wt.method.client - RemoteMethodServer.invoke() called on default method server from within method server! Probable bad loopback code! java.lang.Exceptionat wt.method.RemoteMethodServer.logQuestionableOrBadInvokeCall(RemoteMethodServer.java:1581)at wt.method.RemoteMethodServer.invoke(RemoteMethodServer.java:647)at at.techsoft.ifactory.worker.components.QueueRetryMechanism.doRetry(QueueRetryMechanism.java:51)at at.techsoft.ifactory.worker.components.QueueRetryMechanism.retryFailedEntries(QueueRetryMechanism.java:31)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethod
I have been contemplating a way to provide 'local' autonumbering, but inside contexts- rather than using global database sequences to drive autonumbering, is there a way of having local iterative numbering without creating as many sequences as there are contexts?For example, you could achieve this based on whether a specific number is already in use?e.g. a specific context might start with an unique prefix, such as a product ID, and a subtype initial e.g.1111_DOC_*.The rest of the number could then be determined by whether the number is already is use e.g. if 1111_DOC_001 exists, try 1111_DOC_002, then *_003, until successful.I figured this could be possible, since when manually numbering objects, the 'number already in use' response is rather quick- though maybe not efficient enough to not overburden the system with requests when it needs to check if 900 numbers are valid to create before creating 1111_DOC_901.You could speed up execution by writing a custom java RuleAlgorithm class t
Hi,I have implemented Custom Revision Scheme following the article -->https://www.ptc.com/en/support/article/CS148182?source=searchI have the following content in my Verison Loader file<series name="CustomVersioning"><value>A</value><value>B</value><value>C</value><value>D</value><value>E</value></series>After revising the E.1, I am getting the following errorThe series value has reached its maximum value: E, series=CustomVersioningI wanted to know that how combinations like AA, AB, AC, AD are generated?Do we need to set this combinations in load file or is there any other way to implement?
I have an InfoEngine task that is querying Windchill for a document. See the following code for an example. This task works great on many customer servers without issue. On one customer server, about 50% of the time, List-ContentItems is returning a link that is different than it usually returns, and the page appears to be a login page. If anyone has any insight into why Windchill would be returning an invalid link to a login page 50% of the time, let me know. Valid Link: http://example.com:8020/Windchill/servlet/WindchillGW/wt.fv.master.StandardMasterService/doDirectDownload/SExampleFileName.pdf?folderId=60824325082&ft=FF&userid=48748377706&adId=52831251988&fileName=00000018a96b31&refsize=727814&mime=application/pdf&mk=wt.fv.master.StandardMasterService&ofn=SExampleFileName.pdf&c=93&riid=-1&sT=1701353872&sign=TBG9pmA%2FsEOoOVZ7gaxhDQ%3D%3D&site=http%3A%2F%2Fexample.com%3A8020%2FWindchill%2Fservlet%2FWindchillGW&AUTH_CODE=Hma
Hello,i'm trying to create via API an EPMDocument and upload to it a Creo/Elements Direct Modeling .sdpc file.Here is my java code:public static EPMDocument createNewModelingEPMDocument(String epmnumber, String sdpcfilename, String sd_gfxfilename, String model_id) throws PropertyVetoException, WTException, IOException { EPMDocument document = null; // Create new EPDocument from sdpc template EPMAuthoringAppType appType = EPMAuthoringAppType.toEPMAuthoringAppType("COCRMOD"); EPMDocumentType docType = EPMDocumentType.toEPMDocumentType("CADCOMPONENT"); EPMContextHelper.setApplication(EPMApplicationType.toEPMApplicationType("EPM")); File sdpcfile = new File(sdpcfilename); File sd_gfxfile = new File(sd_gfxfilename); document = EPMDocument.newEPMDocument(epmnumber, epmnumber, appType, docType, sdpcfile.getName().toLowerCase()); // Set creation location PDMLinkProduct creationContext = WindchillUtils.getProductByName("MY_PRODUCT"); WTContainerRef c_ref = WTContainerRef.newWTContainerRef(creat
Do we have any plugin to install Walk me feature?
I am trying to get objects creator in data utility. How to get Creator of Action item in DataUtilty which extends ActionItemDataUtility.
Schuetzinger, Christian Di 28.11, 19:19 Schuetzinger, Christian Dear PTC Team, I am currently working on my Masterthesis with the windchill modeler.Now I am at a point where i can't find sufficient material in the knowlege base.May I ask you if you can help me with my following problem:I am currently creating a windchill model for a car body.Now I want to assingn specific values to the blocks like lenght and weight. How is it possible to give the blocks the real value properties which can be used later on in the CAD enviroment like Creo.Example one block is the Front end. It shall have the block property h x w x d = 0,1m x 0,2m x 0,02m.How can I assign them?I hope you can help me with this issue. Many Thanks, Christian Schützinger
Is it possible to use manage replacement operation in more BOM?
Could you please share API imports used for same. It will be helpful.Reference topic link - https://community.ptc.com/t5/Windchill/Change-Object-type-using-API/m-p/302875#M35609
Hello All,I want to get the AddressedBy2 links from CN &CR which API I can use it?Thanks.
Hi, I wrote a SELECT statement that basically queries all Change Activities for all Change Orders (please ignore the * selector for now):SELECT*FROM WTCHANGEORDER2 INNER JOIN INCLUDEDIN2 ON WTCHANGEORDER2.branchiditerationinfo = INCLUDEDIN2.BRANCHIDA3A5 INNER JOIN WTCHANGEACTIVITY2 ON INCLUDEDIN2.BRANCHIDA3B5 = WTChangeActivity2.branchiditerationinfo Now I would like to convert this to a Windchill QuerySpec.What I am trying to do is to get attributes for both the Change Activity and the Change Order. For now I used the * selector but I would like to select attributes from WTChangeActivity2 and WtChangeOrder2. As of my intuition, you need to specify an "output" class for your query spec, so what class or type those objects from the Query spec belong to but in my case this would be mixed because I need attributes from both types. Is there a way how I can do this or do I need to split my query up (i.e. first query all Change Orders and then query all Change Activities
I think one of the first exercises when customizing Windchill is making use of Queryspec API to search for objects in the database. Given a number string, find me the Parts that match and do something with them. If we are taking input from the browser, what consideration must we do so that we do not open ourselves up to SQL Injection? Does the API already handle this for us internally? Given that I am providing the where clause a string value directly from the user's input, how do we make sure it does not contain another SQL statement? Is that where its done, checking before adding to where clause? I know that we can put checks on any exceptions that are thrown from bad input that can expose data. Just curious where developer's responsibilities lie and what PTC has already handled.
What is the use of AvailableAttributes.xml file?
When trying to compile the Windchill Customizations (developed originally using JDK 8/Windchill 11) using JDK 11 (Windchill 12) we are getting compilation issues due to several packages being accessible from multiple modules. For ex: org.w3c.dom package is now included in jdk11 jar by default (Module Path), but is also present in ie3rdpartylibs, xmlParserAPIs and dom4j jars (Class path). We understand that JDK 11 is enforcing a modularity check to ensure the same package is not referenced in multiple jars. However it is also understood that module-info.java is not necessary to be configured for JDK 8 to 11 migration. As long as the relevant jars are added to the classpath, the code should be able to compile using JDK 11 as well. How does PTC handle these issues when working with JDK 11 and Eclipse (version 4.16)?
Hello, Does anybody has suggestion on how to launch PSI in Linux Environment? I try to launch it using the setup file in the installer but it fails. I have previously launched it in Windows using the same setup file and it launches the GUI without any problem. Any suggestions on the same would be helpful, Thanks,Ramsha
Hi Community, I created a new flow by clicking new template from the templates page. But the flow gets stuck at the first step and gives an error that it should not give, what could be the reason for this? Even though I defined all the parameters correctly, nothing changed.Code:wt.doc.WTDocument doc = (wt.doc.WTDocument) primaryBusinessObject; docNumber=doc.getNumber(); docName=doc.getName(); Error:wt.workflow.engine.FailedExpressionException: wt.util.WTException: java.lang.NullPointerException Nested exception is: java.lang.NullPointerException Nested exception is: wt.util.WTException: java.lang.NullPointerException Nested exception is: java.lang.NullPointerException
Hi All I have a customization that displays the structure of a selected part with the columns being thier attributes in a JSP. All the columns are editable with textboxes in each row. I have a find and replace function in that page that allows me to replace text in mass. But I'm unable to do it as beyond a particular row count, when I try to find a text using document.getElementById it returns null. I tried the solution https://www.ptc.com/en/support/article/CS132804 which disables redrawing rows but still no luck. I'm able to do it only when I scroll through the entire table and load all the rows manually. Is there any workaround or is there any script that would load all rows of a table.
Hi community! I can send a task to more than one person, as in the image below.But I need to make a distribution within the group to determine who will perform these tasks.For this reason, how can I assign a task to more than one person with the 'accept task' button?
Initially posted in this topic Hi @HelesicPetr , I want to print different statements in different logger. Can you please help me here?For example, I want different loggers purpose wise. Please refer to the below section. private static final Logger LOGGER = LogManager.getLogger(LoggerExample.class ); private static final Logger LOGGER_PRE = LogManager.getLogger("LoggerExample_Pre"); private static final Logger LOGGER_SUMMARY = LogManager.getLogger("LoggerExample_Summary"); private static final Logger LOGGER_POST = LogManager.getLogger("LoggerExample_Post"); private static final Logger LOGGER_ERROR = LogManager.getLogger("LoggerExample_Error");
Hi community!I want to get the values of some attributes from the users from the task.When I define an attribute to the activity, I do this by selecting the required option, but when I do this, it wants to get that value as mandatory.How can I make attributes mandatory in task?
In Windchill Rest Services Product Management>getPartStructureI used $expand = Components($expand=Part,PartUse;$levels=max) API , It executed for 4 mins. To reduce execution time, i want to provide 3 field names in $select query. Kindly refer the attached JSON document to form the query to fetch the field 'PartNumber, ComXXXEngineeringSequences, ItemTypeComXXXIndustriesItemType'. I able to fetch two fields using query $expand = Components($expand=PartUse($select=ComXXXEngineeringSequences)) But when I tried to fetch ItemTypeComXXXIndustriesItemType using query $expand= Components($expand=Part($select=ItemTypeComPolarisindPolarisIndustriesItemType);$levels=max)It throwed error [ - The property 'ItemTypeComXXXItemType', used in a query expression, is not defined in type 'Part'.] Kindly check the attached file and let me know how to fetch 'PartNumber, ComXXXEngineeringSequences, ItemTypeComXXXIndustriesItemType' together.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.