Power BI - How do I put a filter on a card visual based on the value in another column - filtering

I am brand new to Power BI. I have detail data that looks like
Server Application
Server1 App1
Server1 App2
Server2 App1
Server2 App3
My manager wants to get some analytics. The first was Distinct # of Servers. I was able to do this with a card Visualization.
The second is # of Apps using more than 1 processor. I am able to make a Card Visualization of the # of Distinct Apps and I can use Server as a filter, but the only options I have are that the Server is one of the Servers in the data or if I use Advanced Filtering it only has text options like Contains, Does Not Contain, etc. There are no count options available. How can I accomplish this seemingly simple task?
Thanks,
Dick

If I understand well your problem you can proceed like this:
Table containing data
You should build a measure like that:
CountOfApp = COUNT(Table1[Application])
then you can use it to filter servers with more than x application like this:
See Visual level filters on the selected visual
Hope that helps!

Related

How do I merge two Dashboard data sources in grafana

I would like to re-use a query between panels -- ideally between library panels.
Context:
I have three Postgres datasources. For simplicity, say A contains ecommerce behavior, B contains app behavior, and C contains user profile data.
I have a query on source C that helps me determine if the user is an enterprise, paid, or free user. Call the query Q.
Situation:
I am trying to filter out enterprise users from queries on A and B. So I need to apply Q to these tables.
Attempt at solution:
I have two library panels where I set the Data source -- Mixed --. In the first panel, I make a query to datasources A and C. In the second panel, I make queries to B and C. Note I am using query Q in both cases.
Woohoo!
Problem:
I would like to define Q exactly once to help future-proof changes.
Ideally, I would be able to use a Dashboard data source in a -- Mixed -- context. How do I merge two -- Dashboard -- sources?
Maybe these can help you
https://grafana.com/docs/grafana/v9.0/dashboards/json-model/
https://grafana.com/docs/grafana/v9.0/dashboards/scripted-dashboards/
The basic idea is, make sure that you correctly set the gridPos and datasource properties in a way that make sense; and you can merge as many dashboards as you want by taking the panels (as mentioned in the docs, panels is an array of JSON that represents building blocks of the dashboard).
Hope it helps. I'm working exactly on the same right now.

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.

Is it possible to change the datasource of a twb file using tableauserverclient?

Use Case:
Given a Template.twb that uses Template.hyper I want to create Copy1.hyper and Copy2.hyper that are used in Dashboard1.twb and Dashboard2.twb using automation and the Tableau API.
I've broken this down into three steps, but I can only do the first two currently.
Write the hyper files using the Hyper API and publish to Server
using
Create and publish Dashboard1.twb and Dashboard2.twb that still use Template.hyper as a datasource.
Change datasource of Dashboard1.twb to Copy1.hyper.
I think this is done using workbooks.update_connection, but I haven't gotten it to work or found an example online.
I'm a python novice and mostly using the python scripts made available in the Hyper API and Tablea Server Client to create and publish respectively.
Is this possible?
I can change the datasource by hand in tableau desktop, but we want this automated.
I was thinking I could just append all the data and filter on some unique string generated by each query, but this seems like it would get unwieldy very fast.

Multiple users working remotely on Tally ERP9

I am not very sure whether this is the right forum to ask this question or not.
We are having a TallyERP9 server with Multiple Licenses. Now our 3 users working remotely on the same Data. We have set up Google Drive for Data Syncing. But most of the time its giving issue due to synchronisation process.
What could be the best soltion so that multiple users can work on same data from Remote Locations?
This is the answer - http://mirror.tallysolutions.com/Downloads/TallyTips/GettingStartedwithDataSynchronisation.pdf
Thanks to #MitaleeRao...
Edit placed here for brevity:
These are 2 points I've noted regarding the Tally architecture:
The database is a flat file in a tree structure, and there are numerous checkpoints at each level for maintaining this inheritance (for e.g., a voucher has inventory entries that have stock items, which have units, etc.).
The SOAP XML protocol that Tally uses does not have multi-threading capabilities - i.e., the Tally server will only accept one request and give a response at a time.
The Data syncronisation that Tally has introduced is probably the automating of exporting the XML of all masters/vouchers and importing them onto the central Database (whether on the Tally.NET server or on a local computer with a static IP). Not sure how the Google Drive client works, but I'm assuming it is a variation of the same (i.e., XML based data export and then import onto a main computer).

Can we change multicapabilies in between the test running in protractor

I am using protractor-cucumber framework(protractor 5.2.2 and cucumber 3.2.0).
I have a requirements like this - posting some details(from DB) to an application with different user credentials.
Currently, I am doing with a single login credential. So, in beforeLaunch() I have to call one function (which create temporary table that is having all data to be entered for that user), it will split the data for each set(let it be Set 1, Set 2 and Set 3). And I am running the automation script in a 3 nodes by selenium grid by passing this set of numbers to the query (which is used to fetch data from the temporary table according to the set number).
I have a loop in my js file to enter data row by row. And I have set the getMultiCapabilities() dynamically (by dividing total numbers of rows of a table for the given user by a constant number).
I can successfully run it like this. But when I need to run for multiple user, each node may have data for different users. So i need to run in a way that, process one user at a time in all threads and then for next user.
Is it possible to do it like this? Thanks in advance.
You have a tricky way to run your tests. I'm sure that it could be done in a more "easier to understand" way.
But if does not break your flow, I think you could archive what you want with creating several config files. Where you will keep specific data for each user.
Better to split logic. In test spec files should be nothing specific about user, just something const user = someClass.getUser(). Separately, you should have some class that managed these users. And again, separately, the class where you get and receive and ... data about User X from DB or filesystem or API or whatever.