Skip to Content

Simplify Sales Order Creation (VA01) in 60 minutes

Let’s get our hands dirty by taking an example case of “Create Sales Order” – VA01 Transaction of SAP ERP. Using GuiXT, I’ll demonstrate how you can go about simplifying the entire Transaction.

Step 1: Create a quick jump button for the user on a start/dashboard screen.


// Clear the screen


// Add button for the process that will fire VA01 on clicking, and any more you wish to add

Pushbutton (1,0) “Create Sales Order” “/nva01″ size=”2”

Pushbutton (1,35) “OBD               ” “/nvl01n” size=”2″



Step 2: Simplify Entry Screen.

First Screen of VA01 – Let’s do the following…


  • Add default value(s) for quicker input if applicable
  • Hide unwanted/default fields from screen
  • Limit user choice for data input

File: SAPMV45A.E0101.TXT

// Set default value in Order Type field

Default F[Order Type] “OR” // Standard order

// Remove Group Box with all fields

Del G[Organizational Data]

// Assign smart Radio buttons for automatic data entry in required fields

// Add two radio buttons that enter appropriate values in SAles Org, Distr Channel and Division fields, when clicked

Radiobutton (2,0) “General orders” name=”g_radio” [Sales Organization] “0001” [Distribution Channel] “01” [Division] “01”

Radiobutton (2,25) “HQ” name=”g_radio” [Sales Organization] “1000” [Distribution Channel] “10” [Division] “10”



Step 3: Simplify Main Screen.

Second screen of VA01 – let’s do the following…


  • Change some labels to user-friendly text
  • Reduce number of columns in the Table
  • Hide unwanted TABs and fields from screen
  • Add more functionality and integration

File: SAPMV45A.E4001.TXT

// Change sold-to party to “customer”

Text F[Sold-to party] “Customer”

// Identify unwanted columns and hide them by numbers or names as reference

ColumnWidth [All items,ItCa] 0

ColumnWidth [All items,Material group] 0

ColumnWidth …

// Remove unwanted TABs

Del P[Item overview]

Del P[Item detail]

Del …

// Add “import from excel” functionality to populate the table rows faster

// The specific implementation can vary, so the entire logic is excluded from here

// “import_data.txt” is a program that has to be written to your specific requirement

Pushbutton (col,row) “Import from Excel” “/0″ process=”import_data.txt”

// Add “create delivery” functionality in toolbar; you can add more…like “post goods issue” etc…

// Inside specific script text files, you need to specify the user actions for the scripts to execute

Pushbutton (Toolbar) “SAVE and Create Delivery” “/0″ process=”save_and_create_delivery.txt”

File: Save_And_Create_Delivery.TXT

// If the user step is to save the order and then click on a menu item to create delivery, the same has to reflect within this script

Screen SAPMV45A.4001

  Enter “/11”

Screen SAPMV45A.4001

  Enter “/Menu=1,7”



NOTE: The above is a sample work, which may not be directly applicable to your case. But remember, once you know what you want, you can pretty much cook-up a better productive process within 60 minutes, using GuiXT. Many more avenues of consolidation are possible – we’ll cover them as we proceed to write more on this forum. I’ve plans to throw many more examples that will help you as a guideline; if there’s a specific confusion or requirement, I’ll be happy to respond accordingly.

You must be Logged on to comment or reply to a post.
  • Hi Vishal,

    Thanks for the blog.  Can you please let me know one thing?  If I am correct, GUIXT – is very much specific to the PC/system that we are using.  The script that we are writing and saving will be taken from the GUIXT folder of our system.  But is it possible to implement for all our end users without their intervention?  Also please let me know, will there be any impact on performance while loading the screen if the line of codes are more?


    P Gomatheeswaran

    • Hi Gomatheeswaran,

      GuiXT development is done locally on one PC ideally – till it’s all tested properly. But when it comes to deploying to other users, the deployment strategy is different. You either store the necessary script files in a shared network folder, or FTP site or within SAP web repository – for global access.

      To answer your other query, only if the developer does something within the script that causes unnecessary calls back and forth or infinite looping etc…the performance is not an issue – as certified by SAP too.

      Hope this helps. Cheers.

      • How to identify the required field va01


        Mail ID removed

        Edited by Lakshmipathi

        Please respect the forum rules and dont ask to share any information to personal mail id

  • Excellent blog post. My organization is spending more and more time with GuiXT. It’s great to see this practical application. Thanks for putting this together!

    • Thanks much for the appreciation Jimmy. Wish you all the best with GuiXT application in your organization – it’s an excellent choice for standardization.

  • Hello Vishal,

    An awesome document to get me started.

    What my requirement is to load data from excel.

    If you can help me in this, would really appreciate it.

    Thanks & regards,

    Abhishek Biwal

  • Dear,

    I have no words to describe your talent .Its really nice but some doubts on this .Please clarify .

    Before this doc ,I have tried so much time on this functionality but I failed in this to get the exact result .I have activated GUIXT Activate in SPRO screen level but I wanted 4 Fields for transaction VA01 1.Sold To Part ,Material and Quantity and Price only .How to achieve this ?.Please let me know ,some steps on this .

    Sorry ,I am unable to attach screen screen shot here .



    • Hi Narendra,

      For your requirement, you need a licensed component of GuiXT, called InputAssistant. It’s already installed with your SAP Front-end, but the activation needs a license. Since there are package deals provided by the company: Synactive, it is best if you establish this as a need that can suit multiple users…say 50 or 100.

      The plus point is that with this license, you can customize all SAP modules. Which geography are you in, if I may ask?

  • guiXT is a nice solution, but when so many of the big SAP customers will full teams of developers they tend to go for a Z dialog program instead.



    • I agree Warren.

      I have even observed smaller set ups opt for Z or ABAP-based customization. I see two reasons for it:

      – Assumption that since SAP is built on ABAP, it is best to customize using the same

      – High availability of ABAP resources

      The downside is that for certain level of customization, the effort required to replicate solutions using Z way is far too much. And also, it can be a maintenance nightmare to manage a parallel system, if it becomes huge.

      There’s a reason I guess why SAP Best Practices does not consider Z as the way to customize.

      Thanks again, for your observation; it is completely true.



  • Thank you so much for posting this. It has really helped me out. My question is if it is possible to re-size the [All items] screen in the sales order? I am trying to simplify the screen and increase the table’s display area.



    • Hey Tom,

      Apologies for the late response; I must have missed the mail notification. Are you trying to change the “width” of the Table area? You can do it with a GuiXT command called “TableWidth” – please refer to this documentation: TableWidth

      The syntax should be:

      TableWidth [All items] 200 (your preferred size)

      Let me know how it works.



      • Vishal Mehta

        Is it 60 Minutes or Seconds?   While I appreciate your efforts in explaining a different way to create a sale order, I am sorry,  if it is “60 minutes”, due to the fact that no client would accept this proposal.  You should be aware, there are couple of alternate ways to mass upload sale orders in no time.

        G. Lakshmipathi

        • It is 60 minutes 🙂

          Idea was to introduce an overall way of streamlining the process, while suggesting what all is possible with GuiXT. This could be applied to any other transaction. I agree with you that for some specific automation, there are much better ways to achieve it; thanks for your note.


      • Thank you for the reply. I was actually wanting to change the height of the table to allow the user access to more rows on the screen. This might not be an option, but I thought I would check.



        • Yes, Tom, the height cannot be changed, as this interferes with SAP’s vertical internal scroll logic – Next Page, Page Down, etc.

          I wish I was more helpful.



  • Hi Vishal,

    It seems really a nice solution. I am working on same requirement apart from few clients different req. which are fine.

    I am able to execute scripts and they are responding fine, as I am storing them locally on my machine. But what if I use different machine ,at that time back to square one.

    I am facing difficulties in deployment ,if you could direct me in that please ? As I tried to upload that scripts in SAPWR , through SMW0, which is working but when I execute it throwing some RFC wrong user name & password error, though I have all required rights for RFC in user profile.

    • Hi Dhashti,

      i am glad that you found this effective. Regarding your query about different machine, eh scripts are best stored locally only during development. When it’s time to use them, they should be stored centrally – network drive, http, ftp or SAPWR.

      REgarding the RFC error, this is a common issue and the first thing to check is if he RFC user exists in the right client that you’re accessing. Here’s an explanation from the source: RFC error

      LEt me know if this solves it. If not, we can discuss more and get this done right. Good luck.

      • Hi Vishal,

        I am using options “script Download via current client ” i.e. dev- 200 in my case. That means it will pick scripts from web repository of client 200 , which I already created through smw0.

        So what will be directory1 path ??  please correct me if I am creating profile in wrong way. Much appreciate your prompt response.rfc3.PNG

        • try the following as Directory1: SAPWR,client=200:Z.GUIXT

          if you uncheck the option: Script download via current client, you don’t need to specify the client in your Directory1, but you need to ensure that your RFC user has access for 000 Client.

          • Hi,

            User name , i.e. RFC user which I mentioned has no access to client 000, but the user has right to use RFC connections.  what is alternative if I don’t have access to client 000, should change user ,called  sapcpic ???

            getting this type of error.


          • Yes, please try the default RFC settings of sapcipc in GuiXT configuration. Also, revert back your Directory1 to what it was earlier, sapwr: z.guixt

          • I tired to create profile same like that is described in the RFC link which you sent.  And added that profile under my user ID, now in the guixt profile page I have to mention RFC user as my user ID & password rite ?? directory like sapwr:z.guixt ???

          • Yes, you’re right. But even if instead of .ini profile, your configuration should work as mentioned in the Dialog box (which takes data from your local registry). Main troubleshooting point is to check if the credentials are correct to connect using RFC and whether there’s a system fault – please check with the admin.

            You can also get specific support if you capture a System Trace from GuiXT window and send that as an attachment to Synactive support (office[at]synactive[dot]com). They’re very prompt in responding…but at Germany time zone.

            Unfortunately, I do not work on SAP/GuiXT currently and don’t have access to any SAP system; else I would have helped you Debug this personally as well.

            Good luck. Feel free to message me still; I’ll try my best to help based on my experience. 

          • Hi,

            This RFC error only comes when I am trying to save scripts in SAPWEB repository.

            It is working fine when I stored scripts in local C drive, by giving  RFC user & password as my regular dev login credentials.

            I am gather information & will drop an email after consulting a BASIS person. Thanks for all your help. Will be back on post if required. 🙂

          • Yes, RFC authentication and call is only required to access SAP Web Repository. Although that’s the best place to store the scripts, you may want to try once by storing the scripts on a network drive or server and checking if the only issue is of RFC or generally moving outside your local environment.


          • Hi, I tired with local environment, the script is  working  fine with following profile. Here comes one question, this script is working for all existing clients, ie. DEV,QAS& PRD

            How come all them are affecting and guixt is by defaulted activated on all clients though I did in DEV client only.,


          • There are two aspects to GuiXT scripting. One is a script for the screen design (static) and forced naming convention. Another one is for behavior and data-flow between screens (dynamic) and flexible naming convention. For only screen static changes, there’s no license required. For overall customization, you need a license key specific to different systems: DEV, QA, PRD, etc…which will determine the functionality for specific systems

            The screens will appear as new, regardless of which system you log on, if that particular screen is redesigned using GuiXT. It is not an overhead; GuiXT always works in the background whether or not there’s a script associated.

            You have access to system variables that can identify the client, system, etc. You need to use this condition inside your GuiXT screen script.

            Something like:

            if V[_database=DEV]

                // Do your customization code here


            Here’re all system variables you can use: System variables