Workspace Manager and APEX
I was experimenting with using workspace manager (via DBMS_WM) to version a set of tables. Does everything I want, easily and quickly.
However, when I update versioned objects in APEX, and then look at the HIST table, the user name is APEXPUBLIC_USER.
I understand why this is, but does anyone know of any means of overriding the user saved in the _HIST table, using the APEX user instead.
I had a look at the IOT on the BASE object, but didnt see where it inserts into HIST.
Any help greatly appreciated.
Thanks, Rob
Hi Robert,
some time ago I created a german how to document on Workspace Manager and APEX - you'll find it here.
http://www.oracle.com/webfolder/technetwork/de/community/apex/tipps/wm/index.html
Be careful - in the following text a "workspace" is not an APEX workspace but a DBMS_WM workspace.
The "_HIST table" is not a table but a view. When version-enabling a table Workspace Manager renames the table, adds columns
for the versioning information and creates some views. The most important view is the view which "replaces" the original table. The
"_HIST" view is another view.
Workspace manager also creates an INSTEAD OF trigger which "catches" the DML done on the view (which now has the name
of the original object). That DML is being enriched with User and timestamp information and then placed into the original table
(which now has another name).
The user information is there because Workspace manager allows to grant privileges on "workspaces" to other users. So you ...
* first version-enable a table
* create a new workspace (CHANGES_1)
* do some DML
* grant access on your workspace to the other user say: HUGO
Now you and HUGO can access the workspace CHANGES_1 and review your DML. All other users can only see the
table status before your changes. So as long as you don't access the version enabled object from different database
schemas (i.e. different parsing schemas) and you don't use the DBMS_WM.GRANT.... procedures you don't have to care
about the APEX_PUBLIC_USER information in the HIST view. You can live with the APEXPUBLIC_USER information.
Does that help ...?
Best regards
-Carsten
Similar Messages
-
OLAP Analytic Workspace Manager and Worksheet
Hi,
I have installed a datawarehouse and OLAP 10gR2 on a WinXP but in the Start menu.
- Oracle_home, in Integrated Management Tools, I do not haveOLAP Analytic
Workspace Manager and Worksheet.
What is the problem ? What more should I install ?
Many thanks for your help.Hi,
What more should I install ?Did you do the OLAP catalog (dbms_olap)?
http://www.oracle.com/technology/products/bi/samples/samples_readme.html
Check the install docs for full instructions, and don't forget to pay your $20,000.00 license fee first:
http://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=11222
http://searchoracle.techtarget.com/tip/0,289483,sid41_gci1024826,00.html?topic=299433
Another option is Excel-DB, an easier (and less expensive) way to Oracle-enable spreadsheets:
http://www.excel-db.net/menu_overview.htm -
Workspace Manager and tabular forms
Does anyone know whether it is possible to use Workspace Manager with tabular forms using APEX's multi row processes?
I tried creating a process that runs before the multi-row processes that uses gotoWorkspace() to switch to a different workspace and another process afterwards that switches back to the LIVE workspace. However, the changes go into the LIVE workspace rather than the desired workspace.
RodneyTurns out my application did indeed need to be debugged. I had an explicit condition written to limit the process to certain buttons, but I also managed to add an unintended constraint that the process only run when the Add button was used. The result was that the process ran, creating a workspace, when one added a row, but didn't switch back to that workspace when one saved the new row.
Sorry for the false alarm.
At least I can confirm for anyone considering this option that APEX does work with Workspace Manager as long as you can enable the versioning on the tables through another means.
Rodney -
Hi Folks,
I was wondering if an HTML DB application can take advantage of
Workspace Manager features, I mean, work with versions inside the database.
The idea is, validate the user login and redirect it to an specific workspace ("version") of the database. Thus, I can control the data inserted by each application user, validated it and then promote it to the live database.
TIA,
Luis PaoliniHi,
Yes you should be able to do this. The versioning of the table will be transparent to html db. When a table is versioned, the original table is renamed, and a view is created in its place with the original name. Any sql statements running against the original table, will also be able to be run against this new view.
The creation, merging, refreshing, etc of workspaces would need be handled in the same way as any other pl/sql statement being executed by html db.
You would also be able to create a logon trigger, which based on the user logging in, would be able to place the user in an appropriate workspace.
Regards,
Ben -
Oracle11gR2 Workspace Manager and table consistency after merge
Hi folks,
I'm working with Oracle Workspace Manager in order to get data inserted and validated into workpaces before they become available to the LIVE workspace.
Doing some tests I found a problem about data consistency after I merge the data from a child workspace to the parent workspace.
To be able to explain and reproduce the problem I create a simple test case:
--Create table TB_LINK
create table TB_LINK
CD_LINK NUMBER not null,
DS_LINK VARCHAR2(30)
--Create primary key
alter table TB_LINK add primary key (CD_LINK);
--Create table TB_GUD
create table TB_GUD
CD_GUD NUMBER not null,
DS_GUD VARCHAR2(30),
CD_LINK NUMBER
-- Create primary key
alter table TB_GUD add primary key (CD_GUD);
-- Create foreign key
alter table TB_GUD
add constraint FK_TB_LINK foreign key (CD_LINK)
references TB_LINK (CD_LINK);
-- Create sequences
create sequence SEQ_TB_GUD
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;
create sequence SEQ_TB_LINK
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;
--Create Triggers
create or replace trigger "INS_TB_GUD" before insert on TB_GUD for each row
Begin
select SEQ_TB_GUD.nextval into :new.CD_GUD from dual;
end;
create or replace trigger "INS_TB_LINK" before insert on TB_LINK for each row
Begin
select SEQ_TB_LINK.nextval into :new.CD_LINK from dual;
end;
--Enable version TB_LINK and TB_GUD
EXECUTE DBMS_WM.EnableVersioning('TB_GUD','VIEW_WO_OVERWRITE',FALSE,FALSE,'UNLIMITED');
EXECUTE DBMS_WM.EnableVersioning('TB_LINK','VIEW_WO_OVERWRITE',FALSE,FALSE,'UNLIMITED');
--Create a workspace
EXECUTE DBMS_WM.CreateWorkspace ('TEST_WKS');
--Goto workspace TEST_WKS
EXECUTE dbms_wm.gotoworkspace('TEST_WKS');
--Insert data into TB_LINK and TB_GUD
INSERT INTO TB_LINK(DS_LINK) VALUES ('DS1');
INSERT INTO TB_LINK(DS_LINK) VALUES ('DS2');
INSERT INTO TB_LINK(DS_LINK) VALUES ('DS3');
INSERT INTO TB_LINK(DS_LINK) VALUES ('DS4');
COMMIT;
INSERT INTO TB_GUD(DS_GUD,CD_LINK) VALUES ('GUD1',1);
INSERT INTO TB_GUD(DS_GUD,CD_LINK) VALUES ('GUD2',2);
INSERT INTO TB_GUD(DS_GUD,CD_LINK) VALUES ('GUD3',3);
INSERT INTO TB_GUD(DS_GUD,CD_LINK) VALUES ('GUD4',4);
COMMIT;
--Checking keys
select * from tb_link;
CD_LINK DS_LINK
1 DS1
2 DS2
3 DS3
4 DS4
select * from tb_gud;
CD_GUD DS_GUD CD_LINK
1 GUD1 1
2 GUD2 2
3 GUD3 3
4 GUD4 4
--Merge Workspace
EXECUTE DBMS_WM.MergeWorkspace ('TEST_WKS');
--Checking keys
EXECUTE dbms_wm.gotoworkspace('LIVE');
select * from tb_link;
CD_LINK DS_LINK
5 DS4
6 DS3
7 DS1
8 DS2
We can see that the CD_LINK got new values after merge and that was not expected.
select * from tb_gud;
CD_GUD DS_GUD CD_LINK
6 GUD3 3
7 GUD1 1
8 GUD2 2
5 GUD4 4
We can see that the CD_GUD got new values after merge and that was not expected.
Now, the values for the CD_LINK column does not have corresponding records at the TB_LINK table, as the foreign key does not exist anymore.
Could you please help me understand what is going on?
Thanks,
LuisHi Luis,
The reason for the difference is that the trigger is being run during the MergeWorkspace operation. The inserts into the child workspace(TEST_WKS) translates into an insert into the LIVE workspace during merge as the rows do not yet exist. As a result, the trigger is fired and the sequence is evaluated. Ideally, we should not allow the PK to be modified by a sequence in this case.
You have 2 options:
(1) Check for :new.CD_GUD being null prior to using the sequence. Any dml coming from a merge/refresh operation will have a non-null value.
(2) Turn off the trigger during dbms_wm procedures. This can be done using dbms_wm.SetTriggerEvents. I would assume you would only want this trigger being run for DML events.
Let me know if you have any questions.
Regards,
Ben -
I wanted to know if workspace manager support streams.
If it supports, can Advanced replication and workspace manager co-exist in a database?
We currently have advanced replication between 2 database with workspace manager installed. The tables are version enabled and replicated. We are adding a new database that is going to use Streams for data movement instead of advanced replication. I would like to know if they can co-exist?
Thanks.Hi,
There are a number of different modes in collecting data when using Streams. If the LCR records are being created using the redo log, then you would need to specify the LT table when adding support. Otherwise, if a custom application was creating its own LCRs (for example, via triggers) it would not have to use the LT table, but could create the records based on the column values in the trigger.
Also, I should note that it would not really be feasible to replicate the versioned tables completely using streams on top of Workspace Manager. The types of operations that I was referring to that could be performed would be moving data into a non-versioned table. For example, creating a rule so that only specified rows or a particular workspace are streamed into a table at a different database. The metadata would also need to be removed from the record, which would only be useful in a versioned environment. Aside, from these types of activities, advanced replication would need to be used.
Regards,
Ben -
Conceptual questions with document management and Apex:
Hello Everyone,
I have reviewed or participated in thread discussions focusing primarily on subject matters concerning text editors, spellcheckers and document printing. The reason for this is due to our client requesting the creation of a basic centralized document management system that will enable users to create, edit and print technical documents in a database centric web-based environment. The caveat is that the client would like the same basic functionality that users get from MS Word. I know about FCKeditor or TinyMCE and their associated spellcheckers. What concerns me is that I have not found a possible plug-in to handle tracking changes, no one wants to re-read a large multiple page document again when all they would rather do is just view the changes. I know there are possible database schemas that might facilitate this type of functionality; I am just hoping it is more of a plug-in function.
So with all that being said my dilemma is how to approach the design of such an application using Apex, if that is possible. Some questions I have are:
1. Do design the application where you have a text field that contains the entire document, which could be as many as 25 or more pages?
2. Or do you break down the document in to multiple text fields and then assimilate them in to a single multi page document when printing?
3. Would you store the document data using XML under condition 1, 2, both or not at all?
4. What types of data tables might exist, such as tables for document templates, work-in-process and final documents or something else?
I know there are a lot of other concepts/questions to consider and a large part of the design approach would be based on client requirements. My goal here is to gather different basic conceptual approaches, from forum members, in order to help facilitate a starting point for the project.
By the way I have seen on the Apex Latest Forum Poll, for quite sometime, where Document Management is an application that people would like to see developed. Can anyone from the Apex-team tell me if it is in the works and if so, when?
Thanks, in advance, for any suggestions.
KyleHey Chet,
Thanks for the response; actually I had visited the sample package apps. site awhile back and did not realize more had been added. My problem is that I use Apex 2.1 and not 2.2, so unless there is a way to load the package apps. to the Oracle hosted site, I won't be able to review there design. It would be nice if Oracle tied these package apps. to their demonstration applications sample downloads function in Apex.
As for storing each line of the document in a single record, this was thought of as an initial approach. A concern by the team was how to program the logic to identify specific changed text in say a 5 sentence paragraph and how large the table would become if recording it line by line.
It is still a good approach to consider and we appreciate the input.
Thanks
Kyle -
Hi,
First of all: Apex is an outstanding product.
I'm wondering : I have installed 1.5, followed by 1.6 and 2.0. I have the intention to install 2.2. But I hesitate.
I've a small computer (20gB) and the volume of data is growing and growing....
What can I do to clean up (without loss of functionality of Apex): remove tablespaces (flows15, flow16, flows2) ?
Any reaction is appreciated.
Kind regards,
LeoYou have very well put your installation of Apex into a tablespace named flowxxx.dbf.
First things first I would drop old users 1.5, & 1.6 if you still have them lying around.
I wouldn't want to tell you to drop a dbf file unless it was not active. I think only you can answer that question. To check what tablespace your current Apex installation is using you can log into the internal workspace from the developer side of Apex and see what tablespace you have associated with it. But depending on how you set things up you could have tables in a different tablespace or indexes if your really tricky, you see where I am going your going to have to do some investigating.
If your getting worreid about the size of the tablespaces, you could do a cold backup of the database, drop a tablespace you think is no longer in use and if worst comes to worst you move all your files back from your cold backup. -
Difference between Analytic workspace manager and AWB
Hi could anyone tell me the difference between AWM and AWB , . I finished designing my cube using AWB and i was planing to use OBIEE to browse and view my cube for reporting etc but it turns out that OWB cubes arent diretly compatible with OBIEE workspace we have to use AWM to make it compatible or something.. So why use OWB in the first place ???
Hi Jan,
The difference is that one uses a memory mapped file and one uses direct nio memory (as part of the memory allocated by the JVM process) to store the data. Both allow storing cache data off heap making it possible to store more data with a single cache node (JVM) without long GC pauses.
If you are using a 32 bit JVM, the JVM process will be limited to a total of ~3GB on Windows and 4GB on Linux/Solaris. This includes heap and off heap memory allocation.
Regarding the size limitations for the nio-file manager Please see the following doc for more information.
With the release of 3.5 there is now the idea of a Partitioned backing map which helps create larger (up to 8GB of capacity) for nio storage. Please refer to the following doc.
Both can be used to query data but it should be noted that the indexes will be stored in heap.
hth,
-Dave -
Oracle Text and Workspace Manager
Has anybody incoroporated Workspace Manager and Oracle text together. How is the Oracle Text index handled? Can users in different workspaces submit documents, have them indexed and be the only ones to see those documents?
Hi,
I do not have much experience with Oracle text, and am unsure exactly how it works. As such, I would suggest to file a TAR requesting this information.
Regards,
Ben -
Problems with integrating YUI Layout Manager with APEX
Hello,
I have a problem about the YUI Layout Manager and APEX.
This is the link to the Layout Manager, which I want to integrate:
http://developer.yahoo.com/yui/layout/
I tried to integrate it and in Firefox everything is fine!
But with Internet Explorer the page is damaged.
Look at the sample on apex.oracle.com:
http://apex.oracle.com/pls/otn/f?p=53179:1
Can anybody help me with this issue?
I think this couldn`t be a big problem, becaus in FF it works correctly, but I don`t get the point to run that in IE7.
Thank you,
TimHello,
now I put some color in it, but it does not help me pointing out the problem.
The Login for my Account is:
My Workspace is: EHRIC02
Username: [email protected]
Password: ehric02
Is there anybody who have implementet the YUI Layout Manager with APEX? Perhaps that isn`t possible with APEX?
I know that John Scott played with YUI a few times, has he tried out the Layout Manager?
Thank you,
Tim -
I've got some problems with the workspace manager and triggers in 10g:
If you have a trigger defined on a table and you version this table, ORACLE will create 3 "instead of"-triggers on the view representing the table.
The "content" of the trigger will be created in a wm$ procedure.
My question is: How can I change my trigger without unversioning the table?
As an example, consider the following two tables:
-- Create Data Table
CREATE TABLE MY_TABLE
X_ID NUMBER(28) NOT NULL,
V_TEXT VARCHAR2(200),
V_COMMENT VARCHAR2(4000)
-- The Table's PK
ALTER TABLE MY_TABLE ADD CONSTRAINT PK_MY_TABLE
PRIMARY KEY (X_ID)
USING INDEX;
-- Create Registry Table
CREATE TABLE MY_REGISTRY_TABLE
X_ID NUMBER(28) NOT NULL,
V_OLD_TEXT VARCHAR2(200),
V_OLD_COMMENT VARCHAR2(4000),
V_NEW_TEXT VARCHAR2(200),
V_NEW_COMMENT VARCHAR2(4000),
D_WHEN DATE NOT NULL
Now, we create a trigger that automatically registers the changes made on MY_TABLE:
-- Create Trigger
CREATE OR REPLACE TRIGGER TR_MY_TABLE
AFTER INSERT OR UPDATE OR DELETE ON MY_TABLE
FOR EACH ROW
BEGIN
INSERT INTO MY_REGISTRY_TABLE(
X_ID
,V_OLD_TEXT
,V_OLD_COMMENT
,V_NEW_TEXT
,V_NEW_COMMENT
,D_WHEN
VALUES (
NVL(:old.X_ID, :new.X_ID)
,:old.V_TEXT
,:old.V_COMMENT
,:new.V_TEXT
,:new.V_COMMENT
,sysdate
END TR_MY_TABLE;
Now, we decide to version MY_TABLE.
exec dbms_wm.enableversioning('MY_TABLE');
This turns MY_TABLE into 2 data tables and a collection of views.
The trigger has changed as well. The original trigger has disappeared, and there are 3 "INSTEAD OF"-triggers on the view MY_TABLE:
OVM_Delete_102
OVM_Insert_102
OVM_Update_102
These three triggers in the end call a system generated procedure:
wm$proc_udt_187
If I try to change this procedure, the system won't let me do that.
So, my question is, how can I change my trigger on MY_TABLE without unversioning the table?Hi,
The 3 instead of triggers are created regardless of whether the table contained a user defined trigger or not. They are primarily used to implement the DML, but are used for other things as well as you noted. To change the definition of the trigger, you would need to use the Workspace Manager DDL procedure. See section 1.8 of the user guide. Essentially, you execute dbms_wm.beginDDL on the table, update the trigger on the <table_name>LTS table that is created (the trigger will have the original name that you gave it), then execute dbmswm.commitDDL.
Regards,
Ben -
Workspace Manager download software
Hi!
I am trying to download the Oracle Workspace Manager 10g, but I could not find in the Oracle Workspace dowload (for the 10g release)!!!
http://www.oracle.com/technology/software/products/workspace_mgr/index.html
Please, somebody can help me?
Many thanks in advance,
AleAle,
there are 2 prodoucts
Oracle Workspace Manager ( for the database)
for downloads start here http://www.oracle.com/technology/software/index.html
for the OWM forum start here Workspace Manager
and
Oracle Collaborative Workspaces (part of the Collaboration Suite)
to learn more about OCW
http://www.oracle.com/technology/products/oworkspaces/index.html
the to products are not releated. -
Oracle10g with Workspace Manager
Has anyone used Workspace Manager in 10g? I'm trying to draw the line between workspaces and version tables. Can someone please shed some light on this.
Thanks,
BobbyTopLink does not have a formal integration with Workspace manager but I have worked with at least one customer using them together. For basic version usage you need to ensure you force the same connection to be used and execute the appropriate stored procedures.
I do see an opportunity for a more seamless integration to allow TopLink to automatically invoke the stored procs and to facilitate conflict resolution.
Can you describe how you want to use workspace manager and maybe we can work out an example that meets your needs.
Doug -
Does Toplink work with Workspace Manager ?
Hi all,
as the subject heading specified, is it possible to use Toplink with Workspace Manager ?
thank you for any responseTopLink does not have a formal integration with Workspace manager but I have worked with at least one customer using them together. For basic version usage you need to ensure you force the same connection to be used and execute the appropriate stored procedures.
I do see an opportunity for a more seamless integration to allow TopLink to automatically invoke the stored procs and to facilitate conflict resolution.
Can you describe how you want to use workspace manager and maybe we can work out an example that meets your needs.
Doug
Maybe you are looking for
-
How can I make my guardians buy me an iPhone 5?
Hey, Apple forum people. Maybe you guys can help me with my problem/question today? Well, I am thirteen years of age, and I'm very addicted to Apple products (I currently have a iPod touch and iPad) Now, my birthday is in November, and I will be 14 y
-
Hi Dep got calculated on assets which are not yet capitalised but on them down payment was made. Please suggest Regards KM Naidu
-
I thought it was a 'good idea' but now see that it was not! so can I remove the imprinted info in one go on all affected or do I have to edit every single one?
-
Trash won't empty completely.....
Hi all when I try and empty my trash I get an error that says: The Operation cannot be completed because the item "Tile_1" is locked. it gives me the options to stop or continue.. click on either and i get: The Operation cannot be completed because t
-
Multiple database Instance on single server
Hi friends, I want to install Solution manager in the same system which I have installed ECC6. So I want to install another database(10g). Can any one tell me the possibities to install it. regards, Nageshwar