Ricerca…
letterali
ABAP offre tre diversi operatori per dichiarare variabili tipo stringa o char
| simboli | Tipo interno | Lunghezza | Nome |
|---|---|---|---|
| '...' | C | 1-255 caratteri | letterali del campo di testo |
| `...` | CString | 0-255 caratteri | letterali stringa di testo |
| | ... | | CString | 0-255 caratteri | letterali modello |
Si noti che l'intervallo di lunghezza si applica solo ai valori codificati. Le variabili di CString internamente hanno una lunghezza arbitraria mentre le variabili di tipo C hanno sempre una lunghezza fissa.
Modelli di stringa
I modelli di stringhe sono un modo conveniente per mescolare stringhe letterali con valori di variabili:
WRITE |Hello, { lv_name }, nice to meet you!|.
Può anche formattare cose come le date. Per utilizzare il formato data dell'utente connesso:
WRITE |The order was completed on { lv_date DATE = USER } and can not be changed|.
Sono supportate le chiamate e le espressioni del metodo funzionale:
WRITE |Your token is { to_upper( lv_token ) }|.
WRITE |Version is: { cond #( when lv_date < sy-datum then 'out of date' else 'up to date' ) }|.
Attenzione! L'implementazione diretta di risultati temporanei (come le chiamate al metodo) all'interno di modelli di stringhe può portare a enormi problemi di prestazioni (maggiori informazioni qui ). Mentre lo si utilizza all'interno di istruzioni eseguite raramente, è possibile che il programma rallenti rapidamente nei cicli.
Concatenazione di stringhe
Le variabili stringa e char possono essere concatenate utilizzando il comando ABAP CONCATENATE . È necessaria una variabile extra per la memorizzazione dei risultati.
Esempio:
CONCATENATE var1 var2 var3 INTO result.
"result now contains the values of var1, var2 & var3 stringed together without spaces
Abbreviazione
Le versioni più recenti di ABAP offrono una variante molto breve di concatenazione usando && (operatore Chaining).
DATA(lw_result) = `Sum: ` && lw_sum.
Attenzione! Vale la pena notare che l'utilizzo di risultati temporanei in combinazione con l'operatore Chaining all'interno di loop può portare a enormi problemi di prestazioni a causa delle crescenti istruzioni di copia (leggete di più qui ).