Appendix: Program for Object Type Z_BUS2032
***** Implementation of object type Z_BUS2032 *****
INCLUDE <OBJECT>.
BEGIN_DATA OBJECT. " Do not change.. DATA is generated
* only private members may be inserted into structure private
DATA:
" begin of private,
" to declare private attributes remove comments and
" insert private attributes here ...
" end of private,
BEGIN OF KEY,
SALESDOCUMENT LIKE VBAK-VBELN,
END OF KEY,
SALESGROUP TYPE SWC_OBJECT,
..ITEMS TYPE SWC_OBJECT OCCURS 0,
TEXTWITHDOCUMENTNO LIKE SYST-TITLE,
_VBAK LIKE VBAK.
END_DATA OBJECT. " Do not change.. DATA is generated
TABLES VBAK.
*
GET_TABLE_PROPERTY VBAK.
DATA SUBRC LIKE SY-SUBRC.
* Fill TABLES VBAK to enable Object Manager Access to Table Properties
PERFORM SELECT_TABLE_VBAK USING SUBRC.
IF SUBRC NE 0.
EXIT_OBJECT_NOT_FOUND.
ENDIF.
END_PROPERTY.
*
* Use Form also for other(virtual) Properties to fill TABLES VBAK
FORM SELECT_TABLE_VBAK USING SUBRC LIKE SY-SUBRC.
* Select single * from VBAK, if OBJECT-_VBAK is initial
IF OBJECT-_VBAK-MANDT IS INITIAL
AND OBJECT-_VBAK-VBELN IS INITIAL.
SELECT SINGLE * FROM VBAK CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND VBELN = OBJECT-KEY-SALESDOCUMENT.
SUBRC = SY-SUBRC.
IF SUBRC NE 0. EXIT. ENDIF.
OBJECT-_VBAK = VBAK.
ELSE.
SUBRC = 0.
VBAK = OBJECT-_VBAK.
ENDIF.
ENDFORM.
GET_PROPERTY TEXTWITHDOCUMENTNO CHANGING CONTAINER.
DATA:
SALESDOCUMENT LIKE VBAK-VBELN,
DOCUMENTDATE LIKE VBAK-AUDAT.
SWC_GET_PROPERTY SELF 'SalesDocument' SALESDOCUMENT.
SWC_GET_PROPERTY SELF 'DocumentDate' DOCUMENTDATE.
CONCATENATE 'sales order' SALESDOCUMENT 'of' DOCUMENTDATE
INTO OBJECT-TEXTWITHDOCUMENTNO SEPARATED BY SPACE.
SWC_SET_ELEMENT CONTAINER 'TextWithDocumentNo'
OBJECT-TEXTWITHDOCUMENTNO.
END_PROPERTY.
GET_PROPERTY SALESGROUP CHANGING CONTAINER.
SELECT SINGLE * FROM VBAK WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
SWC_CREATE_OBJECT OBJECT-SALESGROUP 'TVKGR' VBAK-VKGRP.
SWC_SET_ELEMENT CONTAINER 'SalesGroup' OBJECT-SALESGROUP.
END_PROPERTY.
GET_PROPERTY ITEMS CHANGING CONTAINER.
* Declare data
TABLES VBAP.
REFRESH OBJECT-ITEMS.
DATA ITEM TYPE SWC_OBJECT.
DATA:
BEGIN OF VBAP_KEY,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
END OF VBAP_KEY.
DATA BEGIN OF VBAP_TAB OCCURS 0.
INCLUDE STRUCTURE VBAP.
DATA END OF VBAP_TAB.
* Select data
SELECT * FROM VBAP INTO TABLE VBAP_TAB
WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
VBAP_KEY-VBELN = OBJECT-KEY-SALESDOCUMENT.
*
Create object reference
LOOP AT VBAP_TAB.
VBAP_KEY-POSNR = VBAP_TAB-POSNR.
SWC_CREATE_OBJECT ITEM 'VBAP' VBAP_KEY.
APPEND ITEM TO OBJECT-ITEMS.
ENDLOOP.
* Assign object reference to container element
SWC_SET_TABLE CONTAINER 'Items' OBJECT-ITEMS.
END_PROPERTY.
BEGIN_METHOD EDIT CHANGING CONTAINER.
SET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
SWC_REFRESH_OBJECT SELF.
END_METHOD.
BEGIN_METHOD EXISTENCECHECK CHANGING CONTAINER.
SELECT SINGLE * FROM VBAK
WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
IF SY-SUBRC NE 0.
EXIT_RETURN 0001 SPACE SPACE SPACE SPACE.
ENDIF.
END_METHOD.
BEGIN_METHOD DISPLAY CHANGING CONTAINER.
SET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
END_METHOD.
BEGIN_METHOD CREATE CHANGING CONTAINER.
DATA:
SALESDOCUMENTTYPE LIKE VBAK-AUART.
SWC_GET_ELEMENT CONTAINER 'SalesDocumentType' SALESDOCUMENTTYPE.
SET PARAMETER ID 'AAT' FIELD SALESDOCUMENTTYPE.
CALL TRANSACTION 'VA01' AND SKIP FIRST SCREEN.
GET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
END_METHOD.