Appendix: Implementation Program for Object Type Z_BUS2032

001        *****      Implementation of object type Z_BUS2032           ****
002     INCLUDE <OBJECT>.
003     BEGIN_DATA OBJECT.      " Do not change.. DATA is generated
004     * only private members may be inserted into structure private
005     DATA:
006     " begin of private,
007     "   to declare private attributes remove comments and
008     "   insert private attributes here...
009     " end of private,
010     BEGIN OF KEY,
011         SALESDOCUMENT LIKE VBAK-VBELN,
012       END OF KEY,
013       SALESGROUP TYPE SWC_OBJECT,
014     ..ITEMS TYPE SWC_OBJECT OCCURS 0,
015       TEXTWITHDOCUMENTNO LIKE SYST-TITLE,
016       _VBAK LIKE VBAK.
017     END_DATA OBJECT. " Do not change.. DATA is generated
018
019     TABLES VBAK.
020     *
021     GET_TABLE_PROPERTY VBAK.
022     DATA SUBRC LIKE SY-SUBRC.
023     * Fill TABLES VBAK to enable Object Manager Access to Table Properties
024       PERFORM SELECT_TABLE_VBAK USING SUBRC.
025       IF SUBRC NE 0.
026         EXIT_OBJECT_NOT_FOUND.
027       ENDIF.
028     END_PROPERTY.
029     *
030     * Use Form also for other(virtual) Properties to fill TABLES VBAK
031     FORM SELECT_TABLE_VBAK USING SUBRC LIKE SY-SUBRC.
032     * Select single * from VBAK, if OBJECT-_VBAK is initial
033       IF OBJECT-_VBAK-MANDT IS INITIAL
034       AND OBJECT-_VBAK-VBELN IS INITIAL.
035         SELECT SINGLE * FROM VBAK CLIENT SPECIFIED
036           WHERE MANDT = SY-MANDT
037           AND VBELN = OBJECT-KEY-SALESDOCUMENT.
038         SUBRC = SY-SUBRC.
039         IF SUBRC NE 0. EXIT. ENDIF.
040         OBJECT-_VBAK = VBAK.
041       ELSE.
042         SUBRC = 0.
043         VBAK = OBJECT-_VBAK.
044       ENDIF.
045     ENDFORM.
046
047     GET_PROPERTY TEXTWITHDOCUMENTNO CHANGING CONTAINER.
048       DATA:
049         SALESDOCUMENT LIKE VBAK-VBELN,
050         DOCUMENTDATE LIKE VBAK-AUDAT.
051       SWC_GET_PROPERTY SELF 'SalesDocument' SALESDOCUMENT.
052       SWC_GET_PROPERTY SELF 'DocumentDate' DOCUMENTDATE.
053       CONCATENATE 'Kundenauftrag' SALESDOCUMENT 'vom' DOCUMENTDATE
054         INTO OBJECT-TEXTWITHDOCUMENTNO SEPARATED BY SPACE.
055       SWC_SET_ELEMENT CONTAINER 'TextWithDocumentNo'
056         OBJECT-TEXTWITHDOCUMENTNO.
057     END_PROPERTY.
058
059     GET_PROPERTY SALESGROUP CHANGING CONTAINER.
060         SELECT SINGLE * FROM VBAK WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
061       SWC_CREATE_OBJECT OBJECT-SALESGROUP 'TVKGR' VBAK-VKGRP.
062       SWC_SET_ELEMENT CONTAINER 'SalesGroup' OBJECT-SALESGROUP.
063     END_PROPERTY.
064
065     GET_PROPERTY ITEMS CHANGING CONTAINER.
066     
067     * Declare data
068       TABLES VBAP.
069       REFRESH OBJECT-ITEMS.
070       DATA ITEM TYPE SWC_OBJECT.
071       DATA:
072         BEGIN OF VBAP_KEY,
073           VBELN LIKE VBAP-VBELN,
074           POSNR LIKE VBAP-POSNR
075         END OF VBAP_KEY.
076       DATA BEGIN OF VBAP_TAB OCCURS 0.
077         INCLUDE STRUCTURE VBAP.
078       DATA END OF VBAP_TAB.
079
080     * Select data
081       SELECT * FROM VBAP INTO TABLE VBAP_TAB
082         WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
083
084         VBAP_KEY-VBELN = OBJECT-KEY-SALESDOCUMENT.
085
086     *   Create object reference
087         LOOP AT VBAP_TAB.
088           VBAP_KEY-POSNR = VBAP_TAB-POSNR.
089           SWC_CREATE_OBJECT ITEM 'VBAP' VBAP_KEY.
090           APPEND ITEM TO OBJECT-ITEMS.
091         ENDLOOP.
092
093     * Assign object reference to container element
094       SWC_SET_TABLE CONTAINER 'Items' OBJECT-ITEMS.
095
096     END_PROPERTY.
097
098     BEGIN_METHOD EDIT CHANGING CONTAINER.
099       SET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
100       CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
101       SWC_REFRESH_OBJECT SELF.
102     END_METHOD.
103
104     BEGIN_METHOD EXISTENCECHECK CHANGING CONTAINER.
105       SELECT SINGLE * FROM VBAK
106         WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
107
108         IF SY-SUBRC NE 0.
109           EXIT_RETURN 0001 SPACE SPACE SPACE SPACE.
110         ENDIF.
111     END_METHOD.
112
113     BEGIN_METHOD DISPLAY CHANGING CONTAINER.
114       SET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
115       CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
116     END_METHOD.
117
118     BEGIN_METHOD CREATE CHANGING CONTAINER.
119     DATA:
120          SALESDOCUMENTTYPE LIKE VBAK-AUART.
121       SWC_GET_ELEMENT CONTAINER 'SalesDocumentType' SALESDOCUMENTTYPE.
122       SET PARAMETER ID 'AAT' FIELD SALESDOCUMENTTYPE.
123       CALL TRANSACTION 'VA01' AND SKIP FIRST SCREEN.
124       GET PARAMETER ID 'AUN' FIELD OBJECT-KEY-SALESDOCUMENT.
125     END_METHOD.