Appendix: Program for Object Type Z_BUS2032 

  1. ***** Implementation of object type Z_BUS2032 *****
  2. INCLUDE <OBJECT>.
  3. BEGIN_DATA OBJECT. " Do not change.. DATA is generated
  4. * only private members may be inserted into structure private
  5. DATA:
  6. " begin of private,
  7. " to declare private attributes remove comments and
  8. " insert private attributes here ...
  9. " end of private,
  10. BEGIN OF KEY,
  11. SALESDOCUMENT LIKE VBAK-VBELN,
  12. END OF KEY,
  13. SALESGROUP TYPE SWC_OBJECT,
  14. ..ITEMS TYPE SWC_OBJECT OCCURS 0,
  15. TEXTWITHDOCUMENTNO LIKE SYST-TITLE,
  16. _VBAK LIKE VBAK.
  17. END_DATA OBJECT. " Do not change.. DATA is generated
  18. TABLES VBAK.
  19. *
  20. GET_TABLE_PROPERTY VBAK.
  21. DATA SUBRC LIKE SY-SUBRC.
  22. * Fill TABLES VBAK to enable Object Manager Access to Table Properties
  23. PERFORM SELECT_TABLE_VBAK USING SUBRC.
  24. IF SUBRC NE 0.
  25. EXIT_OBJECT_NOT_FOUND.
  26. ENDIF.
  27. END_PROPERTY.
  28. *
  29. * Use Form also for other(virtual) Properties to fill TABLES VBAK
  30. FORM SELECT_TABLE_VBAK USING SUBRC LIKE SY-SUBRC.
  31. * Select single * from VBAK, if OBJECT-_VBAK is initial
  32. IF OBJECT-_VBAK-MANDT IS INITIAL
  33. AND OBJECT-_VBAK-VBELN IS INITIAL.
  34. SELECT SINGLE * FROM VBAK CLIENT SPECIFIED
  35. WHERE MANDT = SY-MANDT
  36. AND VBELN = OBJECT-KEY-SALESDOCUMENT.
  37. SUBRC = SY-SUBRC.
  38. IF SUBRC NE 0. EXIT. ENDIF.
  39. OBJECT-_VBAK = VBAK.
  40. ELSE.
  41. SUBRC = 0.
  42. VBAK = OBJECT-_VBAK.
  43. ENDIF.
  44. ENDFORM.
  45. GET_PROPERTY TEXTWITHDOCUMENTNO CHANGING CONTAINER.
  46. DATA:
  47. SALESDOCUMENT LIKE VBAK-VBELN,
  48. DOCUMENTDATE LIKE VBAK-AUDAT.
  49. SWC_GET_PROPERTY SELF 'SalesDocument' SALESDOCUMENT.
  50. SWC_GET_PROPERTY SELF 'DocumentDate' DOCUMENTDATE.
  51. CONCATENATE 'sales order' SALESDOCUMENT 'of' DOCUMENTDATE
  52. INTO OBJECT-TEXTWITHDOCUMENTNO SEPARATED BY SPACE.
  53. SWC_SET_ELEMENT CONTAINER 'TextWithDocumentNo'
  54. OBJECT-TEXTWITHDOCUMENTNO.
  55. END_PROPERTY.
  56. GET_PROPERTY SALESGROUP CHANGING CONTAINER.
  57. SELECT SINGLE * FROM VBAK WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
  58. SWC_CREATE_OBJECT OBJECT-SALESGROUP 'TVKGR' VBAK-VKGRP.
  59. SWC_SET_ELEMENT CONTAINER 'SalesGroup' OBJECT-SALESGROUP.
  60. END_PROPERTY.
  61. GET_PROPERTY ITEMS CHANGING CONTAINER.
  62. * Declare data
  63. TABLES VBAP.
  64. REFRESH OBJECT-ITEMS.
  65. DATA ITEM TYPE SWC_OBJECT.
  66. DATA:
  67. BEGIN OF VBAP_KEY,
  68. VBELN LIKE VBAP-VBELN,
  69. POSNR LIKE VBAP-POSNR,
  70. END OF VBAP_KEY.
  71. DATA BEGIN OF VBAP_TAB OCCURS 0.
  72. INCLUDE STRUCTURE VBAP.
  73. DATA END OF VBAP_TAB.
  74. * Select data
  75. SELECT * FROM VBAP INTO TABLE VBAP_TAB
  76. WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
  77. VBAP_KEY-VBELN = OBJECT-KEY-SALESDOCUMENT.
  78. * Create object reference
  79. LOOP AT VBAP_TAB.
  80. VBAP_KEY-POSNR = VBAP_TAB-POSNR.
  81. SWC_CREATE_OBJECT ITEM 'VBAP' VBAP_KEY.
  82. APPEND ITEM TO OBJECT-ITEMS.
  83. ENDLOOP.
  84. * Assign object reference to container element
  85. SWC_SET_TABLE CONTAINER 'Items' OBJECT-ITEMS.
  86. END_PROPERTY.
  87. BEGIN_METHOD EDIT CHANGING CONTAINER.
  88. SET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
  89. CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
  90. SWC_REFRESH_OBJECT SELF.
  91. END_METHOD.
  92. BEGIN_METHOD EXISTENCECHECK CHANGING CONTAINER.
  93. SELECT SINGLE * FROM VBAK
  94. WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
  95. IF SY-SUBRC NE 0.
  96. EXIT_RETURN 0001 SPACE SPACE SPACE SPACE.
  97. ENDIF.
  98. END_METHOD.
  99. BEGIN_METHOD DISPLAY CHANGING CONTAINER.
  100. SET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
  101. CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
  102. END_METHOD.
  103. BEGIN_METHOD CREATE CHANGING CONTAINER.
  104. DATA:
  105. SALESDOCUMENTTYPE LIKE VBAK-AUART.
  106. SWC_GET_ELEMENT CONTAINER 'SalesDocumentType' SALESDOCUMENTTYPE.
  107. SET PARAMETER ID 'AAT' FIELD SALESDOCUMENTTYPE.
  108. CALL TRANSACTION 'VA01' AND SKIP FIRST SCREEN.
  109. GET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
  110. END_METHOD.