Qlik Community

Ask a Question

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
QlikView forum consolidation is complete. Labels are now required. LEARN ABOUT LABELS
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

Sorry Not helpful.

gauthamchilled
Creator
Creator

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

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

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

.....

......

......

.....

];