What is Texts ?
Text is a small piece of formatted or unformatted text that is functionally used to describe or note information in master data and Transactional Data. For example, a temperature sensitive material ( say a bio-reagent ) needs to be kept under freezing temperatures always. Although there is another field called Storage Conditions to denote this, we can use a text field with more specific comments so that the folks selling this material can ensure that they always inform the customer that they need to have storage facilities for the same. Since the information in this case is used to inform sales agents, it can be a “Sales Text”
Now, its not just enough that the material master contains this text. We will also have to ensure that the sales agents creating orders for this material has visibility to the same text. That means that the sales order should also have texts that can show the same. And since this text is specific to the specific material, this text needs to be part of the line item not the sales order header.
As you can see from the example above, there are myriad number of texts like item note, packing note, delivery text, purchase order text, production memo etc. All of these texts are either flown in from the corresponding master data ( Customer master , material master etc ) or entered in the transaction itself. In summary, texts are little pieces of information that are useful in communication information about master data or transaction specific data across the enterprise.
Can Texts be Formatted ?
Yes. These texts ( Or Text Objects as they are normally called in SAP lingo ) need not be constrained to plain text only. You can use the buttons highlighted below to import or export text. You can use the standard “Clipboard” ( ) button to copy or paste text.
The best part is that on a windows machine, you can just double click on the white space to open your favorite rich text editor ( Like MS Word or TextPad ) to format text as required. Also, these texts can be maintained in multiple languages as can be seen below.
How do Texts Flow ? ( Text Determination )
As can be seen from the example above, the material sales text has flown in from the master data ( Sales Text view of the material master ) to the line item view of the sales order. This does not happen automatically. We will have to specifically configure the system to ensure the same. This process of creating new texts and letting them flow across the transactions and determine when and where these texts need to be is called “Text Determination”.
Let us go into the configuration to understand this.
The transaction code for performing text determination is [VOTXN]. The menu path for the same is
[SPRO -> IMG -> Sales & Distribution -> Basic Functions -> Text Control ]
Each text item ( “Material Sales Text” ) in the example above is called a Text Type. It internally contains a Text ID. These are configured in the Text Types section.
As you can see from the picture below, there are different Text Types depending on the functionality where it is used.
Select the Text Object ( Customer, Info Record..etc ) and select one of the radio button to view the revelant “Text Types”
The technical name of the Customer Text Object is – KNA1 and the different text types associated with KNA1 are displayed below.
0001 Sales Note for Customer
0002 Accounting Note
If you want to create more text types, Click on the “New Entries” button. For example, lets think of a scenario where the customer always insists that we talk to their purchasing head first before ordering. Since this is a special ordering instruction, let’s create a new text type for customer text object KNA1.
Text Determination Procedure
Now that we have defined the text types, we have to ensure that the conditions are met for the required action to take place. This starts with the access sequence first.
There is a standard Text Determination Procedure for Customer Text Object. You can either choose to use it or create new.
Let’s start by creating a new Text Determination procedure for illustration purposes.
Create a new Text Determination Procedure called “Z1”
Select the new Text Determination procedure just created and click on the “Text IDs in the Text Procedure” section as shown below.
Click on new entries to create Access Sequences. For example, we have created a new sequence (10 ) for the Text ID – Z001 that we have just created.
Now for the final step, we have to assign this text determination procedure to an actual Customer type ( Customer Account Group )
Currently the customer account group for the standard sold-to party – 0001 is assigned to text determination procedure 01. Let’s change this to Z1 and see how the texts in the customer master changes.
Demo of Customer Master Text Determination:
To view the existing text types in the Customer master go to Extras -> Texts in the General Tab.
As you can see the following texts are available for the standard customer master for customer account group 0001 ( Sold-to Party )
Now that we have changed the text determination procedure of the customer master to ‘Z1’, we can see the new texts types that we have created for the customer text object KNA1 below.
This concludes the configuration for the text determination in Customer Master. The text determination for other master data ( Material Master , Info Records etc ) is very similar. However, the text determination for transaction data is a little different. Let’s see how it is.
Text Determination for Sales Documents
The text type definition is very similar to the way we have created for the customer master.
Select the Sales Document Header and click on Change. ( Since there are texts both at the Header ( Text Object – VBBK ) as well as the line item level ( Text Object – VBBP ) , let’s choose header for now.
As usual, we can have multiple text determination procedures and assign each to one or more transaction types. Instead of creating a new one, let’s examine an existing text determination procedure – 01 Sales Header.
After selecting the sales procedure, double-click on the Text IDs to know the different text IDs created under it.
As you can observe, there are a couple of differences from the way text IDs are created between Sales Order and Customer master.
You can freely define text IDs , just like you have created them in Customer master. However, since the customer master is – Master Data – which is a source data, there is no Access associated with that text ID. However, since transaction data like sales orders derive part of their data from the master data ( customer master, material master, vendor master, pricing records, customer material info records ) , we have to define the corresponding source. The Access column defines the source of the text ID.
Also, there are 2 more additional columns.
Referenced - This means that the text is referenced , not copied over. What this means is that if there is a previous document that the text has flowed in from, if you choose the reference field, then the text ID in the Quotation is referenced. Otherwise its copied over.
|Form Header||Form Header|
|Header Note 1||Header Note 1|
In the picture above, the text ID Header Note 1 is referenced whereas the rest are not. What this means is that if the quotation’s text ID Header Note 1 is changed, the same will be reflected in the downstream document, Order. But any changes to the text ID , Form Header in the quotation will not carry over to the order.
Text is Obligatory – As the name implies, this flag ensures that some text is filled up in the text ID – either by copying over from the previous document or by filling up in the current document.
Let’s now move on to the Access Sequences in transactional text determination. This determines the source and the sequence of the sources.
Select an Access Sequence (say 01 ) and click on Access Sequences for Text IDs underneath.
If you remember well, this is the Access sequence that was used for the “Form Header” text ID.
This picture determines the sequence and sources of the texts.
What this means is that the text ID , Form Header with access sequence 1 can be based on the following in that order. That means that if a text is found in the Sales order header of the previous document, it is taken in the Form Header Text ID of the current document and the rest are ignored.
|For Header Text ID||<-||Sales Order Header ( Of the Previous Document )|
|Sales Note from Customer||<-||Customer Master Sales Texts|
|Sales Note from Customer||<-||Customer Master General Texts|
Now that we have determined the source of a text ID and the sequence in which they appear, all that needs to be done now is to assign the text determination procedure to an order type.
As you can see, the text determination procedure ‘01’ is assigned to the transaction type OR.
Demo of Sales Order Text Determination:
Create a new Customer and enter a Sales Note in the General Texts
Create a sales order for this customer and see what comes as the “Form Header” text ID. In this example, text created as the “Sales Note for Customer” from the General Text of the Customer master seems to flow down to the “Form Header” text in the sales order header text.
Let’s take this one step further and create a sales area text – Sales Note for Customer and see if it supercedes the General text – Sales Note for Customer as defined in the Access sequence.
Enter a new sales note for the customer for the sales area text .
Now, create a new order of the same order type ( OR ) . You should now be able to see that the newly entered sales text in the Sales Area tab supercedes the text entered in the General Text
This is because, the customer sales texts ( KNVV ) supersedes the Customer General Texts ( KNA1 ) in the Access sequence associated to the text ID Form Header in text determination procedure associated with the sales order of type OR.
How to let a standard text ( SO10 ) object be determined as a text in text determination
Standard text objects can be configured using SO10. For example, a piece of text say “Payment needs to be made before the 1st of the month” can be configured as a text object so that it can be used again and again in programs or configuration. The way to configure a text object is to go to SO10 ,give a name ( say ZTEXT1 ) and click on create.
Enter the text requiredNow, in order to use this text in standard text determination, when creating the access sequence associated with the text type in the text determination procedure , enter the text object as “TEXT” and ID as “ST”When you use the text object as “TEXT” , the column “Text Name” will be enabled for that row and you can enter the text id there as shown below. And as you can see, the corresponding text can be made to flow down to the corresponding text type during text determination as shown below.