Unable to set the recorded values in the field while playing the recording - katalon-studio

Unable to set the recorded data to the field (which was recorded) while re-playing the test case.
I have used absolute XPath as a temporary solution but it is not the best practice as mentioned n Katalon site.
Each piece of data for the recorded field must be inserted after playing the test cases but not all data is inserted to the specified field.

Related

Best Practice to Store Simulation Results

Dear Anylogic Community,
I am struggling with finding the right approach for storing my simulation results. I have datasets created that keep track of every value I am interested in. They live in Main (see below)
My aim is to do a parameter variation experiment. In every run, I change the value for p_nDrones (see below)
After the experiment, I would like to store all the datasets in one excel sheet.
However, when I do the parameter variation experiment and afterwards check the log of the dataset (datasets_log), the changed values do not even show up (2 is the value I did set up in the normal simulation).
Now my question. Do I need to create another type of dataset if I want to track the values that are produced in the experiments? Why are they not stored after executing the experiment?
I really would appreciate if someone could share the best way to set up this export of experiment results. I would like to store the whole time series for every dataset.
Thank you!
Best option would be to write the outputs to some external file at the end of each model run.
If you want to use Excel, which I personally would not advise, even though it has a nice excelFile.writeDataSet() function, you can.
I would rather write the data to a text file as you will have much for control over the writing, the file itself, it is thread-safe, and useable in many many more platforms than Microsoft Excel.
See my example below:
Setup parameters in your model that you will write the data to at the end of the model of type TextFile. Here I used the model on destroy code to write out the data from the data sets.
Here you can immediately see the benefit of using the text file! You can add the number of drones we are simulating (or scenario name or any other parameter) in a column, whereas with Excel this would be a pain...
Now you can pass your specific text file to the model to use by adding it to the parameter variation page, providing it to the model through the parameters.
You will see that I also set up some headers for the text file in the Initial Experiment setup part, and then at the very end of the experiment, I close the text files in the After experiment section so that the text files can be used.
Here is the result if you simply right-click on the text files and open them in Excel. (Excel will always have a purpose, even if it is just to open text files ;-) )

Smartsheet: Identifying location of a Column ID without a Sheet ID

We have a custom implementation of the SmartSheet Bridge which is returning the following error in our Run Log:
"The value for cell in column 3928364019935108, INPUT, did not conform to the strict requirements for type CHECKBOX."
The problem is we don't know which sheet this is occurring in which is making it hard to understand what the root cause of the problem is. Is there a way to identify the location of a column without a Sheet ID? Note we have six-thousand Sheets and it's not practical to do this manually.
The path of least resistance for you might be to contact Smartsheet support to explain your scenario and ask for their help in identifying the sheet.
If Smartsheet support is unable to assist, then you could write a script that'd programmatically iterate through all of the sheets that the specified account has access to doing the following for each sheet:
Issue a Get Column request the current sheet.
If the request succeeds, you've found the sheet that contains the specified column --> capture/output sheet ID and sheet name and exit the loop (end processing).
If the request fails (i.e., returns a 404 error code to indicate column not found), move on to the next sheet.
Note that if you're program needs to issue hundreds or thousands of Get Column requests before it finds the sheet and ends processing -- you'll need to insert pauses between batches of requests so that you don't get a rate limiting error (error code 429). The Smartsheet API docs contain info about rate limiting.
If you need help with the script, update your question with a language tag to indicate what language you're going to be using, and add a comment here on my answer. Depending on the language you're using, I may be able to provide more help regarding the specifics of the script.

Logging a counter value to a batch name in siemens TIA Portal

I need to create a program for 1214 PLC in TIA Portal and a Comfort HMI that counts several products using a count up and stores that value to a specific batch name.
For every new batch, the operator would enter a new batch name, and the counter will count the products for that specific batch.
The count needs to be displayed on the HMI screen along with the history of batches and the associated final count number.
So basically, I need a way to attach a name (batch_id) to a final count and log that pair for later reference.
Can someone give me some advice as to how I would do that?
To clarify, I need help with storing and displaying the counter value and batch names, not with the counting itself.
I appreciate any help you can provide.
There are a few ways to do this (yes, you can use PLC data logs and no they don't have to create a separate file for each batch), but I am posting here what I would do, because it's convenient for data backups, I have taken this approach before, and know it works.
Write the count value (generated in the PLC), the batch value and the timestamp to a CSV file on a USB drive inserted into the Comfort HMI, using VBScripts on the HMI.
Split the files regularly - e.g. daily, weekly or monthly, to minimize the risk of any single file becoming corrupt and you losing the data. More detail follows.
Data Storage:
Count is calculated in the PLC. Batch ID and timestamp can be stored in the PLC (if you want it to be retentive after a power cut), or in the HMI.
You will have Comfort HMI tags representing each of these three values. Once a batch is complete, call a VB script that writes the values of these values to CSV file. There are application examples and forum entries on SIOS about this.
Data display as a table:
Read the CSV file values according to your filter criteria (day, time range, batch ID, batch ID range, etc) using a VB script. Write to internal HMI tags.
Display these internal HMI tags as IO fields on a Comfort panel screen. This is your custom-built table and yes it's the only way to do it unless you want to create a custom control and install it on the panel.
Backing up:
Disable logging and check USB is not in use using a script, e.g. this: https://support.industry.siemens.com/cs/document/89855157
Remove the USB, copy the files, re-insert it and activate logging again.
(you implement the 'disable' and 'activate' logging features, e.g. using an internal BOOL tag that prevents a script from executing).
There is a lot of info on SIOS about these topics, as Application Examples, FAQs and forum entries.
support.industry.siemens.com
The PLC log method works, but data backup and especially display can become a pain.

Difference between before_save and after_save using real time entities

I want to know the exact difference between before_save and after_save. Now, I have read the documentation and I know the difference as per their name. But, I want to know the exact difference using real time entities. It would be great if you provide any example.
Before Save: The functionality written here will be called when you hit the save button and before the record is stored in the database.
Usage: Before save can be used normally. For a simple eg, lets say we can modify or add a field value just before the record goes into the database.
After Save: The functionality written here will be called when you hit the save button and after the record is stored in the database.
Usage: To help you understand the use of after_save, Lets take a scenario where we have Student record containing SL.No, Name, Course and Student No.
Lets say the SL.No is an auto incrementing field and Student no is the combination of the first letter of the Course and the SL.No.
Now here the auto incremented no wont exist untill the record is saved in the database, hence you wont get the required Student No unless the record is saved. So after_save here helps since the logic is executed after the record has been saved, to which an auto incremented no is already generated.

When a teacher add an assignment, all the student names appear. How to do it?

I have a task to create a database to track student results in a school. I came out with a set of relationships between the tables according to the 3 forms of normalisation(I hope I got it right. If not, please enlighten me).
One feature that I want to put in the Filemaker app is that when a teacher want to enter some assignment marks, he will just need to create a new submission record and all the student names in the class will appear.
I could not think how this feature can be done in Filemaker. I can only create a new submissions record and key in a student's score, then create another new record to do the same thing for a second student.
Can someone help? I am a teacher, not a Filemaker developer so please correct me if my database tables are done wrongly.
Update:
I will like the output to be like this
Spreadsheet is not suitable because it can't be used to search/sort easily.
I have a quick sample file here. It's an old sample and it uses a different (but similar) model. Basically the idea is that: You have a calculated field (I use a repeating field) to display the data. You also have a global repeating field that serves as an editing widget. Each time you go to a record you fill this field's reps with data from related records (using a OnRecordLoad trigger). This doesn't mean the field shows the same data for all records, because its conditional formatting rules are set to hide all data; so it only shows a piece of data when you actually enter one of its repetitions. This is the data that can be edited. And finally there's a trigger that fires each time you exit the field and posts your changes to the related table (adds, updates, or deletes).
The sample isn't quite complete because if there's fewer data columns than repetitions, you'd probably want to somehow lock the remaining repetitions; this part isn't done. Otherwise it works fairly well. In FM 12, however, it tends to freeze the app; I reported this to FMI, they acknowledged it, but I don't think it has been fixed already.