Studio Best Practices

Use these best practices for Transaction and Query to streamline your script and query production processes and get solutions up and running more quickly.


  • ALWAYS walk through the t-code in SAP before recording. This will ensure you know the process to be recorded and have data for the recording.
  • Practice, record, and test your scripts and queries in a non-production SAP system to ensure that no erroneous data is added to a production system.
  • Name files with the t-code, description, date created, and your initials for reference: VA01_NewSalesOrder_09302015_CRB.txr.
  • Always add _GUI to the name a script that is recorded in GUI Scripting mode. Later, you will be able to identify those scripts quickly.
  • For transactions with selectable views, always clear the default views by clicking the Deselect all button in the recording.
  • Do not use a loop to update items. If one item update fails, the entire transaction fails.
  • Do not use validation on an HR transaction because data is committed to the back end after each screen.

    Exception: PA30 and PA40 are supported if the Winshuttle Function Module is installed.

  • In ME21N, disable all BDC Cursor positions up to the point where the filter is selected. Otherwise, Transaction will have trouble locating these when navigating the second time around.
  • Check that Save (OK code) is sitting within its own screen at the very end of the script, after any mapped fields. This will make validation work.


  • Run multiple-table Query scripts as an SAP background process to avoid affecting the SAP server performance.
  • Always use Selection criteria in a query so that you extract just what you need.
  • Joins between Primary Key fields always have the best performance. Joins between Index fields have the next-best performance.
  • Creating a join between non-indexed fields will degrade the performance of data extraction.
  • Inner join queries are always recommended, because a left outer join will degrade the performance of data extraction.
  • It is always better to do a preview run before you publish a query to be run in the production environment. The preview run will confirm that the required data exists and that the query is correctly formed.
  • Use Adaptive Query Throttling (AQT) mode for execution, so that the Query run will not affect the SAP server performance.
  • Use Direct Execution mode (non-AQT) to run queries that will extract fewer than a thousand items.
  • Applying criteria on non-Indexed fields will degrade the performance of data extraction.
  • Use Data Chunking in Query when running large data downloads to avoid network bottlenecks.
  • Creating Queries using View and Transparent tables gives better performance than Cluster and Pool tables, which are normally heavier in size.
  • Remove any unnecessary tables, fields, and joins in a Query script to get better performance in production.
  • Use the Text result destination, or data type, to write data in faster than the Excel, Access, XML, SQL Server, and Reference Data data types.

    Note: The account that you use to write to SQL Server must have db_owner or db_ddladmin membership on the database that contains the target table.

  • Always check the Number of Entries on the Workspace tab to validate number of records that will be extracted with Query.
  • Use selection criteria on the join fields when you have very large queries. The join fields are usually the Primary key fields.


  • Always understand BAPI/RFM requirements before attempting to create a Direct script by doing one or more of the following.
  • Review documentation.
  • Online research to find use case examples.
  • Understand the purpose common features/what to look for (INPUT STRUCTURES, OUTPUT STRUCTURES, TABLES, ImportOthers, ExportOthers, “X” tables, Commit Required, Enqueue Required, etc.).
  • Whenever possible, test data in SAP using transaction SE37.
  • Test the data template with at least two or three rows or documents in a non-production environment.
  • Verify the BAPI/RFM is remote enabled.
  • Before mapping, identify required fields and include them in the Direct script selected fields.
  • Check the Commit Required check box in the Workspace tab to commit/save in SAP – otherwise the BAPI will be run in simulation mode.
  • Check the Enqueue Required check box in the Workspace tab to lock the record in SAP during upload.