Recently active
Step 7: Widget Lifecycle at RuntimeStep 8: Runtime APIs available to WidgetsStep 9: Runtime Callbacks Step 7: Widget Lifecycle at Runtime When a Widget is first created, the runtime will obtain any declared Properties by calling the runtimeProperties() function. The property values that were saved in the Mashup definition will be loaded into your object without your code being called in any way. After the Widget is loaded but before it’s displayed on the screen, the runtime will call renderHtml() for you to return the HTML for your object. The runtime will render that HTML into the appropriate place in the DOM. Immediately after that HTML is added to the DOM, you will be called with afterRender(). This is the time to do the various jQuery bindings (if you need any). It is only at this point that you can reference the actual DOM elements, and you should only do this using code such as: // note that this is a jQuery object var widg
Step 10: Building and ImportingStep 11: TipsStep 12: Next Steps Step 10: Building and Importing After you’ve completed your code updates, it’s time to build and import! Below are instructions for building with the framework you have set for the project. Build Extension with Ant Go to the Package explorer view.Right click on build-extension.xml.Hover over Run As and select Ant Build. Your console output will indicate BUILD SUCCESSFUL. This will build your project and create the extension zip in the your_project->build->distributions folder of your project. Build Extension with Gradle Right click on your project ->Gradle (STS)->Tasks Quick Launcher. Set Project from the drop-down menu to your project name and type Tasks as build.Press Enter. Your console window will display BUILD SUCCESSFUL. Your extension has been created and stored as a zip file in your_project->
Guide ConceptStep 1: Top Level LayoutStep 2: Import DataStep 3: Map MashupStep 4: Navigation Panel Discover how ThingWorx Widgets can be implemented in a compelling Mashup design. Guide Concept This project will introduce how to create complex user interfaces that are built by combining simple Widgets and basic styling. Following the steps in this guide, you will build a web application showing both geographic and table based information. We will teach you how to create a professional user interface that effectively conveys information to users. You'll learn how to Organize UI elements in a Mashup layoutUse the Repeater widget effectivelyUse Styles to customize UI elements within a Mashup NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL parts of this guide is 60 minutes Step 1: Top Level Layout A Mashup like this does take some time to assemble, but is built by layering simple Widgets.
Step 5: Collection WidgetStep 6: Customize CollectionStep 7: Detail Panel Step 5: Collection Widget A Collection widget is used to display information from a collection of Things. Similar to a Grid Widget, the Collection widget gives you complete control over how data is displayed by binding data to an embedded static Mashup. In the first part of this step we will create a static Mashup with Parameters bound to its widgets. Next, we will configure a Collection widget to use the static Mashup we create. In the next step we will customize the Collection styling. Create Static Mashup Click the Browse tab on the far left of Composer, in the Visualizations section, click Mashups .Click + New to create a Mashup.Select Static Mashup, then click OK. Name your Mashup TractorListFormatIf Project is not already set, click the + in the Project text box and select the PTCDefaultProject.Click Save.Click the Design tabIf Project is not
Step 8: Learn More About WidgetsStep 9: Next Steps Step 8: Learn More About Widgets For more details on how to use and customize Widgets highlighted in this guide, refer to: Widget Link to How-ToLayoutCustomizable and Responsive UIGaugeDisplay Property Values with a GaugeStyleDefine Your UI StyleNavigationCustomizable and Responsive UIGoogle MapDisplay Geolocation Data in Your UI Step 9: Next Steps Congratulations! You've successfully completed the Design an Effective UI guide, and learned best practices for building a complex Mashup that includes maps, menus, and detail sections all working together effectively for an enhanced user experience. Learn More We recommend the following resources to continue your learning experience: Capability Guide ExperienceObject-Oriented UI Design Tips Additional Resources If you have questions, issue
Hi, I would like to move the ExpandCollapeSelection to right side. Tried with below CSS but didn't get any solution. Also attached video for reference. Need your help ASAP. .tree-toggle::part(tree-toggle-icon){position:absolute !important;right:0px !important;}#root_ptcsgrid-120-bounding-box::part(tree-toggle-icon){position:absolute !important;right:0px !important;}
I am currently working on configurator application and it looks something like this We haveSome configurations on leftA Thing View with a model loaded in the middleA list of selected configuration on the rightI want achieve two things here.Some how get a list of all parts that are currently on this model and I will make them checked by default in the left menu.Hide and show specific parts based on my selection on the left menu. For example, when I unselect Bucket from the menu it should be removed from the model and when I check it , it comes back.This feature I want to add is similar to the Windchill Visualization option. But I don't know where to look for this in Thing Worx and what option of Thing View I need to update.
Hi all, is there any way to retrieve the token name using the token valuesThere are multiple entry for token name which has same token value. For example ui.testpassed= test passed , also test_passed = test passed. Need to clean up duplicateThanks in advance
Hi Expert Community,I have an application that requires to read data using Modbus serial at a fix rate (for example every 5 minutes). The complete data read by Modbus should be published using IoT Gateway MQTT. However an additional requirement is that using the System tag for DemandPoll, the MQTT client should trigger a new Modbus acquisition and also get the new set of values published immediately.Can you suggest how the scan rate in Modbus and in IoTGateway should be configured?Regards,
I have a mashup with an advanced grid that displays data coming from sql server database. I want to be able to add and remove rows in order to add or delete row data. I was able to add two two advanced grids. Grid one showed all my data and grid two was empty. I was only able to select multiple rows by holding ctrl button. That's the only way I could pass data to the other advanced grid. Is there another way of doing this? I want a user within the mashup to be able to add/delete rows.
Hello, i keep getting these info server stats every 30 mins and would like disable it. any suggestions?
Guide ConceptStep 1: Import SPC AcceleratorStep 2: Configure Properties for SPC monitoring Configure streaming asset properties for SPC monitoring. Guide Concept Note: This guide is intended only as a starting point and is not a fully developed or supported solution. This accelerator has been developed using ThingWorx 8.5 and should not be used with any previous versions of the software. This project introduces you to configuring Properties from your connected streaming assets for Statistical Process Control (SPC) monitoring. Following the steps in this guide, you will learn how multiple connected assets and their Properties can be displayed in a hierarchy tree. You will then configure these Properties using predetermined set points, and upper and lower control points for the assets. Finally, you will learn to navigate the monitoring of the Properties. We introduce some of the basic building blocks of an SPC accelera
Step 3: Monitor SPC PropertiesStep 4: Next Steps Step 3: Monitor SPC Properties Once the properties have been configured, you are ready to progress on to SPC monitoring. This is done by viewing the PTC.SPC.Monitoring_MU Mashup. NOTE: Once a property has been configured for SPC monitoring, 2-5 minutes must pass before the accelerator has collected enough streaming values to perform SPC calculations. During this time, you may see an item that has 2 OOC rules violated; “Collecting Enough Data to Begin Monitoring” and “… to Compute Capability”. Within Property SPC Status, click an item from the grid that has 0 in the OOC column. See that the Out of Control Rules area is blank, since there are no currently-violated SCP rules for that selected property. Both CP and CPK are above 1.0, showing that the process is capable. All the points in the charts are blue, as they do not violate any OOC rules. Within Property SPC Status, click an it
hi, i have a thing with several service each of them add a entry to stream when is executed, the process for add this entry is same on all services but not all services add entry, and i don´t know which is a problem. can you help me?
Hi Everyone, I am having troubles while creating Java extension for converting data from JSON to INFOTABLE, I have tried multiple methods and no seem to work. @ThingworxServiceDefinition(name = "JsontoInfo", description = "", category = "", isAllowOverride = false, aspects = {"isAsync:false" })@ThingworxServiceResult(name = "Result", description = "", baseType = "INFOTABLE", aspects = {"isEntityDataShape:true", "dataShape:DemoDS" })public InfoTable JsontoInfo(@ThingworxServiceParameter(name = "input", description = "", baseType = "JSON", aspects = {"defaultValue:{\"name\":\"Abcd\",\"salary\":25000,\"married\":true}" }) InfoTable input) {_logger.trace("Entering Service: JsontoInfo");_logger.trace("Exiting Service: JsontoInfo");return input;}ERROR: Unable to Invoke Service JsontoInfo on TestResJson2info : Cannot cast org.json.JSONObject to com.thingworx.types.InfoTable if anybody
Below is my code: //creating an infotablelet Log = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({infoTableName: "InfoTable",dataShapeName: "DataShape"}); //Defining date variablevar currentDate; //assigning valueList variable to my infoTable property that contains values (current it only has one row)var valuesList = Things["TestThing1"].infoTableThingProperty; //loop through the infotable abovefor(var i=0; i<valuesList.length; i++){// new object newEntry = {duration:valuesList[i].duration,source: valuesList[i].Source,Name: valuesList[i].Name,Type: valuesList[i].Type,StartTime: valuesList[i].StartTime,EndTime: valuesList[i].faultEndTime,Voltage: valuesList[i].Voltage,Text: valuesList[i].Text};//adding my object values to the infotableLog.AddRow(newEntry);} //adding my infotable to the stream var newLog = Things["SinkWorx.PwrSupplyError_Stream"].AddStreamEntries({values: Log /* INFOTABLE {"dataShape":"StreamEntryWithValues"} */});&nbs
Some background, we were having some issues with properties connecting that do not change often. We changed the push type of the property to "Always" and this allowed good quality. According to best practices though, we shouldn't do this for many properties. In the same article, it mentions setting the Cache time would pull from the Edge device so we tried this in hopes these properties can pull these static values and connect. Issue: We're having trouble with setting the cache time of a remote property via service. Here's the code, cacheTime grabbed from this article. // properties and addresses from Kepware propertiesAndAddresses = ["FlowMeterFlowRateAV","S7E_1501_1032.1032.3.DB74,DBW10",.....]; for(var i = 0; i < propertiesAndAddresses.length - 1; i+=2){ var aspects = { "tagAddress": propertiesAndAddresses[i+1], "scanRate": 500 }; me.SetRemotePropertyBinding({ propertyName: propertiesAndAddresses[i], // STRING aspects: aspects,// JSON cache
Guide ConceptStep 1: Completed ExampleStep 2: Define OrganizationStep 3: Security and PermissionsStep 4: Deploy ApplicationStep 5: Logging and TroubleshootingStep 6: Next Steps Guide Concept This project will introduce how to get your application ready for usage by actual users or ready to collect data. Following the steps in this guide, you will be ready to present your finished application to users so they can benefit from its functionality. Deploying your application provides the ability for users to access it from anywhere, anytime and enables your edge devices to communicate with your application 24/7. We will teach you how to deploy your ThingWorx IoT application to be ready for whatever experience you've molded it to be. You'll learn how to Create login screens, users and user groupsDefine security permissionsDeploy applicationIdentify and troubleshoot issues NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time t
Guide ConceptStep 1: Completed ExampleStep 2: Create Style DefinitionStep 3: Customize Style Definitions Convey information about IoT data effectively by customizing style definitions and implementing event-based logic Guide Concept This project will help you identify how you would like to create an experience for Users. Following the steps in this guide, you will use color schemes to convey information quickly and effectively, for example to alert users of critical events. With ThingWorx Composer, you can implement Styles and States in your Mashups to enhance your user experience. We will teach you how to create an affective IoT application experience that looks great and easy to navigate. How the UI is presented can influence users and their enjoyment of the application. You'll learn how to Create a Style DefinitionCustomize Style DefinitionsCreate and implement State DefinitionsImplement event-based state changes NOTE: This guid
Step 4: Create and Implement State DefinitionsStep 5: Implementing Event-Based State ChangesStep 6: Next Steps Step 4: Create and Implement State Definitions A state definition is a collection of style definitions, along with rules for when to apply each style definition. The rule plus the style definition is a state. In the HelloWorldPlayground Mashup, if the Gauge Widget goes to 10 and the Increment the Count button is clicked once again, the Gauge starts back at 0. This value change is displayed in the Line Chart when it is refreshed. Nevertheless, it would be helpful to have a way to show a user that they’re encroaching 10 and will have to restart, such as the Gauge changing colors in the section. This and many other uses is where State Definitions become useful and go hand and hand with Style Definitions. Create Style Definition to Represent State Change First, let’s create Style Definitions to represent the changes in the count. The default St
Hi Community, We created a grid using collection widget, which is working fine for us and is showing data as per expectation.But only two users are facing this issue that no data is loading for them on screen, but service is returning data in response. Although, I can see child mashup name in headers of network with Request Method as GET and Error code as 404.Is data loading on response and not on runtime because of this 404 error or can this be due to something else?Permissions seem to be working fine for user.
Guide ConceptStep 1: Create Thing ShapeStep 2: Add Properties to Thing ShapeStep 3: Next Steps Use Thing Shapes to create groups of related Properties Guide Concept Save time and effort by modeling a solution in ThingWorx using Thing Shapes to group Properties.A logical group of Properties can be applied to Things and Thing Templates. You'll learn how to Create a Thing ShapeAdd Properties to a Thing Shape NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete this guide is 30 minutes Step 1: Create Thing Shape In this section you will create a Thing Shape for sensor properties of a MXChip development board. Thing Shapes are components that contain Properties and Services. In Java programming terms, they are similar to an interface. Start on the Browse folder icon of ThingWorx Composer.Under the Modeling section of the left-hand navigation panel hover over Thing Shapes, then click the
Hello,I develop a thingworx application and our application is in a site that publishes us as an iframe. But in this way, the cookies do not work anymore. Indeed, the domain name on my browser is no longer the one of the Thingworx application. And I have the impression that it does not fit anymore. Is it possible to configure the cookie domain name so that it works as an iframe? Thank you for your help.
Guide ConceptThingWorx Analytics OverviewThingWorx Analytics Video GuideNext Steps A series of training videos for ThingWorx Analytics Guide Concept This guide provides a series of training videos covering ThingWorx Analytics Server and Platform Analytics. It is recommended that they be viewed in order. Additionally, a downloadable .zip with additional training materials is provided. You'll learn how to Use ThingWorx AnalyticsUnderstand the Analytics Thought ProcessBasic Analytics concepts (data types, variables, modeling)Descriptive AnalyticsPredictive Analytics modeling techniquesFamiliarity with other topics: Prescriptive Analytics, Clustering, Time Series, Anomaly DetectionAcquire basic knowledge of how to create an end-to-end Smart ApplicationDeepen your Foundation and Analytics understandingNOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete all parts of this guide is 12 hours ThingWo
Step 3: Creating Customer DataStep 4: Expanding Logistics ModelsStep 5: Next Steps Step 3: Creating Customer Data Now let’s begin creating the customer data. Just enough examples for us to understand what is happening at each step. Let’s create at least 4 customers by following the steps below: Open the Fizos.Customers.DataTable Data Table and go to the services tab.Open the AddDataTableEntries service to be executed. This service will allow us to create some general data to work with. You can create as many as you like for this test. Click the values parameter to start creating entries.After clicking + Add, and enter data for customers. Try to add at least 1 Factor data tag for each customer. Save your entry and create a second entry with any location and tags you like. We aren’t adding vehicles as of yet, but we will in the next section.After saving, don’t forget to execute the service with the two entries s
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.