Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Are there any standard patterns for using QVD files in the QDF?
In particular, how should the user apps load the data generated by the QDF generator apps?
I assume that each Generator will always reside in it's own System container (eg. 99.System_NorthWind).
I also assume that the Generator apps save the QVD files into their own local 2.QVD folder using vG.QVDPath. Please let me know these assumptions are ill-formed to begin with.
From here is see a few options:
Have I missed something in the document that answers this question?
For context, I am expecting the implementation at my current site to be fairly simple. They are on Small Business Edition (no Publisher) and there will probably be 5 to 10 source systems and less than 20 user apps. I expect to only have 2 tiers of ETL (ie. no separation between Extract and Transform).
Hi Michael, good question. You can either Pull or Push data between containers. Where pull is the "default" meaning that applications in a container (ex HR) can access and pull data from the system container by using function call LoadContainerGlobalVariables('NorthWind','QVD') this creates a global variable link to NorthWind container (vG.NorthWindQVDPath). This method should be used as long as HR have security access to the data inside NorthWind container. The Push option only applies when the business do not have access the system container but still need some of that data. For this we have created the QVDMigrate function call that will push data (qvd, fields, scramble sensitive data) to the HR container from NorthWind.
In your case best practice is to create a System Container for each of your sources, put qvd loader and connection string in each of them (if you use qvd loaders). Create a single "company" container and pull the needed data from the sources by using the LoadContainerGlobalVariables function. This will create a very easy to understand structure, you will have the LoadContainerGlobalVariables in the beginning of the apps so that newcomers understands what data sources the apps are using, and the scripts becomes easy to read. Also use Global Variables in the "Home" Container to put the business logic. Folders in the containers not needed can be removed (like Mart, Import,Export).
Cheers
Hi Michael, good question. You can either Pull or Push data between containers. Where pull is the "default" meaning that applications in a container (ex HR) can access and pull data from the system container by using function call LoadContainerGlobalVariables('NorthWind','QVD') this creates a global variable link to NorthWind container (vG.NorthWindQVDPath). This method should be used as long as HR have security access to the data inside NorthWind container. The Push option only applies when the business do not have access the system container but still need some of that data. For this we have created the QVDMigrate function call that will push data (qvd, fields, scramble sensitive data) to the HR container from NorthWind.
In your case best practice is to create a System Container for each of your sources, put qvd loader and connection string in each of them (if you use qvd loaders). Create a single "company" container and pull the needed data from the sources by using the LoadContainerGlobalVariables function. This will create a very easy to understand structure, you will have the LoadContainerGlobalVariables in the beginning of the apps so that newcomers understands what data sources the apps are using, and the scripts becomes easy to read. Also use Global Variables in the "Home" Container to put the business logic. Folders in the containers not needed can be removed (like Mart, Import,Export).
Cheers
Thanks very much Magnus.
I appreciate the complete response. It looks like I was heading down the right track, which is encouraging.
Cheers