Recently active
I'm looking into utilizing the Universal Device Driver (UDD) for getting data from a REST API, however the API I need to communicate with is on a secure port requiring https. I've found two articles that specifically say TLS is not currently supported by UDD:https://www.ptc.com/en/support/article/CS446447?source=searchhttps://www.ptc.com/en/support/article/CS442775?source=searchSince the UDD profile is user-defined, I'm still curious if there's a way to implement TLS into the connection via the Javascript profile. Here are my questions I'm looking to get answered: Has anyone successfully implemented TLS/HTTPS calls via UDD?How does the back-end Script Engine make the calls to the remote host? Does the Script Engine use a particular library for the calls? Is TLS support on the UDD roadmap?
🌟New Best Practice: Using LLMs with ThingWorx — Version 2.0 Now Available!Everyone is talking about Generative AI, and Large Language Models (LLMs) continue to transform how organizations analyze and interact with data. Beyond chatbots and text generation, these models are increasingly being used to make sense of complex industrial data — from factory sensors to production analytics — helping teams make faster, smarter decisions.ThingWorx, PTC’s Industrial IoT platform, enables secure connectivity to machines, systems, and databases across the enterprise. By linking ThingWorx with an LLM, you can create an AI Assistant for industrial operations that provides insights, answers natural-language questions, and supports data-driven problem solving — all while keeping your operational data secure.🧩 What’s New in Version 2.0This new release builds on the original ThingWorx + LLM accelerator and introduces major new capabilities designed to make LLM integrations more powerful, flexible, and
Hi everyone, I’m working with a ThingWorx FileRepository where each subfolder contains only 3–4 images (like step images in an Experience).Whenever I add or delete images, I want to re-sort and rename all files sequentially — e.g., 1.png 2.png 3.png 4.png so the order always stays clean and consistent. Question: Given that each folder has only a few files (3–4 images), should I: Keep this simple in-ThingWorx loop (since performance impact is negligible), or Use a REST API batch rename approach for better scalability? Option 1 – In-ThingWorx loop (current working code) ✅ Simple and clear⚠️ Calls RenameFile() multiple times (one per file) const repoThing = Things[me.getFileRepository()]; for each (var row in existingExperienceStepFiles.rows) { var lastSlash = row.path.lastIndexOf("/"); var dir = row.path.substring(0, lastSlash); var newName = (++i) + ".png"; var newPath = dir + "/" + newName; repoThing.R
Hello All, I have an API gateway, which also acts as an OIDC IdP. There's a Windchill instance which is configured to serve APIs to that gateway with SSO. There's an external app, which uses that setup, and it works fine. I'd like to investigate an idea of connecting Navigate through the same API gateway, and not directly to Windchill. I expect to do some configuration on the ThingWorx side, but zero changes on the Windchill end, because other API gateway app(s) already work, so I assume that there's nothing to change. Before I spend time on trying to set it up, just wanted to check with the community -- is it a supported setup, and what kind of issues should I expect? Also, this might be a very lame question, but what do I need to configure on the ThingWorx side to make an external OIDC IdP work in this scenario? Thanks, Constantine
Hello Team, Am trying to upload some pdf files from thingworx repository to azure blob storage using REST API, Could you please share any sample code available for the same? below is what am trying var params = {url: "https://<AccountName>.blob.core.windows.net/<container>/<folder>?<sasToken>",headers: {"x-ms-blob-type": "BlockBlob"},content: fileContent, // Ensure this is raw file contentcontentType: "application/octet-stream",timeout: 60000 // 60 seconds};// Use ThingWorx HTTP POST/PUTvar result = Resources["ContentLoaderFunctions"].PutText(params); Not getting any result or error, please help
Hello everyone, I’d like to open up a discussion around the announcement that PTC is selling its industrial connectivity and IoT businesses — namely ThingWorx and Kepware — to TPG. Thingworx sold As someone working in industrial connectivity, IoT and manufacturing systems (and many of you probably are as well), this raises a number of questions and potential implications. I’d love to hear your thoughts. Below are some of the issues I believe we should consider: Potential positives The transaction is being promoted as a growth enabler: PTC says this move will allow the ThingWorx and Kepware businesses to “gain additional resources for growth” under TPG. PTC For users of ThingWorx this could mean heavier investment, new features, better connectivity, or stronger backing — depending on how TPG steers the business. The shift might allow PTC to focus more on its core “Intelligent Product Lifecycle” vision (CAD, PLM, ALM, SLM) — which could mean clearer strat
Hi everyone, While experimenting with InfoTables inside a ThingWorx service, I ran into some confusion regarding a documentation example that seems to contradict actual platform behavior. I’d like to get clarification (and maybe spark some discussion) around this. Documentation Example In the documentation , I found the following pattern: var referencedInfoTable = Things["thingName"].myInfoTable; var tableLength = referencedInfoTable.rows.length; for (let i = 0; i < tableLength; i++) { referencedInfoTable.rows[i] = { field1: i, field2: i * 2, field3: i * 3 }; } Things["thingName"].myInfoTable = referencedInfoTable; // Comment from docs: // "Because you are not using .AddRow() it doesn't require access to the referenced object's .AddRow() method, // therefore it doesn't need to access the cache." The Problem When this code runs in ThingWorx (especially versions 9+ and 10+), it throws: class org.mozilla.javascript.NativeObject cannot be
Hello,Im sitting with the grid widget in a mashup and have bound an infotable to the data property and have now also bound other data that is suppose to be "child" data to the first data property. How do I successfully make the expandable functionality in the grid widget work? I've tried to bind the "child" data to the ChildData property of the grid widget and the "+" buttons are showed in the mashup but nothing happends (not expanding/showing child data) when i click the "+" buttons. Additionally, no clear expandable event seem to exist for the grid widget. Anyone here with Child data configuration knowledge for grid widget in Thingworx? Thanks in advance.Sincerely,Pontus Koontz
When using drivers with HMI applications like InTouch or Ignition, the tag in its database could have address modifiers or simply the tag type to let the Modbus driver know that you're looking for a floating point that is using more than one register. It appears that there's no way to accomplish the same thing when using KEPServerEX. Instead of a Modbus driver specifically written for Intouch or Ignition HMI applications.The only option is to manually create tags inside of KEPServerEX and then read those from the HMI?
Getting below Error IoT Gateway Failed to connect to server: '127.0.0.1:57212'. Please verify this connection information is correct and that the host can be reached.
Hello All,I had created a thing (assigned value stream) programmatically and deleted programmatically (first value stream then thing).Now, Thing is not visible in composer, there is no ghost entity, no reference in any data table. Still some time it appears in application log as error that thing not found. Any suggestion to move further.
The Plant site is looking to display the RTPPM KPI dashboard on a 42-inch screen in a production environment. However, the current layout leaves a lot of unused white space, which makes it less effective for large-screen visibility.Is there a way to:Adjust the layout or resolution to better utilize the screen space?Enable a full-screen or wallboard mode?Customize the dashboard view to show more data or machine statuses in a compact format?Any suggestions, configuration tips, or examples from similar setups would be greatly appreciated.Thanks in advance!
Hello everyone, I have a setup where I’m working with a main project (Project A) that contains all the Things with configurations for two sub-modules: Project A – SubModule 1 Project A – SubModule 2 Each sub-module is component of Project A, and all configurations are stored in Project A’s Things.We have already published Project A as an extension on the production server, so both sub-modules are currently working independently (i.e., there’s no direct dependency or linkage between SubModule 1 and SubModule 2). Now, we have a new requirement where we need to access data from SubModule 1 inside SubModule 2.However, due to the independent structure and the way Project A is packaged, I cannot simply make one module depend on the other. 💡 My current idea: I’m considering creating a ThingTemplate inside the main Project A, and then creating corresponding Things for both SubModules 1 and 2 based on that template.I could then write shared services inside this template and use t
Hi, i am working on a requirement where i need create, delete and edit a row in a grid widget.Creating/adding a new row is working fine but i am having problem in restricting edit option. I have 4 columns in my grid col_a, col_b,col_c and col_d. Out of these 4 columns, col_a and col_b are keys for my data shape so should be not be allowed for editing. And only col_c and col_d should provide edit option. currently if i modify column properties and make keep col_c and col_d as editable then i am not getting col_a and col_b when i try to add a row. If i keep all 4 columns as editable then i cannot restrict user to edit col_a and col_b which are key fields.
Hi everyone,I’ve noticed that a few mobile apps (especially those that stream or load dynamic content) start lagging or sometimes stop responding when my phone is connected through certain IoT devices — like smart routers or connected displays.The internet connection itself seems stable, and other apps run fine. The slowdown mostly happens while watching longer videos or syncing data with connected devices.I’ve already tried:Restarting the phone and routerReconnecting to Wi-FiDisabling background apps and clearing cacheCould this be related to how IoT devices handle data routing or background syncing?Would appreciate any suggestions or settings that helped others improve app performance with connected devices.Thanks in advance!
Iam currently using the thingworx version 9.3.5,iam planning to upgrade the postgresql version 15.x,where it will support or not ,if any other postgresql version are available from 14.x to 15,I check in Release advisor for thingworx version 9.3.5 will support till postgresql version 13.x,even though whethere it is possible to use any postgresql version 14 or 15 ?
Hi all, I am experiencing strange behavior using QueryBooleanPropertyHistory among nearly identical things. If I specify start and end date I see data on both things, as expected: However, if I only specify end date, on one thing I get data but on the other I do not: Why would there be different behavior for one versus the other? The things are created identically from the same template. Version 10.0.0.
Little late on this, but is there a way to do this for an Infotable property? And if possible, do you have an example syntax for it?
Hi all, I am aware that you can set a mashup parameter using a URL for example:<<THINGWORX>>/Mashups/TestMashup?thingName=TestThing However, I have a use case where I would like to preload an infotable property into the URL. Is this possible? And if it is does anyone know the syntax?
Hi everyone, I have a mashup setup with a popup where user can create a new entry.When the button on this popup is clicked, it first creates a new entry in the database through a ThingWorx service.Once the service completes successfully, a new popup opens where the user continues the process. The issue I observed is that some users click the button multiple times, because the service execution takes around 1–2 seconds before the new popup appears — this causes multiple duplicate entries in the database. To fix this, I changed the logic so that the button is disabled immediately after the first click, and it is only re-enabled after the service is complete.This works well when everything runs fine. However, I now have one new issue:If the service fails (e.g., timeout, backend issue, or validation error), the button remains disabled forever, since I am only using the “ServiceInvokeCompleted” event. My question: Is there a way in ThingWorx Mashup to detect servi
The linux installer for Foundation 10.0.1 and Flow 10.0.1 always fail with the following error:Configuring Installer... Executing ***unknown variable ccif.dir.openssl.runnable***openssl Error running ***unknown variable ccif.dir.openssl.runnable***openssl req -config ***unknown variable ccif.dir.openssl.config***openssl.cnf -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem -subj "/C=US/ST=New COUNTRY/L=SOMEWHERE /O=.../OU=.../CN=.../emailAddress=...": /bin/sh: line 1: ***unknown variable ccif.dir.openssl.runnable***openssl: command not found [16:54:37] Failed to configure installation RuntimeI finally gave up and manually installed Foundation and am now experiencing the same problem with Flow and there is no manual way to install Flow that I'm aware of so now I'm stuck.The openssl command is available (version 3.2.2.4) but it looks to fail injecting variables called ccif.dir.openssl.runnable and ccid.dir.openssl.config. There are other ccif.* variables:#
This isn't directly a Thingworx problem but for the past several days at least I have found the PTC Knowledge base search page to be broken. The page loads the normal PTC header and footer but no additional content appears on the page making the knowledge base resource unusable and inaccessible. The issue persists through a cache clear and computer reboot and occurs in both Firefox and Edge browsers.Does anyone else find this issue? I search the knowledge base frequently when developing and would like to continue doing so.
I have a mashup where im using the service GetProperties, in the Data Properties section i have the checkbox "Automatically update values when new values are available." selected. When I run my mashup passing the appkey through the link that access the mashup when I use my admin user it run properly the Data Propertie I checked, but when I change the appkey to my viewer user it doesnt work properly.I have given permission to the user in the Run Time permissions i checked every box as Allow, and in the visibility I inserted the user organization, for both the mashup and thing. Also in thr User Profile the option for Subsystem is also checked.I dont know what am I doing wrong and why when I change the appkey to my user that's not an admin the "Automatically update values when new values are available." doesnt work properly in my mashup. Any suggestions?
As per the original post. Hello, I am using ThingWorx 9.7.1-b346, I have imported above extension 'CommunitySupport_V1.0.2.zip' and added OpenStreetMap in mashup but while View Mashup, I am facing below error message: Unable to serialize JSONObject field - unsupported class : org.mozilla.javascript.ConsString. I cannot view the map on view mashup. Please suggest. Thanks.
I have attempted to connect to the Siemens TP900 OPCUA server with kepserverEx and am unable to do so, but I have no issues with the Unified Automation UaExpert application: With keptserverEx, I follow these steps but am unable to succeed. As it was not functioning in the certificates, I used the one I had imported Unified for OPCUASERVER, but nothing happened. I restarted the runtime and the server, but it still does not work.
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.