Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.55 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report ZUV_01_GK_REP_07_TEST
  3. *&---------------------------------------------------------------------*
  4. *&
  5. *&---------------------------------------------------------------------*
  6. REPORT ZUV_01_GK_REP_07_TEST.
  7.  
  8. " TEST REPORT FÜR ZUV_01_GK_07
  9.  
  10. DATA ls_person TYPE zuv_s_01_person.
  11.  
  12. PARAMETERS:
  13. p_id TYPE zuv_e_01_person_id.
  14.  
  15. CALL FUNCTION 'Z_UV_01_OPEN_PERSON'
  16. EXPORTING
  17. iv_id = p_id
  18. IMPORTING
  19. ES_PERSON = ls_person
  20. EXCEPTIONS
  21. NOT_FOUND = 1
  22. OTHERS = 2
  23. .
  24.  
  25. IF sy-subrc <> 0.
  26. WRITE: 'ERROR HAPPENED.'.
  27. ELSE.
  28. WRITE: ls_person-id , /.
  29. WRITE: ls_person-firstname , /.
  30. WRITE: ls_person-lastname , /.
  31. WRITE: ls_person-gender , /.
  32. WRITE: ls_person-age , /.
  33. ENDIF.
  34.  
  35. -------------------------------------------------------------------------------- FuBa
  36.  
  37. FUNCTION ZUV_11_OPEN_PERSON.
  38. *"----------------------------------------------------------------------
  39. *"*"Lokale Schnittstelle:
  40. *" IMPORTING
  41. *" REFERENCE(IV_ID) TYPE ZUV_11_GK_E_ID
  42. *" EXPORTING
  43. *" REFERENCE(ES_PERSON) TYPE ZUV_11_GK_S_PERSON
  44. *" EXCEPTIONS
  45. *" NOT_FOUND
  46. *"----------------------------------------------------------------------
  47.  
  48.  
  49. SELECT SINGLE *
  50. FROM ZUV_11_PERSON
  51. INTO CORRESPONDING FIELDS OF ES_PERSON
  52. WHERE id = IV_ID.
  53.  
  54. IF SY-SUBRC <> 0.
  55. RAISE NOT_FOUND.
  56. ENDIF.
  57.  
  58.  
  59. ENDFUNCTION.
  60.  
  61.  
  62.  
  63.  
  64.  
  65. *&---------------------------------------------------------------------*
  66. *& Include ZCL_UV_11_LCL_PERSON
  67. *&---------------------------------------------------------------------*
  68. CLASS lcl_person DEFINITION CREATE PRIVATE.
  69. PUBLIC SECTION.
  70. INTERFACES lif_persist.
  71. DATA:
  72. gs_person TYPE ZUV_11_PERSON READ-ONLY.
  73.  
  74. METHODS:
  75. CONSTRUCTOR IMPORTING is_person TYPE ZUV_11_PERSON,
  76. SET_FIRSTNAME IMPORTING iv_firstname TYPE ZUV_11_GK_E_FIRSTNAME,
  77. SET_LASTNAME IMPORTING iv_lastname TYPE ZUV_11_GK_E_LASTNAME,
  78. SET_AGE IMPORTING iv_age TYPE ZUV_11_GK_E_AGE,
  79. SET_GENDER IMPORTING iv_gender TYPE ZUV_11_GK_E_GENDER.
  80. ENDCLASS.
  81.  
  82. CLASS lcl_person IMPLEMENTATION.
  83. METHOD CONSTRUCTOR.
  84. gs_person = is_person.
  85. ENDMETHOD.
  86.  
  87. * Interface Implementierung - lif_persist
  88. METHOD lif_persist~load.
  89. DATA:
  90. ls_person TYPE ZUV_11_PERSON,
  91. lo_person TYPE REF TO lcl_person.
  92.  
  93. SELECT SINGLE *
  94. FROM ZUV_11_PERSON
  95. INTO ls_person
  96. WHERE id = IV_ID.
  97.  
  98. IF SY-SUBRC = 0.
  99. CREATE OBJECT lo_person EXPORTING is_person = ls_person.
  100. ro_lif_persist = lo_person.
  101. ENDIF.
  102.  
  103. ENDMETHOD.
  104.  
  105. METHOD lif_persist~new.
  106. DATA:
  107. lo_person TYPE REF TO lcl_person,
  108. ls_person TYPE ZUV_11_PERSON,
  109. lv_maxid TYPE ZUV_11_GK_E_ID.
  110.  
  111. SELECT MAX( id )
  112. FROM ZUV_11_PERSON
  113. INTO lv_maxid.
  114.  
  115. ls_person-id = lv_maxid + 1.
  116. CREATE OBJECT lo_person EXPORTING is_person = ls_person.
  117. ro_lif_persist = lo_person.
  118. ENDMETHOD.
  119.  
  120. METHOD lif_persist~save.
  121.  
  122. *Prüfung, ob Daten vorhanden
  123. IF gs_person-id <> 0.
  124. *Speichern in Datenbank
  125. MODIFY ZUV_11_PERSON FROM gs_person.
  126. COMMIT WORK.
  127. ENDIF.
  128. ENDMETHOD.
  129.  
  130. METHOD lif_persist~delete.
  131. *Prüfung, ob Daten vorhanden
  132. IF gs_person-id <> 0.
  133. *Löschen aus Datenbank
  134. DELETE FROM ZUV_11_PERSON
  135. WHERE id = gs_person-id.
  136. COMMIT WORK.
  137. ENDIF.
  138.  
  139. ENDMETHOD.
  140.  
  141.  
  142. * Setter-Methoden
  143. METHOD SET_FIRSTNAME.
  144. gs_person-firstname = iv_firstname.
  145. ENDMETHOD.
  146.  
  147. METHOD SET_LASTNAME.
  148. gs_person-lastname = iv_lastname.
  149. ENDMETHOD.
  150.  
  151. METHOD SET_AGE.
  152. gs_person-age = iv_age.
  153. ENDMETHOD.
  154.  
  155. METHOD SET_GENDER.
  156. gs_person-gender = iv_gender.
  157. ENDMETHOD.
  158.  
  159. ENDCLASS.
  160.  
  161.  
  162. *&---------------------------------------------------------------------*
  163. *& Include ZCL_UV_11_LIF_PERSIST
  164. *&---------------------------------------------------------------------*
  165. INTERFACE lif_persist.
  166. CLASS-METHODS:
  167. load
  168. IMPORTING iv_id TYPE ZUV_11_GK_E_ID
  169. RETURNING VALUE(ro_lif_persist) TYPE REF TO lif_persist,
  170. new
  171. RETURNING VALUE(ro_lif_persist) TYPE REF TO lif_persist.
  172.  
  173. METHODS:
  174. save,
  175. delete.
  176. ENDINTERFACE.
  177.  
  178.  
  179.  
  180. -------------------------------------------------------------------------------- Global Interface
  181.  
  182. INTERFACE ZCL_UV_11_ZIF_PERSIST
  183. PUBLIC.
  184. CLASS-METHODS:
  185. load
  186. IMPORTING iv_id TYPE ZUV_11_GK_E_ID
  187. RETURNING VALUE(ro_zif_persist) TYPE REF TO ZCL_UV_11_ZIF_PERSIST
  188. RAISING ZCX_11_PERSON,
  189. new
  190. RETURNING VALUE(ro_zif_persist) TYPE REF TO ZCL_UV_11_ZIF_PERSIST.
  191.  
  192. METHODS:
  193. save
  194. RAISING ZCX_11_PERSON,
  195. delete
  196. RAISING ZCX_11_PERSON.
  197. ENDINTERFACE.
  198.  
  199. -------------------------------------------------------------------------------- Global Klasse
  200.  
  201. class ZCL_11_PERSON definition
  202. public
  203. final
  204. create public .
  205. PUBLIC SECTION.
  206. INTERFACES ZCL_UV_11_ZIF_PERSIST.
  207. DATA:
  208. gs_person TYPE ZUV_11_PERSON READ-ONLY.
  209.  
  210. METHODS:
  211. CONSTRUCTOR IMPORTING is_person TYPE ZUV_11_PERSON,
  212. SET_FIRSTNAME IMPORTING iv_firstname TYPE ZUV_11_GK_E_FIRSTNAME,
  213. SET_LASTNAME IMPORTING iv_lastname TYPE ZUV_11_GK_E_LASTNAME,
  214. SET_AGE IMPORTING iv_age TYPE ZUV_11_GK_E_AGE,
  215. SET_GENDER IMPORTING iv_gender TYPE ZUV_11_GK_E_GENDER RAISING ZCX_11_PERSON.
  216. ENDCLASS.
  217.  
  218.  
  219.  
  220. CLASS ZCL_11_PERSON IMPLEMENTATION.
  221.  
  222.  
  223. * <SIGNATURE>---------------------------------------------------------------------------------------+
  224. * | Instance Public Method ZCL_11_PERSON->CONSTRUCTOR
  225. * +-------------------------------------------------------------------------------------------------+
  226. * | [--->] IS_PERSON TYPE ZUV_11_PERSON
  227. * +--------------------------------------------------------------------------------------</SIGNATURE>
  228. METHOD CONSTRUCTOR.
  229. gs_person = is_person.
  230. ENDMETHOD.
  231.  
  232.  
  233. * <SIGNATURE>---------------------------------------------------------------------------------------+
  234. * | Instance Public Method ZCL_11_PERSON->SET_AGE
  235. * +-------------------------------------------------------------------------------------------------+
  236. * | [--->] IV_AGE TYPE ZUV_11_GK_E_AGE
  237. * +--------------------------------------------------------------------------------------</SIGNATURE>
  238. METHOD SET_AGE.
  239. gs_person-age = iv_age.
  240. ENDMETHOD.
  241.  
  242.  
  243. * <SIGNATURE>---------------------------------------------------------------------------------------+
  244. * | Instance Public Method ZCL_11_PERSON->SET_FIRSTNAME
  245. * +-------------------------------------------------------------------------------------------------+
  246. * | [--->] IV_FIRSTNAME TYPE ZUV_11_GK_E_FIRSTNAME
  247. * +--------------------------------------------------------------------------------------</SIGNATURE>
  248. METHOD SET_FIRSTNAME.
  249. gs_person-firstname = iv_firstname.
  250. ENDMETHOD.
  251.  
  252.  
  253. * <SIGNATURE>---------------------------------------------------------------------------------------+
  254. * | Instance Public Method ZCL_11_PERSON->SET_GENDER
  255. * +-------------------------------------------------------------------------------------------------+
  256. * | [--->] IV_GENDER TYPE ZUV_11_GK_E_GENDER
  257. * | [!CX!] ZCX_11_PERSON
  258. * +--------------------------------------------------------------------------------------</SIGNATURE>
  259. METHOD SET_GENDER.
  260. IF iv_gender = 'W' OR iv_gender = 'M' OR iv_gender = 'w' OR iv_gender = 'm' OR iv_gender = ''.
  261. gs_person-gender = iv_gender.
  262. ELSE.
  263. RAISE EXCEPTION TYPE ZCX_11_PERSON_INVALID_GENDER EXPORTING textid = ZCX_11_PERSON_INVALID_GENDER=>ZCX_11_PERSON_INVALID_GENDER.
  264. ENDIF.
  265. ENDMETHOD.
  266.  
  267.  
  268. * <SIGNATURE>---------------------------------------------------------------------------------------+
  269. * | Instance Public Method ZCL_11_PERSON->SET_LASTNAME
  270. * +-------------------------------------------------------------------------------------------------+
  271. * | [--->] IV_LASTNAME TYPE ZUV_11_GK_E_LASTNAME
  272. * +--------------------------------------------------------------------------------------</SIGNATURE>
  273. METHOD SET_LASTNAME.
  274. gs_person-lastname = iv_lastname.
  275. ENDMETHOD.
  276.  
  277.  
  278. * <SIGNATURE>---------------------------------------------------------------------------------------+
  279. * | Instance Public Method ZCL_11_PERSON->ZCL_UV_11_ZIF_PERSIST~DELETE
  280. * +-------------------------------------------------------------------------------------------------+
  281. * | [!CX!] ZCX_11_PERSON
  282. * +--------------------------------------------------------------------------------------</SIGNATURE>
  283. METHOD ZCL_UV_11_ZIF_PERSIST~delete.
  284. *Prüfung, ob Daten vorhanden
  285. IF gs_person-id <> 0.
  286. *Löschen aus Datenbank
  287. DELETE FROM ZUV_11_PERSON
  288. WHERE id = gs_person-id.
  289. COMMIT WORK.
  290. ELSE.
  291. RAISE EXCEPTION TYPE ZCX_11_PERSON EXPORTING textid = ZCX_11_PERSON=>ID_NOT_SET.
  292. ENDIF.
  293.  
  294. ENDMETHOD.
  295.  
  296.  
  297. * <SIGNATURE>---------------------------------------------------------------------------------------+
  298. * | Static Public Method ZCL_11_PERSON=>ZCL_UV_11_ZIF_PERSIST~LOAD
  299. * +-------------------------------------------------------------------------------------------------+
  300. * | [--->] IV_ID TYPE ZUV_11_GK_E_ID
  301. * | [<-()] RO_ZIF_PERSIST TYPE REF TO ZCL_UV_11_ZIF_PERSIST
  302. * | [!CX!] ZCX_11_PERSON
  303. * +--------------------------------------------------------------------------------------</SIGNATURE>
  304. METHOD ZCL_UV_11_ZIF_PERSIST~load.
  305. DATA:
  306. ls_person TYPE ZUV_11_PERSON,
  307. lo_person TYPE REF TO ZCL_11_PERSON.
  308.  
  309. SELECT SINGLE *
  310. FROM ZUV_11_PERSON
  311. INTO ls_person
  312. WHERE id = IV_ID.
  313.  
  314. IF SY-SUBRC = 0.
  315. CREATE OBJECT lo_person EXPORTING is_person = ls_person.
  316. ro_ZIF_PERSIST = lo_person.
  317. ELSE.
  318. RAISE EXCEPTION TYPE ZCX_11_PERSON_ID_NOT_FOUND EXPORTING textid = ZCX_11_PERSON_ID_NOT_FOUND=>ZCX_11_PERSON_ID_NOT_FOUND VALUE_ID = IV_ID.
  319. ENDIF.
  320.  
  321. ENDMETHOD.
  322.  
  323.  
  324. * <SIGNATURE>---------------------------------------------------------------------------------------+
  325. * | Static Public Method ZCL_11_PERSON=>ZCL_UV_11_ZIF_PERSIST~NEW
  326. * +-------------------------------------------------------------------------------------------------+
  327. * | [<-()] RO_ZIF_PERSIST TYPE REF TO ZCL_UV_11_ZIF_PERSIST
  328. * +--------------------------------------------------------------------------------------</SIGNATURE>
  329. METHOD ZCL_UV_11_ZIF_PERSIST~new.
  330. DATA:
  331. lo_person TYPE REF TO ZCL_11_PERSON,
  332. ls_person TYPE ZUV_11_PERSON,
  333. lv_maxid TYPE ZUV_11_GK_E_ID.
  334.  
  335. SELECT MAX( id )
  336. FROM ZUV_11_PERSON
  337. INTO lv_maxid.
  338.  
  339. ls_person-id = lv_maxid + 1.
  340. CREATE OBJECT lo_person EXPORTING is_person = ls_person.
  341. ro_ZIF_PERSIST = lo_person.
  342. ENDMETHOD.
  343.  
  344.  
  345. * <SIGNATURE>---------------------------------------------------------------------------------------+
  346. * | Instance Public Method ZCL_11_PERSON->ZCL_UV_11_ZIF_PERSIST~SAVE
  347. * +-------------------------------------------------------------------------------------------------+
  348. * | [!CX!] ZCX_11_PERSON
  349. * +--------------------------------------------------------------------------------------</SIGNATURE>
  350. METHOD ZCL_UV_11_ZIF_PERSIST~save.
  351.  
  352. *Prüfung, ob Daten vorhanden
  353. IF gs_person-id <> 0.
  354. *Speichern in Datenbank
  355. MODIFY ZUV_11_PERSON FROM gs_person.
  356. COMMIT WORK.
  357. ELSE.
  358. RAISE EXCEPTION TYPE ZCX_11_PERSON_ID_NOT_SET EXPORTING textid = ZCX_11_PERSON_ID_NOT_SET=>ZCX_11_PERSON_ID_NOT_SET.
  359. ENDIF.
  360. ENDMETHOD.
  361. ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement