Guest User

Untitled

a guest
Dec 9th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.22 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Env.      : BPC_PIHC
  3. *& Model     : OPEX
  4. *&---------------------------------------------------------------------*
  5. *& Revision Log:
  6. *& Ver#   Date        Dev            Descr
  7. *& -----  -----       -----          -----
  8. *& 0001   02.04.2015  Rijdzuan   Initial
  9. *&---------------------------------------------------------------------*
  10. *& Information:
  11. *& Engine untuk membuat journal dari opex ke financial
  12. *&---------------------------------------------------------------------*
  13.  
  14. *&---------------------------------------------------------------------*
  15. *& DECLARATION & INITIALIZE
  16. *&---------------------------------------------------------------------*
  17.  
  18. DATA: LR_DATA TYPE REF TO DATA.
  19.  
  20. DATA: ld_log TYPE string,
  21. ld_log_flag TYPE flag.
  22. DATA: ld_line TYPE i,
  23. ld_linet(50).
  24.  
  25. DATA: LX_MESSAGES  TYPE UJ0_S_MESSAGE,
  26.           LT_MESSAGES  TYPE UJ0_T_MESSAGE,
  27.           LS_WB_STATUS TYPE UJO_S_WB_STATUS,
  28.           L_SUCCESS    TYPE UJ_FLG,
  29.           LT_ERRORS    TYPE UJA_T_MEMBERS_ERROR. 
  30.  
  31. ** TYPE REF
  32. DATA: LT_FINAL TYPE REF TO DATA,
  33. LR_FINAL TYPE REF TO DATA.
  34. FIELD-SYMBOLS: <LT_FINAL> TYPE STANDARD TABLE,
  35. <LS_FINAL> TYPE ANY.
  36.  
  37. ** Create final data
  38. CREATE DATA LT_FINAL LIKE CT_DATA.
  39. ASSIGN LT_FINAL->* TO <LT_FINAL>.
  40. CREATE DATA LR_FINAL LIKE LINE OF CT_DATA.
  41. ASSIGN LR_FINAL->* TO <LS_FINAL>.
  42.  
  43. FIELD-SYMBOLS: <LT_RECORD>     TYPE STANDARD TABLE,
  44.                    <LT_RECORD_DEL> TYPE STANDARD TABLE,
  45.                    <LS_RECORD>     TYPE ANY,
  46.                    <LS_RECORD_DEL> TYPE ANY,
  47.                    <LS_SIGNEDDATA> TYPE ANY. 
  48.  
  49. *&---------------------------------------------------------------------*
  50. *& RANGE DEFINE
  51. *&---------------------------------------------------------------------*
  52.  
  53. LX_SELECTION TYPE UJ0_S_RANGE.
  54. LT_SELECTION TYPE UJ0_T_RANGE.
  55. LX_SELECTION_DIM TYPE UJ0_S_SEL.
  56. LT_SELECTION_DIM TYPE UJ0_T_SEL.
  57.  
  58. "Range Dimension
  59. DEFINE MC_SEL_DIMENSION.
  60.       &1-DIMENSION = &2.
  61.       &1-ATTRIBUTE = &3.
  62.       &1-SIGN = 'I'.
  63.       &1-OPTION = 'EQ'.
  64.       &1-LOW = &4.
  65.       APPEND &1 TO &5.
  66.     END-OF-DEFINITION.
  67. "Range Model
  68.     DEFINE MC_SEL_MODEL.
  69.       CLEAR &1.
  70.       &1-sign = 'I'.
  71.       &1-option = 'EQ'.
  72.       &1-dimension = &2.
  73.       &1-low = &3.
  74.       APPEND &1 to &4.
  75.     END-OF-DEFINITION.
  76.  
  77. "Range of Member
  78.     DEFINE MC_SEL_RANGE.
  79.       CLEAR &1.
  80.       &1-sign = 'I'.
  81.       &1-option = 'EQ '.
  82.       &1-low = &2.
  83.       APPEND &1 to &3.
  84.     END-OF-DEFINITION. 
  85.  
  86.  
  87. *&---------------------------------------------------------------------*
  88. *& INPUT VALIDATION
  89. *&---------------------------------------------------------------------*
  90.  
  91. CALL METHOD ZBPC_CL_GET_DIMENSION_MEMBER=>READ_CV_DATA
  92. EXPORTING
  93. IT_CV = IT_CV
  94. IMPORTING
  95. ET_CYCLE = LT_CYCLE
  96. ET_CATEGORY = LT_CATEGORY
  97. ET_ENTITY = LT_ENTITY
  98. ET_TIME = LT_TIME.
  99.  
  100. "Category
  101. LOOP AT LT_CATEGORY TRANSPORTING NO FIELDS
  102. WHERE ID EQ 'Actual'.
  103.  
  104. ** Raise exception
  105. LD_LOG = 'Input Actual Category is not allowed'.
  106. CL_UJK_LOGGER=>LOG( I_OBJECT = LD_LOG ).
  107. RAISE EXCEPTION TYPE CX_UJ_CUSTOM_LOGIC.
  108.  
  109. ENDLOOP.
  110.  
  111. "Cycle
  112. IF LT_CYCLE[] IS INITIAL.
  113. ** Raise exception
  114. LD_LOG = 'Please input one CYCLE'.
  115. CL_UJK_LOGGER=>LOG( I_OBJECT = LD_LOG ).
  116. RAISE EXCEPTION TYPE CX_UJ_CUSTOM_LOGIC.
  117. ELSE.
  118. READ TABLE LT_CYCLE ASSIGNING <LS_CYCLE> INDEX 2.
  119. IF SY-SUBRC EQ 0.
  120. ** Raise exception
  121. LD_LOG = 'Please input one CYCLE'.
  122. CL_UJK_LOGGER=>LOG( I_OBJECT = LD_LOG ).
  123. RAISE EXCEPTION TYPE CX_UJ_CUSTOM_LOGIC.
  124. ENDIF.
  125. ENDIF.
  126.  
  127.     
  128.  
  129. *&---------------------------------------------------------------------*
  130. *& GET MODEL FROM CT_DATA
  131. *&---------------------------------------------------------------------*
  132. BREAK-POINT.
  133. CALL METHOD ZBPC_CL_BADI=>TRANSFORM_CT_DATA
  134. EXPORTING
  135. IT_DATA = CT_DATA
  136. IMPORTING
  137. ET_DATA_MODEL = LT_SOURCE.
  138.  
  139. *&---------------------------------------------------------------------*
  140. *& GET INPUT MEMBER
  141. *&---------------------------------------------------------------------*
  142.  
  143. DATA: lx_cv TYPE ujk_s_cv,
  144. lt_member TYPE uja_t_dim_member,
  145. lx_member TYPE uj_dim_member.
  146.  
  147. DEFINE mc_selection_dim.
  148. CLEAR &1.
  149. &1-sign = 'I'.
  150. &1-option = 'EQ'.
  151. &1-low = &2.
  152. &1-dimension = &3.
  153. APPEND &1 to &4.
  154. END-OF-DEFINITION.
  155.  
  156. CLEAR: lt_selection_dim.
  157. LOOP AT it_cv INTO lx_cv
  158. WHERE user_specified = 'X'.
  159.  
  160. lt_member = lx_cv-member.
  161. LOOP AT lt_member INTO lx_member.
  162.  
  163. mc_selection_dim lx_selection_dim
  164. lx_member lx_cv-dimension lt_selection_dim.
  165.  
  166. ENDLOOP.
  167.  
  168. ENDLOOP.
  169.  
  170. CALL METHOD zbpc_cl_get_model_record=>fetch2
  171. EXPORTING
  172. i_appset_id = i_appset_id
  173. i_appl_id = <ls_uja_appl>-application_id
  174. it_selection = lt_selection_dim
  175. IMPORTING
  176. er_data = lr_data.
  177.  
  178. *&---------------------------------------------------------------------*
  179. *& GET MODEL WITH SELECTION
  180. *&---------------------------------------------------------------------*
  181.  
  182. DEFINE mc_dim_selection.
  183. CLEAR &1.
  184. &1-sign = 'I'.
  185. &1-option = 'EQ'.
  186. &1-dimension = &2.
  187. &1-low = &3.
  188. APPEND &1 to &4.
  189. END-OF-DEFINITION.
  190.  
  191.  
  192. ** "Category
  193. LOOP AT LT_CATEGORY ASSIGNING <LS_CATEGORY>.
  194. MC_DIM_SELECTION LX_ASSUMPTION_SEL 'CATEGORY'
  195. <LS_CATEGORY>-ID LT_ASSUMPTION_SEL.
  196. ENDLOOP.
  197.  
  198. ** "Cycle
  199. LOOP AT LT_CYCLE ASSIGNING <LS_CYCLE>.
  200. MC_DIM_SELECTION LX_ASSUMPTION_SEL 'CYCLE'
  201. <LS_CYCLE>-ID LT_ASSUMPTION_SEL.
  202. ENDLOOP.
  203.  
  204. ** "Rptcurrency
  205. MC_DIM_SELECTION LX_ASSUMPTION_SEL 'RPTCURRENCY'
  206. 'USD' LT_ASSUMPTION_SEL.
  207.  
  208. CALL METHOD ZBPC_CL_GET_MODEL_RECORD=>FETCH
  209. EXPORTING
  210. I_APPSET_ID = I_APPSET_ID
  211. I_APPL_ID = 'Assumption'
  212. IT_SELECTION = LT_ASSUMPTION_SEL
  213. IMPORTING
  214. T_ASSUMPTION = LT_ASSUMPTION_ICP.
  215.  
  216. CALL METHOD zbpc_cl_get_model_record=>fetch2
  217. EXPORTING
  218. i_appset_id = i_appset_id
  219. i_appl_id = <ls_uja_appl>-application_id
  220. it_selection = lt_selection_dim
  221. IMPORTING
  222. er_data = lr_data.
  223.  
  224. *&---------------------------------------------------------------------*
  225. *& GET DIMENSION WITH SELECTION
  226. *&---------------------------------------------------------------------*
  227.  
  228. DATA: LT_POSTRULE TYPE ZBPC_TT_POSTING_RULE_DIM,
  229. LX_POSTRULE TYPE ZBPC_TY_POSTING_RULE_DIM.
  230. DATA: LT_R_POSTRULE TYPE UJ0_T_SEL,
  231. LX_R_POSTRULE TYPE UJ0_S_SEL.
  232.  
  233. LX_R_POSTRULE-DIMENSION = 'POSTING_RULE'.
  234. LX_R_POSTRULE-ATTRIBUTE = 'MODEL'.
  235. LX_R_POSTRULE-SIGN = 'I'.
  236. LX_R_POSTRULE-OPTION = 'EQ'.
  237. LX_R_POSTRULE-LOW = 'CONSOLIDATION'.
  238. APPEND LX_R_POSTRULE TO LT_R_POSTRULE.
  239.  
  240. CALL METHOD ZBPC_CL_GET_DIMENSION_MEMBER=>READ_MBR_DATA
  241. EXPORTING
  242. I_APPSET_ID = I_APPSET_ID "'BPC_PIHC'
  243. I_DIMENSION = 'POSTING_RULE'
  244. IT_SEL = LT_R_POSTRULE
  245. IMPORTING
  246. ET_POSTING_RULE = LT_POSTRULE.
  247. IF LT_POSTRULE[] IS INITIAL.
  248. ** Raise exception
  249. CLEAR: CT_DATA.
  250. LD_LOG = 'Please maintain appropiate Posting Rule'.
  251. CL_UJK_LOGGER=>LOG( I_OBJECT = LD_LOG ).
  252. RAISE EXCEPTION TYPE CX_UJ_CUSTOM_LOGIC.
  253. EXIT.
  254. ENDIF.
  255.  
  256. *&---------------------------------------------------------------------*
  257. *& FINAL
  258. *&---------------------------------------------------------------------*
  259.  
  260. ** Overwrite callback
  261. IF <LT_FINAL> IS INITIAL.
  262. ** Raise exception
  263. CLEAR: CT_DATA.
  264. LD_LOG = 'No final data to be processed'.
  265. CL_UJK_LOGGER=>LOG( I_OBJECT = LD_LOG ).
  266. RAISE EXCEPTION TYPE CX_UJ_CUSTOM_LOGIC.
  267. EXIT.
  268. ELSE.
  269. CT_DATA[] = <LT_FINAL>.
  270. ENDIF.
Add Comment
Please, Sign In to add comment