Monday, July 26, 2010

Best Practice for Data Source Enhancement -sdn wiki

Data Extractor Enhancement - Overview of Approach
 Following are the steps for data source enhancements:
The flowchart explains the step we need to follow while enhancing a standard LIS extractor.
Determine the fields with which the extractor is to enhanced. Recheck if these fields are not the ones which are already provided by SAP. As if they are already provided, we need not enhance them. As a next check we need to check the LBWE pool where we have some extra fields which we can easily add to our datasource.
If these fields do not exist in the LBWE pool either, we need to enhance the data source.
Above flowchart would give an overview of the same, but here we would go through each of those steps in detail. The approach which we are going to discuss here is the Function Module approach of data source enhancement.
  Steps of Data Source Enhancement -Function Module approach
 Step 1: Go to T Code CMOD and choose the project you are working on.

Step 2: Choose the exit which is called when the data is extracted.
Step 3: This is the step where we have a difference from the normal approach.
Normal Approach: CMOD Code
Code Sample:
    WHEN '2LIS_05_Q0ACTY'.
-------
Note: This is just a sample code. Logic will vary according to the requirements.In this normal approach, which is followed in most of the BW instances, we write ABAP CASE/WHEN conditions.
Function Module  Approach: CMOD Code
 *&---------------------------------------------------------------------*
*&  Include           ZXRSAU01                                         *
*&---------------------------------------------------------------------*
DATA: L_FNAME  TYPE RS38L_FNAM,
      L_EXP_FNAME type rs38l_fnam,
      L_EXP_ACTIVE TYPE RS38L_GLOB,
      L_ACTIVE TYPE RS38L_GLOB,
      L_S_SELECT TYPE RSSELECT.
SELECT SINGLE FUNC
         INTO L_FNAME
         FROM ZTEST
        WHERE DSNAM  = I_DATASOURCE.
*&---------------------------------------------------------------------*
* Cehck to see if a local versio of the extractor exists
*&---------------------------------------------------------------------*
IF L_FNAME IS NOT INITIAL.
  CALL FUNCTION 'RS_FUNCTION_ACTIVE_CHECK'
    EXPORTING
      FUNCNAME  = L_FNAME
    IMPORTING
      ACTIVE    = L_ACTIVE
    EXCEPTIONS
      NOT_FOUND = 1
      OTHERS    = 2.
  IF SY-SUBRC EQ 0 AND L_ACTIVE IS NOT INITIAL.
    CALL FUNCTION L_FNAME
      EXPORTING
        I_DATASOURCE             = I_DATASOURCE
        I_ISOURCE                = I_ISOURCE
        I_UPDMODE                = I_UPDMODE
      TABLES
        I_T_SELECT               = I_T_SELECT
        I_T_FIELDS               = I_T_FIELDS
        C_T_DATA                 = C_T_DATA
        C_T_MESSAGES             = C_T_MESSAGES
      EXCEPTIONS
        RSAP_CUSTOMER_EXIT_ERROR = 1.
  ENDIF.                               " IF SY-SUBRC EQ 0...
ELSE.
  CLEAR L_FNAME.
  CONCATENATE 'ZTEST_' I_DATASOURCE INTO L_FNAME.
  CALL FUNCTION 'RS_FUNCTION_ACTIVE_CHECK'
    EXPORTING
      FUNCNAME  = L_FNAME
    IMPORTING
      ACTIVE    = L_ACTIVE
    EXCEPTIONS
      NOT_FOUND = 1
      OTHERS    = 2.
  IF SY-SUBRC = 0 AND L_ACTIVE = 'X'.
    CALL FUNCTION L_FNAME
      EXPORTING
        I_DATASOURCE             = I_DATASOURCE
        I_ISOURCE                = I_ISOURCE
        I_UPDMODE                = I_UPDMODE
      TABLES
        I_T_SELECT               = I_T_SELECT
        I_T_FIELDS               = I_T_FIELDS
        C_T_DATA                 = C_T_DATA
        C_T_MESSAGES             = C_T_MESSAGES
      EXCEPTIONS
        RSAP_CUSTOMER_EXIT_ERROR = 1.
  ENDIF.                               " IF SY-SUBRC = 0...
ENDIF.                                 " IF L_FNAME IS NOT INITIAL.
 
Note: This is a reusable code. Here ZTEST is a table which maintains the data source name and the function module corresponding to that data source.
Step 4: Here in this step we create a function module for each data source. We create a new FM (Function Module in SE37)
Data Extractor Enhancement - Best Practice/Benefits

  This is the best practice of data source enhancement. This has the following benefits:
1.       No more locking of CMOD code by 1 developer stopping others to enhance other extractors.
2.       Testing of an extractor becomes more independent than others.
3.       Faster and a more robust Approach

Report To check the Query Details

Type Tcode SE38 and give the program name and execute (F8)
image

Enter the Query name and select the output options like Filters,Rows/Columns, Cells,table views, input variables , exceptions and conditions .
From the Additional options you can select the Query proprties ,expand hierarchies

Click on execute .it will display all the info related to Query.



If you want to check only the rows and columns for the query select only that option.



Tuesday, July 13, 2010

A list of SRM tcodes, t-codes, or "transaction codes"

BBP0 Start Menu for SAP B2B Procurement
BBPADDREXT Maintain Vendor Address - External
BBPADDRINTC Maintain Addresses for Own Company
BBPADDRINTV Maintain Vendor Address (Internal)
BBPADM_COCKPIT Administrator Monitor Dummy
BBPADM_MONITOR FlowLogic Service BBPADM_MONITOR
BBPAPPL Define EBP Applications
BBPAPPL_DISP Define EBP Applications
BBPAPPL_TRSP Define EBP Applications
BBPAT02 Parameter ID tree maintenance
BBPAT03 Create User
BBPAT04 Forgotten User ID/Password
BBPAT05 Change User Data
BBPATTRMAINT Maintain Attributes
BBPAVLMAINT AVL Maintenance ( Display / Change )
BBPBC1 XML invoice transfer
BBPBWSC1 SC Analyses for Manager (Old)
BBPBWSP Start Enterprise Buyer Inbox
BBPBWSP_SIMPLE Start Enterprise Buyer Inbox
BBPCACC Maintain Account Assign. Categories
BBPCF01 GR/SE for Vendor
BBPCF02 GR/SE for Desktop User
BBPCF03 Goods Recpt/Serv.for Profession.User
BBPCF04 Confirmation Approval
BBPCF05 Carry Out Review for Confirmation
BBPCMSG1 Customizing Flexible Message Control
BBPCMSG2 XML Message Control

BBPPCO02 Purchase Order Response: Entered By
BBPPCO_PO Purchase Order Confirmation: Call P
BBPPCO_WF Purchase Order Confirmation: Call W
BBPPO01 Purchaser Cockpit
BBPPS01 Component Planning for Projects
BBPPS02 Postprocessing Projects
BBPPU07 Manager Inbox
BBPPU08 Employee Inbox
BBPPU09 Administrator Cockpit
BBPPU12 Reviewer Inbox
BBPRP01 Reporting, Data Retrieval from Core
BBPSC01 Shopping Cart - Full Functionality
BBPSC02 Shopping Cart - Wizard
BBPSC03 Shopping Cart - Limited Functions
BBPSC04 Shopping Cart Status
BBPSC05 Public Template (Create)
BBPSC06 Public Template (Change)
BBPSC07 Manager Inbox
BBPSC08 Employee Inbox
BBPSC09 Administrator Cockpit
BBPSC10 Reviewer Inbox
BBPSC11 Shopping Cart Display Item Overview
BBPSC12 Shopping Cart Display Item Details
BBPSC13 Change Shopping Cart
BBPSC14 SC Display for Rec. Mangagement
BBPSC15 SC Display for CFolder
BBPSC16 SC Number of Itm Det. for CFolder
BBPSC17 SC Number of Itm Det. for Rec. Mgmt
BBPSC18 Request Temporary Staff
BBPSC19 Request External Staff (Change)
BBPSHOWVD Display vendor data
BBPSOCO01 Sourcing Cockpit
BBPSR01 Service Entry (Component)
BBPSR02 Entry Sheet Maintenance (Component)
BBPST01 Start EBR Menu
BBPST02 Start EBR Menu
BBPSTART1 FlowLogic Service BBPSTART
BBPSUBSCRIBE Add additional subscriber user data
BBPTRACE Switch on EBP Trace
BBPTRACK Status Tracking: Call Structure
BBPUPDVD Update Vendor Master Record
BBPUSERMAINT user Maintain
BBPU_IAC_TEST Test Transaction for ITS
BBPVE01 Vendor Evaluation
BBPVENDOR BBP Vendor Logon
BBPWEBMONITOR Application Monitor w/o Flow Logic
BBPWEBMON_SEP Monitor in New Window


BBP_CND_CHECK Check Conditions Customizing
BBP_CND_CHECK_CUST Check Conditions Customizing
BBP_CONT_ACTION_DEF Define Action Profiles
BBP_CTR_DISP Contract in Display Mode
BBP_CTR_DISPNR Display Contract without Return
BBP_CTR_EXT_PO Display Contract from PO and SOC
BBP_CTR_EXT_WF Display Contract from Workflow
BBP_CTR_MAIN Process Contracts
BBP_CTR_MAINCC Process Global Outline Agreement
BBP_CTR_MON Monitor Contract Distribution
BBP_CTR_SEARCC Find Global Outline Agreement
BBP_CTR_WF_APP Branch from Approval Workflow
BBP_CTR_WF_CHG Branch Contract from Change Workfl
BBP_CT_SCM_STAGING Staging UI for Schema Import
BBP_CT_STAGING Staging
BBP_CUST_CAT Call Structure Maint. of Catalogs
BBP_CUST_DET_ACCT Determine G/L Account by Category
BBP_CUST_DET_LOGSYS Determine Target System by Categor
BBP_CUST_LOGSYS Maintenance of the Backend System
BBP_CUST_TARGET_OBJ MMaint. of Objects to Be Generated
BBP_CUS_ACCESS_SEQ EBP: Define Access Sequences
BBP_DYN_ATTR_EDIT Maintenance of Dynamic Attributes
BBP_EVAL_SURVEY Survey Cockpit
BBP_GETCD_ITS Display Change Documents
BBP_MON Open the Monitor Display
BBP_MON_SC Monitor Shopping Cart
BBP_MS_ACC_DET_C Multiple Company: Acct for Category
BBP_MS_BE_C Multiple Company:Maintain FI Backen
BBP_MS_MAP_TAX_C Multiple Company: Tax Code
BBP_MS_MSG1_C Message Control
BBP_MS_MSG2_C Multiple Company: Flex. Message XML
BBP_MS_STD_ACC_C MultipleCompany:LocalAcctAssigmtDat
BBP_NUM_AUC Number Range Maintenance 'AUC'
BBP_NUM_AVL Number Range Definition 'AVL'
BBP_NUM_BID Bid Invitation Nr Range Maintenance
BBP_NUM_CONF Procure. Confirm. Nr Range Mainten.
BBP_NUM_INV Invoice Number Range Maintenance
BBP_NUM_INVD Number Ranges for Invoice Template
BBP_NUM_PC No.Range Maint. Contrct/Del.Schedul
BBP_NUM_PCO Number Range Maint for NkObj POCONF

BBP_PD_PO_ERRORLOG Starts Entry Screen for Error Log
BBP_PM01 Postman scenario
BBP_POC Process Purchase Orders

BBP_QUOT_EXTWF Display Bid Invitation -> Bid fr. WF
BBP_SC_DARKAPP_IAC Approve Shopping Cart in Background
BBP_SNEW_SYNCVD Shows New Vendor Repl. from Backend
BBP_SP_COMP_INI Replication of Companies & Employees
BBP_SP_SUPP_INI Download Vendors for Service Portal
BBP_SUPP_MONI Vendor Monitor
BBP_SUS_BP_ADM Management of Business Partners
BBP_TRIGG Output Actions
BBP_TRIGG_CTR Output Contract
BBP_TRIGG_ERS Output ERS Document
BBP_TRIGG_INV Output Invoice
BBP_TRIGG_MEN Output Document

Monday, July 12, 2010

Update mode R is not supported -sdn Wiki

Reason : This problem occurs when we tried to request repeat delta for master data extractors, For Master data datasources delta updated based on ALE Change pointers. So Repeat can't be done if any delta load ended with error.
Solution : A . After a delta request is failed, we should not request the repeat delta. We can reinitilize the datasource and load entire data. other solution can be
                   B. We can make the QM status to Green of the failed delta request, if the request was successfully processed in R3 and finished with the information 'data selection ended'. It is always better to reinitialize the request.
Background : Apart from the solution, we must know the concepts and properties of delta in case of master data.
Most of the Infoobjects carrying master data are already delta capable, a pre requisite to a datasource(master) can be changed to delta capable datasource is described below.
The Transaction to create/change master data should be linked to the Change document update, this feature already implemented for the most of the master tables like KNA1 and MARA in R3 System. So if any record changes the delta is captured based on the key of Master data table and get filled into extract structure. So whenever a field changes in a record which is part of extract structure, it must be updated in the delta table.
To make the above setting the follow steps must be executed.
1. Check whether ALE Change pointer are active in source system. T Code BD61. 




2. Check the number range is maintained in the transaction BDCP. The number range should be  000000001 to Number 999999999


3. Check in ALE Customizing, whether all required ALE messages are checked or not.
Transaction - SALE - > Modeling and Implementing Business process -> Mater data distribution -> Replication of modified data -> Activate Change pointers for message types, here check all the required message types.
4.Check, whether the number range for the message type BI_MSTYPE is maintained : Transaction SNUM -> Entry 'BI_MSTYPE' -> Number range -> Intervals. The entry for 'No.' must be exactly '01'. In addition, the interval must start with 0000000001, and the upper limit must be set to 0000009999
All these setting must be done before getting started with Master data delta extraction.

Friday, July 9, 2010

BI Upgradation-Helpful OSS notes from EDW perspective -sdn blog

This wiki page illustrates possible problems that one may face during BI 7.0 upgradation along with the solutions provided by SAP from EDW perspective.
Note: The below addressed issues are pertaining to post upgradation but not after migration to 7.0
During the upgradation phase, proper checks need to be performed to maintain the consistency of all BI objects;
Check BI 7.0 Upgrade checks.
Issues with DSO/ODS activation:
"Activation of M records from Data Store object (DSO technical name) terminated
Data package already saved in change log"
During the activation process, the data will be moved from new table (Activation Queue) to active table and change log.
But,in this case the data still persists in the new table and during the next activation step, it will try to write the same records to active table*.*
Solution:
  •   Note 1144998 - Incorrect data for DataStores with option "Unique records*"*
"Table /BI*/A (DSO technical name) 40 unknown
Error has occurred in RSDRO_UPDATE_ODS (DSO technical name) RSAU 499"
Solution:
  • Note 920420 - Conversion of DataStore objects not successful
  • Note 861890 - ODS tables disappear during the upgrade
"Error during update of data records for data package and "Time limit exceeded".
No return of the split processes..."
Solution:
  • Note 1118205 - RSODSO_SETTINGS Maintain runtime parameter of DataStore obj.
  • Note 1042827 - BI 7.0 (SP14): DataStore object - Batch Manager
  • Note 1067225 - BI 7.0 (SP15) DataStore default settings are not applied
"ODS activation failing with a short dump - SAPSQL_EMPTY_TABNAME
        (Or)
Version of Change Log (*Transfer structure name*) invalid refer to table RSTSOD
Error while calculating tables for Data Store (DSO technical name)"
Solution:
This is because there is more than one version of a PSA/change log for each DSO.
Program RSAR_RSTSODS_CHANGELOG_VRS part of up gradation activity should delete old change log versions, if unsuccessful will face aforementioned short dump.
  • Note 1135256 - Change log versioned (repair tool for SAP DEV Support only)
  • Note 974184 - Error when activating ODS data (RSAR 535)
"Error while inserting data records for data package                   
Data records already saved in the active table"
This is because of duplicate records in the active table.
Option1: Identify and delete the duplicate request, and then try re-activating.
Option2: If the DSO has unique status flagged, uncheck it.Try activating the requests.
Later reset the unique flag.
"Activation of empty requests fails with
Saving consolidated aggregation data was terminated"
Solution:
  • Note 1081423 - No activation or rollback due to missing aggregation behav.

Unable to delete a request from DSO
"Requests can't be deleted from DSO. In SM37 the deletion job finishes, however in the job log it will show:                                                                           
Server group (for roll back): No Server Group configured
No batch process available"
Solution:
  • Note 1007717 -Deleting from Data Store object: Termination w/o log
  • Note 998704 - Deleting req from DataStore obj: Status at end of processing
  • Note 1037507 - System Termination when you delete from DataStore objects
  • Note 995237 -Check for empty RSODSACTDATA during activation
"Deletion of an empty request which was activated in BW 3.x leads to following error:
        Aggregation behavior of the InfoObjects not found"
Solution:
  • Note 1081423 - No activation or rollback due to missing aggregation behav.
Issues with Process chain:
"Process chain scheduling to the present day using date and time feature in maintain variant >change scheduling,actually schedules it for next day."
Solution:
  • Note 1016317 - SP13:PC: Start type 'Date & time' gets scheduled wrong
"Process chain scheduling results in dump- ABAP/4 processor: MESSAGE_TYPE_X"
Solution:
In the short dump analysis, the process fails at function module
RSS2_PSA_NEW_OLD_DS
call function 'RSDS_DATASOURCE_SINGLE_GET'
  • Note 948189 - P9:PSA: Dump in the RSS2_PSA_NEW_OLD_DS function module
"Process chain maintenance transaction (RSPC) results in dump"
Solution:
  • Note 946481 - Short dump in process chains, InfoSet maintenance, data flow
"Opening an info source goes for dump"
Solution:
  • Note 989923 - P11:DWWB: InfoSource overview returns short dump in DWWB/AWB
Data load failures:
"The major problem just after the up gradation that one has to encounter is Data source replication"
Solution:
Use T-code RSDS for mass replication
Data source      : Enter as *(It will replicate all the data sources related to the mentioned  Source system)
Source system   : Enter the source system name
And then activate transfer rules using RS_TRANSTRU_ACTIVATE ALL
"Error generating program"
This is because transfer structure is not activate
Solution:
Replicate the data source and activating the transfer rules.
"SQL error in the database when accessing a table"
Solution:
Try re-running the load by reducing the Data packet size
"Extraction job fails in the source system.In the source system job log it shows:
No Authorization for info cube / data source (Data source name)"
Solution:
Check for missing authorizations in SU53 and communicate with your security team
"Error when reading from the PSA"
  • Note 849857 - Potential data loss in PSA/change log
"In a Persistent Staging Area (PSA) process, multiple requests from multiple InfoPackages are posted. If these requests update data in the same data targets, the system issues message RSM 821
Request & is already available in InfoCube/DSO &; Not added".
  •  Note 1136000 - P18:PC:PSA: Error in PSA process for multiple InfoPackages
Other Helpful OSS note:
  • Note 1055827 - P15:PC: Restarting loading processes in background and dump
  
                         
Important OSS notes :
Note 955990 - BI in SAP NetWeaver 7.0: Incompatibilities with SAP BW 3.x
Note 948003 - Corrections to Data Warehousing Workbench BI7.0 (SP09)

Wednesday, July 7, 2010

Custom FM to send Email

FUNCTION Z_BAPI_SEND_MAIL_IBSP.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(P_MAIL) TYPE  E_EMAIL OPTIONAL
*"     VALUE(P_SUBJECT) TYPE  SO_OBJ_DES OPTIONAL
*"     VALUE(P_MSG) TYPE  ETMESSAGE OPTIONAL
*"  EXPORTING
*"     VALUE(RETURN) TYPE  BAPIRETURN1
*"----------------------------------------------------------------------

 data:   lwa_objpack type sopcklsti1,        "Contents of the Email
          li_objpack type standard table of sopcklsti1,
          lwa_reclist type somlreci1,         "Recievers List
          li_reclist type standard table of somlreci1,
          lwa_doc_chng type sodocchgi1,        "Mail Contents
          lv_line  like sy-tabix,     "Email Params
          objtxt  like solisti1   occurs 10 with header line.

  constants : lc_space type c value ' ',
              lc_1(15) type n value '1',         "Email Params
              lc_raw(3) type c value 'RAW',       "Email Params
              lc_u type c value 'U',              "Recipient Property
              lc_01 type c value '1',
              lc_x type c value 'X'.
data: gv_id type string.
clear: p_subject, p_msg, p_mail.

*  Filling Mail Contents
  lwa_doc_chng-obj_name = 'E-Mail'.
  lwa_doc_chng-obj_descr = 'Subject of the mail'.

  objtxt = 'Hello Sir'.
  append objtxt.

clear gv_id.

* To generate random IDs SPAN
*and inform customer about the ID

perform Generate_booking_id changing gv_id.

   objtxt = gv_id.
  append objtxt.

  objtxt = 'Mail body text'.
  append objtxt.

  objtxt = '     '.
  append objtxt.

  objtxt = 'Thanks and Regards'.
  append objtxt.

  objtxt = 'Sender Name'.
  append objtxt.

  describe table objtxt lines lv_line.

   read table objtxt index lv_line transporting no fields.
  lwa_doc_chng-doc_size = ( lv_line - 1 ) * 255 + strlen( objtxt ).

*  Pack to main body
  lwa_objpack-body_start =  lc_1.
  lwa_objpack-head_start = lc_1.
  lwa_objpack-head_num   = '0'.
  lwa_objpack-body_num   =  lv_line.
  lwa_objpack-doc_type   =  lc_raw.
  append lwa_objpack to li_objpack.

  translate p_mail to lower case.

*  Fill receiver list
  lwa_reclist-receiver     =  'someone@domain.com'.
  lwa_reclist-rec_type     =  lc_u.
  append lwa_reclist to li_reclist.

call function 'SO_DOCUMENT_SEND_API1'
  exporting
    document_data                    = lwa_doc_chng
   put_in_outbox                    = lc_x
   commit_work                      = lc_x
  tables
    packing_list                     = li_objpack
   contents_txt                     = objtxt
    receivers                        = li_reclist
 exceptions
   too_many_receivers               = 1
   document_not_sent                = 2
   document_type_not_exist          = 3
   operation_no_authorization       = 4
   parameter_error                  = 5
   x_error                          = 6
   enqueue_error                    = 7
   others                           = 8
          .
if sy-subrc <> 0.
 message id sy-msgid type sy-msgty number sy-msgno
         with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.

if sy-subrc = 0.
    call function 'BAPI_TRANSACTION_COMMIT'.
  endif.


*&---------------------------------------------------------------------*
*&      Form  GENERATE_BOOKING_ID
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GV_ID  text
*----------------------------------------------------------------------*
FORM GENERATE_BOOKING_ID  CHANGING P_GV_ID.
  data: lv_idchar(100) type c.


 CONCATENATE 'ABCDEFGHJKLMNPQRSTUVWXYZ'
              '123456789'
              INTO lv_idchar.


  CALL FUNCTION 'RSEC_GENERATE_PASSWORD'
    EXPORTING
      alphabet             = lv_idchar
      alphabet_length      = 0
      force_init           = ' '
      output_length        = 10
      downwards_compatible = ' '
    IMPORTING
      output               = p_gv_id

    EXCEPTIONS
      some_error           = 1.

ENDFORM.                    " GENERATE_BOOKING_ID

ENDFUNCTION.

Tuesday, July 6, 2010

Sample Code for Expert Routine - sdn blog

Abstract:                                            
 This Content provides initial guidance & help in writing expert routine in transformations of BI7.0. Also provides brief information of how to use & where to use expert routine, along with few examples of scenarios and a sample code based on a scenario.
Description:
This content aims at:
1.    Giving basic know how about expert routines in BI 7.0
Summary:
1.    With expert routines, unlike start routine and end routine, the system will provide you with internal table of the type of source and target namely SOURCE_PACKAGE and RESULT_PACKAGE. Your main aim will be to fill up the RESULT_PACKAGE. In between you can apply your own logic. But you should fill up the RESULT_PACKAGE internal table. Both internal tables will be given as import and export parameter of a method.
2.    To access fields from source fields,
SOURCE_PACKAGE type _ty_t_SC_1
3.    To access fields of result fields,
RESULT_PACKAGE type _ty_t_TG_1
4.    Location of the code: expert routine is written in transformations of data targets such as DSO, master data, OHTs etc.
5.    Following is the screen shot of such transformation:
Introduction:
This type of routine is used in special cases only. You can use the expert routine if there are not sufficient functions to perform a transformation. The expert routine should be used as an acting resolution until the required functionality becomes available in the standard routine. You can use this to program the transformation yourself without using the available rule types. You must implement the message transfer to the monitor yourself. If you have already created transformation rules, the system deletes them once you have created an expert routine. If the target of the transformation is a Data Store object, key figures are updated by default with the aggregation behavior Overwrite (MOVE).
Use of Expert routines:
If you don't want to go in for the system generated program for the transformation and would prefer to write the entire code on your own i.e. start routine + transformation +end routine you should go for an expert routine.
The data flow now goes as
Raw data -> expert routine -> info provider.
 Expert routine: This is the strongest and most complex of all routines. This allows you to design the entire data flow of the transformation. If you create an Expert routine the system will automatically delete all the field level mapping, Start routine and end routine. You also have to take care of the error handling and monitoring.
Expert Routine will have both Source and Target Fields. In Expert Routines u won't have mapping between source and target fields. Transformation is done through coding in expert routine.
Scenario:
We are loading salary details for employees from a flat file into a DSO.
Following sample code is written for displaying salary details along with different calculations related to salary.
Ex. Gross salary etc.
Sample Code:
PROGRAM trans_routine.
*---------------------------------------------------------------------*
*       CLASS routine DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_transform DEFINITION.
  PUBLIC SECTION.
*  Attributs
    DATA:
      p_check_master_data_exist
            TYPE RSODSOCHECKONLY READ-ONLY,
*-    Instance for getting request runtime attributs;
*     Available information: Refer to methods of
*     interface 'if_rsbk_request_admintab_view'
      p_r_request
            TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
  PRIVATE SECTION.
    TYPE-POOLS: rsd, rstr.
*   Rule specific types
    TYPES:
      BEGIN OF _ty_s_SC_1,                                             
*      Field: /BIC/YEM_NUM EMP NUMBER.
        /BIC/YEM_NUM           TYPE C LENGTH 10,
*      Field: /BIC/YEM_FNM EMP FIRST NAME.
        /BIC/YEM_FNM           TYPE C LENGTH 25,
*      Field: /BIC/YEM_LNM EMP LAST NAME.
        /BIC/YEM_LNM           TYPE C LENGTH 25,
*      Field: /BIC/YEM_LOC EMP LOCATION.
        /BIC/YEM_LOC           TYPE C LENGTH 25,
*      Field: /BIC/YEM_PH1 Emp Phone number1.
        /BIC/YEM_PH1           TYPE N LENGTH 15,
*      Field: /BIC/YEM_PH2 Emp Phone number2.
        /BIC/YEM_PH2           TYPE N LENGTH 15,
*      Field: /BIC/YEM_PH3 Emp Phone number3.
        /BIC/YEM_PH3           TYPE N LENGTH 15,
*      Field: /BIC/YEM_DSG EMP DESIGNATION.
        /BIC/YEM_DSG           TYPE C LENGTH 10,
*      Field: /BIC/YEM_JB EMP JOB BAND.
        /BIC/YEM_JB           TYPE C LENGTH 5,
*      Field: /BIC/YEM_CRR EMP CRR RATING.
        /BIC/YEM_CRR           TYPE N LENGTH 5,
*      Field: /BIC/YEM_BSAL EMP BASIC SALARY.
        /BIC/YEM_BSAL           TYPE P LENGTH 9 DECIMALS 2,
*      Field: CURRENCY Currency.
        CURRENCY           TYPE C LENGTH 5,
*      Field: /BIC/YEM_DA EMP DEARNESS ALLOWAN.
        /BIC/YEM_DA           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_BOA EMP BOA.
        /BIC/YEM_BOA           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_GRS EMP MONTHLY GROSS SA.
        /BIC/YEM_GRS           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_PF EMP PROVIDENT FUND.
        /BIC/YEM_PF           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_GRT EMP GRATUITY.
        /BIC/YEM_GRT           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_TGRS EMP TOTAL GROSS SALA.
        /BIC/YEM_TGRS           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_PINC EMP PERFORMANCE INCE.
        /BIC/YEM_PINC           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_GRINC EMP TOTAL GROSS +INC.
        /BIC/YEM_GRINC           TYPE P LENGTH 9 DECIMALS 2,
*      Field: /BIC/YEM_REMGR REPORTING MANAGER.
        /BIC/YEM_REMGR           TYPE C LENGTH 10,
*      Field: RECORD Record Number.
        RECORD           TYPE RSARECORD,
      END   OF _ty_s_SC_1.
    TYPES:
      _ty_t_SC_1        TYPE STANDARD TABLE OF _ty_s_SC_1
                        WITH NON-UNIQUE DEFAULT KEY.
    TYPES:
      BEGIN OF _ty_s_TG_1,                               
*      Field: RECORD Data record number.
        RECORD           TYPE RSARECORD,
*      InfoObject: YEM_NUM EMP NUMBER.
        /BIC/YEM_NUM           TYPE /BIC/OIYEM_NUM,
*      InfoObject: YEM_FNM EMP FIRST NAME.
        /BIC/YEM_FNM           TYPE /BIC/OIYEM_FNM,
*      InfoObject: YEM_LNM EMP LAST NAME.
        /BIC/YEM_LNM           TYPE /BIC/OIYEM_LNM,
*      InfoObject: YEM_LOC EMP LOCATION.
        /BIC/YEM_LOC           TYPE /BIC/OIYEM_LOC,
*      InfoObject: YEM_PH1 Emp Phone number1.
        /BIC/YEM_PH1           TYPE /BIC/OIYEM_PH1,
*      InfoObject: YEM_PH2 Emp Phone number2.
        /BIC/YEM_PH2           TYPE /BIC/OIYEM_PH2,
*      InfoObject: YEM_PH3 Emp Phone number3.
        /BIC/YEM_PH3           TYPE /BIC/OIYEM_PH3,
*      InfoObject: YEM_DSG EMP DESIGNATION.
        /BIC/YEM_DSG           TYPE /BIC/OIYEM_DSG,
*      InfoObject: YEM_JB EMP JOB BAND.
        /BIC/YEM_JB           TYPE /BIC/OIYEM_JB,
*      InfoObject: YEM_CRR EMP CRR RATING.
        /BIC/YEM_CRR           TYPE /BIC/OIYEM_CRR,
*      InfoObject: YEM_BSAL EMP BASIC SALARY.
        /BIC/YEM_BSAL           TYPE /BIC/OIYEM_BSAL,
*      InfoObject: YEM_DA EMP DEARNESS ALLOWANCE.
        /BIC/YEM_DA           TYPE /BIC/OIYEM_DA,
*      InfoObject: YEM_BOA EMP BOA.
        /BIC/YEM_BOA           TYPE /BIC/OIYEM_BOA,
*      InfoObject: YEM_GRS EMP MONTHLY GROSS SALARY.
        /BIC/YEM_GRS           TYPE /BIC/OIYEM_GRS,
*      InfoObject: YEM_PF EMP PROVIDENT FUND.
        /BIC/YEM_PF           TYPE /BIC/OIYEM_PF,
*      InfoObject: YEM_GRT EMP GRATUITY.
        /BIC/YEM_GRT           TYPE /BIC/OIYEM_GRT,
*      InfoObject: YEM_TGRS EMP TOTAL GROSS SALARY.
        /BIC/YEM_TGRS           TYPE /BIC/OIYEM_TGRS,
*      InfoObject: 0CURRENCY Currency Key.
        CURRENCY           TYPE /BI0/OICURRENCY,
*      InfoObject: YEM_PINC EMP PERFORMANCE INCENTIVE.
        /BIC/YEM_PINC           TYPE /BIC/OIYEM_PINC,
*      InfoObject: YEM_GRINC EMP TOTAL GROSS +INCENTIVE.
        /BIC/YEM_GRINC           TYPE /BIC/OIYEM_GRINC,
*      InfoObject: YEM_REMGR REPORTING MANAGER.
        /BIC/YEM_REMGR           TYPE /BIC/OIYEM_REMGR,
*      InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
        RECORDMODE           TYPE RODMUPDMOD,
      END   OF _ty_s_TG_1.
    TYPES:
      _ty_t_TG_1        TYPE STANDARD TABLE OF _ty_s_TG_1
                        WITH NON-UNIQUE DEFAULT KEY.
*$*$ begin of global - insert your declaration only below this line  *-*
    ... "insert your code here
*$*$ end of global - insert your declaration only before this line   *-*
    METHODS
      expert_routine
        IMPORTING
          request                  type rsrequest
          datapackid               type rsdatapid
          SOURCE_PACKAGE              type _ty_t_SC_1
          log                      type ref to cl_rsbm_log_cursor_step
        EXPORTING
          RESULT_PACKAGE              type _ty_t_TG_1.
    METHODS
      inverse_expert_routine
        IMPORTING
          i_th_fields_outbound         TYPE rstran_t_field_inv
          i_r_selset_outbound          TYPE REF TO cl_rsmds_set
          i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
        CHANGING
          c_th_fields_inbound          TYPE rstran_t_field_inv
          c_r_selset_inbound           TYPE REF TO cl_rsmds_set
          c_exact                      TYPE rs_bool.
ENDCLASS.                    "routine DEFINITION
*$*$ begin of 2nd part global - insert your code only below this line  *
... "insert your code here                                                                        
                                                        
*$*$ end of 2nd part global - insert your code only before this line   *
*---------------------------------------------------------------------*
*       CLASS routine IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_transform IMPLEMENTATION.
*----------------------------------------------------------------------*
*       Method expert_routine
*----------------------------------------------------------------------*
*       Calculation of result package via expert routine
*----------------------------------------------------------------------*
*   -> package of source segments
*   <- result package
*----------------------------------------------------------------------*
  METHOD expert_routine.
*=== Segments ===
    FIELD-SYMBOLS:
          TYPE _ty_s_SC_1.
    DATA:
      RESULT_FIELDS      TYPE _ty_s_TG_1.
*$*$ begin of routine - insert your code only below this line        *-*
    ... "insert your code here
    Data: gw_result_package TYPE _ty_s_SC_1.
  
    Data: gw_result_package1  TYPE _ty_s_TG_1.
    DATA: ZVAR1 TYPE I,
          ZVAR2(10) TYPE n,
          ZVAR3(10) TYPE n,
          ZVAR4(10) TYPE n,
          ZVAR5 TYPE c,
          ZVAR6 TYPE c,
          ZVAR7 TYPE I,
          ZVAR8 TYPE I,
          ZVAR9 TYPE I,
          ZVAR10 TYPE I,
          ZVAR11 TYPE I,
          ZVAR12 TYPE I,
          ZVAR13 TYPE I,
          ZVAR14 TYPE I,
          ZVAR15 TYPE I,
          ZVAR16 TYPE I,
          ZVAR17 TYPE I,
        
*Loop to read source package into internal Package and store values into local variables.
  
    LOOP at SOURCE_PACKAGE into gw_result_package.                                                                   
      ZVAR1 = gw_result_package-/BIC/YEM_NUM.
      ZVAR2 = gw_result_package-/BIC/YEM_PH1.
      ZVAR3 = gw_result_package-/BIC/YEM_PH2.
      ZVAR4 = gw_result_package-/BIC/YEM_PH3.
      ZVAR5 = gw_result_package-/BIC/YEM_DSG.
      ZVAR6 = gw_result_package-/BIC/YEM_JB.
      ZVAR7 = gw_result_package-/BIC/YEM_CRR.
      ZVAR8 = gw_result_package-/BIC/YEM_BSAL.
      ZVAR9 = gw_result_package-/BIC/YEM_DA.
      ZVAR10 = gw_result_package-/BIC/YEM_BOA.
      ZVAR11 = gw_result_package-/BIC/YEM_PF.
      ZVAR12 = gw_result_package-/BIC/YEM_GRT.
      ZVAR13 = gw_result_package-/BIC/YEM_PINC.
      ZVAR14 = gw_result_package-/BIC/YEM_REMGR.
  
* gross salary = Basic Sal + DA + BOA
      ZVAR15 = ZVAR8 + ZVAR9 + ZVAR10.
  
* gross salary = Basic Sal + DA + BOA + PF + GRT
      ZVAR16 = ZVAR8 + ZVAR9 + ZVAR10 + ZVAR11 + ZVAR12.
* gross salary = Basic Sal + DA + BOA + PF + GRT + Perform. Incentive
      ZVAR17 = ZVAR8 + ZVAR9 + ZVAR10 + ZVAR11 + ZVAR12 + ZVAR13.

* if reporting manager field is blank means he himself is the manager hence populate his own employee number else populate given manager employee number  
   
 If ZVAR14 EQ ' '.
        gw_result_package1-/BIC/YEM_REMGR = ZVAR1.
      ELSE.
        gw_result_package1-/BIC/YEM_REMGR = ZVAR14.
      ENDIF.
* storing the values & calculated values into internal package 1
      gw_result_package1-/BIC/YEM_NUM = ZVAR1.
      gw_result_package1-/BIC/YEM_PH1 = ZVAR2.
      gw_result_package1-/BIC/YEM_PH2 = ZVAR3.
      gw_result_package1-/BIC/YEM_PH3 = ZVAR4.
      gw_result_package1-/BIC/YEM_DSG = ZVAR5.
      gw_result_package1-/BIC/YEM_JB = ZVAR6.
      gw_result_package1-/BIC/YEM_CRR = ZVAR7.
      gw_result_package1-/BIC/YEM_BSAL = ZVAR8.
      gw_result_package1-/BIC/YEM_DA = ZVAR9.
      gw_result_package1-/BIC/YEM_BOA = ZVAR10.
      gw_result_package1-/BIC/YEM_PF = ZVAR11.
      gw_result_package1-/BIC/YEM_GRT = ZVAR12.
      gw_result_package1-/BIC/YEM_PINC = ZVAR13.
      gw_result_package1-/BIC/YEM_GRS = ZVAR15.
      gw_result_package1-/BIC/YEM_TGRS = ZVAR16.
      gw_result_package1-/BIC/YEM_GRINC = ZVAR17.
    
* updating the result package by new values.
      append gw_RESULT_PACKAGE1 to RESULT_PACKAGE.
* clearing the local variables.
      CLEAR ZVAR1.
      CLEAR ZVAR2.
      CLEAR ZVAR3.
      CLEAR ZVAR4.
      CLEAR ZVAR5.
      CLEAR ZVAR6.
      CLEAR ZVAR7.
      CLEAR ZVAR8.
      CLEAR ZVAR9.
      CLEAR ZVAR10.
      CLEAR ZVAR11.
      CLEAR ZVAR12.
      CLEAR ZVAR13.
      CLEAR ZVAR14.
      CLEAR ZVAR15.
      CLEAR ZVAR16.
      CLEAR ZVAR17.
    
* End of the loop.
    ENDLOOP.
*$*$ end of routine - insert your code only before this line         *-
*
  ENDMETHOD.                    "expert_routine
*----------------------------------------------------------------------*
*       Method inverse_expert_routine
*----------------------------------------------------------------------*
*
*       This subroutine needs to be implemented only for direct access
*       (for better performance) and for the Report/Report Interface
*       (drill through).
*       The inverse routine should transform a projection and
*       a selection for the target to a projection and a selection
*       for the source, respectively.
*       If the implementation remains empty all fields are filled and
*       all values are selected.
*
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
  METHOD inverse_expert_routine.
*$$ begin of inverse routine - insert your code only below this line-*
    ... "insert your code here
*$*$ end of inverse routine - insert your code only before this line *-*
  ENDMETHOD.                    "inverse_expert_routine
ENDCLASS.                    "routine IMPLEMENTATION                  
Special Note:
If the target of the transformation is a DataStore object, key figures are updated by default with the aggregation behavior Overwrite (MOVE).
References:
1.    For more details refer to the link,
http://help.sap.com/saphelp_nw04s/helpdata/en/a4/1be541f321c717e10000000a155106/frameset.htm

Monday, July 5, 2010

BW Tips & Tricks -nice blog from SDN

In your normal course of work in BW you would find yourself "stuck" in certain situations unable to decide how you would move forward. Some of these situations could be because certain functions are not available in the system. Most of these situations can be easily overcome if you know some "handy" tricks. I shall discuss some of the tips and tricks which should be useful to know for a BW consultant.
ROOSOURCE issue:
Enhancements are a never ending part in a project. There would be cases where you may need to add additional field to your datasource. One common issue which has been discussed quite often is that after adding the field to the extract structure it is not available in RSO2 or via RSA6 -> edit datasource. You can call this a bug which I experienced often when I was working with R/3 4.6C and 4.7. The problem can be easily overcome if you understand the ROOSOURCE table. You need to execute this handy program and you are set to go!!
Here are the steps:
Goto R/3 -> RSO2 -> your datasource and see if the newly added fields are there. If yes, then check if the checkbox for hidden is checked. If so, then uncheck them.
Goto R/3 -> SE11/SE16 -> ROOSFIELD table and see if you see the new fields for your datasource. If you see the new fields then execute this program:
tables ROOSFIELD. Update ROOSFIELD set SELECTION = 'X' where OLTPSOURCE = '' and FIELD = ''.
Execute the program for each of the field and check the entries in RSA6/RSO2.
One caution though: Be careful in executing this program as you need to define the where conditions of the ABAP statement correctly for datasource and the field.

Find the R/3 field for the Corresponding BW info-object and vice-versa:
This is another situation where a BW consultant is stuck trying to find exactly which BW info-object needs to be mapped for the R/3 field in the transfer rules. For such cases you need to use the tables RSOSFIELDMAP. I just checked the info-object for the R/3 field MATNR and I got the BW info-object as 0MATERIAL.

Attribute table:
I just found this by chance. One of the SDNers wanted to know the list of info-objects where a particular info-object is an attribute. You can use the table RSDBCHATR. The field is ATTRINM.

Delta pointer:
Since we are on the point of Datasources, here is a table that contains Delta pointers (Generic Deltas).. I needed to use this to check where the delta pointer has reached so that I can delete older data from the source... The table is ROOSGENDLM for client specific (which is the case for most data sources) and ROOSGENDLT for others. The fields is DELTAID and REPEATID give you the status of the generic delta pointer.
You can get more info of course from the table ROOSPRMSF which contains the control parameters for the datasources..

Friday, July 2, 2010

List of SAP Security Tables

USR* table contains user master information.
AGR* tables dontains data about roles.
USH* table has change documents information.
You can use SQVI or SE16 to get data from these tables.

Table Description
AGR_1016 Name of the activity group profile
AGR_1016B Name of the activity group profile
AGR_1250 Authorization data for the activity group
AGR_1251 Authorization data for the activity group
AGR_1252 Organizational elements for authorizations
AGR_AGRS Roles in Composite Roles
AGR_DEFINE Role definition
AGR_HIER2 Menu structure information – Customer vers
AGR_HIERT Role menu texts
AGR_OBJ Assignment of Menu Nodes to Role
AGR_PROF Profile name for role
AGR_TCDTXT Assignment of roles to Tcodes
AGR_TEXTS File Structure for Hierarchical Menu – Cus
AGR_TIME Time Stamp for Role: Including profile
AGR_USERS Assignment of roles to users
USER_ADDR Address Data for users
USGRP User groups
USGRPT Text table for USGRP
USH02 Change history for logon data
USOBT Relation transaction to authorization object (SAP)
USOBT_C Relation Transaction to Auth. Object (Customer)
USOBX Check table for table USOBT
USOBX_C Check Table for Table USOBT_C
USOBXFLAGS Temporary table for storing USOBX/T* chang
USR01 User Master Data (runtime data)
USR02 Logon data (password,user name, validity date etc..)
USR04 User master authorization (one row per user)
USR06 License data
USR10 Authorisation profiles (i.e. &_SAP_ALL)
USR11 Text for authorisation profiles
USR12 Authorisation values
USR13 Short text for authorisation
USR40 Table for illegal passwords ( never enter * in this table)
UST04 User profiles (multiple rows per user)
UST10C Composit profiles (i.e. profile has sub profile)
This is the vast list of USR,USH & AGR tables


Table name Description
AGRR2 R2 transfer structure
AGRR2T R2 roles transfer structure – Texts
AGR_1016 Name of the activity group profile
AGR_1016B Name of the activity group profile
AGR_1250 Authorization data for the activity group
AGR_1251 Authorization data for the activity group
AGR_1252 Organizational elements for authorizations
AGR_1253 Authorization Data for Activity Group – Static Objects
AGR_AGRS Roles in Composite Roles
AGR_AGRS2 Role definition
AGR_ATTS Role attributes
AGR_BOR_DTL Extended BOR Details for Menu Nodes
AGR_BUFFI Internet Links for a Role
AGR_BUFFI2 Internet links table – Customer version of SAP roles
AGR_BUFFI3 Internet links table – SAP versions of SAP roles
AGR_CATS Transfer structure for categories/PFCG start
AGR_CUSTOM Role Customizing objects
AGR_DATEU Personal settings for roles
AGR_DEFINE Role definition
AGR_EXT_DTL Extended Details for Menu Nodes
AGR_FAVOS Personal settings for PFCG
AGR_FILT Transfer table filter for PRGN_TREE_START
AGR_FLAGS Role attributes
AGR_FLAGSB Role attributes
AGR_HIER Table for Structure Information for Menu
AGR_HIER2 Menu structure information – Customer version of SAP roles
AGR_HIER3 Menu structure information – SAP version of SAP roles
AGR_HIERT Role menu texts
AGR_HIERT2 Role menu texts – Customer version of SAP objects
AGR_HIERT3 Role menu texts – SAP Original
AGR_HIER_BOR Table for Object-Oriented Navigation (OBN)
AGR_HPAGE Role Home Page
AGR_HPAGET Description of the Home Page for a Role
AGR_ICON Display the status icon in the Profile Generator
AGR_INFO Filter Values from Generation Run
AGR_LOGSYS Logical system
AGR_LSD Role attributes
AGR_MAP MiniApp and Text
AGR_MAPP MiniApps in Role
AGR_MAP_KNUMA Conversion Table AG_GUID CRM <> KNUMA
AGR_MARK Table for report SAPPROFC_NEW
AGR_MEM_INITIAL Agreements: Buffer for Intial Upload
AGR_MINI MiniApps in Role
AGR_MINI2 MiniApps in Role
AGR_MINIT Role mini-appl texts
AGR_MINIT2 Role mini-application texts
AGR_NSPCE Namespace
AGR_NUMBER Internal Counter for Assigning Profile Names
AGR_NUM_2 Internal Counter for Assigning Profile Names
AGR_OBJ Assignment of Menu Nodes to Role
AGR_POPUP Structure for dialog box
AGR_POPUP2 Structure for transaction assignment
AGR_POPUP3 Auxiliary structure to input authorization objects
AGR_PROF Profile name for role
AGR_REL_KNUMA_CM Assignment: Agreement –> Campaign
AGR_SELECT Assignment of roles to Tcodes
AGR_SHIER Structure for the Drag and Drop Tool
AGR_SHIERT Structure for the Drag and Drop Tool
AGR_SHIER_BOR Structure for Additional Details with no STRING Field
AGR_SMENU Transfer structure for role maintenance
AGR_SPRTXT Structure for the Drag and Drop Tool
AGR_START Start Role Maintenance: Structure for Tree
AGR_STRING Structure for the Drag and Drop Tool
AGR_STRUC Structure to transfer Tcodes into the Profile Generator
AGR_ST_NAME Role Name
AGR_TAB PFCG start tree transfer structure
AGR_TCDTXT Assignment of roles to Tcodes
AGR_TCODE3 Assignment of roles to Tcodes
AGR_TCODES Assignment of roles to Tcodes
AGR_TCODES_TEXTS Transaction Codes with Texts from AGRs
AGR_TEXTS File Structure for Hierarchical Menu – Customer
AGR_TIME Time Stamp for Role (Menu, Profile, Authorizations)
AGR_TIMEB Time Stamp for Role (Profile Generation)
AGR_TIMEC Time Stamp for Role (User Assignment)
AGR_TIMED Time Stamp for Role (Profile Comparison, RFC Distribution)
AGR_TRAN Transport modules of external personalization objects
AGR_TRANS Help Structure for Translation
AGR_TXT Role and Text
AGR_UPLO Stucture for upload node types
AGR_UPLT Stucture for upload node types
AGR_UPLTX Stucture for upload description text
AGR_USERS Assignment of roles to users
AGR_USERT Assignment of roles to users
USH02 Change history for logon data
USH02_ARC_TMP Change History for Logon Data: Last Entries from Archive
USH04 Change history for authorizations
USH04_ARC_TMP Authorizations Change History: Last Entries from Archive
USH10 Change history for authorization profiles
USH10_ARC_TMP Change History for Profile Data: Last Entries from Archive
USH12 Change history for authorization values
USH12_ARC_TMP Change History for Authorizations: Last Archive Entries
USR01 User master record (runtime data)
USR02 Logon Data (Kernel-Side Use)
USR03 User address data
USR04 User master authorizations
USR05 User Master Parameter ID
USR06 Additional Data per User
USR06SYS System-Specific User Classification (License-Related)
USR07 Object/values of last authorization check that failed
USR08 Table for user menu entries
USR09 Entries for user menus (work areas)
USR10 User master authorization profiles
USR11 User Master Texts for Profiles (USR10)
USR12 User Master Authorization Values
USR13 Short Texts for Authorizations
USR14 Surchargeable Language Versions per User
USR15 External User Name (Replaced By Table USRACL)
USR16 Values for Variables for User Authorizations
USR20 Date of last user master reorganization
USR21 Assign user name address key
USR21S Shadow table: Assignment of user name to address key
USR22 Logon data without kernel access
USR30 Additional Information for User Menu
USR40 Table for illegal passwords
USR41 User master: Additional data
USR41_MLD Transaction Data for USR41
USRACCNTV Generated Table for View USRACCNTV
USRACL SNC Access Control List (ACL): User
USRACLEXT Extended SNC Access Control List (ACL) for Users
USRARCSTAT Reloaded Archiving Runs
USRATTR Additional Attributes for Users
USRBF User Buffer Contents for Fast RFC Logon
USRBF2 User buffer content for fast RFC logon – new
USRBF3 User Buffer Content for Fast RFC Logon – New
USRCD Structure for Change Documents Display in RSUSR100
USRCDT Structure for Change Documents (Technical View)
USRCOBJ Object Filters for Exploding Product Structures
USRCOMB Critical Combinations of Authorizations
USRCOMBT Short Texts for Critical Combinations of Authorizations
USRCRCOMB Part List of Variants for Critical Combinations of Auths
USRDFLT User Settings Field/Value Combination
USRDFLT_KEY Key for User Settings
USRDFLT_PERS User Settings
USRDFLT_PERS_ALV User Settings – ALV Display
USREF Transfer structure for cross-reference function modules
USREFUS Reference user for internet applications
USREFUSVAR Assignment of Reference User Variabe to Reference User
USREL_2 User Administration: Relationship Between Two Objects
USREL_3 User Administration: Relationship Between Three Objects
USREL_AT User Administration: User in Relationship (with Time)
USREL_SA GUM: Assignment of Role/Position to System (Type)
USREL_UA GUM: Assignment of Role to User
USREL_US GUM: Assignment of User (Group) to System (Type)
USREL_USA User Administration: User – System – Activity Group
USREL_UT User Administration: User in Relationship (with Time)
USREL__A User Administration: System – Activity Group
USREL__S User Administration: System in Relationships
USREL__U User Administration: User in Relationship
USREXTID Assignment of External ID to Users
USREXTIDH External ID (Access Using Hash Value)
USREXTIDT Values Table for External ID Type
USREXTIDTT Values Table for External ID Type (Texts)
USRFIELD Central user maintenance: Field maintenance allowed or not
USRFLD CUA: Definition of Logical Fields
USRFLDDEF CUA: Definition of Logical Field Names of ALE Distrib. Users
USRFLDGRP CUA: Field Selection Groups
USRFLDSEL CUA: Field Attributes
USRFLDT CUA: Text Table to Define Logical Fields
USRFLDTSEL Selection of fields
USRFLDVAL CUA: Selection Criteria for Field Attributes
USRGENPRS Table for General Workplace Personalization Data
USRGETFTR Transfer Structure
USRGETSTRC Structure for user transfer
USRGIFAV iPPE Interface: Favorite
USRGIFOL iPPE Interface: Folder
USRGIPROFIL User Assignment to an iPPE Profile
USRGIPROFIL_DYNP Dialog Structure: User Assignment – iPPE Workbench
USRGIPROFIL_WTY Assign User Profile
USRGISETTINGS User Settings for the iPPE Workbench
USRGISTACK iPPE Workbench: Stack
USRINFO Extended User Info for SM04
USRINKONS Reference table for FMs for determining inconsistencies
USRLISTPROFILE Variable List Definition in PDM Environment
USRLUIPROFILE User Assignments to Profiles in the iPPE Workbench Express
USRLUIPROFILE_DYNP User Assignments to Profiles
USRLUISETTINGS User-Specific Settings of the iPPE Workbench Express
USRLUISETTINGS_DYNP User-Specific Settings for Profile
USRM0 Material Master User Settings: Screen Reference “User”
USRM1 Material Master User Settings: Organizational Levels
USRM2 User Settings for the Material Master: Logical Screens
USRM3 Material Master User Settings: Retail Organizational Levels
USRMETHOD Method to be called when distributing users
USRMM User settings: material master
USROBJECTS Table of Previous Initial Object in Structure Overview
USRPDM User-Specific Data in the PDM Environment
USRPWDHISTORY Password History
USRSETTINGS_DYNP User Settings: Navigation Tree – Dialog Structure
USRSTAMP Time Stamp for all Changes to the User
USRSYSACT CUA: Roles in Distributed Systems
USRSYSACTT CUA: Roles in Distributed Systems
USRSYSLNG User’s Language in a System
USRSYSPRF CUA: Profiles in Distributed Systems
USRSYSPRFT CUA: Profile Text in Distributed Systems
USRSYSUPL CUA: Price Lists in SAP System
USRSYSUPPL CUA: Assignment of User Types to Price Lists
USRSYSUTPA CUA: System Measurement: User Types with Attributes
USRSYSUTYP CUA: Texts for User Types in SAP System
USRSYSUZUS CUA: Texts for Special Versions
USRSYSVTYP Generated Table for View USRSYSVTYP
USRTICLASS Class Assignment for Tabular Maintenance of iPPE
USRTREECOL User-Specific Column Permutations per Array Type
USRURLPRS Table for Personalization of Services
USRURLSVR Logical Web Servers for Logical Systems (User-Specific)
USRVAR Variants for Critical Authorizations
USRVARCOM Variants of Critical Combinations of Authorizations
USRVARCOMT Short Texts for Variants of Critical Combs of Authorizations
USRVARID Part List of Variants for Critical Authorizations
USRVART Short Texts for Variants of Critical Authorizations
USRVIEWCOL User-Specific Column View
USRVIEWTAB User-specific Tabstrip View
USR_AUFK User-Defined Fields of AUFK
USR_FLAGS Various Flags for Authorization Programs
USR_FLGNT Personal User Settings / Without Transport
USR_LIST Generated Table for View USR_LIST
USR_QUERY BW Query
USR_TREESNODE Node Structure of a Simple Tree (Report SAPTREX3)
USR_VALUES Transfer structure for selection acc. to auth. values