Workshop Business Data Toolset (BDT) Carsten Köhler Ralf Irrgang SAP AG 2000 Workshop: Business Data Toolset 1 (Carsten Köhler, Ralf Irrgang) Contents: 1 2 3 4 5 6 7 8 9 10 11 12 13 SAP AG 2000 Overview Development with BDT Screen Layout Screen Sequences Program Logic GUI Menu Field Grouping Search Help Change Document Evaluation Archiving in the Context of the BDT Editing Mode Calling Maintenance Future Developments Workshop: Business Data Toolset 2 (Carsten Köhler, Ralf Irrgang) Chapter 1 Overview SAP AG 2000 Workshop: Business Data Toolset 3 (Carsten Köhler, Ralf Irrgang) Business Data Toolset (BDT): Definition: Toolset for master data and simple transaction data SAP AG 2000 Workshop: Business Data Toolset 4 (Carsten Köhler, Ralf Irrgang) Design Targets: Extensibility Configurability Divisibility Alternative user interfaces Usability Quicker development Generic BDT services SAP AG 2000 Workshop: Business Data Toolset 5 (Carsten Köhler, Ralf Irrgang) Extensibility Tables Append/Include structures Own tables Screen layout and screen sequence Program logic Event technique Field checks Data retention SAP AG 2000 Workshop: Business Data Toolset 6 (Carsten Köhler, Ralf Irrgang) Extensibility : Development cycle Development spread over various systems C u s t. Without modifications DevtP. DevtP. DevtPartner1 IS-U IS-B MM MM SD C IBS R FI IBS Central M FI SD TR Data TR-TM SEM IS-IS DevtPartner2 DevtPartner Customer SAP AG 2000 Workshop: Business Data Toolset 7 (Carsten Köhler, Ralf Irrgang) C u s t. Configurability - Screen Layout Change Business Partner:Address Partner Partner SAP BP Form of address First name Last name TESTER Name Form of address 01 First name Otto Last name Tester Address BAS Street/Number Postcode/City SD Delivery district Transport zone SAP AG 2000 Workshop: Business Data Toolset 8 (Carsten Köhler, Ralf Irrgang) Street/Number Lindenstrasse Postcode/City 69121 Delivery district 123456 Transport zone 1122 10 Heidelberg Configurability Customizing Screen Layout/Sequence Configuration via Drag&Drop (Visual Basic) Screen layout and screen sequence Technique SAP AG 2000 Workshop: Business Data Toolset 9 (Carsten Köhler, Ralf Irrgang) Subscreens Generation of screen containers Divisibility Depending on business criteria, objects can be split into parts. These parts can be maintained individually. Choices Each object can be created in one or several object parts. Example: A business partner can assume different BP roles. A range of attributes is assigned to each BP role. Each object can be created in just one object part Each object is always created as one whole part, no divisibility is required. Example: A contract account is always maintained with all attributes. SAP AG 2000 Workshop: Business Data Toolset 10 (Carsten Köhler, Ralf Irrgang) Alternative User Interfaces SAPGUI WEB Visual Basic etc. CHECK Function Module Check DB_UPDATE Function Module Data Retention SAP AG 2000 Workshop: Business Data Toolset 11 (Carsten Köhler, Ralf Irrgang) Direct Input Usability With Any Object Others ... SAP BP ApplObject ???? ApplObject BUPA BDT SAP BPRelationships Claims Capture ApplObject BUPR ApplObject ICL Bank Account ApplObject BKK Contract Account ApplObject FICA SAP AG 2000 Workshop: Business Data Toolset 12 (Carsten Köhler, Ralf Irrgang) IS-RE Contract ApplObject RECN Development: Without BDT Processing Transactions Field Grouping Service Authorizations SAP AG 2000 Data Transfer Workshop: Business Data Toolset 13 (Carsten Köhler, Ralf Irrgang) Change Document Evaluations Notes Quicker Development: With BDT Service Central BDT service Less development work SAP AG 2000 Workshop: Business Data Toolset 14 (Carsten Köhler, Ralf Irrgang) Generic BDT Services Direct Input Field control (optional, required, hide) Transfer mode Time dependency (interval calculation) Change documents (scheduled change documents) Notes Authorizations Archiving Deletion programs SAP AG 2000 Workshop: Business Data Toolset 15 (Carsten Köhler, Ralf Irrgang) Chapter 2 Development with the BDT SAP AG 2000 Workshop: Business Data Toolset 16 (Carsten Köhler, Ralf Irrgang) How the Business Data Toolset (BDT) Is Positioned Application Objects Bank Account (BKKA) SAP BP Relationships (BUPR) SAP BP (BUPA) Contract Account (FICA) Others... ... BDT SAP Basis (DDIC, Development Environment, ABAP...) SAP AG 2000 Workshop: Business Data Toolset 17 (Carsten Köhler, Ralf Irrgang) BDT - Where does Application Development Take Place? Application Objects SAP BP ApplObj BUPA Applications SAP Application I SAP Application II Customer Function Group Function Group Function Group SubSubFuMo Fubau screen screen SubSubFuMo Fubau screen screen SubSubFuMo Fubau screen screen SAP AG 2000 Workshop: Business Data Toolset 18 (Carsten Köhler, Ralf Irrgang) Applications Applications are assigned to application objects The following can be applications SAP component Development partner Customer Separate function group per application Decoupling Communication with the BDT via event modules Communication between applications with GET modules SAP AG 2000 Workshop: Business Data Toolset 19 (Carsten Köhler, Ralf Irrgang) Overview: Development with the BDT Applications SAP Application I SAP Application II Customers SAP BP (BUPA) Development DDIC SAP AG 2000 Development WB Workshop: Business Data Toolset 20 (Carsten Köhler, Ralf Irrgang) BDT Control Tables BDT/Development: Data Dictionary Applications SAP Application I SAP Application II Table: BUT000 ... ... ... Append ZZ_... ZZ_... Customers Table: ZZ_... ... ... ... ... ... ... Development in the DDIC SAP AG 2000 Workshop: Business Data Toolset 21 (Carsten Köhler, Ralf Irrgang) Tables Existing tables can be extended by INCLUDES APPENDS New tables can be created and integrated into the maintenance For each table there is an owning application several participating applications SAP AG 2000 Workshop: Business Data Toolset 22 (Carsten Köhler, Ralf Irrgang) BDT/Development: Development Workbench Function Group Function Modules ISSTA ISDAT Events per application ... GET Dynpros PBO Module • 0010 First Contact • PBO • ... Collect Events per table ... ..._PBC_.. PAI Module • PAI • ... SAP AG 2000 Workshop: Business Data Toolset 23 (Carsten Köhler, Ralf Irrgang) ..._PBO_.. ..._PAI_.. ... Events per view Program logic ISDST BDT/Development: DWB - Events per Application ISSTA ISSTA Initialization ISDAT ISDAT Read data from DB ISDST ISDST Distribute data to participating applications FCODE Edit own function code XCHNG XCHNG Check whether data changed DCHCK DCHCK Check before saving DSAVB Collect data with owning application DTAKE Note data in global memory DSAVC Complete data (get internal number) DSAVE Save data in DB DLVE1 DLVE1 Initialize current memory DLVE2 DLVE2 Initialize global memory SAP AG 2000 Workshop: Business Data Toolset 24 (Carsten Köhler, Ralf Irrgang) BDT/Development: DWB - Events per Table Owning Application Communication: via Get and Collect Modules Participating Application ..._GET Participating Application ..._COLLECT Call SAP AG 2000 Workshop: Business Data Toolset 25 (Carsten Köhler, Ralf Irrgang) Data Flow BDT/Development: DWB - Events per View Geschäftspartner ändern: Anschrift Partner TESTER Activate screen type: “subscreen” 01 Otto Tester Create layout Flow logic Name Anrede Vorname Nachname Create subscreen with Screen Painter PBO module call PAI module call Anschrift Straße/Hausnr Postleitzahl/Ort Lindenstraße 10 69121 Heidelberg ZZ_... Date of first contact Rating of first contact SAP AG 2000 BUS_PBO BUS_PAI Events - create function modules per view Create FuMo “before the screen call“ Create FuMo “before output” Create FuMo “after input” Workshop: Business Data Toolset 26 (Carsten Köhler, Ralf Irrgang) Tables: Exercises Create the APPEND structure ZBUT000 for the table BUT000 with the fields ZZCNT_FIRST Date of the first contact ZZCNTID Rating of the first contact Create table ZBUTHOBBY with the fields CLIENT PARTNER Partner number Key HOBBY Key SAP AG 2000 Client Hobby Key Workshop: Business Data Toolset 27 (Carsten Köhler, Ralf Irrgang) Chapter 3 Screen Layout SAP AG 2000 Workshop: Business Data Toolset 28 (Carsten Köhler, Ralf Irrgang) Screen Layout: Targets Extensions and changes to screens are possible Add other fields in new frames in existing frames Assign fields differently, even between screens Merge screens No changes to Development Workbench objects of BDT of other applications SAP AG 2000 Workshop: Business Data Toolset 29 (Carsten Köhler, Ralf Irrgang) Screen Layout: Screen->Section->View Change Partner: Address A screen contains one or several sections View 2 A section contains one or several views View 3 A view is presented by a subscreen View 1 Section 1 Screen 1 View 4 Section 2 View 5 View 6 View 7 Section 3 View 8 SAP AG 2000 Workshop: Business Data Toolset 30 (Carsten Köhler, Ralf Irrgang) Screen Layout: View (Definition) Properties are summarized in a view if they belong together from a content point of view are tested together View = Subscreen View belongs to an application Assignment view --> field groups (field grouping) Multiple usage of views in object parts is possible (Example: BP roles) SAP AG 2000 Workshop: Business Data Toolset 31 (Carsten Köhler, Ralf Irrgang) Screen Layout: View (Attributes) Event function module Before output (PBO): Display explanatory texts, ... After entry (PAI): Field checks, ... Before screen call (PBC): Sort table, begin display with first entry Only display view if the application of the view is active the view is assigned to the maintaining object part/s Processing logic of subscreen Call function module BUS_PBO in PBO (field grouping, messages) Call function module BUS_PAI in PAI (determine cursor position) SAP AG 2000 Workshop: Business Data Toolset 32 (Carsten Köhler, Ralf Irrgang) Screen Layout: View (Further Checks) Owning application of view Carry out checks in a function module Define name of function modules in the attributes of a view All other applications Carry out checks in an own function module Add name of function module under "Further checks" Important note: Output all error messages via message handler (function module BUS_MESSAGE_STORE) SAP AG 2000 Workshop: Business Data Toolset 33 (Carsten Köhler, Ralf Irrgang) Screen Layout: Section Assignment section --> views Sequence of views by way of position numbers Frame around a section (exception: header data) Frame title for each section SAP AG 2000 Workshop: Business Data Toolset 34 (Carsten Köhler, Ralf Irrgang) Screen Layout: Screen Assignment Screen --> Sections Sequence of sections by way of position numbers Presentation as normal screen (full screen) modal dialog box (popup) Screen title for each screen External screens (not created with BDT) SAP AG 2000 Workshop: Business Data Toolset 35 (Carsten Köhler, Ralf Irrgang) Screen Layout: Screen Containers Consist of subscreen areas and frames (section frames) Assignment screen --> screen container When the screen layout is saved, the system automatically looks for a matching screen container generates a new screen container, if required Transport: Determination of the screen container is conducted during import of data (AFTER_IMP-Method) Restriction: Only subscreens among themselves SAP AG 2000 Workshop: Business Data Toolset 36 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner: SAP AG 2000 Empty screen container for screen B1 Workshop: Business Data Toolset 37 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address SAP AG 2000 Empty screen container for screen B1 Include screen title in screen container title Workshop: Business Data Toolset 38 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner Include screen title in screen container title Fill 1st view for 1st section SAP AG 2000 TESTER Workshop: Business Data Toolset 39 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner Include screen title in screen container title Fill 1st view for 1st section Present title of 2nd section Name SAP AG 2000 TESTER Workshop: Business Data Toolset 40 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner Include screen title in screen container title Fill 1st view for 1st section Present title of 2nd section Fill 1st view for 2nd section TESTER Name Form of addr. SAP AG 2000 01 Workshop: Business Data Toolset 41 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner Include screen title in screen container title Fill 1st view for 1st section Present title of 2nd section Fill 1st view for 2nd section Fill 2nd view for 2nd section TESTER Name Form of addr. 01 First name Last name Otto Tester SAP AG 2000 Workshop: Business Data Toolset 42 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner Include screen title in screen container title Fill 1st view for 1st section Present title of 2nd section Fill 1st view for 2nd section Fill 2nd view for 2nd section Present title of 3rd section TESTER Name Form of addr. 01 First name Last name Otto Tester Address SAP AG 2000 Workshop: Business Data Toolset 43 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner Include screen title in screen container title Fill 1st view for 1st section Present title of 2nd section Fill 1st view for 2nd section Fill 2nd view for 2nd section Present title of 3rd section Fill 1st view for 3rd section TESTER Name Form of addr. 01 First name Last name Otto Tester Address Street/number Postcode/City SAP AG 2000 Lindenstraße 10 69121 Heidelberg Workshop: Business Data Toolset 44 (Carsten Köhler, Ralf Irrgang) Screen Layout: Procedure Change Business Partner:Address Empty screen container for screen B1 Partner TESTER Include screen title in screen container title 01 Otto Tester Fill 1st view for 1st section Present title of 2nd section Fill 1st view for 2nd section Fill 2nd view for 2nd section Present title of 3rd section Fill 1st view for 3rd section Compress screen Name Form of addr. First name Last name Address Street/number Postcode/City SAP AG 2000 Lindenstraße 10 69121 Heidelberg Workshop: Business Data Toolset 45 (Carsten Köhler, Ralf Irrgang) Screen Layout: Exercise 1 Within your function group create two screens (screen category = subscreen!) and incorporate these into the dialog. Screen 0010 Include fields of APPEND structure ZBUT000 Create function modules Before output and After entry Create view ZCUS10 Create section ZCUS10 Include section ZCUS10 in screen BUP500 Screen 0020 Include fields of table ZBUTHOBBY (Hobbies) Create function module Before screen call Create view ZCUS20 Create section ZCUS20 Include section ZCUS20 in screen BUP500 SAP AG 2000 Workshop: Business Data Toolset 46 (Carsten Köhler, Ralf Irrgang) Screen Layout: Exercise 2 Within your function gorup, create a function module, that checks that the last name of a person contains at least one vowel. Include this funtion module as a further check in view BUP300. Create function module Z_ZCUS_BUPA_PAI_BUP300 Include function module as further check for view BUP300 SAP AG 2000 Workshop: Business Data Toolset 47 (Carsten Köhler, Ralf Irrgang) Chapter 4 Screen Sequences SAP AG 2000 Workshop: Business Data Toolset 48 (Carsten Köhler, Ralf Irrgang) Screen Sequences: Targets Screen sequences at any level Individual additional screens Extend screen sequences to include new screens Integrate screens not created with BDT Change sequence of screens within a screen sequence Navigation between screen sequences/screens with BDT Tabstrips Divisibility: optimum screen sequence for each object part SAP AG 2000 Workshop: Business Data Toolset 49 (Carsten Köhler, Ralf Irrgang) Screen Sequences: Overview Addl scrn seq. 1 Deletion Flags Other Data Addl scrn seq. 2 Previous Screen Lock Next Screen Back Back Other Data Bank Data Bank Data Main screen seq. Initial Screen Address ENTER SAP AG 2000 Workshop: Business Data Toolset 50 (Carsten Köhler, Ralf Irrgang) Previous Screen Next Screen Bank Details Back Screen Sequences: Definition Screen sequence category Levels at which a screen sequence is required Assignment screen sequence category --> screen sequences Screen sequence Sequence of screens by way of position numbers Main screen sequence: Assignment object part --> screen sequence Standard screen sequence Any screens possible SAP AG 2000 BDT screens External screens (by calling a function module) Workshop: Business Data Toolset 51 (Carsten Köhler, Ralf Irrgang) Screen Sequences: Other Screen Sequences Jump from a screen of another screen sequence Realization: Alternatives Define screen sequence category when defining GUI function Call function module BUS_SCREEN_CALL at event FCODE Navigation options Menu (edit, extras, environment) Freely positionable push buttons SAP AG 2000 Workshop: Business Data Toolset 52 (Carsten Köhler, Ralf Irrgang) Chapter 5 Program Logic SAP AG 2000 Workshop: Business Data Toolset 53 (Carsten Köhler, Ralf Irrgang) Program Logic: Targets Use program logic for Dialog maintenance via the standard user interface Dialog maintenance via an external user interface (in R/3 or a non-R/3 system) Maintenance without dialog (direct input or function modules) Decouple program logic from the user interface Foreign key checks not at the user interface Data category checks not at the user interface Extensions without changes to Development Workbench objects of BDT of other applications SAP AG 2000 Workshop: Business Data Toolset 54 (Carsten Köhler, Ralf Irrgang) Program Logic: Event Technique Communication Between BDT and applications Between applications Defined events Within maintenance dialog With different generic BDT services Assignment event --> event function module Define name in control tables Dynamic call via BDT Sequence of event function modules by way of position numbers SAP AG 2000 Workshop: Business Data Toolset 55 (Carsten Köhler, Ralf Irrgang) Program Logic: Events (Dialog) Event table Views Tables Field groups (see field grouping) Field grouping criteria (see field grouping) SAP AG 2000 Workshop: Business Data Toolset 56 (Carsten Köhler, Ralf Irrgang) Program Logic: Event Table ISSTA Initialization ISDAT Read data from DB ISDST Distribute data to participating applications FCODE Edit own function code XCHNG Check whether data changed DCHCK Check before saving DSAVB Collect data with owning application DTAKE Note data in global memory DSAVC Complete data (get internal number) DSAVE Save data in DB SAP AG 2000 Workshop: Business Data Toolset 57 (Carsten Köhler, Ralf Irrgang) Program Logic: Views Before Call (PBC) Begin with first data record (table control) Sort data records (table control) Before Output (PBO) Read tables for explanatory texts After Entry (PAI) Field checks SAP AG 2000 Workshop: Business Data Toolset 58 (Carsten Köhler, Ralf Irrgang) Program Logic: Events, Flow Initial screen Data s creen DTITL DTITL DCUAD DCUAC ISSTA Before Call Start Before Output CALL SUBSCREEN DCUAD DCUAC ISDAT ISDST AUTH1 Before Call CALL SUBSCREEN Save Change? After Input FCODE FCODE Change? Yes DSAVB No Change? Yes A XCHNG No Yes No Abbr. Save? AUTH1 DCHCK DTAKE DSAVC DSAVE XCHNG Yes Abbr. Cancel Exit XCHNG No Yes DSAVB DSAVB AUTH1 DCHCK DTAKE AUTH1 DCHCK DTAKE DSAVC DSAVE DSAVC DSAVE No Yes Save? A Change? No DLVE1 DLVE2 End Screen 1: Events with Dialog, Save Mode SAP AG 2000 A CALL SUBSCREEN After Input Back XCHNG Before Output CALL SUBSCREEN Workshop: Business Data Toolset 59 (Carsten Köhler, Ralf Irrgang) Yes Cancel? No A Program Logic: Tables (Service Function Modules) Communication between applications Distribute data (Event ISDAT or ISDST) Data from owning application to participating application Creator: owning application Table BUT000: BUP_BUPA_BUT000_GET Collect data (Event DSAVB) Data from participating application to owning application Creator: owning application Table BUT000: BUP_BUPA_BUT000_COLLECT SAP AG 2000 Workshop: Business Data Toolset 60 (Carsten Köhler, Ralf Irrgang) Global Memory vs. Current Memory Current memory table-owning application each table-participating application Global memory only the table-owning application SAP AG 2000 Workshop: Business Data Toolset 61 (Carsten Köhler, Ralf Irrgang) Data Administration: Owning Application Function Group Current Memory new old DTAKE ISDAT Global Memory new old DSAVE SAP AG 2000 Workshop: Business Data Toolset 62 (Carsten Köhler, Ralf Irrgang) DB Data Administration: Participating Application Function Group Owning Application ISDST (Get FuMo) Current Memory new ISDAT Current Memory old DTAKE DSAVB (Collect FuMo) Global Memory new old DSAVE DB SAP AG 2000 Function Group Participating Application Workshop: Business Data Toolset 63 (Carsten Köhler, Ralf Irrgang) new old Program Logic: Example (Starting Situation) Applications: Tables: SAP BP Financial Accouting (FI) Customer Table BUT000 Owner: SAP BP Table FIBUB1 Owner: FI Key fields Key fields INCLUDE for SAP BP INCLUDE for FI APPEND for FI APPEND for Customer APPEND for Customer SAP AG 2000 Workshop: Business Data Toolset 64 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Read Data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) SAP AG 2000 Workshop: Business Data Toolset 65 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP AG 2000 SAP BP Financial Accounting (FI) Customer Read BUT000 Workshop: Business Data Toolset 66 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP AG 2000 SAP BP Financial Accounting (FI) Customer Read BUT000 Workshop: Business Data Toolset 67 (Carsten Köhler, Ralf Irrgang) BUT000 Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP BP Financial Accounting (FI) Customer Read BUT000 Get BUT000 SAP AG 2000 Workshop: Business Data Toolset 68 (Carsten Köhler, Ralf Irrgang) BUT000 Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP BP Financial Accounting (FI) Customer Read BUT000 Get BUT000 SAP AG 2000 Workshop: Business Data Toolset 69 (Carsten Köhler, Ralf Irrgang) BUT000 GETFunct.modules Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP AG 2000 SAP BP Financial Accounting (FI) Customer Read BUT000 BUT000 Get BUT000 BUT000 Workshop: Business Data Toolset 70 (Carsten Köhler, Ralf Irrgang) Servicefunct. modules Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP AG 2000 SAP BP Financial Accounting (FI) Customer Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Workshop: Business Data Toolset 71 (Carsten Köhler, Ralf Irrgang) Servicefunct. modules Program Logic: Example (Read data) Applications: Event ISDAT (Read data) SAP AG 2000 SAP BP Financial Accounting (FI) Customer Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Workshop: Business Data Toolset 72 (Carsten Köhler, Ralf Irrgang) Servicefunct. modules FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) SAP AG 2000 Workshop: Business Data Toolset 73 (Carsten Köhler, Ralf Irrgang) Servicefunct. modules FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) FIBUB1 BUT000 BUT000 Get BUT000 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 74 (Carsten Köhler, Ralf Irrgang) FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) FIBUB1 BUT000 BUT000 Get BUT000 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 75 (Carsten Köhler, Ralf Irrgang) FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) FIBUB1 BUT000 BUT000 Get BUT000 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 76 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) FIBUB1 BUT000 BUT000 Get BUT000 Get FIBUB1 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 77 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) FIBUB1 BUT000 BUT000 Get BUT000 Get FIBUB1 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 78 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 Program Logic: Example (Read data) Applications: SAP BP Financial Accounting (FI) Customer Event ISDAT (Read data) Read BUT000 BUT000 Get BUT000 Read FIBUB1 BUT000 Event ISDST (Distribute data) FIBUB1 BUT000 Get BUT000 Get FIBUB1 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 79 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 BUT000 FIBUB1 Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer Event DSAVB (Collect data) SAP AG 2000 Workshop: Business Data Toolset 80 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Transfer BUT000 SAP AG 2000 Workshop: Business Data Toolset 81 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 BUT000 FIBUB1 Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Transfer BUT000 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 82 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 BUT000 FIBUB1 Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Transfer BUT000 SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 83 (Carsten Köhler, Ralf Irrgang) BUT000 FIBUB1 BUT000 FIBUB1 Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) SAP AG 2000 Servicefunct. modul Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 BUT000 FIBUB1 Workshop: Business Data Toolset 84 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) SAP AG 2000 Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 BUT000 FIBUB1 Workshop: Business Data Toolset 85 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) SAP AG 2000 Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 BUT000 FIBUB1 Workshop: Business Data Toolset 86 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) SAP AG 2000 Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 Workshop: Business Data Toolset 87 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) SAP AG 2000 Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 Workshop: Business Data Toolset 88 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) SAP AG 2000 Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 Workshop: Business Data Toolset 89 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 Event DTAKE (Transfer data) SAP AG 2000 Servicefunct. modules Workshop: Business Data Toolset 90 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Event DTAKE (Transfer data) SAP AG 2000 Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 BUT000 in Global Memory Workshop: Business Data Toolset 91 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Event DTAKE (Transfer data) Servicefunct. modul Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 BUT000 in Global Memory FIBUB1 in Global Memory SAP AG 2000 Workshop: Business Data Toolset 92 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Event DTAKE (Transfer data) Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 BUT000 in Global Memory FIBUB1 in Global Memory Event DSAVE (Save data) SAP AG 2000 Workshop: Business Data Toolset 93 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Event DTAKE (Transfer data) Servicefunct. modul Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 BUT000 in Global Memory FIBUB1 in Global Memory Event DSAVE (Save data) SAP AG 2000 BUT000 in DB Workshop: Business Data Toolset 94 (Carsten Köhler, Ralf Irrgang) Program Logic: Example (Save data) Applications: SAP BP Financial Accounting (FI) Customer BUT000 Event DSAVB (Collect data) Event DTAKE (Transfer data) Servicefunct. modules Transfer BUT000 BUT000 FIBUB1 Transfer BUT000 Transfer FIBUB1 BUT000 FIBUB1 BUT000 in Global Memory FIBUB1 in Global Memory Event DSAVE (Save data) SAP AG 2000 BUT000 in DB FIBUB1 in DB Workshop: Business Data Toolset 95 (Carsten Köhler, Ralf Irrgang) Program Logic: Exercise 1 Create the program logic for maintenance of the two fields in table BUT000 (first contact). Event ISSTA: Query controlling parameters in the BDT and note (example: activity category) Event ISDAT: Get data in table BUT000 from the owning application and note in the current memory (not until ISDST because of Exercise 2!) Event XCHNG: Check if there are any changes to the fields for the first contact Event DSAVB: Return data from the current memory for table BUT000 with the changes in the fields for the first contact to the owning application Event DLVE1: Initialize current memory for table BUT000 SAP AG 2000 Workshop: Business Data Toolset 96 (Carsten Köhler, Ralf Irrgang) Program Logic: Exercise 2 Create the program logic for maintenance of table ZBUTHOBBY (Hobbies). Event ISSTA: Event ISDAT: Already created in Exercise 1 Read data from the database or from the global memory Event XCHNG: Check if there any changes Event DTAKE: Transfer data from the current memory to the global memory Event DSAVC: Complete data in the global memory (create with internal number assignment) Event DSAVE: Write data from global memory to database Event DLVE1: Initialize current memory Event DLVE2: Initialize global memory View ZCUS20 Before Call (PBC) SAP AG 2000 Workshop: Business Data Toolset 97 (Carsten Köhler, Ralf Irrgang) Chapter 6 GUI Menu SAP AG 2000 Workshop: Business Data Toolset 98 (Carsten Köhler, Ralf Irrgang) GUI Menu: Targets Own menu with standard functions for each appl. object Add additional functions Activate/deactivate functions per activity per view per screen sequence category on basis of additional program logic Link menu function <--> freely positional push button Extensions to GUI Menu without changes to Development Workbench objects of BDT of other applications SAP AG 2000 Workshop: Business Data Toolset 99 (Carsten Köhler, Ralf Irrgang) GUI Menu: Standard Functions Contained in standard menu Activate/deactivate in system tables per activity per activity / view per activity /view/screen sequence category SAP AG 2000 Workshop: Business Data Toolset 100 (Carsten Köhler, Ralf Irrgang) Lowest priority Highest priority GUI Menu: Additional Functions Can be included in the standard menu Can be reached via the function "Additional functions" in every menu Presentation in an additional dialog box Activate/deactivate in system tables per activity per activity/view per activity/view/screen sequence category SAP AG 2000 Workshop: Business Data Toolset 101 (Carsten Köhler, Ralf Irrgang) Lowest priority Highest priority GUI Menu: Functions (Examples) Function Save Active Create Change Display Function Delete bank details Active Create Change Display Active Bank details Create Change Display Function Address overview Active Create Change Display Active Address data Create Change Display Active Addr.data//Main scrn seq. Create Change Display SAP AG 2000 Workshop: Business Data Toolset 102 (Carsten Köhler, Ralf Irrgang) GUI Menu: Events DCUAD (Determine GUI status) Standard menu with GUI status is in the application function group of the application owning the application object Application can set the desired GUI status DCUAC (Change GUI status) Programmed activation/deactivation of GUI functions Function 'Delete bank' is inactive if field group 'Bank details' is either hidden or just displayed Scroll functions only active with large number of entries SAP AG 2000 Workshop: Business Data Toolset 103 (Carsten Köhler, Ralf Irrgang) GUI Menu: Exercise 1 Make it possible to delete hobbies during maintenance. Do this using an own GUI function. Create additional function ZCUS_HOBBY_DELE Assign function to the Edit menu Function may only be active if activity category is Create or Change, and not Display hobbies (View ZCUS20) are on the current screen Event FCODE: Create program logic for handling the deletion function SAP AG 2000 Workshop: Business Data Toolset 104 (Carsten Köhler, Ralf Irrgang) Chapter 7 Field Grouping SAP AG 2000 Workshop: Business Data Toolset 105 (Carsten Köhler, Ralf Irrgang) Field Grouping: Targets Field status Required entry Optional entry Display Hide Determine field status of related fields together Different field grouping criteria Field grouping criteria of applications can be added (Examples in GP: Company code through FI, sales organization through SD) Programmed field grouping SAP AG 2000 Workshop: Business Data Toolset 106 (Carsten Köhler, Ralf Irrgang) Field Grouping: Field Groups Fields Field Groups Name 1 Search terms NAME_ORG1 SORT 1 SORT 2 Group fields into field groups if they belong together logically are displayed/hidden together Field grouping per field group Function module for programmed field grouping Assignment view --> field groups Assignment field group --> screen fields SAP AG 2000 Workshop: Business Data Toolset 107 (Carsten Köhler, Ralf Irrgang) Field Grouping: Field Status Bar Field status bar 1 (200 characters) Field status bar 2 + * Field group: . - * ......... Field status bar 3 ......... 1 2 3 Field status + Required entry . Optional entry * Display - Hide SPACE Not specified Position in status bar corresponds to field group number (at present: max. 1750 field groups) SAP AG 2000 Workshop: Business Data Toolset 108 (Carsten Köhler, Ralf Irrgang) Field Grouping: Add Criterion Create table (such as TB103) Create view (such as V_TB103) and generate maintenance dialog Include maintenance user interface for field status in view Function 'Field Grouping' (using SAPLBUS2) Function module BUS_FMOD_CUSTOMIZING Enter criterion in control table Create function module for reading field status bar and define name in control table SAP AG 2000 Workshop: Business Data Toolset 109 (Carsten Köhler, Ralf Irrgang) Field Grouping: Exercise 1 Link views ZCUS10 and ZCUS20 to the field grouping. Create field groups for data on first contact and hobbies, and assign the fields in the subscreens. 700 First contact: Date 701 First contact: Evaluation 702 Hobbies Assign field groups to views View ZCUS10 Field groups 700, 701 View ZCUS20 Field group 702 Hide the GUI function "Delete hobby" if the fields of the field group are not ready for input (event DUAC) Test the field grouping by hiding the fields for the BP role Test role. SAP AG 2000 Workshop: Business Data Toolset 110 (Carsten Köhler, Ralf Irrgang) Chapter 8 Search Help SAP AG 2000 Workshop: Business Data Toolset 111 (Carsten Köhler, Ralf Irrgang) Search Help: Targets Each application can add elementary search helps Activate/deactivate elementary search helps Direct selection possible via '= ...' Extensions without change to Development Workbench objects of BDT of other applications SAP AG 2000 Workshop: Business Data Toolset 112 (Carsten Köhler, Ralf Irrgang) Search Helps up to Release 4.5: Assign Elem.Search Help --> Pseudo ID Search Help BUPA (SAP BP data) Tables: BUT000, BUT010, ADRC Pseudo-ID Search help El SH Active? BUPAB Partner acc. to bank details BUPAN Partner acc. to name, address BUFIB Partner acc. to company code B C X N X V X Search Help BUSD (SD) ID Name/Description Tables: BUT000, BUT010, ADRC, SDBUVV C N V Search Help BUFI (FI) Tables: BUT000, BUT010, ADRC, FIBUB1 BUSDV Partner acc. to sales area BUPA B BUFI B BUPA N BUSD V Partner acc. to company code Partner acc. to name, address Partner acc. to sales area Define all elementary search helps in BDT control table Inactive elementary search helps do not appear SAP AG 2000 Workshop: Business Data Toolset 113 (Carsten Köhler, Ralf Irrgang) Search Helps as from Release 4.6: APPEND-Search Helps Search help of a different application can be extended via the dictionary without changing the original search help Maintenance Transaction SE11 Function Goto --> APPEND search helps BDT control table is no longer required SAP AG 2000 Workshop: Business Data Toolset 114 (Carsten Köhler, Ralf Irrgang) Chapter 9 Change Document Evaluations SAP AG 2000 Workshop: Business Data Toolset 115 (Carsten Köhler, Ralf Irrgang) Change Document Evaluation: Targets Generic BDT service Evaluation variants In dialog Changes per object instance (such as partner changes) Changes per object instance and field (field changes) As a report Change history (over several instances) Divisibility Add new tables Add additional fields to existing tables No changes to Development Workbench objects of BDT of other applications SAP AG 2000 Workshop: Business Data Toolset 116 (Carsten Köhler, Ralf Irrgang) Change Document Evaluation: Realization Write change documents Change document object per application (if own table exists!) Write change documents in event DSAVE Evaluate change documents Events Event CHGD1 Transfer selection values Event CHGD2 Collect change doc. objects with IDs Event CHGD3 Change doc. Header relevant? Event CHGD4 Change doc. Item relevant? Call Changes per object instance GUI function BUSA Changes per obj.instance & field GUI function BUSI Change history Report BUSCHDOC SAP AG 2000 Workshop: Business Data Toolset 117 (Carsten Köhler, Ralf Irrgang) Chapter 10 Archiving in the Context of the BDT SAP AG 2000 Workshop: Business Data Toolset 118 (Carsten Köhler, Ralf Irrgang) Archiving in the Context of the BDT Standard SAP Archiving Archiving object Use of the ADK FuMo Archiving administration with transaction SARA Service programs in the BDT Program logic in reports Processing of the application data by event function modules SAP AG 2000 Workshop: Business Data Toolset 119 (Carsten Köhler, Ralf Irrgang) Archiving: Program Run in the BDT without BDT with BDT Enter data Enter data Check data ARCH1 Sort data Sort data Create archive Create archive Write archive ARCH2/3 Close archive Close archive Log Log SAP AG 2000 Workshop: Business Data Toolset 120 (Carsten Köhler, Ralf Irrgang) Applications Check data Write archive Archiving: Event Function Modules ARCH1 Application-specific ARCH2 . . *------ Write data to the archive ---------------------------------call function 'ARCHIVE_PUT_RECORD‘ exporting archive_handle = p_archive_handle record = lt_but000 record_flags = et_chart-del_flag record_structure = 'BUT000'. Endfunction. SAP AG 2000 Workshop: Business Data Toolset 121 (Carsten Köhler, Ralf Irrgang) Archiving: Programs BUSOBARCH for archiving data ARCH1 check if data can be archived ARCH2/3 archive header data and dependent data BUSOBARCH_DELETE for consistent deletion from the completely written archive ARCH4 Interprete archive data and delete on the database BUSOBARCH_RELOAD for reloading from archives ARCH5 Interpret archive data and check if it can be reloaded ARCH6 Interpret transferred data and write it to the database SAP AG 2000 Workshop: Business Data Toolset 122 (Carsten Köhler, Ralf Irrgang) Archiving: Procedure Create archiving object Transaction AOBJ Register archiving object in the BDT BDT task level menu General control Application objects Create event function modules and register in the BDT BDT task level menu Control <Application object> Events Assign event-> Function modules SAP AG 2000 Workshop: Business Data Toolset 123 (Carsten Köhler, Ralf Irrgang) Chapter 11 Editing Mode SAP AG 2000 Workshop: Business Data Toolset 124 (Carsten Köhler, Ralf Irrgang) Editing Mode: Targets Save mode Changes to a BP are saved before leaving maintenance or discarded Transfer mode Example: Contract calls BP maintenance BP data is noted The BP data is not saved until the contract is saved Realization for all data including address data Direct Input: Enable mass insert/update SAP AG 2000 Workshop: Business Data Toolset 125 (Carsten Köhler, Ralf Irrgang) Editing Mode: Save Mode SAP GP Function ‘Save' Event DSAVB Collect data Event DTAKE Note data Event DSAVC Complete data Event DSAVE Save data SAP AG 2000 Workshop: Business Data Toolset 126 (Carsten Köhler, Ralf Irrgang) Editing Mode: Transfer Mode Contract Function ‘Transfer' Contr.no. SAP GP Contr.type Policyholder Change Beneficiary Change Event DSAVB Collect data Event DTAKE Note data Event DSAVC Complete data Save Event DSAVE Save data SAP AG 2000 Workshop: Business Data Toolset 127 (Carsten Köhler, Ralf Irrgang) Edit Mode: Direct Input (Flow) Dialog Direct Input Initial Screen: Entries Initial Screen: Data from file Initial Screen: PAI Initial Screen PAI Event ISDAT (Read data) Event ISDAT (Read data) Event ISDST (Distribute data) Event ISDST (Distribute data) Data screen: Entries Data screen: Data from file Data screen: PAI Data screen PAI Event DSAVB (Collect data) Event DSAVB (Collect data) Event DTAKE (Transfer data) Event DTAKE (Transfer data) Event DSAVE (Save data) Event DSAVE (Save data) Important: Mass insert/update!! SAP AG 2000 Workshop: Business Data Toolset 128 (Carsten Köhler, Ralf Irrgang) Edit Mode: Direct Input (Events) DINP1 Get header data DINP2 Get data records and note SAP AG 2000 Workshop: Business Data Toolset 129 (Carsten Köhler, Ralf Irrgang) Edit Mode: Direct Input (Data Transfer) Entry file Rec.cat. Table Delete flag Data 2 2 2 2 BUT000 BUT020 BUT021 BUT0BK SPACE SPACE SPACE SPACE 0030001234567... 0030001234567... 0031122334455... 0030001234567... BDT Data records distribute to applications Function module2 Function module1 SAP BP data 2 BUT000 SPACE 0030001234567... 2 BUT0BK SPACE 0030001234567... SAP AG 2000 SAP BP addresses 2 BUT020 SPACE 0030001234567... 2 BUT021 SPACE 0031122334455... Workshop: Business Data Toolset 130 (Carsten Köhler, Ralf Irrgang) Chapter 12 Calling Maintenance SAP AG 2000 Workshop: Business Data Toolset 131 (Carsten Köhler, Ralf Irrgang) Calling Maintenance: Without Object Part Transaction BUP2 Report BUPSTART Report BUPSTART .. .. CALL FUNCTION 'BUP_PARTNER_ MAINTAIN'. Choose BP role Installer X Contract partner Workshop: Business Data Toolset 132 (Carsten Köhler, Ralf Irrgang) Partner Screen selection Address Payment trans. Continue SAP AG 2000 Change BP Calling Maintenance: With Object Part Transaction FPP2 Report RFKKBUPA Report RFKKBUPA .. .. CALL FUNCTION 'BUP_PARTNER_ MAINTAIN' TABLES T_RLTYP = GT_RLTYP Choose BP role Installer Contract partner Workshop: Business Data Toolset 133 (Carsten Köhler, Ralf Irrgang) Partner Screen selection Address Payment trans. Continue SAP AG 2000 Change BP Chapter 13 Future Developments SAP AG 2000 Workshop: Business Data Toolset 134 (Carsten Köhler, Ralf Irrgang) Future Developments: SAP AG 2000 Mass changes (using logistics tool) Field defaults Evaluations (using list tool) Generate application coding Relationships between any objects Workshop: Business Data Toolset 135 (Carsten Köhler, Ralf Irrgang) BDT SAP AG 2000 Workshop: Business Data Toolset 136 (Carsten Köhler, Ralf Irrgang)