TDDAT and V_DDAT

Hi,
If iam not wrong, V_BRG is the table where we can define an Auth.Groups for tables.
Also V_DDAT is the table to assign the concerned tables to necessary Auth. groups. What is the use of TDDAT table then?
Thanks. DVRK

Hi,
V_DDAT is only a database view. The underlying database table is TDDAT.
It's TDDAT where the data is resided regarding table maintenance class.
Cheers !!
Satya.
PS: Pls reward points if the answer was helpful...Thx.

Similar Messages

  • Upgrade 4.6c to ERP2005 Tables - V_BRG and V_DDAT

    Hello Guru's,
    We are currently upgrading from 4.6C to ERP2005 (ECC 6.0) we are in the early stages of development testing and it appears that tables V_BRG and V_DDAT do not exist in the new development client. I am getting the messages ' no database view exists for view V_BRG ' and 'V_DDAT is not active in the dictionary' .
    Has anyone experienced this issue before ? And if so does anyone know of the solution.
    Thanks
    Simon

    Simon,
    That view does not exist in newer versions.  Look at table TDDAT and update via SE54.
    Cheers,
    Ben

  • ABAP Reports and SAP Query

    Hi Experts,
    I have question regarding ABAP Reports, SAP Query, and Transaction with variant.  How are we securing one the above reports that we assign them through pfcg.  We can secure custom program by custom transaction or define the auth group in S_PROGRAM auth object but in this case we have to assign SA38 in production. is that correct?
    Please help me understand difference between the ABAP reports and SAP query. Is the ABAP reports same as Program or they are different.
    Thanks in advance
    Faisal
    Edited by: Faisal on Jun 30, 2009 11:06 PM

    Hi,
    1) End user security (role matrix coordinate with process team)
    This role Matrix design is most important where we can put restrictions and use SoD.
    2) Secure Table (by auth group)
    Table TDDAT and use of transaction se54 for security tables to right auth Groups. Secure s_tabu_dis, s_tabu_cli.
    3) Secure program (as you said ABAP reports are referred to Program)
    Use of table TPGP and program RSCSAUTH for assignment of groups to Program. SA38 Running of SA38 requires a minimum SUBMIT in user Action. A user having SA38 is dangerous as he/she is now enabled to run any report. Hence protection in Auth Group is needed. Verify each and every program is having authority check statement and Auth Group or not before assigning sa38. As you mentioned its best to avoid SA38 and create CUSTOM TXN for each report.
    (We should also SECURE S_DEVELOP in Production properly along with ur points. Please Note).
    4) Secure some batch jobs roles for batch job
    Secure by s_btch* objects and less access to se36.
    5) Create support roles for cutover activity during Go-live
    That is always needed. Go ahead.
    6) Emergency roles & IT roles for support
    This is very much needed as a role of Mitigation and Fire Fighting for Temporary access. Ensure to enable ur audit parameters in RZ10 (rsau* sm20,RSLG* for sm21). Give emergency access but enable audit via sm19 and get audit reports from sm20 and sm21 immediately after the use of emergency access.
    There are also other auth objects we need to be care ful which is a long list and hope every body ensures that (s_cts,a_admi,s_trans, tables ssm_cust, prgn,t000) etc and a host of others. Besh wishes. Let us know if any issue.
    Regards
    Aveek.

  • Help with Authorization code

    Hello All:
         I created table maintenance for some table XXX and assigned an authorization group YY to it. Is there a way to find if there are other tables that has the same authorization group (YY)?
    Thanks.
    Mithun

    Hi Mithun dha,
    Go to Table TDDAT and check for CCLASS eq 'YY' , you will get all table names with authorization YY(if any exist).
    Regards,
    Vivek

  • Providing authorization for parameter transaction

    hello all,
              I have created a parameter transaction for a table maintainance generator(table a z-table). the requirement is, we want to provide authorization only for few users so how can we go forward...
    with regards,
    sandeep akella.

    When you are parametrizing any TCoe then there is no changes happen in the Authorization checks from the original. So you need to take care this in the following way:
    1. Go to table TDDAT and find out the Authorization Group of that z-table. If nothing found, please create a Custom Auth group and assign the table to that grp in SE54.
    2. Now go to the role through which you want to provide access to that table to the users or create a new role and add the Parametrized Tcode in the menu of the Tcode.
    3. In authorization data, please assign the Authorization group for that particular table in S_TABU_DIS and provide the activity as per your requirement.
    4. Assign the role to the users.
    Regards,
    Dipanjan

  • Missing TVDIR-entry when transporting a whole package

    Hi all
    I created a new transport request and then added all objects of a package into this transport. I did so in SE80 reight-clicked on the package and selected "write transport entry". This worked fine and also the import on the client system worked fine. But i could not access my views using transaction SM30 cause the needed entries for my vies in the table TVDIR were not added to the transport.
    Is there a way to extract the content of a package to a transport that includes these required entries like TVDIR TDDAT and so on?
    Cheers
    Markus

    Hey Markus,
    I'm facing the same problem right now and found in the past a report to generate the TVDIR and TDDAT entries with a report for the complete package. Unfortunately I can't find that report anymore. I was searching the web and within SDN for a while without result.
    Is there someone how knows the report I'm talking about? Or has a different idea. I have to send our development from one system landscape to another (20 Packages / 70 Table Maintenance Views).
    Regards,
    Matthias

  • Saving NSDatePicker to a string and saving that to NSUserDefaults...

    Saving NSDatePicker to a string and saving that to NSUserDefaults I have it saved to a string then I have code that should save it to NSUSerDefaults so that when the program starts it is saved as the string not null. Here is the code [CODE]#import "MainView.h"
    #import "DateView.h"
    @implementation MainView
    -(void)awakeFromNib
    [self removeFromSuperview];
    [self addSubview:dateView];
    [dateView setdateandtime];
    [dateView permsavedattime];
    @end [/CODE] [CODE]#import "DateView.h"
    #include "MainView.h"//Use #import this is to see if #include Works
    @implementation DateView
    -(IBAction)showuserdefaultdate
    [self userdefaultdate];
    //dateoutput.text =tddate;
    -(void)permsavedattime
    tddate=[prefs stringForKey:@"testing"];
    tdtime=[prefs stringForKey:@"timetesting"];
    dateoutput.text =[[NSString alloc] initWithFormat:@"%@",tddate];
    -(void)userdefaultdate
    prefs =[NSUserDefaults standardUserDefaults];
    [prefs setInteger:tddate forKey:@"testing"];
    [prefs setObject:tdtime forKey:@"timetesting"];
    -(void)setdateandtime
    [Today setDate:[NSDate date] animated:YES];
    //formatting date style
    dateformatter = [ [ NSDateFormatter alloc ] init ];
    [ dateformatter setDateStyle:NSDateFormatterLongStyle];
    [ dateformatter setTimeStyle:NSDateFormatterNoStyle ];//makes it so the time is not included
    //[ formatter setTimeStyle:NSDateFormatterLongStyle ];//set to anystyle besides
    //NoStyle if you dont want time included.
    [Time setDate:[NSDate date] animated:YES];
    //formatting date style
    timeformatter = [ [ NSDateFormatter alloc ] init ];
    [ timeformatter setDateStyle:NSDateFormatterNoStyle];//makes it so it doesn't get the date
    [ timeformatter setTimeStyle:NSDateFormatterShortStyle];//makes it so the time is just hour and minute and A.M. or P.M.
    //[ formatter setTimeStyle:NSDateFormatterLongStyle ];//set to anystyle besides
    //NoStyle if you dont want time included.
    -(IBAction)recieveDate
    tddate= [dateformatter stringFromDate:Today.date];//Asigning the date to the string
    dateoutput.text =tddate;
    -(IBAction)recievetime
    tdtime= [timeformatter stringFromDate:Time.date];//Asigning the date to the string
    timeoutput.text =tdtime;
    -(IBAction)canceltime
    [Time setDate:[NSDate date] animated:YES];
    tdtime= [timeformatter stringFromDate:Time.date];//Asigning the date to the string
    timeoutput.text =tdtime;
    -(IBAction)canceldate
    [Today setDate:[NSDate date] animated:YES];
    tddate= [dateformatter stringFromDate:Today.date];//Asigning the date to the string
    dateoutput.text =tddate;
    @end[/CODE] What am I missing? It keeps coming up Null I need it saved right so I can send it through email

    softwarespecial wrote:
    why can't I have the prefs saved in the .h
    You can save that address in an ivar if you want to, but there's no purpose to that. The standardUserDefaults object is a +shared class object+. It's like a dictionary object that's maintained for your program by the NSUserPreferences class. You can read from or write to it at any time for the duration of your program. So whenever you get the shared object's address [NSUserDefaults standardUserDefaults], you're just getting the address of that same object each time.
    In case the above doesn't make sense, I ran across a good explanation by Danneman in the last message on this page: [http://www.iphonedevsdk.com/forum/iphone-sdk-development/18716-set-settings-va riable-code.html].
    When I did that as you so wisely pointed out it didn't work but when I saved it at each point I needed it it works.
    When you change two things at once it's easy to forget the first and assume the second change solved the problem. Actually, I don't think saving prefs in your ivar had anything to do with your bug. What fixed it was getting a pointer to the shared std defaults object in this method:
    -(void)permsavedattime
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; <-- get the shared object
    tddate=[prefs stringForKey:@"testing"];
    tdtime=[prefs stringForKey:@"timetesting"];
    dateoutput.text =[[NSString alloc] initWithFormat:@"%@",tddate];
    Without the first line of the above, I'm fairly sure that your prefs ivar was nil. I didn't see any code that initialized that ivar prior to the first time userdefaultdate ran. It looked to me like permsavedattime ran at start up, well before prefs was set in userdefaultdate. If you're interested in backtracking, restore the file to the way it was when you posted, then add a NSLog() like this:
    -(void)permsavedattime
    // NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; <-- get the shared object
    NSLog(@"prefs=%@", prefs);
    tddate=[prefs stringForKey:@"testing"];
    tdtime=[prefs stringForKey:@"timetesting"];
    dateoutput.text =[[NSString alloc] initWithFormat:@"%@",tddate];
    I wish to save lets say five different things to NSUSerDefaults would I be able to do it all with my NSUserDefaults prefs or would I have to create a another one for some of them?
    You know the answer to your second question now, right? The important point is that you're never creating the shared object, you're just asking for its address whenever you need it.
    Btw, there's another user defaults method you should know about: The synchronize method writes the data to disk. You might want to do that when your app is ready to exit. E.g., in the app delegate:
    - (void)applicationWillTerminate:(UIApplication *)application {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs synchronize];
    Although the docs suggest synchronize when the app is about to exit, I'm not sure it's necessary. I think the system might write the defaults out to disk anyway when the app terminates, but not sure about this. +User Defaults Programming Topics for Cocoa+ says:
    On Mac OS X v10.5 and later, in applications in which a run-loop is present, synchronize is automatically invoked at periodic intervals. Consequently, you might synchronize before exiting a process, but otherwise you shouldn’t need to.
    The above is in the iPhone edition, so I think it applies.
    It might also be a good idea to update the data and call resetStandardUserDefaults in didReceiveMemoryWarning. I'm not clear about the need for reset either though, since the system may do that for you as well. But on a memory warning, you would definitely want to update the user default data if some of it is stored in an object to be released. You can find out how your app behaves on a memory warning by selecting Hardware->Simulate Memory Warning from the iPhone Simulator menu.
    - Ray

  • Tables for following scheduling agreements and PR data

    Hi All ,
    Please can you tell me table names if I want the following information
    1. Scheduling Agreement Created By, Amended By, Modified Date, Plant
    2. Req Created by, Released by, Cost center, plant
    Thanks in advance
    Vinayak

    To view the fields listed in a table go to Tcode SE11 and enter the table name and execute
    EBAN  - Purchase Requisition 
    EBKN  - Purchase Requisition Account Assignment 
    Req Created by Table:EBAN Field ERNAM
    Released by- Table:EBAN Field FRGGR
    Cost center- Table:EBAN Field FISTL (Funds Center)
    plant-Table:EBAN Field WERKS
    For Scheduling Agreements following are the tables:
    EKEH    - Scheduling Agreement Release Documentation 
    EKEK    - Header Data for Scheduling Agreement Releases 
    EKET     - Scheduling Agreement Schedule Lines 
    EKETH   - Scheduling Agreement Schedules: History Tables
    You will find the following list of fields in these tables:
    MANDT                          Client
    EBELN                          Purchasing Document Number
    EBELP                          Item Number of Purchasing Document
    ETENR                          Delivery Schedule Line Counter
    EINDT                          Item Delivery Date
    SLFDT                          Statistics-Relevant Delivery Date
    LPEIN                          Category of Delivery Date
    MENGE                          Scheduled Quantity
    AMENG                          Previous Quantity (Delivery Schedule Lines
    WEMNG                          Quantity of Goods Received
    WAMNG                          Issued Quantity
    UZEIT                          Delivery Date Time-Spot
    BANFN                          Purchase Requisition Number
    BNFPO                          Item Number of Purchase Requisition
    ESTKZ                          Creation Indicator (Purchase Requisition/S
    QUNUM                          Number of Quota Arrangement
    QUPOS                          Quota Arrangement Item
    MAHNZ                          No. of Reminders/Expediters for Schedule L
    BEDAT                          Order date of schedule line
    RSNUM                          Number of Reservation/Dependent Requiremen
    SERNR                          BOM explosion number
    FIXKZ                          Schedule Line is "Fixed"
    GLMNG                          Quantity Delivered (Stock Transfer)
    DABMG                          Quantity Reduced (MRP)
    CHARG                          Batch Number
    LICHA                          Vendor Batch Number
    CHKOM                          Components
    VERID                          Production Version
    ABART                          Scheduling agreement release type
    MNG02                          Committed Quantity
    DAT01                          Committed Date
    ALTDT                          Previous delivery date
    AULWE                          Route Schedule
    MBDAT                          Material Staging/Availability Date
    MBUHR                          Material Staging Time (Local, Relating
    LDDAT                          Loading Date
    LDUHR                          Loading Time (Local Time Relating to a
    TDDAT                          Transportation Planning Date
    TDUHR                          Transp. Planning Time (Local, Relating
    WADAT                          Goods Issue Date
    WAUHR                          Time of Goods Issue (Local, Relating to
    ELDAT                          Goods Receipt End Date
    ELUHR                          Goods Receipt End Time (Local, Relating
    ANZSN                          Number of serial numbers
    NODISP                         Ind: Reserv. not applicable to MRP;Purc
    hope this helps!

  • Very urgent : shipping point and delivery creation date

    Hi :
    I have a custom table with fields :
    belnr, posnr, btyp, aufnr, ebeln, ebelp, livbeln, liposnr,matnr,wadat,kunnr,werks,bmeinh,getri,inaktiv,wabukz,erdat,aedat,loekz.
    Custom Transaction with fields :
    vbeln (field name belnr) , aufnr, delivery vbeln ( field name livbeln ),werks, mat .avail.dat ( mbdat ), transport.plan date(tddat),
    matnr, and sales order item (posnr).
    I have to select sales order , item from custom table based on plant (werks) shipping point , and delivery creation date.
    how can i relate shipping point and delivery creation date to my query.
    For delivery creation date, it should be selected based on current date+-2 and should choose MBDAT OR TDDAT which ever is earlier based on current date.
    I would appreciate if anyone can give me som idea and full points r rewarded.
    Thx.
    Rag

    Hi,
    Try this:
    select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
    on a1belnr = vbapvbeln
    inner join vbep
    <b>on vbapvbeln = vbepvbeln and vbapposnr = vbepposnr</b>
    where a1~werks = p_werks
    AND vbap~vstel = p_vstel
    AND vbep~edatu = p_edatu
    AND (vbep~mbdat <= p_edatu OR
    vbep~tddat <= p_edatu ).
    regards,
    Anji

  • Shipping point and delivery creation date

    Hi :
    im selecting sales orders , items and schedule line
    from a custom table based on plant, shipping point and delivery creation date. 
    Is there any relation between Schedule lines and delivery creation date.
    For delivery creation date d_date = SY-DATUM,  and should select Mat Avail dt MBDAT or Trans. planning dt TDDAT which ever comes earlier.
    vbep-edatu = itab-d_date.
    select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
    on a1belnr = vbapvbeln
    inner join vbep on a1posnr = vbepposnr
    where a1~werks = p_werks
    AND vbap~vstel = p_vstel
    AND vbep~edatu = p_edatu
    AND (vbep~mbdat <= p_edatu OR
    vbep~tddat <= p_edatu ).
    can anyone help me with this select statement.
    Thanks.
    Raghu

    Hi,
    Try this:
    select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
    on a1belnr = vbapvbeln
    inner join vbep
    <b>on vbapvbeln = vbepvbeln and vbapposnr = vbepposnr</b>
    where a1~werks = p_werks
    AND vbap~vstel = p_vstel
    AND vbep~edatu = p_edatu
    AND (vbep~mbdat <= p_edatu OR
    vbep~tddat <= p_edatu ).
    regards,
    Anji

  • Sales orders and delivery creation

    Hi :
    im selecting sales orders , items and schedule line
    from a custom table based on plant, shipping point and delivery creation date.
    Is there any relation between Schedule lines and delivery creation date.
    For delivery creation date d_date = SY-DATUM, and should select Mat Avail dt MBDAT or Trans. planning dt TDDAT which ever comes earlier.
    vbep-edatu = itab-d_date.
    select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
    on a1belnr = vbapvbeln
    inner join vbep on a1posnr = vbepposnr
    where a1~werks = p_werks
    AND vbap~vstel = p_vstel
    AND vbep~edatu = p_edatu
    AND (vbep~mbdat <= p_edatu OR
    vbep~tddat <= p_edatu ).
    can anyone help me with this select statement.
    Thanks.
    Raghu

    Hi,
    Modify the Selec as below:
    select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
    on a1belnr = vbapvbeln
    inner join vbep
    <b>on  vbapvbeln =  vbepvbeln and vbapposnr = vbepposnr</b>
    where a1~werks = p_werks
    AND vbap~vstel = p_vstel
    AND vbep~edatu = p_edatu
    AND (vbep~mbdat <= p_edatu OR
    vbep~tddat <= p_edatu ).
    Regards,
    Anji

  • How to use Innerjoin b/w these 2 tables VBAK and CDHDR ?

    Hi,
              How to use Innerjoin b/w these 2 tables VBAK and CDHDR for retrieving of changed sales order data ?I nned the A select stmt with INNER JOIN for changed sales data.
    Thanks & Regards,
    gopi.

    Hi Gopi,
    You can use the code similar to below to read the changes to Sales order from CDHDR AND CDPOS
    FORM GET_CHANGES .
    * Get all the changes to Sales Order as well as Deliveries. Suppress
    * Non relevant change
      DATA : BEGIN OF SO_VBELN OCCURS 0 ,
           VBELN LIKE CDHDR-OBJECTID,
           END OF SO_VBELN.
      DATA : BEGIN OF DL_VBELN OCCURS 0 ,
           VBELN LIKE CDHDR-OBJECTID,
           END OF DL_VBELN.
      DATA TEMP_SO_VBELN LIKE SO_VBELN OCCURS 0 WITH HEADER LINE.
      DATA DATE_UNTIL LIKE SY-DATUM.
      DATA TIME_UNTIL LIKE SY-UZEIT .
      DATA DATE_FROM LIKE SY-DATUM.
      READ TABLE S_CHADT INDEX 1.
      LOOP AT IT_VBAP.
        AT NEW VBELN.
          MOVE IT_VBAP-VBELN TO TEMP_SO_VBELN.
          COLLECT TEMP_SO_VBELN.
        ENDAT.
      ENDLOOP.
      IF TEMP_SO_VBELN[] IS NOT INITIAL.
        SELECT OBJECTID AS VBELN FROM CDHDR
             INTO TABLE SO_VBELN
               FOR ALL ENTRIES IN TEMP_SO_VBELN
             WHERE  OBJECTCLAS EQ 'VERKBELEG'
             AND OBJECTID EQ TEMP_SO_VBELN-VBELN
             AND USERNAME IN S_CHABY
             AND UDATE IN S_CHADT.
      ENDIF.
      LOOP AT IT_LIPS INTO WA_LIPS.
        AT NEW VBELN.
          MOVE WA_LIPS-VBELN TO DL_VBELN.
          COLLECT DL_VBELN.
        ENDAT.
      ENDLOOP.
    * Changes in Sales Order.
      IF NOT  SO_VBELN[] IS INITIAL.
    * Get partner functions
        SELECT * INTO TABLE IT_TPART
          FROM TPART WHERE SPRAS EQ SY-LANGU.
        SELECT A~TABNAME A~FIELDNAME A~DATATYPE B~DDTEXT
           INTO CORRESPONDING FIELDS OF TABLE IT_FIELD
           FROM DD03L AS A INNER JOIN
                DD04T AS B
                ON A~ROLLNAME EQ B~ROLLNAME
                AND A~AS4LOCAL EQ B~AS4LOCAL
              WHERE ( A~TABNAME EQ 'VBAK'
                      OR A~TABNAME EQ 'VBAP'
                      OR A~TABNAME EQ 'VBEP'
                      OR A~TABNAME EQ 'VBPA'
                      OR A~TABNAME EQ 'VBUK'
                      OR A~TABNAME EQ 'VBKD' )
               AND  A~AS4LOCAL EQ 'A'
               AND A~AS4VERS EQ '0000'
               AND A~ROLLNAME NE SPACE
               AND B~DDLANGUAGE EQ SY-LANGU.
    * Preapare the exclusion table
        R_EXCL_FIELDS-OPTION = 'EQ'.
        R_EXCL_FIELDS-SIGN = 'I'.
        LOOP AT IT_FIELD WHERE DATATYPE EQ 'CURR'.
          R_EXCL_FIELDS-LOW = IT_FIELD-FIELDNAME.
          APPEND R_EXCL_FIELDS.
        ENDLOOP.
        R_EXCL_FIELDS-LOW = 'ARKTX'.
        APPEND R_EXCL_FIELDS.
        R_EXCL_FIELDS-LOW = 'LGORT'.
        APPEND R_EXCL_FIELDS.
        R_EXCL_FIELDS-LOW = 'TDDAT'.
        APPEND R_EXCL_FIELDS.
        R_EXCL_FIELDS-LOW = 'LDDAT'.
        APPEND R_EXCL_FIELDS.
        R_EXCL_FIELDS-LOW = 'MBDAT'.
        APPEND R_EXCL_FIELDS.
        R_EXCL_TABL-OPTION = 'EQ'.
        R_EXCL_TABL-SIGN = 'I'.
        R_EXCL_TABL-LOW = 'KONVC'.
        APPEND R_EXCL_TABL.
        R_EXCL_TABL-LOW = 'VBKD'.
        APPEND R_EXCL_TABL.
        LOOP AT SO_VBELN.
          REFRESH ITAB_CDHDR.
          DATE_FROM = S_CHADT-LOW.
          DATE_UNTIL = S_CHADT-HIGH.
          CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
            EXPORTING
              DATE_OF_CHANGE             = DATE_FROM
              OBJECTCLASS                = 'VERKBELEG'
              OBJECTID                   = SO_VBELN-VBELN
              TIME_OF_CHANGE             = TIME_UNTIL
              DATE_UNTIL                 = DATE_UNTIL
              USERNAME                   = ' '
            TABLES
              I_CDHDR                    = ITAB_CDHDR
            EXCEPTIONS
              NO_POSITION_FOUND          = 1
              WRONG_ACCESS_TO_ARCHIVE    = 2
              TIME_ZONE_CONVERSION_ERROR = 3
              OTHERS                     = 4.
          IF SY-SUBRC NE 0.
            CONTINUE.
          ENDIF.
          LOOP AT ITAB_CDHDR WHERE USERNAME IN S_CHABY.
            REFRESH IT_CDSHW.
            CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
              EXPORTING
                CHANGENUMBER            = ITAB_CDHDR-CHANGENR
              TABLES
                EDITPOS                 = IT_CDSHW
              EXCEPTIONS
                NO_POSITION_FOUND       = 1
                WRONG_ACCESS_TO_ARCHIVE = 2
                OTHERS                  = 3.
            IF SY-SUBRC EQ 0.
              PERFORM GET_ACTION .
            ENDIF.
          ENDLOOP.
        ENDLOOP.
      ENDIF.
    * Changes in Delivery
      IF NOT DL_VBELN[] IS INITIAL.
        REFRESH : IT_CDHDR , IT_CDPOS.
        SELECT  OBJECTCLAS OBJECTID CHANGENR USERNAME UDATE
               FROM CDHDR INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR
             FOR ALL ENTRIES IN DL_VBELN
           WHERE  OBJECTCLAS EQ 'LIEFERUNG'
           AND OBJECTID EQ DL_VBELN-VBELN
           AND USERNAME IN S_CHABY
           AND UDATE IN S_CHADT
           AND CHANGE_IND EQ 'U'.
        LOOP AT IT_CDHDR.
          CONCATENATE SY-MANDT IT_CDHDR-OBJECTID
           INTO IT_CDHDR-TABKEY .
          CONDENSE  IT_CDHDR-TABKEY.
          MODIFY IT_CDHDR.
        ENDLOOP.
        IF NOT IT_CDHDR[] IS INITIAL.
          SELECT  * INTO TABLE IT_CDPOS FROM CDPOS
               FOR ALL ENTRIES IN IT_CDHDR
             WHERE  OBJECTCLAS EQ IT_CDHDR-OBJECTCLAS
             AND OBJECTID EQ IT_CDHDR-OBJECTID
             AND CHANGENR EQ IT_CDHDR-CHANGENR
             AND TABNAME EQ 'LIKP'
             AND TABKEY EQ IT_CDHDR-TABKEY
             AND FNAME IN ('WADAT','LFDAT','ROUTE','VSBED')
             AND CHNGIND EQ 'U' .
          LOOP AT IT_CDPOS .
            CLEAR  IT_DL_CHG-FLAG_RED.
            CASE IT_CDPOS-FNAME.
              WHEN 'WADAT'.
                MOVE 'Goods issue date changed' TO IT_DL_CHG-ACTION.
              WHEN 'LFDAT'.
                MOVE 'Delivery date changed' TO IT_DL_CHG-ACTION.
                MOVE 'X'  TO IT_DL_CHG-FLAG_RED.
              WHEN 'ROUTE'.
                MOVE 'Route Changed' TO IT_DL_CHG-ACTION.
              WHEN 'VSBED'.
                MOVE 'Shipping Condition Changed' TO IT_DL_CHG-ACTION.
              WHEN OTHERS.
            ENDCASE.
            AT NEW CHANGENR .
              READ TABLE IT_CDHDR WITH KEY OBJECTCLAS = IT_CDPOS-OBJECTCLAS
                                           OBJECTID = IT_CDPOS-OBJECTID
                                           CHANGENR = IT_CDPOS-CHANGENR
                                           BINARY SEARCH.
              MOVE IT_CDHDR-USERNAME TO  IT_DL_CHG-ERNAM.
              WRITE IT_CDHDR-UDATE TO  IT_DL_CHG-ERDAT.
            ENDAT.
            IT_DL_CHG-COUNTER = IT_DL_CHG-COUNTER + 1.
            MOVE IT_CDPOS-OBJECTID TO IT_DL_CHG-VBELN.
            MOVE IT_CDPOS-VALUE_OLD TO IT_DL_CHG-OLD_VAL.
            MOVE IT_CDPOS-VALUE_NEW TO IT_DL_CHG-NEW_VAL.
            INSERT TABLE IT_DL_CHG.
          ENDLOOP.
        ENDIF.
      ENDIF.
    ENDFORM.                    " GET_CHANGES
    Cheers
    VJ

  • Autho. on program and tables

    Hi All,
    I have 2 question
    1. Is there any way to stop user from direct processing of programs.eg. There are many users who do not have access to SE38 to run any program, but they found a wayaround. They logon to R/3> System> Status> Double click on Programs> it takes you to the source code of the program--> Other Object and then can run any program --> And then Direct Processing....
    Is there any way to stop this and how. Please give me the steps and I am new to Autho.
    2. I have to give access to some users for some tables in transaction SM31. But only few tables?? ( might be Z tables also). Is there any way to give on access to sm31 and only mentioned table?
    Your reply is appreciated.
    Thanks
    Prash

    SAP already has a lot of standard authorization groups available for tables. These can be seen in SE54 trx or in the table TBRG for object S_TABU_DIS. The asociation between the auth group and the tables can be seen in table TDDAT. An example of such an association would be table T000 linked to auth group SS. So if you want to restrict people from changing/creating clients, remove the access for group SS from the S_TABU_DIS object in their roles.
    Now if you want to allow a user access to only some new Z-tables then the procedure would be -
    1. create a new auth group for S_TABU_DIS via SE54.
    2. modify table TDDAT to associate the required Z-tables to the Z-auth group.
    3. create a new role with SM30/31 and the object S_TABU_DIS and only add the new Z-auth group in field DICBERCLS.
    4. assign the role to the concerned user. (remember to remove other roles giving access to this object from the user first).
    For SE38, there can be two type of control - program display (code) access via S_DEVELOP and execution access via S_PROGRAM.
    S_PROGRAM control works on a principle similar to S_TABU_DIS.
    The field P_GROUP contains auth group values for programs which are maintained in the table TPGP.
    The association between the program and the program group can be maintained using the program RSCSAUTH. (this maintains the table SREPOATH).
    Hope this helps. Please award appropriate points.
    Regards,
    Sanju.

  • A problem with Threads and loops.

    Hi, I have some code that needs to be constantly running, like while(true)
          //code here
    }However, the code just checks to see if the user has input anything (and then if the user has, it goes to do some other stuff) so I don't need it constantly running and hogging up 98% of the CPU. So I made my class (which has the method that needs to be looped, call it ClassA) implement Runnable. Then I just added the method which needed to be looped into the public void run()
    I have another class which creates an instance of the above class (call it ClassB), and the main(String[] args) is in there.
    public static void main(String[] args)
              ClassA test = new ClassA();
              Thread thread = new Thread(test.getInstanceOfClassA());
              thread.start();
              while(true)
                           //I do not know what to put here
                   try
                        thread.sleep(100);
                   catch(InterruptedException iex)
         }However, the thread only calls run() once,(duh...) but I can't think of away to get it to run - sleep - run -sleep forever. Can someone help me?

    Hi, I have some code that needs to be constantly
    running, like while(true)
    //code here
    }However, the code just checks to see if the user has
    input anything (and then if the user has, it goes to
    do some other stuff) so I don't need it constantly
    running and hogging up 98% of the CPU. Where does the user input come from. Are you reading from an InputStream? If so, then your loop will be blocked anyway when reading from the InputStream until data is available. During that time, the loop will not consume processor cycles.
    public static void main(String[] args)
              ClassA test = new ClassA();
    Thread thread = new Thread(test.getInstanceOfClassA());I have never seen this idiom. If ClassA instanceof Runnable, you simply write new Thread(test).
              thread.start();
              while(true)
    //I do not know what to put
    do not know what to put here
                   try
                        thread.sleep(100);
                   catch(InterruptedException iex)
         }However, the thread only calls run() once,(duh...)Yeah, why would you want to call it more than once given that you have an infinite loop in ClassA.run()?
    Harald.
    Java Text Crunching: http://www.ebi.ac.uk/Rebholz-srv/whatizit/software

  • A problem with Threads and MMapi

    I am tring to execute a class based on Game canvas.
    The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
    The MIDI tone "Stammers".
    How to over come the problem?
    Thanks in advance
    Kobi
    See Code example below:
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.game.GameCanvas;
    import javax.microedition.media.Manager;
    import javax.microedition.media.MediaException;
    import javax.microedition.media.Player;
    public class MainScreenCanvas extends GameCanvas implements Runnable {
         private MainMIDlet parent;
         private boolean mTrucking = false;
         Image imgBackgound = null;
         int imgBackgoundX = 0, imgBackgoundY = 0;
         Player player;
         public MainScreenCanvas(MainMIDlet parent)
              super(true);
              this.parent = parent;
              try
                   imgBackgound = Image.createImage("/images/area03_bkg0.png");
                   imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
                   imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
              catch(Exception e)
                   System.out.println(e.getMessage());
          * starts thread
         public void start()
              mTrucking = true;
              Thread t = new Thread(this);
              t.start();
          * stops thread
         public void stop()
              mTrucking = false;
         public void play()
              try
                   InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
                   player = Manager.createPlayer(is, "audio/midi");
                   player.setLoopCount(-1);
                   player.prefetch();
                   player.start();
              catch(Exception e)
                   System.out.println(e.getMessage());
         public void run()
              Graphics g = getGraphics();
              play();
              while (true)
                   tick();
                   input();
                   render(g);
          * responsible for object movements
         private void tick()
          * response to key input
         private void input()
              int keyStates = getKeyStates();
              if ((keyStates & LEFT_PRESSED) != 0)
                   imgBackgoundX++;
                   if (imgBackgoundX > 0)
                        imgBackgoundX = 0;
              if ((keyStates & RIGHT_PRESSED) != 0)
                   imgBackgoundX--;
                   if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
                        imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
          * Responsible for the drawing
          * @param g
         private void render(Graphics g)
              g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
              this.flushGraphics();
    }

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

Maybe you are looking for

  • Plan/actual variance per month in a single report

    Hi gurus, MY client requirement is to get the plan/actuals/variance on monthly basis. can we get that i said S_ALR_870100185 actual costs montly          S_ALR_870100186 planned costs monthly please dont say we can achieve it with a new development b

  • Generic withholding Tax Reporting -- Technical Help

    Hello, Transaction -- S_P00_07000134 Program name - RFIDYYWT   I have a requirement to add 3 fields in the layout of the Generic withholding Tax Report. I dont know how exactly to go about it. I need to add Reference Number - XBLNR, Profit Center - P

  • Diference between DATA: and TYPES: on internal tables

    Hi people, Can somebody help me. I wanna know whats the diference between DATA: and TYPES: on internal tables and whitch has the best performance, here is a eg: DATA: BEGIN OF ti_sbook occurs 0,           carrid   LIKE sbook-carrid,           fldate 

  • Want to change my Skype Name

    I would like to change my Skype name on Skype.  I am not seeing the option to do so anywhere on Skype.  Would anybody know how I can do that?  Dandoun

  • I want to upgrade from Express 9 to full Studio (mainly for mastering plugins).

    Does anyone know wherer to buy this upgrade, or alternatively where tobuy multipressor and adaptive limiter?  thanks