Monday, October 1, 2018

Blogger : No tracking views

Blogger
Don't track my views for this blog " 


In Chrome,
Open the console  CTRL+Shift+J

Copy Below Code

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
    }
     
    createCookie("_ns", "2", 999);


More details are present in the original Source Link
https://www.stramaxon.com/2016/04/stop-tracking-own-pageviews-blogger.html


Wednesday, August 8, 2018

0RT_MBEW_ATTR

Moving Average Price at Product/Location Level

Base Table : MBEW

This Datasource is based on View - BW_MBEW_V.

Wednesday, August 1, 2018

0CLM_WL_ITEM

Worklist Item


Related Tables
UDM_WL_RUN_ID - Collection Segments Released from Worklist
UDM_WL_ITEM      - Worklist Item

Delta
This runs on timestamp.
Delta timestamps can be found in table ROOSGENDLM and can be changed using FM RSA8_GENDELTA_ZDD_REPLAY_GET

Extraction FM
UDM_COLL_WORKLIST_BI

Data extraction
This datasource will extract only records which have XPROCESS_STARTED = 'X'.

ECC Job
UDM_GENERATE_WORKLIST
( ? This jobs needs to run to populate data ? )

SAP Notes : Click HERE

Monday, July 30, 2018

ODP Errors and Solutions

Error when activating 2LIS_18_I0NOTIF
Field AUSZT1 ( Position 4 ): Reference to currency field/unit field SUNIT is obsolete
Field SUMDLZT ( Position 17 ): Reference to currency field/unit field EHTAG is obsolete
Not sure why the erroring is happening or the right solution. Removed the Currency fields references SUNIT and EHTAG  from the fields and activated. Went fine.

Wednesday, July 25, 2018

Events and Interrupts

Event 
You can create and event in SM64.

Using Parameter for an event
??


Raising an Event
There are various ways of raising an event.

1) Raise it directly in SM64.

2) Run it through Standard Program

3) Use an FM to raise it

Transporting an Event
Create a transport request.
Start the editor in the transport request and enter the following:
R3TR TABU <table name> where table name is BTCSEV for a system event ID, BTCUEV for a user event ID.
Press F2 with the cursor on the table name to call up the screen for specifying the table entries to transport. In this screen, enter the event ID’s that you have created.
Save and release the transport request. Ensure that it is imported into your production system(s).

SAP Link : Click HERE

Wednesday, July 18, 2018

ABAP Data Declarations

Declaring Range Tables
Using the data element you are looking for
DATA : lt_bsart    TYPE RANGE OF ESART,
       lw_bsart    LIKE LINE OF lt_bsart,

Declare your internal table type : RSSDLRANGE
  l_t_range-sign   = 'I'.
  l_t_range-option = 'BT'.
  l_t_range-low    = zlow_value.
  l_t_range-high   = zhigh_value
 Append l_t_range TO l_t_range

SIGN values       "I" Include
                   "E" Exclude
OPTION values "EQ" Equal To
                           "BT" Between
                           "CP" Contains Pattern

STATICS
Variables/table declared with STATICS act like Global variables.

ABAP Submit Program Options

Submit program can be used to run one ABAP program from another one. There are different options on how to use a submit Program.

Calling a submit program , with out actually showing the selection screen of the called program

SUBMIT <program_name>  WITH p_paramter/s_option = lv_single_value
                                               WITH p_version = lv_value
                                               AND RETURN.

SUBMIT RSBKDTPDELETE WITH p_dtp = lv_dtp
                                                  AND RETURN.

Calling a submit program and showing the selection screen of the called program.

SUBMIT RSBKDTPDELETE WITH p_dtp = s_dtp-low                                                                                                                          VIA SELECTION-SCREEN AND RETURN.

Calling a submit program and reading the output of the submitted program to a table 
Running the program from single value. For multiple values, run the code in a loop. ( not sure how to pass internal table to selection screen)

DATA                       :  lr_data   TYPE REF TO data.
FIELD-SYMBOLS  : <lt_data> TYPE ANY TABLE ,
                                   <lw_data> TYPE ANY.
custom declarations
DATA : lt_output TYPE STANDARD TABLE OF ztest_table,
              lw_output TYPE ztest_table.

*& Setting up runtime info
cl_salv_bs_runtime_info=>set(    EXPORTING display  = abap_false
                                                                             metadata = abap_false
                                                                            data     = abap_true ).
*& Submit program
SUBMIT RSBKDTPDELETE WITH p_dtp = lv_dtp AND RETURN.

*& Read the data from other program to here
TRY.
    cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_data ).
    ASSIGN lr_data->* TO <lt_data>.
  CATCH cx_salv_bs_sc_runtime_info.
    MESSAGE `Unable to retrieve ALV data` TYPE 'E'.
ENDTRY.
cl_salv_bs_runtime_info=>clear_all( ).

*& Move the output from other program to current program
LOOP AT <lt_data> ASSIGNING  <lw_data>.
MOVE-CORRESPONDING  <lw_data> TO lw_output
APPEND lw_output to lt_output.
ENDLOOP.

Wednesday, June 27, 2018

Deleting BADI Implementation and Class


  • Take the class name and go to SXC_CLASS
  • Give class name in IMP_CLASS
  • Get the implementation name IMP_NAME
    • Description of the class should give the implementation name. Checking the table is to make sure that the description is not changed.
  • Now go to se19
    • Give the implementation name IMP_NAME ->Delete
    • It will give a pop up to delete the class also.. You can delete the class here or again go to SE24 and delete the class.




Error
MOVE_CAST_ERROR
CX_SY_MOVE_CAST_ERROR
CL_EX_RSU5_SAPI_BADI==========CP
Solution
This will happen if the class is deleted when the enhancement is still present. Follow above steps to delete it and it should be fine.

Since this dump occurs after you delete, try creating the class again (with no code) and delete it properly.

Friday, June 1, 2018

Remote Function Module


Using Remote FM to trigger jobs in another system.

In this scenario, we will see how to trigger a functional module from BW to ECC.

1) Create Function Module in ECC - SE37
   Go to Attributes -> Make it Remote-Enabled Module
   Add parameters - The attributes need to be 'Pass Value' - Check the  
   box

2) Write code as any other ABAP Code.

3) In BW, create a program in SE38
   Below is some sample code
   parameters: p_rfcdest like rfcdisplay-rfcdest,
               p_value type CHAR3.
   call function 'ZECC_FM_IN_ECC' destination p_rfcdest
     exporting
       value = p_value


You can also trigger an event from one system to another using Remote Function Modules. Below are the steps.

1) Create an event in SM62

2) Create a job in SM36 and give the start parameter as the event.

3) Create program in BW. You can use FM 'RSSM_EVENT_RAISE' which is a standard  Remote enable FM.

Tuesday, May 8, 2018

Send email from ABAP program

TYPES: BEGIN OF ty_lines,
         line TYPE char255,
       END OF ty_lines.
DATA:  ti_lines TYPE STANDARD TABLE OF ty_lines,
       wa_lines TYPE ty_lines.
DATA:  title TYPE string.


* APPEND LINES TO ti_lines (body) and add a title (subject)

CALL FUNCTION 'EFG_GEN_SEND_EMAIL'
    EXPORTING
      i_title              = title
      i_sender             = <sender_email>
      i_recipient          = <receiver_email>
      i_flg_commit         = 'X'
      i_flg_send_immediately = 'X'
    TABLES
      i_tab_lines            = ti_lines
    EXCEPTIONS
      not_qualified          = 1
      failed                 = 2
      OTHERS                 = 3.

Wednesday, April 25, 2018

Friday, April 20, 2018

18 - Customer Service BW


Setup Table Tcode : OLISBW
Setup Table Job     : RMCSNEBW
V3 Job Name         : RMBWV318



2LIS_18_I0NOTIF

Base Table : QMEL - Quality Notification
TCode         : IW51/52

Tuesday, April 3, 2018

The Pictures

Job Monitoring

Getting the Process from Job Names
Select the Job Name --> Step : This will give you name of the process which the job is calling.
Select the process --> GoTo --> Variant : This will give the values the process is running.
Sometimes, this will give enough information to work on. But this might not be sufficient when standard process are running.


Job Name : BIDTPR_9090909_1
This is  a DTP run from a process chain.
Generally, if we scroll through the job log, we can get the name of the objects involved.
If not,
Ignore first 2 characters, Take DTPR_9090909_1 to Table 'RSBKDATAPAKID' - BATCH_ID.
Take the request ID and Go To RSBKREQUEST-REQID.
Here you can find the name of the DTP and Target.

Monday, March 26, 2018

Modification Operations

Sometimes,when you enter a program in SAP, system does not allow you to modify the code, even after going to the edit mode.

Instead, you will get a greyed out screen.
This happens when the original system where the object is developed is different from where it is being edited.
This can be checked in GoTo --> Object Direct Entry.
Here you can see that Original system name will be different than the system you are editing in.

The objects which have a name other than the name of system in which it is being accessed,  modification assistant will appear.
If you can change this to your system name then you can edit the objects without modification assistant.

Else,

EDIT  --> Modification Operations --> Switch Off Assistant
[ There will be a pop up with warning message and this can be ignored if what you are trying to do is a z program or if you know what you are doing ;) ]





Friday, March 23, 2018

SNOTE

SAP Help on SNOTE : LINK

Reading SNOTE
First check the Support Packages and Patches

Software Components
It is the latest pack/patch where the note has been applied. 
Any system which is equal to or above the mentioned support packages will already have the note applied , generally. No need to apply the note

Correction changes can be applied by directly downloading the Note in the system, or in some cases, some coding changes need to be done or parameters needs to be maintained manually.

Checking Support packages in SAP
In any SAP window Goto 'System' --> Status --> Component Version.
Here you can find
Software Component | Release | Level | Highest Support Package | Short Description. in ECC

Component | Release | SP-Level | Support Package | Short Description of Component in BW


Below is how you can see NOTES in SNOTE.
The ones in greyed out diamond are with status 'cannot be implemented'.
When you get message status "Cannot be implemented" means the code related to note is already exists in your SAP version. Just go to change instruction and see the changes come with the note and change the same object in your SAP system. The changes mentioned in the Note will exist in your system. Hence, you cannot implement the note or note is not valid for your SAP version.




Implementing SNote


Check if you can see the note in New. If it is not available, GoTo-->Download Note.

Now you can see the note in 'New'.

The ones in BLUE can be implemented. 

Select the Note and Goto SNOTE in Menu ->Implement SNOTE

System will give pop ups asking us to confirm is the user is ready to implement the note. If yes, SAP installs it 
and these changes can be collected in a transport request to move to other systems.

After successful implementation, you can see the note in 'In Processing' status.

Business Objects

Events

Events are used in BOBJ the same they are used in other systems. An event is created and added it is added to a report.
When the event is triggered, it in turn triggers the report.

Creating an Event
Log in to CMC Console -- Look under 'Define' and you should find events.
Look for Custom events - here, you can right click and create an event or use the second icon above custom events to create one.
Enter Event Name and Description and If Alerts are needed.

Adding events to the reports
Go to the report properties for the report, -- In Scheduling - Events - Add the Event in the corresponding box.

Process Chains

TCode : RSPC

Process Chain Monitoring
Std. Program
/SSA/BWT

Debugging Process Chain
Open the PC in Edit Mode.
Go to the step you want to debug.
Right click and Select 'Debug Loop'.
Set some time here - like 5-10 seconds.
Save and Activate the Chain.
In the Menu -> Execution -> Execute Synchronous to Debugging.
This stops the chain at the break-point in the standard code. Place customs breakpoints in your code and go to navigate to those points using F6.

Process Chain Jobs
Process Chains run under the job name 'BI_PROCESS_TRIGGER' in SM37
If you want to know the name of the PC which is running in the job,
Select job BI_PROCESS_TRIGGER in SM37
Click STEP button  
Select the program RSPROCESS
From GOTO menu -> SelectVariant
Against field chain you will find the process chain name

Alerts in Process Chain
Double click on PC --> Process Chain --> Attributes --> Alerting
RSPCCHAINATTR - ALERTS field gives if a process chain alert is present or not.




Manually changing status of Process chain
Click HERE

Process Chain Log Deletion
Storing older logs of process chain eat up space and is necessary to delete them periodically.
RSPC_LOG_DELETE can be used to delete them.
Click HERE to get more information.

BICCMS_100 Jobs
BICCMS_100_<timestamp> are system generated jobs which monitor the process chains.


Extra Notes
Process Chain APIs - Click HERE

Previous Run Active
This is used to check if the previous run of the chain is still active before running the next run.

If the chain is always going to the step where the chain is still active , look in table RSPCPROCESSLOG where actual state is 'BLANK'.


Related Tables
RSPCPROCESSLOG ; RSPCCHAIN_SKIP ;


BW Administration

Below are some topics related to BW Administration

RSADMIN

Table : RSADMIN
This table contains all the admin control parameters .
Program SAP_RSADMIN_MAINTAIN can be used to maintain the values.

SAP Notes
912367 : Gives the corresponding Notes for each parameter which can be maintain in the table.
594263 : RSADMIN parameter documentation.


Useful links
Important RSADMIN Parameters : Click HERE.

BW Performance Tuning

DSO Activation Statistics Generation
ODS Activation step periodically recalculates the statistics. This can be a overhead if the activation step is critical. In order to suppress the statistics step the document can be referred. The Document also mentions the need for statistics.


Delete entries using Program RSODSO_CLEANUP_RSODSACTUPDTYPE
Refer Note 2526515 to see if the table RSODSACTUPDTYPE is accumulating entries

Archiving Request Information in BW
Request-archiving is used to to archive reduce the size of administration and log tables e.g. RSMONMESS, RSSELDONE which can grow extensively LINK

Reducing Requests
TCode RSREQREDUCE helps to monitor the size of the requests for individual infoproviders.
Click HERE for more information.

Performance Improvement related Notes
SAP Note 2037093 : Performance problems during delta/init in the status management with DTP-s between infoproviders

Data Archival

3.X Data Flow

Some times when a new datasource is installed and replicated to BW , it comes as a 3.x datasoure.
Eg: 0VEN_COMPC_ATTR .
The datasource can be activated only if the 3.X objects are included.
In this case, you can migrate the datasource.
Right click on the datasource and check "Migrate" . This will give a pop up saying that it would delete all 3/5 dataflow ( which should be fine ) and you can select how you want to migrate.
With Export Option : will allow you to revert the changes
With out Export : you will have 7.x datasource.

BW Tables

BW Tables

Tables

Description

Tables

Description

AGR_USERSAssignment of roles to usersRSTSTable for transfer structures
BTCUEVUser event IDs for background processingRSLDPIOLinks datasource to infopackages
DD03MTable fields with data elements, text, and domainsRSLDPIOTInfoPackage Text Description
E070Change & Transport System: Header of Requests/TasksRSLDPRULEABAP source code for InfoPackages
E07TChange & Transport System: Short Texts for Requests/TasksRSLDPSELHardcoded selections in InfoPackages
ROOSFIELDDataSource FieldsRSMONICDP Contains the request-id number by data target
RSAABAPABAP routine - source code; - CODEID = Enter in Start Routine/End/Expert/Global Rouintes in table RSTRANRSPAKPOSList of InfoPackage Groups / InfoPackages
RSADMINCCustomizing Table General BWRSSELDONEInfoPackage selection and job program
RSANT_PROCESSIAnalysis Process TLOGO Index ( APD DSO relation )RSZELTTXTBex Description Table
RSBKDTPBW: Data Transfer Process Header DataRSRREPDIR Directory of all BEX reports
RSBKREQUESTDTP RequestRSLDPIOInfopackage / Datasource link
RSDCHABASInfoObject details : Basic characteristics (for chars, time-chars and units)RSBODSLOGSTATEChangelog Status for ODS Object
RSDODSOAll details of the DSORSBODSLOGRequests in ODS Changelog
RSECVALAuthorization Value StatusRSBASIDOCList of Source systems
RSHIEDIRTHierarchy CatalogRSDIOBCIOBJ InfoObject Catalog
RSHIEDIRTHierarchy directory textsRSZELTXREFDirectory of query element references. If you give the query element ID, it gives the source / Infoprovider information
RSICCONTMonitor: Saving of the updated IC and ODS per request (Search the request in RSICCONT table and delete the entry from the table. Automatically your request will be deleted from DSO)SRT_CFG_DEF_ASGNAssignment of Default LP Name to Proxy Class for WS Client
RSISOSMAPMapping Between InfoSources and OLTP SourcesRSQISETInfosets
RSLDPIOLog.data packet: No.TVARVCMaintain variable values - Use Tcodes STVARV / STVARVC for maintaining values
When adding entries, click on "Include changed entries in a transport" check box on the top to collect it in a transport
RSLDPSELSelection table for fields schedulerRSSTATMANPSAStore for G_T_PART of Request Display in DTA Administration( DMFLAG gives if a specific request is loaded to PSA )
RSOLTPSOURCETransfer structure tableDEVACCESSTable for development user - Has Access codes / Access Key
RSOSSEGMAPMappings between infosouece and systemsRSADMINAControl Table That Customer Can Change - Contains information of system user ( BWREMOTE ) - Maintenance View : RSADMIN
RSPCCHAINProcess chainTHOLPublic Holidays / THOLT - Texts / 
RSPCVARIANTGeneric Variant-Storage of Process ChainsTHOLUDates of movable public holidays
RSREQDONEMonitor: Saving of the QM entries (infopak details) PSA Request StatusROOSGENGenerated Objects for OLTP Source | Contains datasources in that specific Source system
RSRPARAMETRIZAParametrization for a query, workbook, webapplication, plaRSREQICODSMonitor: Saving of the updated IC and ODS per request - DSO requests table
RSTSODSREQUESTRequest directory ODS; which request is in which ODSRSDDAGGRMODSTATEStatus of change run for aggregates - Give the Run number ( can be found in process chain log of ACT ) in CNSID and CLOSEDFL will give status
RSTRANInformation on TransformationsRSLOGSYSMAPMapping of logical systems fir transport of InfoSources
RSUPDROUTUpdate rules - ABAP routine - check tablersdssegDataSource - Segments - Has PSA table name of the datasource
RSZELTDIRDirectory of the reporting component elements ( Gives the relation between transport element and the query. Useful when a TR fails with multiple queries. Can look for the object failed over here to get the corresponding Query )SEOCOMPOBADI Class/Interface component
TADIRDirectory of Repository ObjectsTTZD / TTZDVSummer time rules (variable dates) - Day light savings tables - Available in BW and Source systems
RSDIOBJDirectory of all InfoObjectsRSSDLINITLast Valid Initializations to an OLTP Source - Delta
RSODSSETTINGSSettings for an ODS - DSORSMDATASTATE_EXTAdditional Summation Status of Data in Data Targets | Total Count of Requests 
SXC_CLASSExit, implementation side: Class assignment (multiple) - BADI Implementation Name Interface ClassesRSPCCHAIN_SKIP Skipped processes | This chain will have all the entries where 'skip process' option is used in the PC. 'TO BE SKIPPED' field will be 'X' for active ones.
RSPCPROCESSLOGLogs for the Chain RunsBALDATApplication Log: Log data

Jobs running for very long - One reason might be lock on this table