BW转换例程.docx
《BW转换例程.docx》由会员分享,可在线阅读,更多相关《BW转换例程.docx(22页珍藏版)》请在冰豆网上搜索。
BW转换例程
例程包含开始例程和结束例程以及转换例程,下面来详细进行代码的明细表:
1:
开始例程:
PROGRAMtrans_routine.
*---------------------------------------------------------------------*
*CLASSroutineDEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASSlcl_transformDEFINITION.
PUBLICSECTION.
*Attributs
DATA:
p_check_master_data_exist
TYPERSODSOCHECKONLYREAD-ONLY,
*-Instanceforgettingrequestruntimeattributs;
*Availableinformation:
Refertomethodsof
*interface'if_rsbk_request_admintab_view'
p_r_request
TYPEREFTOif_rsbk_request_admintab_viewREAD-ONLY.
PRIVATESECTION.
TYPE-POOLS:
rsd,rstr.
*Rulespecifictypes
TYPES:
BEGINOF_ty_s_SC_1,
*InfoObject:
ZNCSBBH00设备编号.
/BIC/ZNCSBBH00TYPE/BIC/OIZNCSBBH00,
*InfoObject:
ZNCSDQMRQ时段期满日期.
/BIC/ZNCSDQMRQTYPE/BIC/OIZNCSDQMRQ,
*InfoObject:
ZNCBJLB00表计类别.
/BIC/ZNCBJLB00TYPE/BIC/OIZNCBJLB00,
*InfoObject:
ZNCGSDM00供电公司.
/BIC/ZNCGSDM00TYPE/BIC/OIZNCGSDM00,
*InfoObject:
ZNCDYJGZ0地域结构组.
/BIC/ZNCDYJGZ0TYPE/BIC/OIZNCDYJGZ0,
*InfoObject:
ZNCGKFL00关口分类.
/BIC/ZNCGKFL00TYPE/BIC/OIZNCGKFL00,
*InfoObject:
ZNCHTZH00合同帐户.
/BIC/ZNCHTZH00TYPE/BIC/OIZNCHTZH00,
*InfoObject:
ZNCZHLB00帐户类别.
/BIC/ZNCZHLB00TYPE/BIC/OIZNCZHLB00,
*InfoObject:
ZNCBJWZ00表计位置.
/BIC/ZNCBJWZ00TYPE/BIC/OIZNCBJWZ00,
*InfoObject:
ZNCSDWXRQ生效日期.
/BIC/ZNCSDWXRQTYPE/BIC/OIZNCSDWXRQ,
*InfoObject:
ZNCBJYZRQ表计移走日期.
/BIC/ZNCBJYZRQTYPE/BIC/OIZNCBJYZRQ,
*InfoObject:
ZNCAZRQ00安装日期.
/BIC/ZNCAZRQ00TYPE/BIC/OIZNCAZRQ00,
*InfoObject:
ZNCHDYY00活动原因.
/BIC/ZNCHDYY00TYPE/BIC/OIZNCHDYY00,
*InfoObject:
ZNCBJLBZH表计类别组合.
/BIC/ZNCBJLBZHTYPE/BIC/OIZNCBJLBZH,
*InfoObject:
ZNCLJSBBH逻辑设备编号.
/BIC/ZNCLJSBBHTYPE/BIC/OIZNCLJSBBH,
*InfoObject:
ZNCSBLB00设备类别.
/BIC/ZNCSBLB00TYPE/BIC/OIZNCSBLB00,
*InfoObject:
ZNCRZ0000绕组.
/BIC/ZNCRZ0000TYPE/BIC/OIZNCRZ0000,
*InfoObject:
ZNCDJZ000登记组.
/BIC/ZNCDJZ000TYPE/BIC/OIZNCDJZ000,
*InfoObject:
ZNCAZD000安装点.
/BIC/ZNCAZD000TYPE/BIC/OIZNCAZD000,
*InfoObject:
ZNCAZLX00安装类型.
/BIC/ZNCAZLX00TYPE/BIC/OIZNCAZLX00,
*InfoObject:
ZNCDYDJ00电压等级.
/BIC/ZNCDYDJ00TYPE/BIC/OIZNCDYDJ00,
*InfoObject:
ZNCAZDFL0安装点费类.
/BIC/ZNCAZDFL0TYPE/BIC/OIZNCAZDFL0,
*InfoObject:
ZNCJLFS00计量方式.
/BIC/ZNCJLFS00TYPE/BIC/OIZNCJLFS00,
*InfoObject:
ZNCXLH000序列号.
/BIC/ZNCXLH000TYPE/BIC/OIZNCXLH000,
*InfoObject:
ZNCCBDY00参比电压.
/BIC/ZNCCBDY00TYPE/BIC/OIZNCCBDY00,
*InfoObject:
ZNCCBDL00参比电流.
/BIC/ZNCCBDL00TYPE/BIC/OIZNCCBDL00,
*InfoObject:
ZNCZQD000准确度.
/BIC/ZNCZQD000TYPE/BIC/OIZNCZQD000,
*InfoObject:
ZNCZCGS00资产归属.
/BIC/ZNCZCGS00TYPE/BIC/OIZNCZCGS00,
*InfoObject:
ZNCYFFGN0预付费功能.
/BIC/ZNCYFFGN0TYPE/BIC/OIZNCYFFGN0,
*InfoObject:
ZNCZBGN00载波功能.
/BIC/ZNCZBGN00TYPE/BIC/OIZNCZBGN00,
*InfoObject:
ZNCSFSXNZ是否是虚拟资产.
/BIC/ZNCSFSXNZTYPE/BIC/OIZNCSFSXNZ,
*InfoObject:
ZNCEDDY00额定电压.
/BIC/ZNCEDDY00TYPE/BIC/OIZNCEDDY00,
*InfoObject:
ZNCDRDCS0电容/电磁式.
/BIC/ZNCDRDCS0TYPE/BIC/OIZNCDRDCS0,
*InfoObject:
ZNCBYQRL0变压器容量.
/BIC/ZNCBYQRL0TYPE/BIC/OIZNCBYQRL0,
*InfoObject:
ZNCZZS000制造商.
/BIC/ZNCZZS000TYPE/BIC/OIZNCZZS000,
*InfoObject:
ZNCXH0000型号.
/BIC/ZNCXH0000TYPE/BIC/OIZNCXH0000,
*InfoObject:
ZNCXTZT00系统状态.
/BIC/ZNCXTZT00TYPE/BIC/OIZNCXTZT00,
*InfoObject:
ZNCBJZT00表计状态.
/BIC/ZNCBJZT00TYPE/BIC/OIZNCBJZT00,
*InfoObject:
ZNCYXBJSL运行表计数量.
/BIC/ZNCYXBJSLTYPE/BIC/OIZNCYXBJSL,
*InfoObject:
0RECORDMODEBW增量处理:
更新模式.
RECORDMODETYPERODMUPDMOD,
*InfoObject:
ZNCBYQRL1变压器容量.
/BIC/ZNCBYQRL1TYPE/BIC/OIZNCBYQRL1,
*InfoObject:
0UNIT计量单位.
UNITTYPE/BI0/OIUNIT,
*InfoObject:
ZNCBJFZ00表计分组.
/BIC/ZNCBJFZ00TYPE/BIC/OIZNCBJFZ00,
*InfoObject:
ZNCLJDX00连接对象.
/BIC/ZNCLJDX00TYPE/BIC/OIZNCLJDX00,
*InfoObject:
ZNCLJDXMS连接对象描述.
/BIC/ZNCLJDXMSTYPE/BIC/OIZNCLJDXMS,
*InfoObject:
ZNCYWHZHB业务合作伙伴.
/BIC/ZNCYWHZHBTYPE/BIC/OIZNCYWHZHB,
*InfoObject:
ZNCYWHBMC业务合作伙伴名称.
/BIC/ZNCYWHBMCTYPE/BIC/OIZNCYWHBMC,
*InfoObject:
ZNCKGBH00开关编号.
/BIC/ZNCKGBH00TYPE/BIC/OIZNCKGBH00,
*InfoObject:
ZNCZJJYRQ最近检验日期.
/BIC/ZNCZJJYRQTYPE/BIC/OIZNCZJJYRQ,
*InfoObject:
ZNCYJJYRQ压降最近检验日期.
/BIC/ZNCYJJYRQTYPE/BIC/OIZNCYJJYRQ,
*InfoObject:
ZNCZDXLGN最大需量功能.
/BIC/ZNCZDXLGNTYPE/BIC/OIZNCZDXLGN,
*InfoObject:
ZNCSFXBB0是否是谐波表.
/BIC/ZNCSFXBB0TYPE/BIC/OIZNCSFXBB0,
*InfoObject:
ZNCYDXZ00费率数据组(限制特性用).
/BIC/ZNCYDXZ00TYPE/BIC/OIZNCYDXZ00,
*InfoObject:
ZNCSRSCZ0输入/输出组.
/BIC/ZNCSRSCZ0TYPE/BIC/OIZNCSRSCZ0,
*InfoObject:
ZNCSRDY00输入电压.
/BIC/ZNCSRDY00TYPE/BIC/OIZNCSRDY00,
*InfoObject:
ZNCSCDY00输出电压.
/BIC/ZNCSCDY00TYPE/BIC/OIZNCSCDY00,
*InfoObject:
ZNCFLLB00费率类别.
/BIC/ZNCFLLB00TYPE/BIC/OIZNCFLLB00,
*InfoObject:
ZNCQRRQ00迁入日期.
/BIC/ZNCQRRQ00TYPE/BIC/OIZNCQRRQ00,
*InfoObject:
ZNCYCRQ00移出日期.
/BIC/ZNCYCRQ00TYPE/BIC/OIZNCYCRQ00,
*Field:
RECORD.
RECORDTYPERSARECORD,
ENDOF_ty_s_SC_1.
TYPES:
_ty_t_SC_1TYPESTANDARDTABLEOF_ty_s_SC_1
WITHNON-UNIQUEDEFAULTKEY.
*$*$beginofglobal-insertyourdeclarationonlybelowthisline*-*
..."insertyourcodehere
*$*$endofglobal-insertyourdeclarationonlybeforethisline*-*
METHODS
start_routine
IMPORTING
requesttypersrequest
datapackidtypersdatapid
EXPORTING
monitortyperstr_ty_t_monitors
CHANGING
SOURCE_PACKAGEtype_ty_t_SC_1
RAISING
cx_rsrout_abort.
METHODS
inverse_start_routine
IMPORTING
i_th_fields_outboundTYPErstran_t_field_inv
i_r_selset_outboundTYPEREFTOcl_rsmds_set
i_is_main_selectionTYPErs_bool
i_r_selset_outbound_completeTYPEREFTOcl_rsmds_set
i_r_universe_inboundTYPEREFTOcl_rsmds_universe
CHANGING
c_th_fields_inboundTYPErstran_t_field_inv
c_r_selset_inboundTYPEREFTOcl_rsmds_set
c_exactTYPErs_bool.
ENDCLASS."routineDEFINITION
*$*$beginof2ndpartglobal-insertyourcodeonlybelowthisline*
..."insertyourcodehere
*$*$endof2ndpartglobal-insertyourcodeonlybeforethisline*
*---------------------------------------------------------------------*
*CLASSroutineIMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASSlcl_transformIMPLEMENTATION.
*----------------------------------------------------------------------*
*Methodstart_routine
*----------------------------------------------------------------------*
*Calculationofsourcepackageviastartroutine
*----------------------------------------------------------------------*
*<->sourcepackage
*----------------------------------------------------------------------*
METHODstart_routine.
*===Segments===
FIELD-SYMBOLS:
TYPE_ty_s_SC_1.
DATA:
MONITOR_RECTYPErstmonitor.
*$*$beginofroutine-insertyourcodeonlybelowthisline*-*
..."insertyourcodehere
*--filltable"MONITOR"withvaluesofstructure"MONITOR_REC"
*-tomakemonitorentries
..."tocanceltheupdateprocess
*raiseexceptiontypeCX_RSROUT_ABORT.
*接线方式不合格计量点数=35KV及以下高供高计使用了三相四线电能表的计量点+110KV及以上使用了三相三线电能表的计量点数
data:
idxlikesy-tabix.
data:
l_gnltypecLENGTH8.
data:
gt_gnltypeSTANDARDTABLEOF/BIC/PZNCBJLB00,
wa_gnltype/BIC/PZNCBJLB00.
deleteSOURCE_PACKAGE[]where/BIC/ZNCBJLBZH<>'Z'.
deleteSOURCE_PACKAGE[]where/BIC/ZNCAZD000=''.
deleteSOURCE_PACKAGE[]where/BIC/ZNCGSDM00=''.
ifnotSOURCE_PACKAGE[]isINITIAL.
select
*
intotablegt_gnl
from/BIC/PZNCBJLB00
FORALLENTRIESINSOURCE_PACKAGE
where/BIC/ZNCBJLB00=SOURCE_PACKAGE-/BIC/ZNCBJLB00.
sortgt_gnlby/BIC/ZNCBJLB00.
endif.
loopatSOURCE_PACKAGEASSIGNING.
idx=sy-tabix.
READTABLEgt_gnlintowa_gnlwithkey/BIC/ZNCBJLB00=
-/BIC/ZNCBJLB00BINARYSEARCH.
ifsy-subrc=0.
l_gnl=wa_gnl-/BIC/ZNCGNL000.
endif.
if(-/BIC/ZNCDYDJ00='03'or
-/BIC/ZNCDYDJ00='04'
or-/BIC/ZNCDYDJ00='05'or
-/BIC/ZNCDYDJ00='06'
or-/BIC/ZNCDYDJ00='07'or
-/BIC/ZNCDYDJ00='08')
and(-/BIC/ZNCJLFS00='10')and(l_gnl=
'DTB'orl_gnl='DTJ'orl_gnl='DTZ').
CONTINUE.
*110KV及以上使用了三相三线电能表的计量点数addbyleo20091229start
*else.
elseif(-/BIC/ZNCDYDJ00='00'or
-/BIC/ZNCDYDJ00='01'or
-/BIC/ZNCDYDJ00='02')and(l_gnl='DSB'or
l_gnl='DSJ'orl_gnl='DSZ').
CONTINUE.
else.
*110KV及以上使用了三相三线电能表的计量点数addbyleo20091229end
deleteSOURCE_PACKAGEINDEXidx.
CONTINUE.
endif.
*if(-/BIC/ZNCDYDJ00='00'or
*-/BIC/ZNCDYDJ00='01'or
*-/BIC/ZNCDYDJ00='02')and(l_gnl='DSB'or
*l_gnl='DSJ'orl_gnl='DSZ').
*
*CONTINUE.
*ELSE.
*deleteSOURCE_PACKAGEINDEXidx.
*CONTINUE.
*endif.
CLEARl_gnl.
endloop.
freegt_gnl[].
*$*$endofroutine-insertyourcodeonlybeforethisline*-*
ENDMETHOD."start_routine
*----------------------------------------------------------------------*
*Methodinverse_start_routine
*----------------------------------------------------------------------*
*
*Thissubroutineneedstobeimplementedonlyfordirectaccess
*(forbetterperformance)andfortheReport/ReportInterface
*(drillthrough).
*Theinverseroutineshouldtransformaprojectionand
*aselectionforthetargettoaprojectionandaselection
*forthesource,respectively.
*Iftheimplementationremainsemptyallfieldsarefilledand
*allvaluesareselected.
*
*----------------------------------------------------------------------*
*
*-------------------------------------------------------