Specific changes are left undetected when using proxy indirection

Hello!
Recently, the following issue have been identified:
ObjectReferenceMapping together with ProxyIndirectionPolicy and *UnitOfWorkValueHolder fails to identify specific changes - setting a reference to 'null' when the attribute's value was not instantiated previously.
Detailed description:
Consider we have 2 objects: A and B, and A has OneToOneMapping to B and uses ProxyIndirection.
In initial moment we have A1 that references B1 in DB.
Then we register A1 for modification. What we have in memory in UnitOfWork? Something like the following:
A1(Clone) with attribute for B reference uninstantiated;
A1(Backup) with <null> reference for B, as the attribute is expected to be retrieved when we access B from A1(Clone).
Then we set reference in A1(Clone) for B to <null>.
This change then will not be identified during commit phase, because of the result of getAttributeValueFromObject both for B reference in A1(Clone) and A1(Backup) is <null>. This part is clearly visible from the ObjectReferenceMapping.compareForChange method code:
if ( !owner.isNew() ) {
backUpAttribute = getAttributeValueFromObject(backUp);
if ( (backUpAttribute == null) && (cloneAttribute == null) ) {
return null;
Accessing the B field in A1(Clone) fixes the problem, because in this case backUpAttribute value is initialized through *UnitOfWorkValueHolder.
So it seems the part should be reworked to handle such cases, it seems reasonable that fields in backup clones that are using proxy indirection should be initialized even if not accessed to contain all required information to allow correct comparision in such cases.
Can somebody from TopLink team comment this?
Thanks,
Sergey

This does appear to be an issue. I will log this problem internally, you may want to follow it up with support.
A work around is to instantiate the proxy in your set methods.
i.e.
public void setAddress(Address newAddress) {
if (this.address != null) {
this.address.hashCode();
this.address = newAddress;
}

Similar Messages

  • How can i set songs within a playlist, or an entire playlist, so that they are not included when using the shuffle function on IPOD Classic? Is this possible?

    How can i set songs within a playlist, or an entire playlist, so that they are not included when using the shuffle function on IPOD Classic?
    Is this possible?

    You can set any song to Skip when shuffling.
    In your iTunes Library, highlight the song and right-click/Get Info. On the Options tab is the Skip when shuffling box. Select that and then Sync the iPod with your Library.

  • Cursor does not change to a circle when using eraser

    Cursor does not change to a circle when using the eraser.
    I'm sure it must be a tick box somewhere.
    Its always been ok previously.

    I had this same problem and was searching for answers. I also prefer using a circle instead of crosshairs. I hope you've figured it out by now, but, if you haven't, here is the answer (I am using Elements 9, but, it should work for other versions I think):
    1. Open up Elements Editor, Click on Edit, Click on Preferences, Click on Display & Cursors.
    2. Under Painting Cursors, select Full Size Brush Tip
    3. (optional) - if you want crosshairs within your circle, then also select Show Crosshair in Brush Tip.
    4. Click ok.
    Now use the brush, and it should have a circle to use.
    P.S. Sometimes if you have your Caps Lock key on, that removes the circle as well.

  • Performance degradation when using proxy.pac file with FF ESR 31

    With Bug 923458 many people complained about a performance issue compared to other browsers when a proxy.pac file is used.
    The issue initially reported with the bug was resolved for ESR25 according to the statistics, but the general performance issue remained.
    I had the same issue with ESR24 and ESR31.3 .
    I was testing with www.bild.de.
    It took about 40 seconds to load the content completely. Without the proxy.pac file it took about 10 seconds.
    I added a few alerts to the pac-File in order to get logs within the console for some analyses.
    I found the following:
    1. the pac.file is executed for every request, no matter if the host changed or not.
    With us the pac-File checks for IP-Adresses and host-names only.
    It is not necessary to execute the pac file for each and every request to the same remote host.
    So the question is, if we are able to disable this behaviour via about:config?
    2. the content referenced by www.bild.de seems to be loaded sequentially and with a delay
    The overall time consumed by the proxy.pac file executions was about 4 Seconds compared to the 40 seconds of overall load time.
    So I checked the delay between executions of the pac-file and found an overall delay of 40 seconds. I expect that the delay between the calls to the pac-file is caused by the retrieval of contents from the remote host.
    So why are the requests executed sequentially?
    Hint: Due to the times necessary for executing the pac-file and downloading the contents from the remote host, I would expect the logs generated by my alerts to be mixed (especially if myIpAddress took 1 Second). But the log is cleanly ordered by URL. (see attachment)

    Hi guigs2,
    thanks for your response. As we only use myIpAddress once within our pac-File and only rely on dnsDomainIs(), ==-Comparisons and shExpMatch() and the sum of all pac-Executions was about 4 seconds compared to 40 seconds overall load time, I do not think that dns resolving is our issue.
    I checked the seetings of the configuration you mentioned above. It is set to "false", so the client would try the resolve the dns names. Our admin told, that we do not use socks-Proxies, only http-Proxies.
    Regarding sequential load of the contents included on www.bild.de from other web sites, I attached a screenthot.
    Please note the red highlights. These show the start time in milliseconds of the pac-execution. I added this as a kind of id which represents a unique identifier together with the URL if the log items are mixed. But they are not, instead they are cleanly ordered by URL (for all 360 pac-file calls).
    Moreover in the picture you can see the delay between the end of the last pac-file execution and the next one (blue timestamp in millisonds compared to the red timestamp of the next row saying "entered proxy.pac"). The delay sum up exactly to the 40 seconds the FF took to load the page completely.
    Alone the fragment shown represents a delay of 630ms between the pac-file executions. If the contents would be loaded in parallel, there should be no such delay.

  • Confused by the change in logical IO when using a UNION

    Hi,
    we were discussing tuning strategies (using SQL*Plus and autotrace) and stumbled over a strange behaviour.
    When I do a straight select I get the following output:
    SQL> select * from orders where id > 600000;
    100000 rows selected.
    Execution Plan
    Plan hash value: 1275100350
    | Id  | Operation         | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |        | 99585 |  2236K|   436  (14)| 00:00:07 |
    |*  1 |  TABLE ACCESS FULL| ORDERS | 99585 |  2236K|   436  (14)| 00:00:07 |
    Predicate Information (identified by operation id):
       1 - filter("ID">600000)
    Statistics
              0  recursive calls
              0  db block gets
           9473  consistent gets
              0  physical reads
              0  redo size
        3353061  bytes sent via SQL*Net to client
          73711  bytes received via SQL*Net from client
           6668  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
         100000  rows processed
    SQL>which is more or less what I expected. Now the strange thing comes when I change the statement to
    select * from orders where id > 600000 and id < 630000
    union
    select * from orders where id >= 630000;which selects the same set of data. Of course the execution plan changes for this query, but what really puzzles me is the huge different for logical IO (consistent gets)
    SQL> select * from orders where id > 600000 and id < 630000 union select * from orders where id >= 630000;
    100000 rows selected.
    Execution Plan
    Plan hash value: 2377290594
    | Id  | Operation                     | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT              |           | 99587 |  2236K|       |  1242  (71)| 00:00:19 |
    |   1 |  SORT UNIQUE                  |           | 99587 |  2236K|  7088K|  1242  (71)| 00:00:19 |
    |   2 |   UNION-ALL                   |           |       |       |       |            |          |
    |   3 |    TABLE ACCESS BY INDEX ROWID| ORDERS    | 29914 |   671K|       |   184   (3)| 00:00:03 |
    |*  4 |     INDEX RANGE SCAN          | PK_ORDERS | 29914 |       |       |    61   (4)| 00:00:01 |
    |   5 |    TABLE ACCESS BY INDEX ROWID| ORDERS    | 69673 |  1564K|       |   424   (3)| 00:00:07 |
    |*  6 |     INDEX RANGE SCAN          | PK_ORDERS | 69673 |       |       |   139   (4)| 00:00:03 |
    Predicate Information (identified by operation id):
       4 - access("ID">600000 AND "ID"<630000)
       6 - access("ID">=630000)
    Statistics
              0  recursive calls
              0  db block gets
            594  consistent gets
              0  physical reads
              0  redo size
        3353061  bytes sent via SQL*Net to client
          73711  bytes received via SQL*Net from client
           6668  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
         100000  rows processed
    SQL>Even though the same number of rows is selected, and the same number of bytes are sent to the client, why is the number of logical IOs so much lower?
    When I change the UNION to a UNION ALL the consistent gets go way up (13893) which I don't understand as well (the execution plan is basically the same, just missing the SORT UNIQUE node)
    Can anyone shed some light on this? Especially why the UNION needs substantially less IO
    I would have expected it to use more IO due to the duplicate index range scan. More like the figures I get when using UNION ALL
    This is on a developer machine. Windows XP, Oracle 10.2.0.1.0
    Thanks in advance
    Thomas

    Thanks for the answer.
    Yes, the statistics are up-to-date.
    Yes I have noticed the full table scan, but when I change the condition for the first select in order to reduce the number of rows so that an index range scan makes sense, the figures are more or less the same:
    SQL> select * from orders where id > 630000;
    70000 rows selected.
    Execution Plan
    Plan hash value: 1270478249
    | Id  | Operation                   | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |           | 69672 |  1564K|   424   (3)| 00:00:07 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| ORDERS    | 69672 |  1564K|   424   (3)| 00:00:07 |
    |*  2 |   INDEX RANGE SCAN          | PK_ORDERS | 69672 |       |   139   (4)| 00:00:03 |
    Predicate Information (identified by operation id):
       2 - access("ID">630000)
    Statistics
              0  recursive calls
              0  db block gets
           9724  consistent gets
              0  physical reads
              0  redo size
        2627301  bytes sent via SQL*Net to client
          51711  bytes received via SQL*Net from client
           4668  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
          70000  rows processedWhen I change the condition for the union to only retrieve 70000 rows as well, I get figures comparable to my very first example:
    SQL> select * from orders where id > 630000 and id < 650000 union select * from orders where id >= 650000;
    70000 rows selected.
    Execution Plan
    Plan hash value: 2377290594
    | Id  | Operation                     | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT              |           | 69673 |  1564K|       |   871  (73)| 00:00:13 |
    |   1 |  SORT UNIQUE                  |           | 69673 |  1564K|  4977K|   871  (73)| 00:00:13 |
    |   2 |   UNION-ALL                   |           |       |       |       |            |          |
    |   3 |    TABLE ACCESS BY INDEX ROWID| ORDERS    | 19943 |   447K|       |   123   (3)| 00:00:02 |
    |*  4 |     INDEX RANGE SCAN          | PK_ORDERS | 19943 |       |       |    42   (5)| 00:00:01 |
    |   5 |    TABLE ACCESS BY INDEX ROWID| ORDERS    | 49730 |  1116K|       |   303   (3)| 00:00:05 |
    |*  6 |     INDEX RANGE SCAN          | PK_ORDERS | 49730 |       |       |   100   (4)| 00:00:02 |
    Predicate Information (identified by operation id):
       4 - access("ID">630000 AND "ID"<650000)
       6 - access("ID">=650000)
    Statistics
              1  recursive calls
              0  db block gets
            418  consistent gets
              0  physical reads
              0  redo size
        2347358  bytes sent via SQL*Net to client
          51711  bytes received via SQL*Net from client
           4668  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
          70000  rows processed

  • OWA isue when using proxy

    Hi all,
    First kindly informed that i used Exchange 2010 sp3 ( i did,'t find my version in the list )
    when the internal users try to access owa by using proxy , thet succeed to login but after about 1 min they probt again to enter credential
    if they disabled proxy everything is working fine
    we use isa 2006 as proxy for internal users
    owa is hosted on 2 cas servers ( DNS round Robin used )

     Hi,
    According to your description, credential is prompted after internal users login OWA with proxy enabled. And as far as I know, the credential issue is most likely caused by the improper authentication method.
    Could you please check your authentication method for OWA? Based on my research, Integrated Authentication is not suitable for people who are connecting via proxy servers:
    http://exchangeserverpro.com/exchange-server-2010-outlook-web-app-authentication-settings/
    Note: Microsoft is providing this information as a convenience to you. The sites are not controlled by Microsoft. Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. Please make
    sure that you completely understand the risk before retrieving any suggestions from the above link.
    If you have any question, please feel free to let me know.
    Thanks,
    Angela Shi
    TechNet Community Support

  • Cursors are not closed when using Ref Cursor Query in a report  ORA-01000

    Dear Experts
    Oracel database 11g,
    developer suite 10.1.2.0.2,
    application server 10.1.2.0.2,
    Windows xp platform
    For a long time, I'm hitting ORA-01000
    I have a 2 group report (master and detail) using Ref Cusor query, when this report is run, I found that it opens several cursors (should be only one cursor) for the detail query although it should not, I found that the number of these cursors is equal to the number of master records.
    Moreover, after the report is finished, these cursors are not closed, and they are increasing cumulatively each time I run the report, and finally the maximum number of open cursors is exceeded, and thus I get ORA-01000.
    I increased the open cursors parameter for the database to an unbeleivable value 30000, but of course it will be exceeded during the session because the cursors are increasing cumulatively.
    I Found that this problem is solved when using only one master Ref Cursor Query and create a breake group, the problem is solved also if we use SQL Query instead of Ref Query for the master and detail queries, but for some considerations, I should not use neither breake group nor SQL Query, I have to use REF Cursor queries.
    Is this an oracle bug , and how can I overcome ?
    Thanks
    Edited by: Mostafa Abolaynain on May 6, 2012 9:58 AM

    Thank you Inol for your answer, However
    Ref Cursor give me felxibility to control the query, for example see the following query :
    function QR_1RefCurDS return DEF_CURSORS.JOURHEAD_REFCUR is
    temp_JOURHEAD DEF_CURSORS.JOURHEAD_refcur;
              v_from_date DATE;
              v_to_date DATE;
              V_SERIAL_TYPE number;
    begin
    SELECT SERIAL_TYPE INTO V_SERIAL_TYPE
    FROM ACC_VOUCHER_TYPES
    where voucher_type='J'
    and IDENT_NO=:IDENT
    AND COMP_NO=TO_NUMBER(:COMPANY_NO);
         IF :no_date=1 then
                   IF V_SERIAL_TYPE =1 THEN     
                   open temp_JOURHEAD for select VOCH_NO, VOCH_DATE
                   FROM JOURHEAD
                   WHERE COMP_NO=TO_NUMBER(:COMPANY_NO)
                   AND IDENT=:IDENT
              AND ((TO_NUMBER(VOCH_NO)=:FROM_NO and :FROM_NO IS NOT NULL AND :TO_NO IS NULL)
              OR (TO_NUMBER(VOCH_NO) BETWEEN :FROM_NO AND :TO_NO and :FROM_NO IS NOT NULL AND :TO_NO IS NOT NULL )
              OR (TO_NUMBER(VOCH_NO)<=:TO_NO and :FROM_NO IS NULL AND :TO_NO IS NOT NULL )
              OR (:FROM_NO IS NULL AND :TO_NO IS NULL ))
                   ORDER BY TO_NUMBER(VOCH_NO);
                   ELSE
                   open temp_JOURHEAD for select VOCH_NO, VOCH_DATE
                   FROM JOURHEAD
                   WHERE COMP_NO=TO_NUMBER(:COMPANY_NO)
                   AND IDENT=:IDENT               
              AND ((VOCH_NO=:FROM_NO and :FROM_NO IS NOT NULL AND :TO_NO IS NULL)
              OR (VOCH_NO BETWEEN :FROM_NO AND :TO_NO and :FROM_NO IS NOT NULL AND :TO_NO IS NOT NULL )
              OR (VOCH_NO<=:TO_NO and :FROM_NO IS NULL AND :TO_NO IS NOT NULL )
              OR (:FROM_NO IS NULL AND :TO_NO IS NULL ))     
                   ORDER BY VOCH_NO;          
                   END IF;
         ELSE
                   v_from_date:=to_DATE(:from_date);
                   v_to_date:=to_DATE(:to_date);                         
              IF V_SERIAL_TYPE =1 THEN
                   open temp_JOURHEAD for select VOCH_NO, VOCH_DATE
                   FROM JOURHEAD
                   WHERE COMP_NO=TO_NUMBER(:COMPANY_NO)
              AND IDENT=:IDENT                         
                   AND ((voch_date between v_from_date and v_to_date and :from_date is not null and :to_date is not null)
                   OR (voch_date <= v_to_date and :from_date is null and :to_date is not null)
                   OR (voch_date = v_from_date and :from_date is not null and :to_date is null)
                   OR (:from_date is null and :to_date is null ))     
                   ORDER BY VOCH_DATE,TO_NUMBER(VOCH_NO);     
              ELSE
                   open temp_JOURHEAD for select VOCH_NO, VOCH_DATE
                   FROM JOURHEAD
                   WHERE COMP_NO=TO_NUMBER(:COMPANY_NO)
                   AND IDENT=:IDENT                         
              AND ((voch_date between v_from_date and v_to_date and :from_date is not null and :to_date is not null)
                   OR (voch_date <= v_to_date and :from_date is null and :to_date is not null)
                   OR (voch_date = v_from_date and :from_date is not null and :to_date is null)
                   OR (:from_date is null and :to_date is null ))     
                   ORDER BY VOCH_DATE,VOCH_NO;          
              END IF;
         END IF;               
         return temp_JOURHEAD;
    end;

  • How can I keep my signature on the left side when using rtl on mail application

    I'm writing in Hebrew & English on apple Mail application on OS X /mountain Lion.
    When I'm starting to write a mail in HEBREW it's automatically move the signature to the right side which I don't like it because my signature is in English (My Hebrew is a why better from my English ; )
    How can I keep the signature on the left side as default?
    Hope to get your support in this issue.
    Thanks in advance,
    Joni.

    Joni11 wrote:
    How could i do this?
    Sorry, I don't know.  But have you already tried selecting your sig and using the usual alignment tools?  It seems to work for me when used in the new message pane.

  • Items in shared mailbox are not visible when using cached mode in Outlook 2013

    Hi all,
    When using Outlook 2013 working with the users own mailbox works great, but when a user connects an additional mailbox to its mailbox, this mailbox is shown correctly, but it contains no items. The folder list is shown correctly, but there are no items to be
    seen.
    These users (I have seen it with 3 different users and 2 shared mailboxes already) have full access to these mailboxes (Exchange 2010), but somehow the items aren't shown... When these users turn off cached mode, it works fine and when they use Outlook 2010
    it also works fine, but using Outlook 2013 with cached mode will only show their own items and not the items in an additional shared mailbox.
    What is the cause of all this?
    Kind regards,
    Erik

    Maybe something interesting...
    When looking at article http://support.microsoft.com/kb/982697/en-us
    I saw that Outlook 2013 by default caches everything and that's what I wanted. I tested however adding this regkey to see what happened and after that the email shows up in the mailboxes... Somehow the mail from shared mailboxes doesn't want to be
    cached...
    Does anyone know what this could be? I want everything to be cached, also the shared mailboxes but somehow this doesn't work and it does when using Outlook 2010....

  • Why can't I see my media in the left sidebar when using finder?

    I recently made the switch to Mac and I have some confusion. When using finder, I am not getting an option to browse through my media such as photos, videos and music. How do I get these folders to appear on my sidebar?
    Thankyou.

    N8 Thomas wrote:
    I then went into my finder preference section and changed my "New finder window show" to my computer's name.  At that point I could view and find anything within it.  this part got the job done. 
    "You don't, they only appear in open file dialogs and in tool panels like in iMovie, iPhoto.
    To view your media, you open the app that you use to manage that type of media." this on the other hand was zero help
    What you did doesn't show the Media Browser. It just shows the folders where your media is stored. You may be correct that was all that cobacc wanted. 
    The Media Browser shows the actual media in thumbnails so that you can preview the media.
    However, neither requires any Sharing services to be enabled.

  • Changes are not reflected when objects transported from Quality to Productn

    Hi
    In case of moving some Transport requests from Quality to Production, some times the changes made to the selection screen of a report program doesn't reflect in Production. Also we don't see any Transport error while transporting. Moreover, we can see the changes by regenerating the Program in production.
    Would any one help me out in this with the reason for this.
    Pls suggest what needs to be done.
    Satish.

    HI,
    Thanks for the reply.
    - I have checked the respective transport too, and every thing seems to be fine.
    - Recently we went to go live, for the next release, so earlier before go live, we didnt faced any proble.. Only now we are facing this problem, that we find the changes relating to selection screen are not reflected when the object / prog is moved from qty to Prd.
    - Only problem is with the selection screen.(not getting reflected in PRD. In Qty we are able to see those changes.
    - Then in order to reflect these changes in PRD, we have to re generate the object, then only it get s updated..
    Satish.
    Edited by: satish c on Sep 22, 2009 3:35 PM

  • Enterprise DNS servers are not responding when using Windows NLB with Direct Access 2012

    Hi
    We have installed Direct Access 2012 as one server installation:
    - Two network cards. First one in DMZ and second one in internal network
    - Two consecutive IP addresses configured in DMZ because of Teredo
    - PKI because of Win7 Clients IPSec
    - Our corporate network is native IPv4 so we use DNS64/NAT64 and DA-server is configured as DNS
    - DA-servers are VMWare virtual machines 
    One server installation works fine and now we want to use Windows NLB as load balancing. NLB installation goes fine too,
    but problem is DNS. If we still try to use DA-server as DNS there comes error message below
    None of the enterprise DNS servers 2002:xxxx:xxxx:3333::1 used by DirectAccess clients for name resolution are responding. This might affect DirectAccess client connectivity to corporate resources.
    When trying to configure DNS using Infrastructure access setup, DNS cannot be validated when using DA-servers DIP or cluster VIP. Only domain local DNS looks to be ok but those have no IPv6 addressess. So how DNS should be configured when using multicast
    NLB? 
    Tried to remove name suffix then adding again => Detect DNS server => DA-server IPv6 address found => validate => The specified DNS server is not responding...
    Then tried to ping detected address => General failure
    NLB clusters are configured as multicast and static ARPs are configured too. Both clusters can be connected from those subnets as they should be. 
    Any clues how to fix this?
    ~ Jukka ~

    Hi,
    Your question falls into the paid support category which requires a more in-depth level of support.  Please visit the below link to see the various
    paid support options that are available to better meet your needs.
    http://support.microsoft.com/default.aspx?id=fh;en-us;offerprophone
    Regards,
    Mike
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

  • 42ZV625D has a black vertical bar at left side when used as monitor

    My 42ZV625D LCD TV displays a black bar at left side of the screen when used as monitor at resolution 1366 x 768. When I adjust the position of the screen a grey overlay appears at the opposite side. Can someone help me with this?

    Hi there
    If you like you can do a System restore to a previously known good state.
    http://h10025.www1.hp.com/ewfrf/wc/document?cc=in&lc=en&docname=c03327545
    Alternatively try uninstalling current graphic driver from Display adapters section in Device Manager & reinstalling the latest Graphic driver from your HP support page.
    Then restart the system, check.
    Regards
    Visruth
    ++Please click KUDOS / White thumb to say thanks
    ++Please click ACCEPT AS SOLUTION to help others, find this solution faster
    **I'm a Volunteer, I do not work for HP**

  • Changes are not reflecting when de-implemented the SNOTE.

    Hi All,
    I have implemented SNOTE : 79847 , which is having two steps one is manual and the another one is automatic . but now i want to de-implement the Snote due to some requirements .
    After de-implementing the Snote ,i checked for changes in the standard program which were automatic . Over there the changes are not reflecting , that is the code which was  got appended due to implementations of note , now it is not getting removed. 
    kindly help me out.....

    Hi All,
    I have implemented SNOTE : 79847 , which is having two steps one is manual and the another one is automatic . but now i want to de-implement the Snote due to some requirements .
    After de-implementing the Snote ,i checked for changes in the standard program which were automatic . Over there the changes are not reflecting , that is the code which was  got appended due to implementations of note , now it is not getting removed. 
    kindly help me out.....

  • FPE2 doc changes are not saved when C4EYE is reset via workflow

    Hello All,
        I'm utilizing event # 5504 in FQEvents (in FICA) to start a workflow.
    When a user sets a payment method in FPE2, I set the C4EYE and then explicitly create a custom event which starts my approval workflow. On saving the document changes, I get a message "document changes noted" (instead of the usual "document changed" message).
    The changes made in FPE2 are only seen as a 'planned change' button in FPE2 (on the 'change item' screen) with the old and new values and the change number associated with it. Also, the check reason has been applied. Incidentally, all of the above (except ofcourse the event and start start of workflow ) happens if I all I do is merely set the check reason (C4EYE) in event 5504.
    Meanwhile, the workflow does its thing, determines agents and gets the approval and on approval, it calls  FKK_C4EYE_RESET passing the document # and change # to reset the Check reason. Despite the workflow completing successfully and resetting the check reason, my newly added changes (such as the payment method etc) are blank - meaning any changes made in FPE2 have been lost. I don't have the 'planned change' button either.
    Incidentally, to eliminate any problems with the custom-event-workflow logic, I also turned off the event and the workflow - just left the logic to set the C4EYE check reason to '01' in the 5504 fqevent in case a payment method is set. I set the payment method in FPE2 and 'saved' the change which set the check reason.
    I then ran FM FKK_DOCUMENT_CHANGE_FROM_ID passing the doc #, change number (from CDHDR) and user name. All it did was to reset the check reason but did not set the payment method (or any other changes) back.
    How can I apply the FPE2 changes (including addition of the payment method) back once my approval workflow resets the check reason?

    Folks, Sorry to have bothered you. The document change had multiple change numbers for each of the changes and I was apparently passing the incorrect CDHDR change number to the FM "FKK_DOCUMENT_CHANGE_FROM_ID" which caused it to not reset the changes. Now, I'm able to see the payment method and any other changes restored back once the C4EYE is reset.
    Thanks for your time!!

Maybe you are looking for