Qlik Community

Ask a Question

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
Become an analytics expert with Qlik's new 15 week course: Applied Data Analytics using Qlik Sense. READ MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
gauthamchilled
Creator
Creator

Load particular table from different user

Hi

I have a scenario like this.

I have a whole application with Dimensions and Facts. I loaded with Admin Rights.

Lets say I'm User A. After I load the file, I want to pass this file to another person in another country, lets say User B.

After User A reloads the whole application and pass it to User B.

User B wants to load some customer details which is confidential (User A dont have access to that dataset). Since the QVw already have customer id, when User B reloads the application only the customer information alone to be reloaded and joined with existing data model.

how can i do this?

11 Replies
Anil_Babu_Samineni

I didn't follow you correctly. May be helpful

https://community.qlik.com/thread/141181

Section Access (English)

Before develop something, think If placed (The Right information | To the right people | At the Right time | In the Right place | With the Right context)
gauthamchilled
Creator
Creator
Author

Sorry Not helpful.

gauthamchilled
Creator
Creator
Author

USER A is the owner of a dataset with customer id  and dont have access to employee who works for customers.

USER B is having the access to employee who works for customer dataset.

After User A loads the application transfer the qvw file to another country.

USER B have to load the data (mapping customer id with employee) from his country so as to get the employee details in the same dashboard.

Add load appends the data to a table, whereas my requirement is to add a particular table and link it with the datamodel. Not sure how can i allow the USER B to load the mapping table alone in the existing qvw.

Anil_Babu_Samineni

May be Helpful, In fact, still not considerable from my end. You may recommend legends for new reply.

Load CustomerId, Country

From <Country1>

Load CustomerId, Country

From <Country2>

If userA has to create the data set for Country1 and then UserA tranfer that file to Country1. From here, Where you all transferring the files. I meant which server

If we need to match from One country to another country this will help you

ABC:

Load CustomerId, Country from Country1 Where Country = 'IND';

XYZ:

Load CustomerId, Country from Country2 Where Country = 'USA';

FinalTable:

Left Join(ABC)

Load *, ApplyMap(CustomerID,'ABC') as Country1 Resident XYZ

Drop Tables ABC, XYZ;

Before develop something, think If placed (The Right information | To the right people | At the Right time | In the Right place | With the Right context)
PaulVanSiclen
Employee
Employee

user B could use a 'binary load', here is the help file on that:

Is binary load supported in Qlik Sense ?

I employ this method often.

gauthamchilled
Creator
Creator
Author

I need to use the same application. Is there any better solution?

adamdavi3s
Master
Master

Just use a partial reload for this.

Give user B a button which executes a partial reload to load their customer data.

Unless I am missing the point here?

ADD load can create new tables, however you do need to create a dummy 'shell' table for it to work with

As long as your code works it will be fine, try this out:

departmentdetails:

LOAD * INLINE [

Department,Multiplier

  ];

ADD LOAD * INLINE [

Department, Multiplier

A,  100

B, 200

C, 300

D, 400

];

IF IsPartialReload() = 1 THEN

EXIT SCRIPT

END IF

Transactions:

Load

'1' as TransCounter,

TransLineID,

TransID,

mod(TransID,26)+1 as Num,

Pick(Ceil(5*Rand1),'A','B','C','D','E') as Department,

Pick(Ceil(6*Rand1),'0','1','2','3','4','5') as Status,

Pick(Ceil(2*Rand1),'0','1') as OverdueFlag,

makedate(Ceil(2017-(3*Rand())),Ceil(12*Rand()),Ceil(28*Rand())) as OrderDate,

date(if(100*rand() >5,makedate('2017',Ceil(12*Rand1),Ceil(28*Rand1)),null())) as ShippedDate,

money(round(RAND()*25000,0.01)) AS Value;

Load

Rand() as Rand1,

IterNo() as TransLineID,

RecNo() as TransID

Autogenerate 10000

While Rand()<=0.5 or IterNo()=1;

gauthamchilled
Creator
Creator
Author

Adam Devies,

My scenario is adding a new table (mapping).

For Eg:

User A:

Sales:

Load * inline

[

Country,Year,Sales,CustomerID

......

......

.....

];

Customer:

Load * inline

[

CustomerID,CustomerName,EmployeeID

.....

......

......

.....

];

User B hav below table:

Employee:

Load * inline

[

CustomerId,EmployeeId,Employeename,salary

.....

......

......

......

];

I cant use Add load which is for just concatenating the records, but there linking the customer table with employee table...

i just need a solution without using Binary load.

Please help

adamdavi3s
Master
Master

Did you actually try my example out?

Employee

LOAD * INLINE [ 

CustomerId,EmployeeId,Employeename,salary

  ]; 

 

ADD LOAD * inline

[

CustomerId,EmployeeId,Employeename,salary

.....

......

......

......

];

IF IsPartialReload() = 1 THEN 

 

 

EXIT SCRIPT 

END IF

Sales:

Load * inline

[

Country,Year,Sales,CustomerID

......

......

.....

];

Customer:

Load * inline

[

CustomerID,CustomerName,EmployeeID

.....

......

......

.....

];