Usage of triggers for delete operation
Hi,
I have a table named tst_employee:
CREATE TABLE TST_EMPLOYEE
(EMPLOYEE_ID NUMBER,
NAME VARCHAR2(100),
DEPT_ID NUMBER,
AGE NUMBER,
DOB DATE,
DESIGNATION VARCHAR2(50),
ADDRESS VARCHAR2(1000),
UPDATED_BY NUMBER,
UPDATED_DATE DATE,
APP_SOURCE_CODE VARCHAR2(3),
ACTIVE_IND VARCHAR2(1));
And another table for storing the audit records as:
CREATE TABLE TST_AUDIT
(AUDIT_ID NUMBER,
EMPLOYEE_ID NUMBER,
FIELD_ID NUMBER,
FIELD_DESCR VARCHAR2(50),
TRAN_TYPE VARCHAR2(1),
BEFORE_VALUE VARCHAR2(1000),
AFTER_VALUE VARCHAR2(1000),
BEFORE_DATE DATE,
AFTER_DATE DATE,
APP_SOURCE_CODE VARCHAR2(3),
UPDATED_BY NUMBER);
Now on the event of insert, update or delete I want to capture the data in the audit table. This is for the monitoring purpose. Now the problem which I have is in the delete operation. When a record is deleted I want to capture who is deleting the record in the column TST_AUDIT.UPDATED_BY. Can you please suggest the options how can I do this. I am using Oracle 10g.
Row level triggers offer :OLD.column_name and :NEW.column_name. For insert :OLD.column_name is always null and :NEW.column_name constains inserted/to be inserted value. In case of update :OLD.column_name is value before update and :NEW.column_name constains updated/to be updated value. In case of delete :OLD.column_name is deleted/to be deleted value and :NEW.column_name is always null.
SY.
Similar Messages
-
User Exit that triggers for Change operation
Hi All..
I want a user exit which triggers when I enter into an infotype(2001) from tcode PA30.
My actual requirement is to show the field REFNR in display mode.
By using the exit PBAS0001 exit0001 I can make the field REFNR in displaymode for create operation.
But in change operation of the infotype the exit is not getting triggered.
Regards,
Anji.chk these
Transaction Code - PA30 Maintain HR Master Data
Enhancement/ Business Add-in Description
Enhancement
PBASRP01 PA: User exit distributed reporting
PBAS0002 PA: Enhancements for Personnel Administration - Menu
PBAS0001 PA: Pers.Admin./Recruitment: Default values and checks
PARA0002 Enhancement for Calculating Annual Salary; IT0008,14,15
PARA0001 Enhancement for Determining the Number of Periods
HRRPAI01 User exit for FB HR_ENTRY_DATE and HR_LEAVING_DATE
HRPC0001 HR: PC download authorization
HRPBAS01 User Exit for HR Master Data
Business Add-in
HRPAD00_PREM Definition of User Exit for Collective Search Help PREM
HRPADUS_PBAS_0001 Customer Exit for Message handling
HRPAD_SUBTY_CHECK
HR_F4_GET_SUBTYPE HR: Entry help for subtypes
HR_FAST_ACTION_CHECK Check fields on the fast entry screen
HR_INDVAL HR: Indirect wage type valuation
HR_SET_PKGAB
HRPAD00_RECOG_SCREEN Employee - Recognition Screen
HRPAYXX_DELETE_PERNR BAdI for Reports Deleting Personnel Numbers
HRPAD00_PAPM Definition of User Exit for Collective Search Help PAPM
HRPAD00_GET_AF_0008 Additional Fields for Basic Pay Infotype (0008)
HRPAD00_ENTRY_LEAVE HR_ENTRY_DATE and HR_LEAVING_DATE
HRPAD00_ADRS HR: Address formatting
HRPAD00MGEACTIVATION Activation Action BAdI for Global Employees
HRPAD00INFTY Update / Infotype maintenance
HRPAD00AUTH_TIME Time Logic in the PA Authorization Check
HRPAD00AUTH_RECORD Spanish Data Privacy Law: Exit for Recording
HRPAD00AUTH_CHECK HR: Authorization Check
HRIV_REDUCE_AMOUNT Reduction within Indirect Valuation -
Hi All,
I'm doing a delete from a table. How can I check if the delete deleted any rows?
Thanks in advance
BnI'm guessing that you want to check SQL%ROWCOUNT immediately following the DELETE statement (if you are not in a PL/SQL block when you issue the DELETE, your client API likely has a different call to get this information).
BEGIN
DELETE FROM some_table
WHERE some_column = some_value;
IF( SQL%ROWCOUNT = 0 )
THEN
dbms_output.put_line( 'No rows were deleted' );
ELSE
dbms_output.put_line( 'We deleted some rows' );
END IF;
END;Justin -
Hello,
I have a 5 server farm (DC, 2 WFEs, 1 SQL,1 CA w/ search) and am experiencing an issue when returning search results. This issue just started occurring recently, and basically the search page throws a correlation id whenever used. The error returned
is:
SearchServiceApplication::Execute--Exception: System.Runtime.InteropServices.COMException (0x800703FA): Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA)
SearchServiceApplicationProxy::Execute--Error occured: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA) (Fault Detail
is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.Runtime.InteropServices.COMException: Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA)
I even attempted to create an out of the box enterprise search site with OOB masterpages and I still am receiving this error.
I have also tried the ‘Do not forcefully unload the registry at user logoff’ registry edit, but it did not work.
Has anyone ran into this issue and has another solution other than the ‘Do not forcefully unload the registry at user logoff’ registry edit?
Thanks!IISReset works for me (but after some time it fails again)
Check this posts: http://pacsharepoint.com/2011/11/sharepoint-search-illegal-operation.html
http://blogs.msdn.com/b/distributedservices/archive/2009/11/06/a-com-server-application-may-stop-working-on-windows-server-2008.aspx
hope it helps, -
Setting deletion indicator/Flag for an operation in production order
Dear All, Hi
How to set deletion indicator/flag for an operation in a production order. I don't want to delete the operation as such. Please help & suggest.
Ragards,
ShaizHi Shaiz,
I hope the requirement is just like you posted earlier as in case of component deletion.
Here in this case also the behaviour of the order remains the same.
So you can go for release the order as soon as the order gets created, your both the requirements can be fullfilled.
Also you havn't provided the exact feedback on the solutions offered by all of us, on your last query.
Request you to give detailed input on the same.
Hope thish helps you.
SmanS -
Database Auditing to record DELETE operation on a schema for all tables.
Hi,
I am using ORACLE DATABASE 11g. I want to apply the AUDIT feature to record all the DELETE operations happening on the schema tables.
I did the following steps but dint got the proper output :-
I logged into the SYS as sysdba user and set
alter system set audit_trail=DB,EXTENDED scope=spfile;then i executed this command to record the sql which will use the DELETE privileges
AUDIT DELETE ANY TABLE;Then i bounced back my DB and for testing purpose i created a table in SCOTT schema and inserted 10 rows in it and then DELETE all the rows from it.
As per expectation i check the view
select * from aud$
where spare1 like '%MACHINE1%'
and USERID='SCOTT'
order by ntimestamp#;The output i got is :-
34 168368 1 1 SCOTT I-DOMAIN\MACHINE1 MACHINE1 100 0 Authenticated by: DATABASE; Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=2565)) MACHINE1 5 21-DEC-11 07.02.58.621000 AM 0 928:5024 0000000000000000 983697018 <CLOB> <CLOB> But here i don't see the SQL generated in the last column.
What i was expecting is that if i fire a DELETE statement in the schema it will get logged here and with the help of this view i will be able to see that which user from which machine executed a DELETE statement and what that statement was?
Please let me know what step i have missed here.
PS:- The ACTION# column shows 100 , is it the code for DELETE action. I also accessed the DBA_AUDIT_TRAIL view but din't found any usefull info their.
Thanks in advance.Try instead:
audit delete table;AUDIT DELETE ANY TABLE is auditing use of DELETE ANY TABLE privilege. -
I have the follwing table is called master table contain the follwing fields,
So here i need to create three Stored procedures
1.Insert operations(1 o/p paramter,and 14 input paramters) - uspInsert
2.Update operations(1 o/p paramter,and 14 input paramters) - uspUpdate
3.Delete Operations(1 o/p paramter,and 14 input paramters)
- uspdelte
The following is the table ,so using this to make the three sp's ,Here we will use Exception machanism also.
Location
Client Name
Owner
ConfigItemID
ConfigItemName
DeploymentID
IncidentID
Package Name
Scope
Stage
Type
Start Date
End Date
Accountable
Comments
So can u pls help me out for this ,bcz i knew to stored procedure's creation.I have the follwing table is called master table contain the follwing fields,
So here i need to create three Stored procedures
1.Insert operations(1 o/p paramter,and 14 input paramters) - uspInsert
2.Update operations(1 o/p paramter,and 14 input paramters) - uspUpdate
3.Delete Operations(1 o/p paramter,and 14 input paramters) - uspdelte
The following is the table ,so using this to make the three sp's ,Here we will use Exception machanism also.
Location
Client Name
Owner
ConfigItemID
ConfigItemName
DeploymentID
IncidentID
Package Name
Scope
Stage
Type
Start Date
End Date
Accountable
Comments
So can u pls help me out for this ,bcz i knew to stored procedure's creation.
Why you have to pass 14 parameters for DELETE and UPDATE? Do you have any Primary Key? If you do NOT have primary key in your table then in case you have duplicate information, SQL will update both or delete them together. You need to provide DDL of
you table. What are the data types of fields?
Best Wishes, Arbi; Please vote if you find this posting was helpful or Mark it as answered. -
CREATE and DELETE operations in MI7.1 for PDA
Hi,
We are developing a sample scenario for PDA in 7.1. Problem is we are able to implement GETLIST, GETDETAIL and MODIFY operations but not able to implement CREATE and DELETE operations. For GETLIST and GETDETAIL i have created queries. Modify is also simple (i am creating a form to edit and commiting data once i click on save). But to implement CREATE and DELETE we dont have any reference.
Regards,
VinayHi,
Now i know the answer
There is a typed method on the service component model class for root node creation. Example for binding a new root instance to a context node:
wdContext.nodeCurrentEmployee().bind(Collections.singleton(model.createEmployeeSdoEmployee()));
where model is your webdynpro model.Employee is a context node model bounded to Employee model class.This node has to be manually created in context(and then can be context mapped and bound to elements in view)
wdContext.nodeCurrentEmployee().setLeadSelection(0);
Creating a child is done on the root itself, but persisting it is a two step process:
address = employeeRootNode.createNewAddresss(); <- this only creates the instance in memory
where employeeRootNode is the model object for which the child has to be created. If the element for which the child has to be created exists in context then it can be got by
wdContext.nodeEmployee().currentEmployeeElement.model()
employeeRootNode.addToAddresss(address); <- this persists the new instance
wdContext.nodeCurrentAddress().bind(Collections.singleton(address));
wdContext.nodeCurrentAddress().setLeadSelection(0);
Delete of a root is also done on the sc model class:
model.removeEmployeeSdoEmployee(employeeRootNode);
Delete of a child is done one the root:
employeeRootNode.removeFromAddresss(address);
Hope this helps.
Regards,
Vinay
Edited by: Vinay TS on May 5, 2008 8:31 AM -
how can i restore the deleted accidentally bookmarks ? is there trash or bin for deleted bookmarks , like opera browser ?
If you have accidentally removed bookmarks then use "Organize > Undo" in the bookmarks manager (Bookmarks > Organize Bookmarks) to get them back.
The Organize button is the first of the three buttons on the toolbar in the Library (Bookmarks Manager).
That only works if you haven't closed Firefox.
Otherwise you need to restore the bookmarks from a JSON backup.
That will replace all the current bookmarks and you lose bookmarks that were added since that backup was created.
See http://kb.mozillazine.org/Backing_up_and_restoring_bookmarks_-_Firefox -
Data Loader On Demand Proxy Usage for Resume operation
Hi,
My project required me to use the proxy feature available in Data Loader R19 release.
I could use the proxy at command line for insert /update operations.
However, the same doesnt work for RESUME operation in Data loader.
Tried using proxy settings from command line as well as property file but to no use.
Any suggestions...
Regards,
SumeetIts a Java application so it may run on your Linux/Unix system, you would have to test to see if works. Last time I checked Oracle only supports the application running on windows.
-
How to override the default delete operation
Hi,
I am new to Jheadstart, java coding for that matter.
Here's my situation,
I have a view which is based on a function (function returns a collection).
I have created instead of triggers on this view to perform insert/update/delete operations.
All these DML operations work as expected in Oracle database.
Now, I created an Entity object and a view object on this view in my jheadstart project.
When I run this Jheadstart application my insert and search operations run fine but update and delete operations fail with JBO-26080 error.
The underlying oracle error is "ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc."
I know that delete and update operations work fine in Oracle and hence I would like to override the default Jheadstart operations. Can any body tell me how can I do it or point me in right direction?Hi,
From the JHeadstart Developer's Guide, chapter TroubleShooting - Problem Assessment:
If you are getting a JBO error (Business Components for Java error), try to perform the same data retrieval or data manipulation action using the BC4J Tester. You can
invoke the tester through a right-mouse-click on the BC4J application module. If you get the same error using the BC4J tester, the problem is in the BC4J object definitions. If you added business rules, or other custom code to your BC4J objects that executes during your data retrieval or data manipulation action, you can debug this code line-by-line by running the tester in debug mode. You can also look up the JBO error in the JDeveloper online help, for each error possible causes and how to solve them are described.
It sounds to me like you will also get this error in the BC4J Tester. This means that the problem is not related to JHeadstart. You can go to the JDeveloper discussion forum http://otn.oracle.com/discussionforums/jdev.html and ask your question there without mentioning JHeadstart. Maybe there is some switch you can set in the BC4J object to let BC4J not use SELECT FOR UPDATE.
Hope this helps,
Sandra Muller
JHeadstart Team -
Let us say I want to audit data updates, deletes on existing table EMP_TAB that
has a few hundred thousands of records.
I created a shadow table Emp_tab_audit and added few audit columns
Emp_tab (
Empno NUMBER NOT NULL,
Ename VARCHAR2(10),
Job VARCHAR2(9),
Mgr NUMBER(4),
Hiredate DATE,
Sal NUMBER(7,2),
Comm NUMBER(7,2),
Deptno NUMBER(2) NOT NULL);
CREATE TABLE Emp_tab_audit (
seq number
operation varchar2(3),
user varchar2(20),
Timestamp date,
ip_address varchar2(25),
Terminal varchar2(10,
Empno NUMBER NOT NULL,
Ename VARCHAR2(10),
Job VARCHAR2(9),
Mgr NUMBER(4),
Hiredate DATE,
Sal NUMBER(7,2),
Comm NUMBER(7,2),
Deptno NUMBER(2) NOT NULL);
I am mostly interested in UPDATES and DELETES but I decided to add INSERTS to have full history for
each eomplyee in one table (audit schema) instead of querying two tables all the time (production
table and audit table) to see the changes.
I created this AFTER INSERT, UPDATE, DELETE trigger.
I decided to copy the :NEW values for INSERT and UPDATE and :OLD values for DELETE.
see attached.
so when insert happens, the first audit row is created in EMP_TAB_AUDIT.
when update happens, the 2nd new row is created in EMP_TAB_AUDIT.
The problem I am facing is the old records that curently exist. If someone updates an old row I am
copying the :NEW values so I won't have a copy of the :OLD values unless I create 2 ROWS (one for
the old and one for the new).
Do you think I should copy all the hundreds of thousands of records to the AUDIT tables for this to
work. I am hesitant to do that.
ANy better ideas. I am applying this solution to several tables (not just one).
This is also in 9i and i dont flexibility other than using a trigger to track data changes.
CREATE OR REPLACE TRIGGER TRG_EMP_AUDIT
AFTER INSERT OR DELETE OR UPDATE ON EMP_TAB
FOR EACH ROW DECLARE
v_operation VARCHAR2(10) := NULL;
v_user VARCHAR2(20);
v_timestamp Date;
v_ip_address VARCHAR2(25),
v_terminal VARCHAR2(10);
BEGIN
v_user := USERENV(user);
v_timestamp := SYSDATE;
v_ip_address := USERENV(ip_address);
v_terminal := USERENV(terminal);
IF INSERTING THEN
v_operation := 'INS';
ELSIF UPDATING THEN
v_operation := 'UPD';
ELSE
v_operation := 'DEL';
END IF;
IF INSERTING OR UPDATING THEN
INSERT INTO EMP_TAB_AUDIT (
seq,
operation,
user
timestamp,
ip_address,
terminal,
empno,
job,
mgr,
hiredate,
sal,
comm,
deptno )
VALUES (
audit_seq.nextval,
v_operation,
v_user,
v_timestamp,
v_ip_address,
v_terminal,
:new.empno,
:new.job,
:new.mgr,
:new.hiredate,
:new.sal,
:new.comm,
:new.deptno);
ELSIF DELETING THEN
INSERT INTO EMP_TAB_AUDIT (
seq,
aud_action,
user
timestamp,
ip_address,
terminal,
empno,
job,
mgr,
hiredate,
sal,
comm,
deptno )
VALUES (
audit_seq.nextval,
v_operation,
v_user,
v_timestamp,
v_ip_address,
v_terminal,
:old.empno,
:old.job,
:old.mgr,
:old.hiredate,
:old.sal,
:old.comm,
:old.deptno);
END IF;
END;
*******************************************************************************For auditing normailly you do AFTER triggers (not BEFORE) as ther could be other triggers that change the :NEW data stored in the row.
You can capture :OLD in AFTER too, but the issue you are saving the updated values. You are storing an image of the OLD row so you still need to check the current row to find out what has been updated. My preference was to store NEW values on updates. -
Audit logs for read operation on tables
I have a requirement of implementing audit logs for tables on read / select operation in addition to insert,update,delete operations. Is there any way to achieve this since triggers are present only for insert,update and delete ?
thanks in advanceHi,
yes there are many ways you can audit the Source database according to your requirments. as you need to audit the select , insert etc you can audit in many ways
1) By implementing policies , (i.e) FGA , or statement policy on a given table or a given user.
2) you can also do the required task by implementing the alerts on specific conditions like select on a specifc table etc
you can use these utileties from AV console.
Regards. -
Enter event not triggering for read-only checkbox
I have some objects in a form that get "locked" when the user signs the form. I'm not using the digital signatures. Instead, when the user types their name into the signature text field, a script runs on the change event that makes all of the fields in the form read only. It also unlocks the fields if the signature is deleted.
I was worried that we would get a lot of phone calls with users that didn't understand that the form had locked ("Why doesn't this form work?!"), so I added some code to the enter event for all of the fields that would pop up a messagebox to explain to people trying to edit a signed form that the form was locked and that they would need to delete the signature to edit the form.
This plan works perfect for my text fields and decimal fields. It does NOT work at all for my checkboxes. For some reason, the enter event is never triggered for read-only checkboxes. I don't see any other events that would obviously work for me though. Any ideas?
ThanksThanks, those are reasonable suggestions.
In the first suggestion, I'm unclear about one aspect of how I would accomplish this. I assume I would allow people to modify fields in the form, but that when they did, a msgbox would pop up that would inform them that, if they continued with this modification to a signed form, the signature would be removed. I'm all good to that point. But if they answered that they do not want to continue modifying that field and removing the signature, how can I code it to set the value back to what it was before the change? Is there some method that will give me access to the value of the field BEFORE the attempted modification? I went looking for something like $.previousvalue, but found nothing.
I'd suggest that I could use a two-stage solution, in which I store the previous value on the enter event, and save it just in case they do not want to change the field when prompted by the msgbox, but since the enter event does not exist for checkboxes (my original problem), that seems like it won't work.
As far as radio button suggestion, I like radio buttons very much except for one fatal flaw: they aren't (as far as I can tell) clearable. That is a shame. Clearly some people (like me) want both exclusivity AND clearability. And we'd like the controls to have an enter event. But I know I'm demanding Anyway, as it is, I just end up having to use checkboxes and create a boatload of silly code to make them exclusive.
Emily -
Delete operation is not working to delete selected row from ADF table
Hi All,
We are working on jdev 11.1.1.5.3. We have one ADF table as shown below. My requirement is to delete a selected row from table, but it is deleting the first row only.
<af:table value="#{bindings.EventCalendarVO.collectionModel}" var="row"
rows="#{bindings.EventCalendarVO.rangeSize}"
emptyText="#{bindings.EventCalendarVO.viewable ? applcoreBundle.TABLE_EMPTY_TEXT_NO_ROWS_YET : applcoreBundle.TABLE_EMPTY_TEXT_ACCESS_DENIED}"
fetchSize="#{bindings.EventCalendarVO.rangeSize}"
rowBandingInterval="0"
selectedRowKeys="#{bindings.EventCalendarVO.collectionModel.selectedRow}"
selectionListener="#{bindings.EventCalendarVO.collectionModel.makeCurrent}"
rowSelection="single" id="t2" partialTriggers="::ctb1 ::ctb3"
>
To perform delete operation i have one delete button.
<af:commandToolbarButton
text="Delete"
disabled="#{!bindings.Delete.enabled}"
id="ctb3" accessKey="d"
actionListener="#{AddNewEventBean. *deleteCurrentRow* }"/>
As normal delete operation is not working i am using programatic approach from bean method. This approach works with jdev 11.1.1.5.0 but fails on ver 11.1.1.5.3
public void deleteCurrentRow (ActionEvent actionEvent) *{* DCBindingContainer bindings =
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding dcItteratorBindings =
bindings.findIteratorBinding("EventCalendarVOIterator");
// Get an object representing the table and what may be selected within it
ViewObject eventCalVO = dcItteratorBindings.getViewObject();
// Remove selected row
eventCalVO.removeCurrentRow();
it is removing first row from table still. Main problem is not giving the selected row as current row. Any one point out where is the mistake?
We have tried the below code as well in deleteCurrentRow() method
RowKeySet rowKeySet = (RowKeySet)this.getT1().getSelectedRowKeys();
CollectionModel cm = (CollectionModel)this.getT1().ggetValue();
for (Object facesTreeRowKey : rowKeySet) {
cm.setRowKey(facesTreeRowKey);
JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding)cm.getRowData();
rowData.getRow().remove();
The same behavior still.
Thanks in advance.
Rechin
Edited by: 900997 on Mar 7, 2012 3:56 AM
Edited by: 900997 on Mar 7, 2012 4:01 AM
Edited by: 900997 on Mar 7, 2012 4:03 AMJDev 11.1.1.5.3 sounds like you are using oracle apps as this not a normal jdev version.
as it works in 11.1.1.5.0 you probably hit a bug which you should file with support.oracle.com...
Somehow you get the first row instead of the current row (i guess). You should debug your code and make sure you get the current selected row in your bean code and not the first row.
This might be a problem with the bean scope too. Do you have the button (or table) inside a region? Wich scope does the bean have?
Anyway you can try to remove the iterator row you get
public void deleteCurrentRow (ActionEvent actionEvent) { DCBindingContainer bindings =
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding dcItteratorBindings =
bindings.findIteratorBinding("EventCalendarVOIterator");
dcItteratorBindings.removeCurrentRow();Timo
Maybe you are looking for
-
How to specify custom SQL in polling db adapter with logical delete option
Hi all, I am writing a SOA composite app using JDeveloper SOA Suite 11.1.1.4 connecting to a SQL Server db using a polling DB Adapter with the logical delete option to send data to a BPEL process. I have requirements which go beyond what is supported
-
Itunes remote for ipod touch not working staying on passcode
i download the itunes remote fro the ipod that lets u control itunes from the ipod touch, but the ipod touch stay's on the 4 number passcode u enter on itunes
-
LOV getting disabled while passivation
When running my ADF application with AM pooling switched off to test passivation/activation, a particular LOV is getting disabled once you select a value for it. User should be allowed to change the value here as many times he/she wishes. Issue occur
-
Printing - Terrible Margin Problem
I have read all of the posts regarding margin problems. Ill tried creating the custom 'iCal' size in Safari but nothing works. When printing in week view all 4 margins spill over the edge. This occurs whether printing to paper or PDF. Any fixes to th
-
Behaviors without helper functions
Hi all, I'm trying to create a behavior that doesn't require a behavior function, is this possible using the behaviors API? Dreamweaver requires a behaviorFunction() function in behaviors, and returnig an empty string results in a message "The Action