Thursday, April 1, 2021

Currency in SAP

When Korean / Japanese currency is being used 

In BW, 

Net price = 87.124

In BOBJ

Net Price = 871.24


It’s a factor based on the existence of an entry in TCURX for the corresponding CURRKEY.



Wednesday, November 4, 2020

Copying a Data Flow in Microsoft Power BI

Copying a Data Flow in Microsoft Power BI

Dataflows cannot be changed /copied directly. We need to download the .json file and import it in a new data flow.

Step 1

Select the dataflow you want to copy and click on the last icon, It should give you options like below. select the 'Export .json' and it will download the .json file on to your desktop.



Step 2

Go to new data flow and select the 'Import Model' option.


Step 3 

Once the file is selected, you get below pop up saying it is being imported and after successful import, you can see the dataflow in your list.


You are the owner of the newly uploaded dataflow and you can make any changes you want.



Error and Corrections

Error
"Invalid dataflow parameter. Exception details : The AllowNativeQueries attribute of the mashup is set to true for this dataflow definition. For security reason, AllowNativeQueries should be set to false, and try again."









Correction
Change the attribute '"allowNativeQueries":false' to true ( "allowNativeQueries":true) and try importing again. It should go through.
Please make sure that you have access to the underlying database.



Other Links to Refer

Monday, February 10, 2020

CRM Datasources

CRM Datasources

0CRM_SRV_CONTRACT_H
CRM Service Contract Header Data


0CRM_SALES_CONTR_I
CRM Sales Contracts: Item

Wednesday, December 18, 2019

FM Based Datasource

Points to Remember
------------------------

  • When running the datasource in RSA3 for multiple packets, data will be repeated in different packets. 
    • For say, Single packet call captured 500 entries, when you run for multiple packets (3), you might get first call with 500, 2nd call with 150 and 3rd call with 90 records. If you compare the data, you can see that, the first 500 are the right values and the other 150 and 90 are duplicates from the 500 set.
  • Use STATICS during declaration if you want to retain the values in a table for all data packets.
    • When using multiple packets, data gets refreshed in the internal table for each iteration. Declaring the tables.variable with STATICS will hold the values through out the execution for tables which need to be selected only once functionally.

Monday, November 4, 2019

CRM Tables


CRM Tables

Tables

Description

CRMD_ORDERADM_HBusiness Transaction - Header
CRMD_ORDERADM_IBusiness Transaction - Item
CRMD_SERVICE_HService Process
CRMD_SERVICE_ITransaction Item - Service
CRMD_CUSTOMER_HTransaction - Customer Extension
CRMD_CUSTOMER_ITransaction Item - Customer Extension
CRM_JESTIndividual Object Status
CRM_JCDSChange Documents for System/User Statuses (Table JEST)

Sunday, October 13, 2019

MBA and Stuff

CAC - Cost to Acquire Customer

LTV - Life Time Value

LDC - Least Developed Countries/Companies

YOY - Year Over Year

JIT - Just In Time

UGC - User Generated Content

VRIO - Value Rarity Imitability Organization

CAP Table - Captilization Table


Tuesday, July 30, 2019

0CLM_BPARTNER

0CLM_BPARTNER - Business Partner in Collections Management

Base Table
UDMBPSEGMENTS : Collection Segments in Business Partner



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