hi,
i need to convert few units to different form.can anybody help me with creating a routine. for example i need to convert 'tm' to 'tn'.points will be fully rewarded for this.
thanx,
Ravi.
PROGRAM CONVERSION_ROUTINE.
Type pools used by conversion program
TYPE-POOLS: RS, RSARC, RSARR, SBIWA, RSSM.
Declaration of transfer structure (selected fields only)
TYPES: BEGIN OF TRANSFER_STRUCTURE ,
InfoObject : CHAR - 000050
ZXRECTYPE(000050) TYPE C,
InfoObject ZXDELIVTY: CHAR - 000050
/BIC/ZXDELIVTY(000050) TYPE C,
InfoObject ZXORDTYPE: CHAR - 000050
/BIC/ZXORDTYPE(000050) TYPE C,
InfoObject : CHAR - 000010
ZXSALEDAT(000010) TYPE C,
InfoObject 0FISCPER3: NUMC - 000003
FISCPER3(000003) TYPE N,
InfoObject 0FISCYEAR: NUMC - 000004
FISCYEAR(000004) TYPE N,
InfoObject ZXPARCODE: CHAR - 000032
/BIC/ZXPARCODE(000032) TYPE C,
InfoObject : CHAR - 000050
PARENT_DESC(000050) TYPE C,
InfoObject ZXSHIPTOC: CHAR - 000010
/BIC/ZXSHIPTOC(000010) TYPE C,
InfoObject 0NAME: CHAR - 000050
SHIP_NAME(000050) TYPE C,
InfoObject ZXLNGCODE: CHAR - 000050
SHIP_ZXLNGCODE(000050) TYPE C,
InfoObject 0INDUSTRY: CHAR - 000004
SHIP_0INDUSTRY(000004) TYPE C,
InfoObject ZXMARSEGC: CHAR - 000050
SHIP_ZXMARSEGC(000050) TYPE C,
InfoObject ZXACCMNGR: CHAR - 000050
SHIP_ZXACCMNGR(000050) TYPE C,
InfoObject ZXSOLDTOC: CHAR - 000010
/BIC/ZXSOLDTOC(000010) TYPE C,
InfoObject : CHAR - 000050
SOLD_NAME(000050) TYPE C,
InfoObject : CHAR - 000050
SOLD_ZXLNGCODE(000050) TYPE C,
InfoObject : CHAR - 000004
SOLD_0INDUSTRY(000004) TYPE C,
InfoObject : CHAR - 000050
SOLD_ZXMARSEGC(000050) TYPE C,
InfoObject : CHAR - 000050
SOLD_ZXACCMNGR(000050) TYPE C,
InfoObject ZXSTATCOD: CHAR - 000010
/BIC/ZXSTATCOD(000010) TYPE C,
InfoObject : CHAR - 000050
STAT_NAME(000050) TYPE C,
InfoObject : CHAR - 000050
STAT_ZXLNGCODE(000050) TYPE C,
InfoObject : CHAR - 000004
STAT_0INDUSTRY(000004) TYPE C,
InfoObject : CHAR - 000050
STAT_ZXMARSEGC(000050) TYPE C,
InfoObject : CHAR - 000050
STAT_ZXACCMNGR(000050) TYPE C,
InfoObject ZXCONSCOD: CHAR - 000010
/BIC/ZXCONSCOD(000010) TYPE C,
InfoObject : CHAR - 000050
CONS_TO_NAME(000050) TYPE C,
InfoObject : CHAR - 000050
CONS_ZXLNGCODE(000050) TYPE C,
InfoObject : CHAR - 000004
CONS_0INDUSTRY(000004) TYPE C,
InfoObject : CHAR - 000050
CONS_ZXMARSEGC(000050) TYPE C,
InfoObject : CHAR - 000050
CONS_ZXACCMNGR(000050) TYPE C,
InfoObject ZXLOCCODE: CHAR - 000018
/BIC/ZXLOCCODE(000018) TYPE C,
InfoObject ZXDESCODE: CHAR - 000018
/BIC/ZXDESCODE(000018) TYPE C,
InfoObject 0MATERIAL: CHAR - 000018
MATERIAL(000018) TYPE C,
InfoObject : CHAR - 000050
PROD_DESC(000050) TYPE C,
InfoObject ZXPRDGRP: CHAR - 000004
/BIC/ZXPRDGRP(000004) TYPE C,
InfoObject : CHAR - 000021
ZXSALES(000021) TYPE C,
InfoObject : CHAR - 000021
ZXSALESPR(000021) TYPE C,
InfoObject : CHAR - 000021
ZXSALESQT(000021) TYPE C,
InfoObject : CHAR - 000021
ZXSALESUN(000021) TYPE C,
InfoObject : CHAR - 000003
SALES_UNIT(000003) TYPE C,
InfoObject : CHAR - 000021
ZXSALESCO(000021) TYPE C,
InfoObject : CHAR - 000021
ZXSALESCH(000021) TYPE C,
InfoObject : CHAR - 000021
DOC_ITEMS(000021) TYPE C,
InfoObject ZXEXTDATE: CHAR - 000010
ZXEXTDATE(000010) TYPE C,
InfoObject 0VERSION: CHAR - 000003
VERSION(000003) TYPE C,
InfoObject 0RECORDMODE: CHAR - 000001
RECORDMODE(000001) TYPE C,
END OF TRANSFER_STRUCTURE .
Global code used by conversion rules
$$ begin of global - insert your declaration only below this line -
TABLES: ...
DATA: ...
$$ end of global - insert your declaration only before this line -
----
FORM COMPUTE_SALES_UNIT
----
Compute value of InfoObject 0SALES_UNIT
in communication structure /BIC/CSZSD_SALES_001
*
Technical properties:
field name = SALES_UNIT
data element = /BI0/OISALES_UNIT
data type = UNIT
length = 000003
decimals = 000000
ABAP type = C
ABAP length = 000003
reference field =
----
Parameters:
--> RECORD_NO Record number
--> TRAN_STRUCTURE Transfer structure
<-- RESULT Return value of InfoObject
<-> G_T_ERRORLOG Error log
<-- RETURNCODE Return code (to skip one record)
<-- ABORT Abort code (to skip whole data package)
----
FORM COMPUTE_SALES_UNIT
USING RECORD_NO LIKE SY-TABIX
TRAN_STRUCTURE TYPE TRANSFER_STRUCTURE
G_S_MINFO TYPE RSSM_S_MINFO
CHANGING RESULT TYPE /BI0/OISALES_UNIT
G_T_ERRORLOG TYPE rssm_t_errorlog_int
RETURNCODE LIKE SY-SUBRC
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel datapackage
$$ begin of routine - insert your code only below this line -
DATA: l_s_errorlog TYPE rssm_s_errorlog_int.
----
Routine : ZEX_SALES_UNIT
*
Date Written : July 2005 *
Author : Shekar reddy *
Restrictions : None *
Description : UNIT
ASSOCIATED :Info Object - 0SALES_UNIT
----
MODIFICATIONS *
TrnsptReq Date Whom Description *
*
xxxx 15.08.2005 Reddys Initial Program *
----
SHIFT TRAN_STRUCTURE-sales_unit LEFT DELETING LEADING space.
RESULT = TRAN_STRUCTURE-sales_unit+0(3).
PEROFORM
returncode <> 0 means skip this record
RETURNCODE = 0.
abort <> 0 means skip whole data package !!!
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM.
----
FORM INVERT_SALES_UNIT
----
Inversion of selection criteria for InfoObject 0SALES_UNIT
*
This subroutine needs to be implemented only for SAP RemoteCubes
(for better performance) and for the Report/Report Interface
(drill through).
*
----
--> I_RT_CHAVL_CS Ranges table for current InfoObject
--> I_THX_SELECTION_CS Selection criteria for all other InfoObjects
<-- C_T_SELECTION Selection criteria for fields of
transfer structure
<-- E_EXACT Flag: Inversion was exact
----
FORM INVERT_SALES_UNIT
USING I_RT_CHAVL_CS TYPE RSARC_RT_CHAVL
I_THX_SELECTION_CS TYPE RSARC_THX_SELCS
CHANGING C_T_SELECTION TYPE SBIWA_T_SELECT
E_EXACT TYPE RS_BOOL.
$$ begin of inverse routine - insert your code only below this line-
DATA:
l_s_selection LIKE LINE OF c_t_selection.
An empty selection means all values
CLEAR c_t_selection.
l_s_selection-fieldnm = 'SALES_UNIT'.
...
Selection of all values may be not exact
e_exact = rs_c_false.
$$ end of inverse routine - insert your code only before this line -
ENDFORM.