I have a web solution with about 1000 clients. Nowadays they have access to reports that I provide as a PDF: an ASP.NET script executes SP's in the database and with PDFReactor I create a PDF. This is online and as you may already be guessing, it is unmanageable for large data sets.
I was thinking of using a reporting solution, as Power BI, Tableau or... Qlik. In my investigations I have found out that Qlik is the most complete solution for what I want. Nevertheless, I still have some questions, regarding the application architecture and how I can integrate Qlik with my application.
The first question is how I manage my users? I have a custom authentication provider and user management inside my application... What is the best way to integrate with Qlik? I manually configure all the clients in the Qlik Server also? There are endpoints to do it automatically?
The second question is how I manage what a client can see inside a Qlik document (QVW). I want to have several unique QVD, where several QVW get their data from. But I don't want to create a QVW for each client!! Can I filter a QVW based on a user authentication?
I would like that my clients could see the reports dynamically inside my web app. But my conclusion so far is that the web view of Qlik is static and that for more dynamism my users would have to use Qlik View desktop. Correct?
And this leads me to the final question: does my clients would have to pay licenses or is everything on my side and responsibility?
Thanks for your help!
Regards,
David
Out of the box QlikView Server (see 4.2) uses NTFS authentication (local windows users or Active Directory). There is something called DMS - ticket based authentication which allow non Windows users to be authorized to access apps. A bit more info here
QlikView have something called Section Access which is on file (qvw) level. Section Access is part of the QV script. Basically you can create link between user name and data field. The main file will contain all the data but when the user open the document he/she can see only the data that its relevant to this username. More info here and here
For example:
user1 -> can see only UK data
user2 -> can see UK and USA data
user3 -> can see all the data
... etc
The web app and the desktop app are the same. The web client provide same level of interaction as the desktop so you can slice and dice your data as you want
4.1 QV desktop (personal edition) is free but you can open up to 5 qvw files which are not "yours" (not created with the current instance of the personal edition) and the clients need to install it locally on their computers
4.2 QV server is not free. With QV server all the clients are accessing the QV apps via the browser. You (as administrator) are buying the licenses from Qlik Partner and it's up to you if you want to charge your customers or not (and how much)
Related
I have very a rudimentary understanding of Microsoft Access and VBA Code.
On my work desktop, I have Microsoft Office Professional Plus 2013 Access
I've been tasked to create a MS Access application with an Access DB.
I started developing an MS Access application with Forms , and the corresponding DB
I'm using VBA code event handlers(or Event Procedures) for the UI control buttons.
I wanted to create a common configuration settings area for said application( like ASP.NET web application have web.config files or app.config files )
I failed to find anything similar for MS Access application development.
Could someone please provide me with an explanation as to how to implement an MS access implementation model/software design pattern for common configuration settings area that is modular, reusable, clear and concise?
As noted, I great way to do this is to simply create a table in the front end. It is assumed that you will split your database into two parts. The code/forms etc. is the so called front end,and then you have the back end part (the database - it can be a accDB file, or it can be say SQL server).
So the typical update and deploy of your software will be:
Re-link your tables from test database to the actual live production database.
Compile your accDB into a accDE.
Deploy this new updated "next" version of your software to all the desktops.
So, since any change or addition to settings will be in the new front end then any application wide settings you have will thus roll out with your update.
It often depends on the user base. In the case that we had multiple customer sites running our software, then using a local table would not suffice, since things like path names, connection strings to the database etc. are customer specific. So, in this case we moved the settings table out to a text file (setup.ini). So we now use a setup.ini file that is external to the program and assumed to be deployed in the same folder as the front end. On startup we use the windows API to read ".ini" files.
So, both ideas (external setup.ini) or a local table in the front end are rather good choices from a development cycle point of view.
So once you down the road in developing your application, and the table/data structure changes are down to a dull roar, then it is time to split your application. (use the built in split wizard for this). I will say that even for my .net applications, I still often use a external setup.ini file for settings, since once again with multiple customer sites, it not practical to have customer specific settings in the application as opposed to a external settings file.
I'm starting a new project where we are expecting to migrate desktop based Access 2016 applications (with a lot of backend VBA and relationships between the tables) into SharePoint 2016 on-premise and very soon, SharePoint Online. From what I've been told, we'll be given site permission to a SharePoint site that we can do whatever we want with. I am hoping that with SharePoint 2016 on-premise and eventually SharePoint online means that there is a SQL Server and eventually Azure SQL Database that I can migrate the Access backend tables and queries, as I know SharePoint lists will be inadequate for this, despite the false notion that SharePoint lists are an equivalent substitute for database tables.
My concern is how to build the custom forms, perform the needed business logic, perform CRUD operations, and upload data in the form of Excel files from the SharePoint site to the backend.
I'm new to SharePoint and given that it does not support VBA, that Microsoft cut out Access Web Apps earlier this year, and they are phasing out SharePoint Designer 2013 and InfoPath, some research over the past week indicates my best options are building custom web application using ASP.NET Core and somehow deploying that to the SharePoint site and subsites that we have control over, or developing a lot of HTML, CSS, and JS to create the front-end interface. I had read about the Business Connectivity Service to get and post data to / from the SharePoint site front end and the DB backend, as well as using Javascript and AJAX calls to do CRUD operations between the database and the frontend. I looked into PowerApps and those seem insufficient, and I'm still trying to distinguish between SharePoint web parts and SharePoint add-ins.
Is any of the above even a feasible option? Could someone chime in on a better path to go about this? What technologies would I need to best go about this?
Support for moving tables from Access to SharePoint remains a choice and option.
So all of your VBA code etc. will work as before. The only real question is if you want to move your data to SharePoint tables in place of using SQL server.
SQL server tables are far faster than SharePoint tables.
However, you can certainly consider moving your tables to SharePoint. When you move your tables to SharePoint (or SQL server), then Access code, forms, reports etc. and EVEN your VBA code will work as before. What this means is that you continue to deploy the Access application to each desktop. The only difference is now your tables are on SharePoint, or SQL server.
The above choice does not result in a web based application.
So you can move the data, but your application will remain a desktop application.
If you looking to build a web based application, then Access is the wrong tool – you need to adopt something like Visual Studio.
So you can continue to use Access, and put the data tables into the cloud, or on-site SharePoint - but the application will be still desktop based.
I have used the following extensively over the last couple of years and I am happy with the experience:
Azure SQL Database as a back-end
Flow for automation and as an interface to the DB
PowerApps for forms, desktop apps and mobile apps
Excel for reporting (Get & Transform aka PowerQuery and DAX), especially for printing reports
Power BI for dashboards (limited use)
Yes, PowerApps has drawbacks, but there are a lot of realistic workarounds out there and new features/improvements are being added regularly.
I have also used SharePoint lists as data sources, but almost always then migrated to Azure SQL Database.
Scenario: I have an IBM Domino web application (.NSF) and contains divisions (refer to the image). I want to migrate the content (such as blogs, main content and the article) to my WebSphere Portal. What is the first thing to do?
My understanding in migration is database to database migration and seems I don't know where to find the database for my contents knowing that database in creating domino application is built in. Advance thanks!
Refer to this image: http://postimg.org/image/irxsjdk8p/
The database is the NSF file - although it's possible that the information might be aggregated from several NSF files so you'll have to do some analysis. The first thing to do is to use the Notes client to identify the documents that contain the content that you want to migrate, check their properties to determine what NSF file they are stored in and what form they are based on, and then use Domino Designer to open the NSF file (or files, possibly) and analyze the form and determine which items contain the values that need to be migrated.
Im really confused as to whether what Im trying to achieve is possible and if there are better alternatives to it, so here it is:
Ive created web application for a business, it allows customers to view details etc, and most importantly make reservations.
These reservations are stored into a mysql database which all is provided by my web hosting service.
everything up to here is fine and without problems
The next thing im trying to achieve introduces complications:
So I am trying make a application which will run on only one machine, and its supposed to connect to that database and retrieve all those reservations.This is where Im trying to implement a Visual basic application.
The easiest way would off been to email the business reservation every time its made, however this complicates things for the end user.It would be much easier to have an application that retrieves the data, simply on their desktop or a local drive as oppose to email.
I did research into vb.net and Net Connectors, but then came across the problem of my host not allowing remote connections to the database.
And this where Im stuck at now, I have no idea how to achieve the task
Thanks in advance for any guides or help
If your web host will not allow a remote connection to the database then you wont be able make a WinForms application to sit on the customers desktop - as you've worked out.
The simpliest solution is have a restricted Admin.aspx WebPage in the
website. This webpage would show all the reservations, allow Searching by From
and To Dates and possibly even allow for approval or rejecting bookings. This is a very common approach - I'd also recommend you have a special CSS for mobile phone webbrowsers so that your customers can view the bookings from their phone.
I am new to SSRS and have deployed several reports. When I force windows authentication, everything works fine, but when I do this:
I am getting this error:
An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'DataSet1'.
(rsErrorExecutingCommand) Login failed for user 'DWH_Reporting_User'.
I've configured the DWH_Reporting_User like this:
here are the details on DWH_Reporting_User for the ReportServer database:
here is the security on the server:
when i try to set security for that specific folder:
i am getting this error msg:
is there something obviously wrong with the way I've configured things?
The answer to this question was a series of comments. I went ahead and put it in the chat as well as an answer.
Go to the security of the server not the database and map the user to that database.
Can you recycle the application pool on the server where reporting services is running? Or reboot the IIS server if possible.
Another thing that comes to mind, when you launch this report it goes into the report server "Portal". Does this user have access to the actual report to view it? Click the details section of this "Portal" and assign this user as a content manager role.
DWH_REPORTING_USER is this an admin account on your domain?
Local admin on the server, so did you grant \COMPUTER_NAME\DWH_Reporting_User rights as a content manager in the roles section? Why dont you use a domain admin account?
So how do you access the actual report - that is your issue.
Do me a favor aprem, write up a stored procedure or sql query in the first tab of reporting services and run it using that user. Meaning in the shared data source it should be using this user DWH_Reporting_user. Test the connection then write a small sql statement to retrieve some data. Run the SQL script from within RS do you see any data?
#Aprem look at the three tabs at the top of rs, its the first tab to define datasets, this is where you can create an SQL query (and run it using the red exclamation mark). – JonH 20 mins ago
i defined a new dataset as "select top 1000 * from mytable", i rebuilt the project, deployed it, and now what do id o? – Артём Царионов 16 mins ago
In the "Shared Datasets" you have a dataset right? Double click on it and go to "Query Designer" it is a button on this form. Click on it and "Execute" the query (red exclamation mark). You dont need to deploy it right now, just do it on a test machine.ago
You specify the user in the datasource section "Shared Data Sources", that account is the account being used to "pull" the data. You really need to experiement with RS some more or read some material on it. This is as basic as it gets.
*Ok aprem do you understand your issue now, the user you are using to get the data has no issues, in addition, it is functioning correctly. Now you have to view the report. To view the report is to view the webpage, and to view a web page means you need to either use "Anon" access or windows authentication. So you need a domain or local WINDOWS account to view the report. This account needs to be setup on the RS portal as a content manager role. *
You are dealing with two beasts, one is the database (db server) and one is IIS (web server) each serve a specific purpose. The database serves to allow you to pull data while the web server hosts the pages.
The reportserver database is very important, it keeps a listing of all your reports and the meta data associated with your reports in the database. It also stores job ids and subscriptions associated with your reports. Basically it is the backend database for all reporting services stuff like reports, datasets, and datasources. Think of it this way when you create a new "Report Project" you are allowed to create reports, datasets, and datasources. Without the reportserver database how would the system remember your datasets, datasources, and report names? It is the heart of rs.
your data set is not used to connect to the reporting services databse, it is used to connect to the database you are getting the data to display on your report.
Does that user exist on the database the report is accessing?