GET-CHANGES and Dynamic Prodataset

Posted by ccleaud on 02-Aug-2010 04:51

Hi!

There are some mistakes using GET-CHANGES and dynamic dataset.

First, I created a dataset with dynamic statements with dynamic temp-tables.

Then, I turned on tracking changes and made some changes.

I created a change data-set with create-like méthod. When I'm using GET-CHANGES method, my change dataset still empty.

I checked this :

mychangedataset:GET-BUFFER-HANDLE(mychangetemptable):TABLE-HANDLE:ORIGIN-HANDLE = myoriginaldataset:GET-BUFFER-HANDLE( mychangetemptable):TABLE-HANDLE

Here is my code and some informations :

DO i =1 TO NUM-ENTRIES( clistbuffer, "," ):

           ASSIGN  cBuffName                                                                   = ENTRY( i,clistbuffer, "," )

                   ttOngletR.hPDS:GET-BUFFER-HANDLE( cBuffName ):TABLE-HANDLE:TRACKING-CHANGES = TRUE.

           ttOngletR.hPDS:GET-BUFFER-HANDLE( cBuffName ):BUFFER-DELETE().

       END.

       /* create change dataset */

       CREATE DATASET  lhChangePDS.

       lhChangePDS:CREATE-LIKE(ttOngletR.hPDS, cPrefix).

       /* get changes */

       MESSAGE lhChangePDS:GET-CHANGES(ttOngletR.hPDS)  /* returning yes */

           VIEW-AS ALERT-BOX INFO BUTTONS OK.

       MESSAGE "Before"    ttOngletR.hPDS:GET-BUFFER-HANDLE( 1 ):TABLE-HANDLE:NAME     ttOngletR.hPDS:GET-BUFFER-HANDLE( 1 ):TABLE-HANDLE:BEFORE-TABLE:HAS-RECORDS SKIP /* returning 1 */

               "Changes"   lhChangePDS:GET-BUFFER-HANDLE( 1 ):TABLE-HANDLE:NAME        lhChangePDS:GET-BUFFER-HANDLE( 1 ):TABLE-HANDLE:HAS-RECORDS

           VIEW-AS ALERT-BOX INFO BUTTONS OK. /* returning 0 */

       /* turn off tracking changes on prodataset for choosen table */

       DO i =1 TO NUM-ENTRIES( clistbuffer, "," ):

           ttOngletR.hPDS:GET-BUFFER-HANDLE( ENTRY( i,clistbuffer, "," ) ):TABLE-HANDLE:TRACKING-CHANGES = FALSE.

       END.

Could you help me?

Thank you

All Replies

Posted by Håvard Danielsen on 02-Aug-2010 13:27

 lhChangePDS:GET-BUFFER-HANDLE( 1 ):TABLE-HANDLE:HAS-RECORDS

Since the change(s) extracted to the lhChangePDS is/are delete(s) the expression above is expected to return FALSE. The deleted records would be in the BEFORE-TABLE in the ihChangePDS.

This thread is closed