Trigger with :new references

i have a table with the following fields
I_ID I_ID_PARENT      I_Description               ekey
1 1      Pageimpressions
2 1      Startpage
3 1      news
4 1      R_part
5 4      Business
6 4      Finance
7 4      Computer
8 4      carriere &
9 4      Kids
10 4      Shopping
11 4      Travel
i want a trigger which inserts a value into ekey automatically while inserting a new row into a table. the possible records for the table would be as stated abv. the value of ekey shud be some thing like parent||'0'||no.of child of that parent (ex.101,102,103,104,401...)
can u help me out in this process... i have written a code which im sending u below but gives me error
create or replace trigger DLEI_trig
before insert on D_POSITION
for each row when (new.I_ID > 0)
Begin
select to_char(base_key) into :new.EKEY from (
select e1.:new.I_ID*100+ROW_NUMBER()
OVER(
PARTITION BY e1.:new.I_Description order by e1.:new.I_Description desc) base_key
from D_POSITION e1,D_POSITION e2
where e2.:new.I_ID_parent=e1.I_ID) ;
end;
/

This is a solution but it is not transaction safe. It will work if you only ever have one user updating the table; so it might be viable for systems based on Personal Oracle :P
Ponder the following sequence of events, in which two users update a table which has the trigger RAMUTR.
Cheers, APC
User 1 starts the following transaction:
USR1> insert into t1 values (1, 325, 0, 'Does this work?');
1 row created.
USR1> select col1, col3, col4 from t1;
      COL1       COL3 COL4
         1        101 Does this work?
USR1> commit;
Commit complete.
USR1> insert into t1 values (1, 326, 0, 'How about this?');
1 row created.
USR1> select col1, col3, col4 from t1;
      COL1       COL3 COL4
         1        101 Does this work?
         1        102 How about this?
Unfortunately user 1 doesn't commit at this point. So when user 2 starts work this is what happens:
USR2> select col1, col3, col4 from t1;
      COL1       COL3 COL4
         1        101 Does this work?
USR2> insert into t1 values (1, 426, 0, 'Is this right?');
1 row created.
USR2> commit;
Commit complete.
USR2>
Which means user 1 is now in for a bit of a surprise:
USR1> insert into t1 values (1, 326, 0, 'What happened?');
1 row created.
USR1> select col1, col3, col4 from t1;
      COL1       COL3 COL4
         1        101 Does this work?
         1        102 How about this?
         1        102 Is this right?
         1        104 What happened?
USR1>

Similar Messages

  • Repeat with New Reference Image?

    New to Flash, apologies. I'm sure this is an easy hurtle to
    overcome. I've created an 8 second animation (see
    http://www.etchpoint.com/gottint02/home.html
    top bar) that I would like to repeat, but to use a new image and
    new text each time. I'm having a heck of a time copying / pasting
    the layers to maintain the fades and transitions.
    Is there an easy way to set up this animation to repeat a few
    times, each time with a new image+text combo? Can I save out 5
    individual, 8-sec clips and sew them together after the fact? Can I
    set up a template to reuse with new references easily?
    Thanks,
    - Eric

    You can and must use both if you don't want to do it in the db totally.
    You need an association and view link giving you the employees you want to copy and an association from the new department which you use to create the new routes ant copy the values from the existing employees.
    You iterate over the employees you want to copy to the new department. For each of the employees you use the new department, use the assessor to the employees of the new department, create a new record using this assessor and copy the values from the exciting employee. Only the FK is created automatic by the framework.
    Timo

  • Pb Trigger with :new

    Hello
    When I use this Trigger:
    CREATE OR REPLACE TRIGGER TMM_EXPLOSE_T
    AFTER INSERT ON TMM_EXPLOSE
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE TTCNT INTEGER;
    BEGIN
    TTCNT:=0;
    IF (:NEW.TMM_TYPE != 'SNBOM') THEN
    TMM_EXPLOSE_P(:NEW.TMM_TYPE,:NEW.USERNAME,:NEW.CAL,:NEW.POS,:NEW.DDATE,:NEW.LIV,:NEW.SLIV,:NEW.MQTY,:NEW.PARENT,:NEW.CHILD,'',TTCNT);
    ELSE
    TMM_EXPLOSE_SN(:NEW.TMM_TYPE,:NEW.USERNAME,:NEW.CAL,:NEW.POS,:NEW.DDATE,:NEW.LIV,:NEW.SLIV,:NEW.MQTY,:NEW.PARENT,:NEW.CHILD,'');
    END IF;
    END;
    I receive this error:
    PLS-00553: character set name is not recognized
    I think is for the :NEW
    Could you explain me how i can do it work please
    I use Orcale 9.2.0.1.0 on Unix server with
    NLS_CHARACTERSET     WE8ISO8859P15
    NLS_NCHAR_CHARACTERSET     AL16UTF16
    NLS_LANGUAGE     AMERICAN
    Thank you
    Pierre Diaz

    hi:
    what version of Project Raptor are you using?
    I created a tmm_explose table with just a column tmm_type;
    I open a sql worksheet on Raptor 08.04 on linux, and when I run
    CREATE OR REPLACE TRIGGER TMM_EXPLOSE_T
    AFTER INSERT ON TMM_EXPLOSE
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE TTCNT INTEGER;
    BEGIN
    TTCNT:=0;
    IF (:NEW.TMM_TYPE != 'SNBOM') THEN
    -- TMM_EXPLOSE_P(:NEW.TMM_TYPE,:NEW.USERNAME,:NEW.CAL,:NEW.POS,:NEW.DDATE,:NEW.LIV,:NEW.SLIV,:NEW.MQTY,:NEW.PARENT,:NEW.CHILD,'',TTCNT);
    null;
    ELSE
    -- TMM_EXPLOSE_SN(:NEW.TMM_TYPE,:NEW.USERNAME,:NEW.CAL,:NEW.POS,:NEW.DDATE,:NEW.LIV,:NEW.SLIV,:NEW.MQTY,:NEW.PARENT,:NEW.CHILD,'');
    null;
    END IF;
    END;
    /the message is a popup window stating: "An error was encountered performing the requested operation: Missing IN or OUT parameter at index:: 1 Vendor code 17041"
    The same works when I put :new in quotes:
    CREATE OR REPLACE TRIGGER TMM_EXPLOSE_T
    AFTER INSERT ON TMM_EXPLOSE
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE TTCNT INTEGER;
    BEGIN
    TTCNT:=0;
    IF (:"NEW".TMM_TYPE != 'SNBOM') THEN
    -- TMM_EXPLOSE_P(:NEW.TMM_TYPE,:NEW.USERNAME,:NEW.CAL,:NEW.POS,:NEW.DDATE,:NEW.LIV,:NEW.SLIV,:NEW.MQTY,:NEW.PARENT,:NEW.CHILD,'',TTCNT);
    null;
    ELSE
    -- TMM_EXPLOSE_SN(:NEW.TMM_TYPE,:NEW.USERNAME,:NEW.CAL,:NEW.POS,:NEW.DDATE,:NEW.LIV,:NEW.SLIV,:NEW.MQTY,:NEW.PARENT,:NEW.CHILD,'');
    null;
    END IF;
    END;
    /Please, note that I just commented the tmm_explose_p function (for lazyness... :-))

  • After insert trigger with :NEW.ROWID

    Hi All,
    I am using a After insert trigger to generate history record as following:
    CREATE TABLE TB_TEST (classID number(3), classNm varchar2(12));
    CREATE TABLE TB_HIST_TEST (hist_dttm timestamp(6), classID number(3), classNm varchar2(12));
    CREATE or REPLACE TRIGGER air_test AFTER INSERT ON tb_test FOR EACH ROW
    BEGIN PK_SRVC.CRT_NewRec('TB_TEST', 'TB_HIST_TEST', :new.ROWID); END:
    In PK_SRVC package, I use the following statment to create new record in TB_HIST_TABLE:
         Insert into tb_hist_test (hist_dttm, classID, classNm)
         values (select systimestamp, classID, classNm from tb_test where rowid = ROWID )
    The trigger DOES fire when a new row is inserted into TB_TEST. However there is no record inserted into TB_HIST_TEST. Any suggestion?
    Thanks,

    The PK_SRVC.CRT_NewRec is a generic service package that can be shared by many tables. It uses dynamic SQL to get all the collumns for different tables based on USER_TAB_COLUMNS.  The following is the code of this package:
    PROCEDURE CRT_NewRec ( p_TableName IN VARCHAR2, p_AudTableName IN VARCHAR2, p_RowID)
    IS
           TYPE TabCol_RecTyp IS RECORD (COLUMN_NAME VARCHAR2(30), COLUMN_ID NUMBER);
           TYPE TabCol_CurTyp IS REF CURSOR;
            c_TabCol TabCol_CurTyp;
            rc_TabCol TabCol_RecTyp;
            v_Sql_TabCol VARCHAR2(1000);
            v_ColNames VARCHAR2(1000);
            v_Sql VARCHAR2(1000);
            PRAGMA AUTONOMOUSE_TRANSCATION;
    BEGIN
            v_SQL_TabCol := ' SELECT column_name, column_id FROM USER_TAB_COLUMNS'
                                      ||  ' WHERE table_name = ' || CHR(39) || p_TableName || CHR(39)
                                      || '  ORDER BY column_id';
            v_ColNames := NULL;
            OPEN c_TabCol FOR v_Sql_TabCol;
            Loop
                   FETCH c_TabCol INTO rc_TabCol; Exit WHEN c_TabCol%NOTFOUND:
                   v_ColNames := v_ColNames || ',' || rc_TabCol.COLUMN_NAME;
            End Loop;
            CLOSE c_TabCol;
            v_Sql := 'INSERT INTO ' || p_AudTableName || '(HIST_DTTM, ' || v_ColNames || ' )'  
                      || ' SELECT systimestamp, ' || v_ColNames || ' FROM ' || p_TableName
                      || ' WHEN ROWID = chartorowid(' || CHR(39) || p_RowId || CHR(39) || ')';
             EXECUTE IMMEDIATE v_Sql;
             COMMIT;
    END;    
    (charmingholidays-yyz)

  • Dynamic references to trigger vars :new and :old

    Is there any way to dynamicly refer to the :old and :new bind
    variables available in triggers?
    I'm looking for a method to make a standard processing system
    that processes based on column-names. I want to avoid calling my
    handling system staticly for each field in the table.
    Ie. I want to refer to :old.data_column in a way where I can
    loop through all the fields of the table.
    Hints, tips and ideas would be greatly apprechiated.

    You can't have dynamic PL/SQL containing ":NEW" or ":OLD" in
    database triggers.
    But in some cases, if your table has primary key (PK)
    or unique key (UK), you can use AFTER STATEMENT triggers
    in following way
    (this is like well-known solution for mutating error problem):
    1. create database package with PL/SQL table
    (for storing PK values)
    2. clear PL/SQL table in BEFORE STATEMENT trigger
    3. populate PL/SQL table with PK value
    in BEFORE (or AFTER) ROW trigger
    4. read rows in AFTER STATEMENT trigger with dynamic PL/SQL,
    using PKs from PL/SQL table and using dynamically selected
    column names with statement
    SELECT column_name
    FROM user_tab_columns
    WHERE UPPER (table_name) = UPPER (p_table);"
    (you can read NEW values of columns and,
    with AUTONOMOUS_TRANSACTION, OLD values too)
    For example (scott.dept table):
    CREATE OR REPLACE TRIGGER bus_dept
    BEFORE UPDATE ON dept
    BEGIN
    plsql_table.clear;
    END;
    CREATE OR REPLACE TRIGGER bur_dept
    BEFORE UPDATE ON dept
    FOR EACH ROW
    BEGIN
    plsql_table.populate_with_id (:NEW.deptno);
    END;
    CREATE OR REPLACE TRIGGER aus_dept
    AFTER UPDATE ON dept
    DECLARE
    v_current_id dept.deptno%TYPE;
    BEGIN
    dynamic_new_old.set_table_name ('dept');
    dynamic_new_old.set_pk_name ('deptno');
    dynamic_new_old.create_column_names;
    WHILE plsql_table.id_exists LOOP
    v_current_id := plsql_table.current_id;
    DBMS_OUTPUT.PUT_LINE ('OLD VALUES:');
    dynamic_new_old.display_old_values (v_current_id);
    DBMS_OUTPUT.PUT_LINE ('NEW VALUES:');
    dynamic_new_old.display_new_values (v_current_id);
    DBMS_OUTPUT.PUT_LINE ('*****');
    END LOOP;
    END;
    CREATE OR REPLACE PACKAGE plsql_table IS
    PROCEDURE clear;
    PROCEDURE populate_with_id (p_id dept.deptno%TYPE);
    FUNCTION id_exists RETURN BOOLEAN;
    FUNCTION current_id RETURN dept.deptno%TYPE;
    END;
    CREATE OR REPLACE PACKAGE BODY plsql_table IS
    TYPE type_plsql_table IS TABLE OF dept.deptno%TYPE INDEX BY
    BINARY_INTEGER;
    m_plsql_table type_plsql_table;
    -- prefiks m_ is for module level variable (defined in package
    body)
    -- prefiks g_ is for global variable (defined in package
    specification)
    m_rec_number BINARY_INTEGER;
    PROCEDURE clear IS
    BEGIN
    m_rec_number := 0;
    END;
    PROCEDURE populate_with_id (p_id dept.deptno%TYPE) IS
    BEGIN
    m_rec_number := m_rec_number + 1;
    m_plsql_table (m_rec_number) := p_id;
    END;
    FUNCTION id_exists RETURN BOOLEAN IS
    BEGIN
    RETURN (m_rec_number > 0);
    END;
    FUNCTION current_id RETURN dept.deptno%TYPE IS
    v_id dept.deptno%TYPE;
    BEGIN
    v_id := m_plsql_table (m_rec_number);
    m_rec_number := m_rec_number - 1;
    RETURN v_id;
    END;
    END;
    CREATE OR REPLACE PACKAGE dynamic_new_old IS
    PROCEDURE set_table_name (p_table VARCHAR2);
    PROCEDURE set_pk_name (p_pk VARCHAR2);
    PROCEDURE create_column_names;
    PROCEDURE display_old_values (p_id dept.deptno%TYPE);
    PROCEDURE display_new_values (p_id dept.deptno%TYPE);
    END;
    CREATE OR REPLACE PACKAGE BODY dynamic_new_old IS
    m_table VARCHAR2 (30);
    m_pk VARCHAR2 (30);
    m_columns VARCHAR2 (1000);
    PROCEDURE set_table_name (p_table VARCHAR2) IS
    BEGIN
    m_table := p_table;
    END;
    PROCEDURE set_pk_name (p_pk VARCHAR2) IS
    BEGIN
    m_pk := p_pk;
    END;
    PROCEDURE create_column_names IS
    v_first_column BOOLEAN;
    BEGIN
    v_first_column := TRUE;
    FOR rec IN
    (SELECT column_name
    FROM user_tab_columns
    WHERE UPPER (table_name) = UPPER (m_table))
    LOOP
    IF v_first_column THEN
    v_first_column := FALSE;
    m_columns := 'v_record.' || rec.column_name;
    ELSE
    m_columns := m_columns ||
    '||' || '''--''' || '|| v_record.' || rec.column_name;
    END IF;
    END LOOP;
    END;
    PROCEDURE display_values (p_id dept.deptno%TYPE) IS
    v_cursor INTEGER;
    v_rows_processed INTEGER;
    v_statement VARCHAR2 (32000);
    BEGIN
    v_statement :=
    ' DECLARE ' ||
    ' v_record ' || m_table || '%ROWTYPE;' ||
    ' BEGIN' ||
    ' SELECT * INTO v_record' ||
    ' FROM ' || m_table ||
    ' WHERE ' || m_pk || ' = ' || p_id || ';' ||
    ' DBMS_OUTPUT.PUT_LINE (' || m_columns || ');' ||
    ' END;';
    v_cursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE (v_cursor, v_statement, DBMS_SQL.V7);
    v_rows_processed := DBMS_SQL.EXECUTE (v_cursor);
    DBMS_SQL.CLOSE_CURSOR (v_cursor);
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE (sqlerrm);
    IF DBMS_SQL.IS_OPEN (v_cursor) THEN
    DBMS_SQL.CLOSE_CURSOR (v_cursor);
    END IF;
    END;
    PROCEDURE display_old_values (p_id dept.deptno%TYPE) IS
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
    display_values (p_id);
    END;
    PROCEDURE display_new_values (p_id dept.deptno%TYPE) IS
    BEGIN
    display_values (p_id);
    END;
    END;
    Note that this code is not generic, because uses
    "dept.deptno%TYPE". If all your PKs has the same declaration
    (for example NUMBER), then you can write generic solution.
    If you need only OLD values, you can write a simpler solution
    (without statement triggers and "plsql_table" package),
    using "dynamic_new_old" package and AUTONOMOUS_TRANSACTION
    in BEFORE (or AFTER) ROW trigger.
    Regards
    Zlatko Sirotic

  • 11 Nice Features with New Awesome & easy Magnetic Pen Tool (Updated)

    1.      Scale effects during the scaling object, in the control bar there is more space (Empty) that will be the helpful to show you the example of the picture that I have made myself, when you transform any object, you will see these options in the control bar.
    2.      Save preset of filters in filter gallery:- will be really powerful, it must be exchangeable so that we could send that preset to any one, it must be applicable on percentage(%) of document size, (depends on document resolution).
    3.     Filter gallery must be the (live filter gallery), if this works on any raster object without converting to smart object, this will be helpful for creating live PSD.
    4.     History panel:- history panel must save the history of document. It will be helpful and powerful, we could apply that history to any document like actions, and history should not be saved with document itself, it must be separate like actions, create 2 arrows in the bottom of panel like layer combs’ panel, to check the history, if any step is wrong we could be able to remove that step,
                                  OR
    5.   Also create/convert history into action, see the pic as example,
    If (to Adobe Photoshop Team) history saving is not a good idea! Then before closing the document you must convert history into actions, when any person saves document and has forgotten converting history into actions and wants to close the document, at that time that dialogue must be opened, (Do you want to convert your history into actions, when you open (that) document again you will miss history, and also must create a CHECK BOX for don’t show again.
    6.     Layers Group:- In the group (folder) we move the objects with move tool and it moves all grouped objects that’s much better, but when we open the group (Folder), after opening it moves also all grouped object !!!, that’s not perfect, I suggest you how to do it, double click on grouped any object to open the group then move any object, and double click on any grouped object to close the group (folder). ( like Illustrator )
    7.      Photoshop Extended can create powerful creative animation with audio and animation panel support completely the smart object and smart object makes animation really smart. But the problem is that it takes too much time to generate animation of few seconds and generated video file size is very large up to 1.GB.
            Here is solution, like new document dialogue box under the Device Central button it shows the document size, as hint, same way in the render video dialogue box it must show the file size and generating time and reducing file size hints.
            I had created (20 months ago) in Photoshop extend CS3  really awesome animation of earth, from where it starts it ends there, and shadows on earth are really awesome, map that moves to the shadow side, it changes from day to night and in the shadows you can see the roads’ and cities’ lights’ just like real night map photo it happens like naturally cause of smart object, I have two photos of the map day and night used for animation, you can see that creative animation on youtube.
    (Link)= http://www.youtube.com/watch?v=sd86xGIkQxM
    watch this animation in full screen Mode, b/c Youtube has reduced the Quality of Video.
    8.   Welcome Screen:- Why welcome Screen is necessary?
                    Adobe’s all products must be linked with Design sequence. (Interface)
    Design Standard Suite which itself is a famous  printing and publishing suite for design ( creation) layout, must keep same sequence of all products and should not affect the attraction,
                    Example for Interface, now if CS6 all programs are created with new interface will you don’t change the Photoshop's interface???
    Here are my Design Sequences Examples
    These Pictures I have Designed in Illustrator
    Photoshop with Welcome Screen Looking like Illustrator & Indesign now it matching with its Family.
    Benifits of Welcome Screen for ( New ) user
    A.    Many people don't know that Photoshop has free few samples with it these are nice example to understand that what photoshop can do!
    B.    Photoshop Exchange : is really Necessary : for to exchange Workspace, color profile, Actions, Key Board Shortcuts, Layer Styles,    Swatches, Filter Gallery Presets & PSDs etc.
    C.    This will be helpful for New Users TV.Adobe.com they will watch free teqchniques, as see this welcome screen.
    D.     Any older user don't want to see the welcome screen that person can turn on that check box (Don't Show Again).
    9. Pen Tool + Magnetic Pen Tool =
    In my idea pen tool is the perfect tool for vector drawing it gives us perfect result as we want. but about those people like (Toys-R-Us (One Really Big Pen Tool Shortcoming) or other like him, if they can't understand, although pen tool is very easy to use, & he wants short key without going back for to breatck the handle, (for those people) if you want to create short key then short key should be "c or any easy" press to breat the handle, then press again to get back handle again during the using pen tool, or create a magnetic pen tool it must work like magnetic lasso tool works for selection, it will be the best & easy to use & to understand, during to use this tool if it goes to wrong way simply press back space key to go back to last step same like Magnetic Lasso.
    (Awesome Magnetic Pen Tool)
    or create pen tool like fireworks its pen tool shows next click's preview (very nice pen tool is in fireworks to understand ( really Awesome )
    10. keyboard shortcuts like Illustrator for Blend Modes Next , Previous & Opacity 10 to 90, I had started to learn Illustrator CS3 & since CS3 I use these shortcuts for that, (~)tildi for next blend mode, Shift (~) tildi for previous mode, & opacity 10=1 key 20=2 to 90=9 key
    11.PANEL ICONS Should be Attached under or above the tool Bar but not on Right or Left Side only ( like Indeign CS2 ).
    Note :-
    I shall appreciate your frank comments on the above suggestions.
    Message was edited by: Muhammad Amjad Khan Abro
    Message was edited by: Muhammad Amjad Khan Abro

    OK Here goes my wannahaves...
    1) create new table or sheet from a file instead of having to open the file and copy/paste into current document. ie "Insert Sheet from file", "Insert Table from File"
    2) show linked data from a data source other than the address book - eg an ODBC data source or Filemaker database
    3) Ability to paste a filtered table into a new table with just the found rows.
    4) Ability to freeze rows and columns to allow for very wide or deep tables
    5) When typing data into a cell, automatically adjust its width as you type. Depending on your enter key config, hitting enter puts a new line in the cell and adjusts the row height to fit.
    6) Printer page formats default to regional standard: eg in Australia, UK - A4
    7) Popup list or menu contents based on a data range: eg a list of categories
    8) Media to be selected from anywhere on the system, not just in iTunes/iPhoto (eg most of my video is on an external hard drive)
    9) "Autofilter" based on contents of the column.
    10) Vlookup and other reference functions: need to be able to select a table (by name) as your range, a column/row (by name) to look up from and a column/row (by name) to retrieve. All functions should work this way, not just the basic ones.
    11) When inserting a table you should be asked how many rows and columns.
    12 "Format painter" - copy styles and other formatting from cell to cell and table to table.
    13) Outlining based upon repeated cell values

  • InDesign CS2 - 100 document limit and compatibility with newer versions

    Hello,
    I have Adobe InDesign CS2 and am using it to compile a large report. I have come across a problem once i tried to add more than 100 documents to my book and now see there is a 100 file limit to books in CS2. Each document needs to stay as a single file so i am unable to join files to overcome this problem.
    I have a summary table at the beginning of the document detailing the title of each file in the book. I am unable to work out how to create page hyperlinks in the pdf to the second book (documents over the 100 mark).
    It has since come to fruition that my company has updates to CS3 and CS5 and that these new versions do not have a 100 file limit in creating books. This document i am creating is over 400 pages long so i am wary of upgrading to a new version when i am not far from publishing.
    Should i have any concerns in upgrading to a new version of InDesign when i have almost finished my report? Would it be better to just upgrade to CS3 and not make such a large jump to CS5? Or does anyone know how to create page hyperlinks in my pdf to the files contained in the second book?
    Thanks for any help! Much appreciated.

    Normally I would advise against changing versions in midstream on a project like this, but I'm not sure you have a choice. My instinct is there will be fewer issues moving to CS3 than CS5, but there are far more features in CS5 you might like to use...
    One way to limit the possible anomalies would be to export all the CS2 files to .inx na open those in CS5, rather than converting the .indd files directly, then save as new CS5 .indd files and add to a new book. One very serious issue you may run into wehn moving to a later version is that the text engines are updated and text won't necessarily flow exactly the same, particualry justified text, which can cause line endings to move and some paragraphs may gain or lose a line, which can have a really devastating effect on a long doc if it causes a page count to shift. The killer is that the changes normally don't happen until you start to edit text in that story. I believe the .inx route will force a recompose on opening, but I'm not dead certain, so take a look at http://indesignsecrets.com/force-text-reflow-when-indesign-forgets-to-flow-the-text.php to see how to force the recompose manually as soon as you open the file (you'd only need to do it once, before saving in the new version, for each file), then check carefully for oversets or other problems. Live preflight in CS5 can help with that.
    As you can tell, a successful move to a newer version is likely to be a lot of careful work preparing and checking the files. Some of it can be automated (the export to .inx, the recompose, and the save in the new version) by scripting, but in all honesty you're going to need to check every page when you are done.
    One of the others who uses Hyperlinks will need to weigh in on ID's native abilities and linking to other files in a book. I know that doing that with cross-references (which don't even exist natively prior to CS4) is extremely likely to break down at some point and leave you trying to remake them all, and large numbers of links across docs is likely to slow CS5 in particular to a crawl unless all files (at least the ones to which there are links in the doc you are editing) in the book are open.

  • Insert Textpool with dictionary reference

    Hi!
    I want to translate a textpool per down and upload in excel. I translate the downloaded textpool in excel and upload it for the new language.
    The problem is: if the parameters are with dictionary reference, it doesn´t work - after INSERT TEXTPOOL it shows the parameter-text instead of the Dictionary-text.

    Unfortunately, the checkbox (Dictionary Ref.) is not part of the TEXTPOOL structure. So when you read the text pool and update it using INSERT TEXTPOOL, it will overwrite all your existing settings including this checkbox. You will have manually go into the selection texts and check this box again.

  • Scope of global & pl/sql variable in open_form with new session

    Hi,
    What will be the scope of the Oracle forms global variable & variable declared in a pl/sql pckage, if the value in these variable is updated from the Oracle Form GUI, if the form is opend by using the open_form method with new session or Active session.
    My requirement is , I developed one application with custom user login name & password - not the Oracle username & password.
    But I need to track the user actions on the forms - Inser/Update/Delete action, for this i included user_name as one of the column in the base table, and from the form, initialise this field with login user name.
    I implemented this in the trigger of the base table. But for delete, I am not getting the user name who deleted, only getting the user who created this record, because :NEW is not in scope for after delete trigger. So for the delte, I created a variabe in a PL/SQL package, and created two procedure to set & get the user name to that variable, and from the Form, before delete by using the set method I assign the current login user name to the variable, and in the trigger by using the get() get the user name from the variable, So far this is working fine, my doubt is What will be the value in the variable, if two different user made delete action from at a same time, Whether first user name will be replace with second one, or this variable will be in different session, If I opened the forms by using SESSION parameter. Also can I use Oralce Forms global varaible instead of the PL/SQL varibale.
    Thank in advance.

    Thanks Andreas,
    I did the same way. But my doubt is All the user login will be in different session, I mean, Whether the vairable used to store the user name will be in different session to each Oracle Forms user, it wont overwrite one user name with the next login user name.
    -- Copied from you old message:
    <<On the forms-side after the login, call PK_USER.PR_SET_USER(THE_USER_TAKEN_FROM_SOMEWHERE);
    In your db-triggers where you actually use something like USER, use PK_USER.FK_GET_USER instead>>
    Thanks
    Rizly

  • KALC (recons) eliminated in ECC 6.0 with New GL?

    Hello all,
    In ECC 6.0, New GL functionality, is transaction KALC, where the reconciliation postings happen between CO-FI eliminated? So the allocations for that matter would not be a Month end activity? All types of allocations and therefore their reconciliations will happen real-time?
    Please help me with these questions.
    Thanks,
    Nysa
    Cross-post

    Hi
    Reco ledger is no longer required if you implement New GL.. As with New GL it happens on real time basis
    Allocations are still a month end activity.. But, unlike before, when you do allocations now in CO, it triggers a posting in FI as well due to which FI and CO are reconciled real time.... The reco variant you can set up to trigger postings in FI whenever a cross Bus area or cross PC allocation happens in CO... System would immediately trigger a posting in FI as well whenever cross allocation happens
    Hope it helps
    Ajay M

  • Stored Procedure that creates a trigger on new tables

    I am trying to create a stored procedure that creates a trigger on new tables whenever the table is created.  The procedure should receive the new project table's name, and then create a dml trigger on that procedure.  When the procedure
    is run, I get an error "Incorrect syntax near keyword 'TRIGGER.'"  This is how my Stored Procedure looks in SQL Management Studio.  Any suggestions?
    USE [RIDB_DynamicDesign]
    GO
    /****** Object: StoredProcedure [dbo].[sp_CreateTriggerMarkLatest] Script Date: 11/08/2014 16:43:20 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[sp_CreateTriggerMarkLatest] @ProjectTable nvarchar(128), @ItExists int OUTPUT
    AS
    DECLARE @SQL nvarchar(4000)
    DECLARE @MarkLatest nvarchar(30)
    DECLARE @LatTrue bit
    DECLARE @LatFalse bit
    SET @LatTrue = 'True'
    SET @LatFalse = 'False'
    SET @SQL = 'CREATE TRIGGER tr_MarkLatest ON ' + @ProjectTable + ' AFTER INSERT
    AS
    UPDATE ' + @ProjectTable + ' SET Latest = @LatFalse
    UPDATE ' + @ProjectTable + ' SET Latest = @LatTrue WHERE
    ID IN (SELECT ID FROM ' + @ProjectTable + ' p WHERE
    NOT EXISTS (SELECT 1 FROM ' + @ProjectTable + ' WHERE
    Name = p.Name AND Vers = p.Vers
    AND Date > p.Date))'
    EXEC sp_executesql @SQL, N'@ProjectTable nvarchar(128), @LatTrue bit, @LatFalse bit',
    @ProjectTable, @LatTrue, @LatFalse
    Gina

    First you have to debug the dynamic SQL string with a PRINT statement. I see some problems:
    CREATE PROCEDURE [dbo].[uspCreateTriggerMarkLatest] @ProjectTable nvarchar(128), @ItExists int OUTPUT
    AS BEGIN
    DECLARE @SQL nvarchar(4000)
    DECLARE @MarkLatest nvarchar(30)
    DECLARE @LatTrue bit
    DECLARE @LatFalse bit
    SET @LatTrue = 'True'
    SET @LatFalse = 'False'
    SET @SQL = 'CREATE TRIGGER tr_MarkLatest ON ' + @ProjectTable + ' AFTER INSERT
    AS
    UPDATE ' + @ProjectTable + ' SET Latest = @LatFalse
    UPDATE ' + @ProjectTable + ' SET Latest = @LatTrue WHERE
    ID IN (SELECT ID FROM ' + @ProjectTable + ' p WHERE
    NOT EXISTS (SELECT 1 FROM ' + @ProjectTable + ' WHERE
    Name = p.Name AND Vers = p.Vers
    AND Date > p.Date))'
    PRINT @SQL;
    -- EXEC sp_executesql @SQL, N'@ProjectTable nvarchar(128), @LatTrue bit, @LatFalse bit', @ProjectTable, @LatTrue, @LatFalse
    END
    GO
    DECLARE @ItExists int, @ProjectTable nvarchar(128) = N'TestTrigger';
    EXEC [dbo].[uspCreateTriggerMarkLatest] @ProjectTable, @ItExists OUTPUT
    CREATE TRIGGER tr_MarkLatest ON TestTrigger AFTER INSERT
    AS
    UPDATE TestTrigger SET Latest = @LatFalse
    UPDATE TestTrigger SET Latest = @LatTrue WHERE
    ID IN (SELECT ID FROM TestTrigger p WHERE
    NOT EXISTS (SELECT 1 FROM TestTrigger WHERE
    Name = p.Name AND Vers = p.Vers
    AND Date > p.Date))
    Kalman Toth Database & OLAP Architect
    SQL Server 2014 Database Design
    New Book / Kindle: Beginner Database Design & SQL Programming Using Microsoft SQL Server 2014

  • How can i make trigger with basler camera GIGE 659x494 - 70 FPS and I/O terminal block

    Hi all,
    How can i make trigger with basler camera GIGE 659x494 - 70 FPS and I/O terminal block

    Frank,
    If you are wiring an isolated power output to the EVS you will need to apply a power supply to the terminal block.  This is mentioned in the "wiring isolated power output" section of the EVS getting started guide located here.  The guide references the EVS user manual which provides a pinout of the d-ub connector in table 2-11 of the manual located here.  For more information on the camera settings you need to set on the Basler camera please see the user manual of the camera you refrenced here.
    To provide power to the camera you can purchase a power cable for the camera.  Rather than a power cable, since you want to also do triggering, you will want a Trigger and I/O Cable instead which is part number 779985-01 as seen on this product page.  The I/O cable would allow you to wire the trigger lines to the terminal block as well as the power lines.
    David A
    National Instruments
    FlexRIO Product Support Engineer

  • [svn] 3127: Updating asdoc to replace the avmplus call with new set of java files.

    Revision: 3127
    Author: [email protected]
    Date: 2008-09-05 14:16:53 -0700 (Fri, 05 Sep 2008)
    Log Message:
    Updating asdoc to replace the avmplus call with new set of java files.
    Removing all files related to asdochelper.
    QA: Yes, also please test on non windows platform.
    Doc:
    Tests: checkintests, asdoc
    Reviewed by: Pete Farland
    Modified Paths:
    flex/sdk/trunk/asdoc/templates/ASDoc_Config_Base.xml
    flex/sdk/trunk/asdoc/templates/asdoc-util.xslt
    flex/sdk/trunk/modules/compiler/build.xml
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/AsDocAPI.java
    Added Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/AsClass.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/AsDocHelper.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/AsDocUtil.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/QualifiedNameInfo.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/SortComparator.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/TopLevelClassesGenerator.ja va
    Removed Paths:
    flex/sdk/trunk/asdoc/templates/asDocHelper
    flex/sdk/trunk/asdoc/templates/asDocHelper.linux
    flex/sdk/trunk/modules/compiler/asdoc/

    I had a generic record class that has a HashMap to hold the data fields (...)
    method called createRecord() for each record type which would populate the HashMap with the correct data fieldsI'm not sure I understand: are the contents of this field map the same between two records of the same type? Then yes, you don't need to clone the map per record instance.
    one thing that needs fixing is the fact that each time the createRecord() method is called I'm creating a new fieldMap to define the dataFields in the record class.Probably, but that will only get you a little bigger files; you won't gain an order of magnitude on the size of files. The problem for huge files is that as soon as their content is bigger than the available memory, you'll run into problems. A more radical approach if you need to address huge files is to process the records on the fly, and not load all records in memory. Of course not all algorithms or business logic can afford that...
    I know I could rewrite the code and create a class for each record type and declare the fieldMap static but I was wondering if anyone had any better suggestions The Record instance could receive and keep a reference to its RecordType instance, and ask the RecordType instance the DataType for a field's name. That way the RecordType encapsulates the map, and there's less risk that a clumsy other class modifies the static map.
    before I go rewriting a load of code.A load of code?!? Even with the idea of the static map, you only have to edit the enum type (well more accurately, each RecordType enumerated constant's createRecord() method).

  • Order with Serialized PTO Item with IB reference and Serial Number

    I want to get to Orders with Serialized PTO Item with IB reference and their Serial Numbers.
    I would like to know how I can link sales orders to IB. I wrote the foll. sql query but I am not sure if this is accurate. I am fairly new to this.. so any help is appreciated.
    SELECT DISTINCT oeh.order_number,
    --oel.line_id, oel.ordered_quantity, mtl.inventory_item_id,
    mtl.segment1 part, mtl.item_type,
    cii.serial_number
    FROM apps.oe_order_lines_all oel,
    apps.oe_order_headers_all oeh,
    apps.csi_item_instances cii,
    apps.mtl_system_items_b mtl
    WHERE oel.inventory_item_id = cii.inventory_item_id
    AND cii.inventory_item_id = mtl.inventory_item_id
    AND mtl.item_type = 'PTI'
    AND oel.header_id = oeh.header_id
    AND oel.org_id = oeh.org_id
    AND oeh.sold_to_org_id = cii.owner_party_account_id
    AND cii.serial_number IS NOT NULL

    You want instances that are at the customer site right (last transaction is shipping) or all the instances that have been shipped before no matter what the current status is. Instance could have been returned and shipped again and so on or just returned and disposed.The second question will yield more instances compared to the first one.
    Thanks
    Nagamohan

  • [svn:osmf:] 13083: Updated MASTAdapter class with new trait names and events.

    Revision: 13083
    Revision: 13083
    Author:   [email protected]
    Date:     2009-12-17 16:10:05 -0800 (Thu, 17 Dec 2009)
    Log Message:
    Updated MASTAdapter class with new trait names and events.
    Modified Paths:
        osmf/trunk/plugins/MASTPlugin/org/osmf/mast/adapter/MASTAdapter.as
        osmf/trunk/plugins/MASTPluginIntegrationTest/src/org/osmf/test/mast/TestMASTPluginInfo.as
        osmf/trunk/plugins/MASTPluginIntegrationTest/src/org/osmf/test/mast/adapter/TestMASTAdapt er.as

    Silviu!
    I'm really sorry, but as all the office is trying to fix the problem, someone replaced the url content with the stuff that was pointing to the local machine.
    I've fix it, and the video player is available here again: http://pp.player.webtv.flumotion.com/params/apiKey/5PzLR2ULL3z2rumJ/videoId/60
    If there are other references to the localhost, please do not bother with them, as they do not affect player functionality.
    The stream that it uses is an RTMPE, so i'm afraid it will only works with this player. Anyway, the stream url is as follows: rtmpe://87.248.205.81/a4349/e2/veo7/ondemandrtmpe/mp4/med/first-person-mario-4d8741aa.mp4
    I really appreciate your help!
    Thank you!

Maybe you are looking for