These are some codes to simulate Pricing Conditions upload using IDOC
*&------------------------------------------------------------------------
*& Form map_idoc_structure
*&------------------------------------------------------------------------
* Map E1KOMG, E1KONH, E1KONP segment fields
*-------------------------------------------------------------------------
FORM map_idoc_structure
USING fp_condition_table TYPE kotabnr
fp_rate TYPE z_cs_cpp_rate
fp_condition_type TYPE kschl
fp_rate_type TYPE z_cs_file_type.
*-- Local Data Declaration
DATA: lw_e1komg TYPE e1komg, "Filter seg. with separated condition key
lw_e1konh TYPE e1konh, "Data from condition header
lw_e1konp TYPE e1konp, "Conditions Items
lv_delete TYPE konp-loevm_ko. " Delete Indicator
*-- IDoc data internal table
DATA: i_idoc_data TYPE TABLE OF edidd
INITIAL SIZE 0
WITH HEADER LINE.
CLEAR: lw_e1komg,
lw_e1konh,
lw_e1konp,
lv_delete,
v_segnum,
w_e1komg,
v_rate_type.
REFRESH i_idoc_data.
v_rate_type = fp_rate_type.
PERFORM conversion_alpha_input
USING w_crp_data-kunnr CHANGING w_crp_data-kunnr.
PERFORM conversion_matn1_input
USING w_crp_data-matnr CHANGING w_crp_data-matnr.
*E1KOMG: Filter segment with separated condition key
i_idoc_data-segnam = 'E1KOMG'.
lw_e1komg-kvewe = c_usage_cond_tab.
lw_e1komg-kotabnr = fp_condition_table.
lw_e1komg-kappl = c_cond_type.
lw_e1komg-kschl = fp_condition_type.
CONCATENATE p_vkorg p_vtweg p_spart p_hienr p_matnr.
CONCATENATE w_crp_data-vkorg w_crp_data-vtweg
w_crp_data-kunnr w_crp_data-matnr
INTO lw_e1komg-vakey.
lw_e1komg-vakey_long = lw_e1komg-vakey.
lw_e1komg-vkorg = w_crp_data-vkorg.
lw_e1komg-vtweg = w_crp_data-vtweg.
lw_e1komg-spart = w_crp_data-spart.
lw_e1komg-kunnr = w_crp_data-kunnr.
lw_e1komg-matnr = w_crp_data-matnr.
i_idoc_data-sdata = lw_e1komg.
APPEND i_idoc_data TO i_idoc_data.
*Segment E1KONH - condition header
i_idoc_data-segnam = 'E1KONH'.
lw_e1konh-datab = w_crp_data-datab.
lw_e1konh-datbi = w_crp_data-datbi.
lw_e1konh-knuma_pi = v_promotion.
lw_e1konh-knuma_ag = v_sales_deal.
i_idoc_data-sdata = lw_e1konh.
APPEND i_idoc_data TO i_idoc_data.
IF fm_process_type EQ c_pt_dep.
lv_delete = c_x. " Deletion Indicator
ENDIF.
*Segment E1KONP - condition items
i_idoc_data-segnam = 'E1KONP'.
lw_e1konp-kschl = fp_condition_type.
lw_e1konp-kbetr = fp_rate.
lw_e1konp-konwa = w_crp_data-waers.
lw_e1konp-kpein = v_cond_pric.
lw_e1konp-kmein = v_cond_unit.
lw_e1konp-knuma_pi = v_promotion.
lw_e1konp-knuma_ag = v_sales_deal.
lw_e1konp-loevm_ko = lv_delete.
i_idoc_data-sdata = lw_e1konp.
APPEND i_idoc_data TO i_idoc_data.
*-- Post Idoc for Creating Pricing Condition
PERFORM post_idoc
TABLES i_idoc_data.
ENDFORM. " map_idoc_structure
*&------------------------------------------------------------------------
*& Form post_idoc TABLES i_idoc_data.
*&------------------------------------------------------------------------
* Post Idoc for Creating Pricing Condition
*------------------------------------------------------------------------
FORM post_idoc
TABLES i_idoc_data STRUCTURE edidd.
*-- Local data declaration
DATA: lv_komg LIKE komg, " Condition Structures
lv_subrc LIKE sy-subrc, " Sy-subrc
lw_messages TYPE rsuvm_msg, " Message Description
lw_idoc_status TYPE bdidocstat. " ALE IDoc status
DATA: idoc_contrl " IDoc Control data
LIKE edidc OCCURS 1 WITH HEADER LINE.
*-- Initialize Internal Tables
CLEAR: t_konh,
t_konp,
t_konm,
t_konw,
i_idoc_status,
t_kona.
REFRESH: t_konh,
t_konp,
t_konm,
t_konw,
i_idoc_status,
t_kona,
i_messages.
************************************************************************
*This code is taken from IDOC_INPUT_COND_A
************************************************************************
PERFORM fill_appl_structures(saplvkoi)
TABLES i_idoc_data
t_konh
t_konp
t_konm
t_konw
i_idoc_status
t_kona
USING lv_komg
lv_subrc
idoc_contrl-docnum
idoc_contrl-mestyp.
IF lv_subrc = 0.
************************************************************************
*This code is taken from IDOC_INPUT_COND_A
************************************************************************
PERFORM idoc_in_datenbank(saplvkoi)
TABLES idoc_contrl
t_konh
t_konp
t_konm
t_konw
i_idoc_status
t_kona
USING lv_komg
lv_subrc
idoc_contrl-docnum.
IF lv_subrc = 0.
COMMIT WORK AND WAIT.
Endif.
Aug 8, 2012
Jul 26, 2012
Find User-Exit in Transaction Code
Use this program to find User-Exit by simply put on the Transaction Code
*&---------------------------------------------------------------------*
*& Report ZTES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_find_userexit NO STANDARD PAGE HEADING.
*&---------------------------------------------------------------------*
*& Enter the transaction code that you want to search through in order
*& to find which Standard SAP User Exits exists.
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Tables
*&---------------------------------------------------------------------*
TABLES : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
*&---------------------------------------------------------------------*
*& Variables
*&---------------------------------------------------------------------*
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
*&---------------------------------------------------------------------*
*& Selection Screen Parameters
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK a01.
*&---------------------------------------------------------------------*
*& Start of main program
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* Validate Transaction Code
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
* Find Repository Objects for transaction code
IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.
MOVE : tadir-devclass TO v_devclass.
IF sy-subrc NE 0.
SELECT SINGLE * FROM trdir
WHERE name = tstc-pgmna.
IF trdir-subc EQ 'F'.
SELECT SINGLE * FROM tfdir
WHERE pname = tstc-pgmna.
SELECT SINGLE * FROM enlfdir
WHERE funcname = tfdir-funcname.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'FUGR'
AND obj_name = enlfdir-area.
MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.
* Find SAP Modifactions
SELECT * FROM tadir
INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = v_devclass.
SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
SKIP.
IF NOT jtab[] IS INITIAL.
WRITE:/(95) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
WRITE:/(95) sy-uline.
LOOP AT jtab.
SELECT SINGLE * FROM modsapt
WHERE sprsl = sy-langu AND
name = jtab-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 sy-vline,
2 jtab-obj_name HOTSPOT ON,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
ENDLOOP.
WRITE:/(95) sy-uline.
DESCRIBE TABLE jtab.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
* Take the user to SMOD for the Exit that was selected.
AT LINE-SELECTION.
GET CURSOR FIELD field1.
CHECK field1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
*&---------------------------------------------------------------------*
*& Report ZTES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_find_userexit NO STANDARD PAGE HEADING.
*&---------------------------------------------------------------------*
*& Enter the transaction code that you want to search through in order
*& to find which Standard SAP User Exits exists.
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Tables
*&---------------------------------------------------------------------*
TABLES : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
*&---------------------------------------------------------------------*
*& Variables
*&---------------------------------------------------------------------*
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
*&---------------------------------------------------------------------*
*& Selection Screen Parameters
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK a01.
*&---------------------------------------------------------------------*
*& Start of main program
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* Validate Transaction Code
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
* Find Repository Objects for transaction code
IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.
MOVE : tadir-devclass TO v_devclass.
IF sy-subrc NE 0.
SELECT SINGLE * FROM trdir
WHERE name = tstc-pgmna.
IF trdir-subc EQ 'F'.
SELECT SINGLE * FROM tfdir
WHERE pname = tstc-pgmna.
SELECT SINGLE * FROM enlfdir
WHERE funcname = tfdir-funcname.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'FUGR'
AND obj_name = enlfdir-area.
MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.
* Find SAP Modifactions
SELECT * FROM tadir
INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = v_devclass.
SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
SKIP.
IF NOT jtab[] IS INITIAL.
WRITE:/(95) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
WRITE:/(95) sy-uline.
LOOP AT jtab.
SELECT SINGLE * FROM modsapt
WHERE sprsl = sy-langu AND
name = jtab-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 sy-vline,
2 jtab-obj_name HOTSPOT ON,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
ENDLOOP.
WRITE:/(95) sy-uline.
DESCRIBE TABLE jtab.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
* Take the user to SMOD for the Exit that was selected.
AT LINE-SELECTION.
GET CURSOR FIELD field1.
CHECK field1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
Jul 5, 2012
Changing the development class (Package) of a SAPScript
Following is an SAPScript (ZSAPTECHNICAL) assigned to a development class ZTEST. Let us look at the procedure in changing the development class to some other class.
To change the development class:
Go to transaction SE03.
Enter the values as shown in the above screenshot and press Execute.
Now double-click on your form name (in this case it is ZSAPTECHNICAL.
A Pop-up would appear with the development class in change mode. Change the development class to the desired one and press ENTER. See the change in the development class in the screenshot below:
Subscribe to:
Posts
(
Atom
)