Change Pointers Needed

Hi All,
Please give me a scenario to expalin about change pointers.
Regards,
Srik

Change Pointer Configuration and extraction in HRPay.
Infotypes to be logged are in:
V_T585A,
V_T585B,
& V_T585C
Please view the table contents to understand the structure of these tables and how they are linked. These help you identify the cluster tables which store the data.
Payroll Cluster Table – PCL4 contains the cluster table reference. (Please refer to the table structure below:
Payroll Custer Tables
http://www.planetsap.com/HR_ABAP_payroll.htm
Cluster tables combine the data from several tables with identical (or almost identical) keys into one physical record on the database.
Data is written to a database in compressed form.
Retrieval of data is very fast if the primary key is known.
Cluster tables are defined in the data dictionary as transparent tables.
External programs can NOT interpret the data in a cluster table.
Special language elements EXPORT TO DATABASE, IMPORT TO DATABASE and DELETE FROM DATABASE are used to process data in the cluster tables.
PCL1 - Database for HR work area; (long text, etc)
PCL2 - Accounting Results (time, travel expense and payroll); (payroll results)
PCL3 - Applicant tracking data;
PCL4 - Documents, Payroll year-end Tax data (change logs, etc)
Database Table PCL4
The database table PCL4 contains the following data areas:
LA change logs (long term documents)
SA Short-Term Documents for HR Master Data
SB Short-Term Documents for Applicant Master
SRTFD (PC400) = trans class always A for master data (1) pernr (8) info type (4) modified date (8) modified time (8) seqnr (4)
Please note that for the extraction of data, you have to use the date portion of the ‘SRTFD’ and not the field value AEDTM(since it is not primary key).
Naming convention for INCLUDES when defining clusters. These INCLUDES will define the work area key above and the cluster data that is returned from an IMPORT:
RPCnxxy0
n = 1, 2, 3 or 4 (for PCL1, PCL2, PCL3, PCL4)
xx = cluster ID
y = country grouping (0 for international otherwise country indicator T500L)
Description of Cluster Data using Cluster RX as an Example
The data description is stored in the include RPC2RX00 in accordance with the above naming conventions.
RPC1TX00 - Long text cluster ID in table PCL1
RPC2RUU0 - Payroll results for the US cluster ID in table PCL2
RPC4LA00 - Change log cluster ID in table PCL4
Importing Data (I)
The IMPORT command causes data objects with the specified key values to be read from PCLn.
If the import is successful, SY-SUBRC is 0; if not, it is 4.
REPORT ZRPIMPORT.
TABLES: PCLn.
INCLUDE RPCnxxy0. "Cluster definition
Fill cluster Key
Import record
IMPORT TABLE1 FROM DATABASE PCLn(xx) ID xx-KEY.
IF SY-SUBRC EQ 0.
Display data object
ENDIF.
See sample program for long text.
Importing data (II)
Import data using macro RP-IMP-Cn-xy.
Check return code SY-SUBRC. If 0, it is successful. If 4, error.
Need include buffer management routines RPPPXM00
REPORT ZRPIMPORT.
*Buffer definition
INCLUDE RPPPXD00.
DATA: BEGIN OF COMMON PART 'BUFFER'.
INCLUDE RPPPXD10.
DATA: END OF COMMON PART 'BUFFER'.
*import data to buffer
RP-IMP-Cn-xy.
*Buffer management routines
INCLUDE RPPPXM00.
Cluster Authorization
Simple EXPORT/IMPORT statement does not check for cluster authorization.
Use EXPORT/IMPORT via buffer, the buffer management routines check for cluster authorization.
rpcbdt00 - include needed for importing from database PCL4(la) (Change log cluster ID)
Please note that data for change pointers is stored at two levels: 1) Header – which has the key info and 2) BELEGE – which has the changed info – ie. Old value and new value.
Check standard program RPUAUD00
Applications which write change documents will also try to write change pointers for ALE operations. These are log entries to remember all modified data records relevant for ALE.
Most applications write change documents. These are primarily log entries in the tables CDHDR and CDPOS.
Change documents remember the modified fields made to the database by an application. They also remember the user name and the time when the modification took place.
The decision whether a field modification is relevant for a change document is triggered by a flag of the modified field’s data element. You can set the flag with SE11 by modifying the data element.
For the purpose of distributing data via ALE to other systems, you may want to choose other fields, which shall be regarded relevant for triggering a distribution.
Therefore R/3 introduced the concept of change pointers, which are nothing else than a second log file specially designed for writing the change pointers which are meant to trigger IDoc distribution via ALE.
So the change pointers will remember the key of the document every time when a relevant field has changed.
Change pointers are then evaluated by an ABAP which calls the IDoc creation, for every modified document found in the change pointers.
The Change pointers are written from the routine CHANGEDOCUMENT_CLOSE when saving the generated change document. So change pointers are automatically written when a relevant document changes.
The following function is called from within CHANGEDOCUMENT_CLOSE in order to write the change pointers.
CALL FUNCTION 'CHANGE_POINTERS_CREATE'
EXPORTING
change_document_header = cdhdr
TABLES
change_document_position = ins_cdpos.
Activation of change pointer update :
Change pointers are log entries to table BDCP which are written every time a transaction modifies certain fields. The change pointers are designed for ALE distribution and written by the function CHANGE_DOCUMENT_CLOSE.
Change pointers are written for use with ALE. There are ABAPs like RBDMIDOC which can read the change pointers and trigger an IDoc for ALE distribution.
The change pointers are mainly the same as change documents. They however can be set up differently, so fields which trigger change documents are not necessarily the same that cause change pointers to be written.
In order to work with change pointers there are two steps to be performed
1) Turn on change pointer update generally
2) Decide which message types shall be included for change pointer update
R3 allows to activate or deactivate the change pointer update. For this purpose it
maintains a table TBDA1. The decision whether the change pointer update is active
is done with a Function Ale_Component_Check
This check does nothing else than to check, if this table has an entry or not. If there is an entry in TBDA1, the ALE change pointers are generally active. If this table is empty, change pointers are turned off for everybody and everything, regardless of the other settings.
The two points read like you had the choice between turning it on generally or selectively. This is not the case: you always turn them on selectively. The switch to turn on generally is meant to activate or deactivate the whole mechanism.
The change pointers which have not been processed yet, can be read with a function module.
Call Function 'CHANGE_POINTERS_READ'
The ABAP RBDMIDOC will process all open change pointers and distribute the matching IDocs.
When you want to send out an IDoc unconditionally every time a transaction updates, you better use the workflow from the change documents.
Arunsri  
Posts: 307
Registered: 12/3/07
Forum Points: 246 
   Re: change pointers method  
Posted: Feb 27, 2008 11:08 AM    in response to: satish abap       E-mail this message      Reply 
hi,,
Activating Change Pointers
Use
You can activate change pointers in the HR system to avoid distributing the entire structure when you make changes to the HR-ORG model, and distribute instead only the changes that you have made.
Procedure
1. In the Implementation Guide (IMG, transaction SALE), choose Modeling and Implementing ® Master Data Distribution ®Replication of Modified Data ® Activate Change Pointers ‑ Generally.
2. Set the activation status Activate Change Pointers ‑ Generally, and save your entry.
3. Choose the activity Activate Change Pointers for Message Types.
4. Set the active indicator for the message type HRMD_ABA.
5. Save your entries.
also see this link,
http://help.sap.com/saphelp_47x200/helpdata/en/ba/c9c1c31253ed4596e3bbb74922cd4a/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/ba/c9c1c31253ed4596e3bbb74922cd4a/frameset.htm
Check the links below;
http://help.sap.com/saphelp_nw70/helpdata/en/f1/035c8cae3d11d3b540006094192fe3/frameset.htm
http://help.sap.com/saphelp_nw70/helpdata/en/12/83e03c19758e71e10000000a114084/frameset.htm
Reward points hope this helps u,

Similar Messages

  • Need help On Triggers/Change pointers in SAP

    Hi Experts,
    I Need help On Triggers/Change pointers in SAP.
    I have a requirement  as soon as an entry is created in one of the  Standard SAP  table it should check against my Ztable and update and create the corresponding entry in another Ztable.
    Can some one help me out on this with the syntax and how to do it

    Hi,
    Check whether you have any enhancement option (BADI, user exit, Customer enhancement etc) in the program which is used to save the data in the SAP standard table. If so, then try to write your code in that appropriate enhancement.

  • Need to trigger change pointers for a change in std text

    I need to trigger an idoc via change pointers when any change in a std text occurs. I am doing this for changes in Customer Master. For example, if the std text obtained via tcode XD02 is changed, then I need to trigger an idoc. Is this possible? What is the object class used?
    Thanks,
    Keerthi

    Hi,
    All Standard text views are stored in V_E071.
    Use the View for V_E071 for checking standard text transport
    Give Object Filed Name = TEXT and check
    And search the standard object
    Go to se09 create workbench request and
    Double Click the request and go to program give R3TR and Object: TEXT and object Name: TEXT, Nike_FT_AB_4700, ZEPC, D
    Object: TEXT
    Where   Nike_FT_AB_4700 is Customized Name of Standard Text
    Text Id: ZEPC (Default: ST)
    Language: D (DE)
    Go to SE03  double click the Search for Objects in Requests/Tasks in the
    R3TR Object ; TEXT and do search.. with respective to that you will get change request.
    Do rewards points.

  • Do we need the change pointers to be set..

    do we need the change pointers  to be set/activated
    if we are to send data via TRFCs

    Change Pointers:
    -Change documents are working based on change document technique which
    tracks changes made to the key documents (Material  Master, Customer
    Master, Vendor Master ..etc) in SAP.
    -Changes made to the keydocuments are recorded in the change document
    Header table i.e. CDHDR and Item table CDPOS,   Additional change
    pointers are written in the BDCP and BDCPS tables.
    -Change pointers technique is used to initiate the outbound process
    automatically when master data is created or changed.
    -A standard program RBDMIDOC is sechuled to run on periodic basis to
    evaluate the change pointers for a message type and  starts the ALE
    process for distributing the Masterdata to the appropriate destination. 
    -'Object' is collection of fields of different database tables. T.code
    for creating an object is SCDO.
    Configuration for Change Pointers:
    1. BD61 Active change pointers generally
         - Check the checkbox "Change pointers activated -generally"
         - Save it
    2. BD50 Active change pointers for Message Type
         - Message Type           Active
            MATMAS           check the check box
    3. SCDO Change Document Objects
         - Check whether the "MATERIAL" is available in the object list.      
    4. BD52 Maintain Table Views
         - Enter the Message type "MATMAS" and press enter.
         - OBJECT      TABLE NAME     FIELD NAME
       Ex:    MATERIAL      MARA          BISMT
    5. BD60 Additional data for message types
            - Message Type           Function Module          Table
       Ex:       MATMAS     MASTERIDOC_CREATE_SMD_MATMAS     MARA
    6. WE20 Partner Profile
    7. BD64 Distribution Model
    8. Create a Material by using T.Code MM01
    9. SE38 Run the program RBDMIDOC by passing Message type "MATMAS"
    10. WE02 IDOC List
    Regards
    srikanth

  • Need help ion change pointers.

    Hi,
    I am Using Change pointer for a change/create of material master data.
    At regular intervals (currently proposed hourly) i need to execute the function module MASTERIDOC_CREATE_SMD_MATMAS to create an output message and send it to PI Middleware. The Middleware examines the changed fields contained in the MATMAS IDOC.
    The following things to be perfomed.
    1. If the change pointer is for a material with its client level deletion flag set then an output message is not generated for that material.
    2. If the change pointer is for a plant specific field then it can be ignored.
    Could you please guide me as to hw can i achieve ths?
    ans also Hw can i make the FM MASTERIDOC_CREATE_SMD_MATMAS to execute on regular intervals.
    PLease do reply.
    Thanks
    Sahil

    Hi,
    1. You need to execute BD21 for your message type to send the IDOCs for the change pointers created in DB. This is nothing but executing your FM "MASTERIDOC_CREATE_SMD_MATMAS". You need to schedule a back ground job for this.
    2. Implement "FILTER_BDCPV_BEFORE_WRITE" method of the BADI "BDCP_BEFORE_WRITE" to filter your requirements. This methos has Message Type name as import parameter (FLT_VAL). You can find out information related to type of change using the import parameters CHANGE_DOCUMENT_HEADER and CHANGE_DOCUMENT_POSITIONS. If any change need to be filtered, just use the changing parameter "CHANGE_POINTERS" of this method.
    Hope this helps you!!!
    Regards,
    Ganga

  • Needs to update Infotype using ALE-Change Pointers-ECC 6.0

    HR Experts,
    We are using ECC 6.0. There are two SAP-HR systems.. for e.g system A and B.
    We would like to send data from system A to B.
    If there are any changes in system A for Infotype-0, 1, 2, 6, 8, the IDOC should be generated and it should deliver and update the infotypes in system B.
    What message type I have to use?
    Do I have to use change pointers?
    If there is only change in any one of the above infotypes then it will generate IDOC for all above infotypes or just the changed one?
    Thanks in advance for your help..
    MP

    Hi Frank,
    Thanks for your quick reply!
    I rewarded you with the points
    How I have to choose which infotypes I have to transfer in message type HRMD_A, What tcode I have to use to configure this?
    Do you know the BADI or User-Exit for enhancement of custom fields?
    How I have to configure to transfer only the changed records OR transfer complete data? Where should I go to do this?
    Thanks for your help in advance...
    MP

  • Change Pointers - adding a new field to existing Change Document

    Hi,
    We have a requirement to capture the changes made to the Material object through the transaction C223. The changes to field MKAL-PRFG_F have to be captured.
    There is an exisitng Change Document Object - MATERIAL. This is included in Message Type MATMAS. These are the steps we have done:
    1. In SCDO - added the Z structure to the Change Document Object - Material. [Z structure contains the field MKAL-PRFG_F. Change pointer option is checked for this Data element.
    2. Created a Z Message Type with reference as MATMAS.
    3. In BD52 - we have listed the fields for the new Z Message Type created.
    4. The Change Pointers - reactivated after the steps are done.
    The changes to the field MKAL-PRFG_F through C223 Tcode are not recorded in BDCPV table.
    Have we missed any steps here?
    Thanks,
    Pallavi

    HI,
    I don't think a new zmessage type is required in this case.. is the structure added to MARA table??The change document programs are there which triggers the iodcs... In SCDO transaction code , click on generation info for MATERIAL.. You will find the includes. The FM MATERIAL_WRITE_DOCUMENT creates entries in CDHDR and CDPOS, if we maintain entries in BD52 , the entries wil be written in BDCP and BDCPS tables.
    Try to add your structure in MARA table as append strucre and then you can debug the IDOC from WE19 and use the FM "MASTERIDOC_CREATE_SMD_MATMAS" and then you also need to switch on Update Debugging on, to debug the changes in update FM   MATERIAL_WRITE_DOCUMENT.
    Please see if the change is reflected or not....
    ELSE.
    may be you need to create a new entry in SCDO and do all the ALE configurations for change pointers.
    Please find the link for change pointers and also you can get lot of information on change pointers in SCN.
    http://help.sap.com/saphelp_nw70/helpdata/EN/12/83e03c19758e71e10000000a114084/content.htm
    Regards,
    Nagaraj

  • Change pointers in case of purcahse order

    The scenario is to send data through idoc when i create/change delete certain fields in purchase order.
    I hace used change pointer scenario for it
    can u plz see what i have missed out in my configuration ..
    Here are the steps i followed .
    1) created a logical custom message us we81 .
    2) created custom idoc using we 30
    3) Linked custom mesage and idoc using we 82
    4) Activated my custom message using bd50 .
    5) Assigned fields to message using bd52 ie
    Einkbeleg EKKO waers , EKPO-netpr ..etc
    6) Assigned cutom message and custom function module
    (z...smd_custommsg) via bd60
    7) tried to execute the message using BD21 ..
    Now the issue is that entries are being created in change document table(cdhrd/cdpos)
    but no entry in BDCP/BDCPS..
    please give your valuable inputs to it
    Thanks In advance

    hi,
    You can acheive this by writing a custom program.
    in the program you need to use function module   'CHANGE_POINTERS_READ' for reading the change pointers.
    Give document object class as the object name in bd52 and give read_not_processed_pointers as 'X'.
    Looping at the output table and using function module CHANGE_POINTERS_CREATE_DIRECT you can create an entry in bdcp table for the respective purchase order.
    After this you can use   SUBMIT rbdmidoc WITH mestyp = message_type AND RETURN.
    Regards
    Sridevi S

  • Change Pointers are not getting populated in BDCPV table.

    Hi All,
             I am trying to create IDOC for Activity type master - KL02 through change pointers. For that I have done following things.
    Message type - COAMAS
    1. Created Custom message type - WE81 - ZIN_COAMAS_TCSMOBILE
    2. WE82 - Config for Mess Type and Idoc type combination
    3. SCDO - Checked object type LSTAR and have required tables in that object.
    4. BD61 - Activated Change pointers - Generally.
    5. BD50 - Checked Active for ZIN_COAMAS_TCSMOBILE
    6. BD52 - Added fields for I want to create Change pointers
    7. BD60 - Message type and ref Mesage Type and function module config.
    8. BD64 - Created distribution model for my Message type
    After doing all this settings the change pointers are not getting created in BDCP and BDCPV tables.
    Note - The entries are going in CDHDR and CDPOS table for activity which i change through KL02 for class LSTAR
    Can anybody figure out what need to be done in this case?
    Regards,
    Gautam Joshi.

    Hi All,
              Solved the problem myself.
              In BD52 I have given
              LSTAR               CSLA         KOARS
              LSTAR               CSLA         LSTAR
              LSTAR               CSLT          KTEXT
              Here the data of activity are stored in TCLA and TCLT tables. So intially while doing config in BD52 I have given TCLA and TCLT table names.
              But I debugged the KL02 and found that change pointers are not created for TCLA and TCLT table. further looking into CDHDr and CDPOS table I found that for COAMAS message type in these two tables table name was CSLAB.
    CDPOS entry
    LSTAR                        
    3166442                      
    119512890                    
    *CSLAB*                        
    2003166442   2400123120000101
    KTEXT                        
    U                            
    --> BUT CSLAB is structure.
    After putting these entry in BD52 the problem solved.
    LSTAR     CSLAB     KOKRS
    LSTAR     CSLAB     KTEXT
    LSTAR     CSLAB     LSTAR
    Regards,
    Gautam Joshi.

  • Vendor Master change pointers problem

    Hi ,
    We have a custom program that will read change pointers for Vendor master .
    we use these change pointers to trigger our custom idoc . But we need to select only change pointers of vendors whose changes are confirmed in transaction FK08 or Fk09
    Please let me know how we can check the changpointers for particular vendor is confirmed or not
    Regards,
    Ramesh

    Just as a follow up on this.  I think that within the setup of the classification system you need to configure the tracking of changes.  If you take a look at table TCLA you'll notice that there is a field which indicates if change document are turned on.  I belive that this then relates back to the "virtual" change document objects that I refered to in my previous post.
    It looks like during update tasks that fucntion CLVF_VB_INSERT_CLASSIFICATION and that this checks the TCLA table and then writes the change documents as part of the updates.
    The description of this field in TCLA is:
    Change Documents for Classification
    Indicator: for this class type, a change document is generated for all changes to classification data.
    For technical reasons, this indicator can only be set if the class type is defined for classifying different object types.
    looks like there is some more research needed but this should hoepfully get you on the right track.
    ~Ian
    Edited by: Ian Maxwell on Sep 29, 2008 1:37 PM

  • IDOC trigger using Z change pointers for standard SAP table

    For IDOC trigger, is using custom change pointers on standard SAP master data tables, a good idea? A seasoned abaper told me "it will mess with the standard" and further told to go with scheduled job.
    So, for example, say that my data for table T001K is updated via transports in PRD and I need to transfer this updated data via IDOC to an external system. Since there is no standard message type for this data, I will create a new one. Further, I will create a new change pointer for table T001K (it already has six fields with their data elements activated for Change Documents). Then I link the message type and the new change pointer. And so on an so forth. I have followed the procedure given here:SAP Tips: A to Z of Custom Change Pointer
    Now, the question is, will this be a good idea to capture data and trigger IDOC? Or a batch program with calls to standard FM to read CDHRD/CDPOS be a more suitable option.
    I need to know if a near instantaneous data transfer (and an effecient one as far as the system performance and reliability is concerned) can be acheived. If there is any other way of doing this, I am not aware of it!
    Any one has any input/experience on this?

    Hi Viktor,
    I think the batch program approach would be a good solution as the by this way you are taking matter into your own hands rather giving control to the SAP framework because you may have to test out the other approach as to how the standard SAP framework is behaving for custom change pointers.
    Thanks,
    Ravi

  • Change pointers not being generated in case of Z fields (extension IDOC)

    Hello,
    My requirement is of generating change pointers when fields from customer master change ( z fields).
    Actually this is working for standard fields, but not for z fields .
    I have created a Z segment and added fields 'ADRC-STR_SUPPL3' & 'ADR3-FAX_NUMBER'  and have written appropriate code for populating them in 'ZXVSVU01' of exit 'EXIT_SAPLVV01_001' .
    However, when I try to run change pointers transaction BD21, it says 0 idocs and 0 communication params generated.I have added those fields properly in BD52 (object class - ADDRESSE).
    If you change standard fields along with Z fields, it works, but if you change only the Z fields , it doesn't trigger a change pointer.
    Is there something extra that we need to do in case of object class 'ADRESSE' ?
    Please help.
    Thanks,
    Rachna.

    Were you able to resolve the issue?
    If yes, could you please share what was done to resolve it.
    Your help will be greatly appreciated.

  • 0CML_DELTA : Change pointers are not active

    Hi All,
    I have successfully did the delta init without data transfer for datasource 0CML_DELTA and 0CML_DELTA_CAP. Now, While trying to load delta, I am getting an error "Change pointers are not active" for both the datasource 0CML_DELTA and 0CML_DELTA_CAP.
    The position datasources are fecthing 0 records.
    I have activated the change pointers in BD61, even though I am getting the same error.
    Anyone faced the similar issue or have any clue about the problem.
    Thanks in advance,
    Pravender
    Edited by: Pravender on Sep 30, 2010 11:09 AM

    I resolved it. I was activating change pointers in BD61. But fot CML we need to activate in SPRO--> SAP Banking --> Loans Management --> Basic settings --> Installation parameters ---> Define general installation parameters.
    Then it will work.
    Pravender

  • CSKS, KS02 change pointers for Z fields

    Hi,
    I have extended CSKS with new Z fields. Also ALE'ed this to other SAP system.
    But this is not creating any change pointers for this new z fields.
    The changes are tagged in CDHDR, but not into BDCP2 table. Is there any settings
    which needs to be done by which it will create CP automatically when we change Z fields
    in KS02.
    Appreciate your help.
    Thanks
    Manohar

    Found solution with BD52 tcode.
    Thanks

  • Change pointers for PDS

    Hi Gurus,
    I am not able to transfer the changes to BOMs in ECC. I am using the transaction CURTO_CREATE_BOM. This transaction is not picking up the changes in BOM.
    Are there any SAP Standard change pointers that I need to activate to enable change transfer for PDS'?
    Any response is appreciated.
    Thanks,
    Shiv.

    I did try that transaction, but it does not work. I am only transferring BOMs to APO. There is no production version attached to the BOM. And i need a production version to compare PDS with BOM using /SAPAPO/RTO_ORD_COMP.
    When I run this transaction w/o production version, I get the following error -
    "No comparison for product 420-0002-0002 location P100 production version : Production Version not Found     "

Maybe you are looking for

  • Lumia 920 - Black update problems, slow app respon...

    I have had a lumia for well over a year in the UK, I updated to the black update a week ago, and the phone became completely unresponsive, similar to theDej's problem here: http://discussions.nokia.com/t5/Nokia-Lumia/Phone-inoperative-after-lumia-bla

  • Exception occurred during internal http communication

    Hello Everyone, We are getting the following error when we call the bsp application ( http://hostname.domain.com:8000/sap(bD1lbiZjPTgwMCZkPW1pbg==)/bc/bsp/sap/crm_ui_start/default.htm) An error occurred during initialization of the application An exc

  • Itunes.exe corrupt  and unreadable

    Cannot download to my ipod. get this error message: \ipod_control\itunes\itunesPrefs corrupt and unreadable run chkdsk utility. I have reinstalled all I can think of. HELP!!

  • Can I use a 3.0 usb storage device on an older MacBook wht 13inch ?

    I need more storage for projects at work. I noticed most of the storage devices are usb 3.0. My MacBook is 2.0. What are the pros/cons in using a usb 3.0 storage device.  Specifically I am looking to store iPhoto collections and iMovie projects direc

  • Error in running installer

    A installer is created successfully. After running it in another PC, an error shows "Fatal Error!! Required NIPathsDir property MOZILLADIR is undefined. " Any comments? Thanks,