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
Monday, July 26, 2010
Report To check the Query Details
Type Tcode SE38 and give the program name and execute (F8)

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.

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
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
Labels:
SRM
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.
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.
Labels:
Master data
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:
Error has occurred in RSDRO_UPDATE_ODS (DSO technical name) RSAU 499"
Solution:
No return of the split processes..."
Solution:
(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.
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:
"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:
Aggregation behavior of the InfoObjects not found"
Solution:
"Process chain scheduling to the present day using date and time feature in maintain variant >change scheduling,actually schedules it for next day."
Solution:
Solution:
In the short dump analysis, the process fails at function module
RSS2_PSA_NEW_OLD_DS
call function 'RSDS_DATASOURCE_SINGLE_GET'
Solution:
Solution:
"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"
Request & is already available in InfoCube/DSO &; Not added".
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)
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*"*
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
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
(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)
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.
"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
Aggregation behavior of the InfoObjects not found"
Solution:
- Note 1081423 - No activation or rollback due to missing aggregation behav.
"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
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
Solution:
- Note 946481 - Short dump in process chains, InfoSet maintenance, data flow
Solution:
- Note 989923 - P11:DWWB: InfoSource overview returns short dump in DWWB/AWB
"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
Request & is already available in InfoCube/DSO &; Not added".
- Note 1136000 - P18:PC:PSA: Error in PSA process for multiple InfoPackages
- 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)
Labels:
SAP Notes
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.
Labels:
FMs n Programs
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
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:
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
Labels:
Routines
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:
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..
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 = ' '.
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.
This is the vast list of USR,USH & AGR tables
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) |
| 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 |
Labels:
Tables
