Sei sulla pagina 1di 26

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

288868615.doc

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

Page

1/26

Data

06/10/15

sd10 - User Exit in SD - 01

Autore iniziale documento

Ruolo

Data

Luigi Mingione

SD consultant

Novembre 2001

Autore modifiche documento

Ruolo

Data

Luigi Mingione

SD consultant

Luglio 2002

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

2/26

Data

06/10/15

INDICE
1.

INTRODUZIONE..................................................................................................................................... 33
1.1. CONCETTO DI AMPLIAMENTO IN SAP.................................................................................................... 33
1.1.1.
Esempio.................................................................................................................................... 44
1.2. EXIT IN SAP R/3................................................................................................................................ 55
1.2.1.
Come localizzare gli ampliamenti in SAP..................................................................................55
1.2.2.
Riferimenti................................................................................................................................. 77
1.3. CENNI DI DEVELOPMENT WORKBENCH................................................................................................ 88
1.3.1.
Creazione Tabella custom ZRANGE01.....................................................................................88
1.3.2.
Creazione report ZCLIENTE................................................................................................. 1111

2.

DATA DICTIONARY............................................................................................................................ 1414


2.1. DATA ELEMENT DOCUMENTATION..................................................................................................... 1414
2.1.1.
Esempio: Modifica descrizione campo supplementare Anagrafica Clienti............................1515
2.2. CAMPI APPEND NELLE TABELLE STANDARD.......................................................................................1818
2.2.1.
Esempio - inserimento campo KATR1 in VBAK....................................................................1818
2.3. FIELD EXIT.................................................................................................................................... 2020
2.3.1.
Esempio: Controllo Ordini editabili su Utente Logon.............................................................2121
2.3.1.1.
2.3.1.2.
2.3.1.3.

Presupposti..................................................................................................................................... 2121
Legami di customizing.................................................................................................................... 2121
Implementazione Field Exit.............................................................................................................2323

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

3/26

Data

06/10/15

1. INTRODUZIONE.
1.1. Concetto di ampliamento in SAP.
Enhancements represent potential customer requirements that have not been developed
in the standard. Instead, the standard provides for further development of such exits at the
customer site, using logic specific to the customer. Upward compatibility is assured since
SAP guarantees that the call of an enhancement from the standard software and the
calling interface will remain valid in future releases.
Customizing exits allow you to add your own functionality to SAPs standard business
applications without having to modify the original applications. SAP creates customer exits
for specific programs, screens, and menus within standard R/3 applications. These exits
do not contain any functionality. Instead, the customer exits act as hooks. You can hang
your own add-on functionality onto these hooks.
If you want to enhance the functionality of your R/3 System, you should take advantage of
the exits available in standard R/3 applications. There are two main reasons why you
should use exits rather than modifying SAP software yourself. Add-ons attached to exits
have the advantage that:
They do not affect standard SAP source code
When you add new functionality to your SAP System using SAPs exits, you do not
alter the source code of standard SAP programs in any way. The code and screens you
create are encapsulated as separate objects. These customer objects are linked to
standard applications, but exist separately from SAPs standard software package.
They do not affect software updates
When you add new functionality to your R/3 System using SAPs exits, your objects
(called customer objects) must adhere to strict naming conventions. When it comes
time to upgrade a to a new software release, customer objects names ensure that they
will not be affected by any changes or new additions to the standard software package.
Customer exits are not available for all programs and screens found in R/3 standard
applications. You can only use customer exits if they already exist in the R/3
System.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

4/26

Data

06/10/15

1.1.1.Esempio.
Range di numerazione documenti commerciali.
Nel customizing di SD, transazione VOV8, vengono definiti, fra l'altro, i range di
numerazione associati ai documenti di vendita.
E' possibile in customizing, per uno stesso documento di vendita, associare un unico
range di numerazione interno, ed un unico range di numerazione esterno.
Qualora si implementasse un progetto SAP per un gruppo industriale, e ciascuna societ
del gruppo voglia, a parit di flusso di vendita, il proprio range di numerazione, viste le
ipotesi di partenza possibile:
Moltiplicare il numero dei documenti commerciali (creare tanti ordini standard quante
sono le societ del gruppo, tante offerte standard quante sono le societ del gruppo)
Assegnare il range di numerazione al documento, via User Exit, per esempio in
funzione della Organizzazione Commerciale imputata.
Attribuzione partner commerciali.
Al momento della creazione dell'ordine cliente i partner commerciali sono tramsessi dalla
anagrafica del cliente, secondo le regole di copia implementate in customizing.
SAP per non gestisce la temporalit del rapporto nell'ambito delle funzioni partner: ad
esempio nel caso degli agenti importante poter stabilire a priori la data di vaidit del
rapporto di assegnazione cliente / agente.
Nella procedura per la gestione agenti di SIC questo gestito: sarebbe allora necessario
poter implementare una user-exit per la trasmissione del partner Agente dagli archivi
custom verso il documento commerciale.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

5/26

Data

06/10/15

1.2. Exit in SAP R/3.


Nel seguito di questo documento distingueremo quattro principali famiglie di ampliamenti,
con particolare riferimento al modulo SD:
Data Element Exit
User Exit / Function Exit
Screen Exit
Routines

1.2.1.Come localizzare gli ampliamenti in SAP.


Il primo passo quello di sapere quali ampliamenti siano stati definiti da SAP, e come
localizzarli. Questo pu essere fatto eseguendo la transazione SMOD per la gestione degli
ampliamenti, ed aprire il matchcode di ricerca:

Selezionando il pulsante Applicazione SAP si accede ad una videata ad albero dove


possibile scegliere quale sia il componente di SAP per il quale si cercano possibili exit
(esempio: ordini cliente).

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

6/26

Data

06/10/15

Seguendo il percorso fino alla fine possibile visualizzare tutti gli ampliamenti relativi a
quel componente.

E' anche possibile effettuare una ricerca di tipo generale clickando sul pulsante sistema
informativo:

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

7/26

Data

06/10/15

Ottenendo una lista simile alla precedente, ma comprensiva di descrizioni.

1.2.2.Riferimenti.
Questo documento non ha pretesa di completezza sull'argomento, ma il suo scopo
quello di fornire un punto di partenza per la scoperta della potenzialit dello strumento
delle Exit in SAP R/3, con particolare focalizzazione nell'ambito del modulo SD di SAP.
Per approfondire gli argomenti descritti in questo documento, il riferimento il manuale
che si trova nella SAP library, secondo il percorso:
\Basis components\ Abap Workbench\ BC - Changing the SAP standard
La versione di riferimento di SAP R/3, per tutto quanto contenuto in questo documento,
la 4,6c.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

8/26

Data

06/10/15

1.3. Cenni di Development Workbench.


1.3.1.Creazione Tabella custom ZRANGE01.
Transazione SE11 - Tabella ZRANGE01.

E' importante flaggare, come mostrato in figura, aggiornamento tabella ammesso, per
consentire successivamente di popolare la tabella con lo strumento della transazione
SE16.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

9/26

Data

06/10/15

Passiamo ora a definire quali siano i campi che definiscono la tabella, e quali di questi
siano chiavi primarie (cio campi il cui valore non possa essere ripetuto pi di una volta
nella stessa tabella: fondamentale riconoscere come sia necessario inserire sempre il
campo MANDT se si vuole avere una tabella il cui contenuto dipenda dal mandante.

Infine bisogna manutenere i dati tecnici (pulsante parametrizzazione tecnica).

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

10/26

Data

06/10/15

E' a questo punto possibile popolare la tabella, con la transazione SE16, inserendo una o
pi righe valori.

Con la paginetta bianca in figura possibile inserire nuove righe.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

1.3.2.Creazione report ZCLIENTE.


Transazione SE38 - Programma ZCLIENTE.

Copyright 2001, SAP Italia Consulting S.r.l.

Page

11/26

Data

06/10/15

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

12/26

Data

06/10/15

Il codice implementato prevede:


Una fase di selezione in cui vengano imputati i clienti ed il valore del campo KNA1KATR1 (vedi anche il seguito di questo documento) da selezionare.
Una fase di stampa in cui vengono proposti a video tutti valori che soddisfano i
parametri di selezione.

Lo stesso risultato si sarebbe potuto ovviamente ottenere anche con la transazione SE16
sulla tabella KNA1, o con una smeplice query.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Il risultato proposto nelle figure seguenti:

Copyright 2001, SAP Italia Consulting S.r.l.

Page

13/26

Data

06/10/15

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

14/26

Data

06/10/15

2. DATA DICTIONARY.
2.1. Data element documentation.
Utilizzando lo strumento degli ampliamenti, possibile modificare le descrizioni dei data
element (parole chiave), e la documentazione relativa.
Pu succedere infatti che un campo standard SAP (a valore - quindi con un matchcode
che consente di visualizzare i valori possibili, oppure non controllato - quindi un semplice
campo alfanumerico) sia utilizzato per scopi diversi da quelli per i quali il campo era stato
originariamente progettato.
Tipici esempi sono i campi gruppi materiale aggiuntivi nella anagrafica del materiale,
oppure i campi supplementari nella anagrafica del cliente.
In questi casi, utile per il cliente ritrovare nella descrizione del campo, e nel relativo help
una descrizione ed una documentazione consoni a quanto riconosciuto nel proprio flusso
aziendale.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

15/26

Data

06/10/15

2.1.1.Esempio: Modifica descrizione campo supplementare Anagrafica


Clienti.
Si accede ai campi supplementari della anagrafica clienti secondo il percorso:

Supponiamo di voler cambiare la descrizione Attributo 2 in Corso SD11, ed inserire in


customizing i valori utente1, utente2.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

16/26

Data

06/10/15

Si esegue la transazione CMOD per accedere alla funzionalit di modifica delle parole
chiave associate ai data element.

Il data element associato al campo Attributo 2 KATR2.

Nella videata successiva la azione che viene compiuta quella di modificare nella lingua
imputata (IT) la descrizione dell'elemento dati, rispetto a quanto proposto da SAP.
La modifica viene rilevata in una richiesta di trasporto, e pu quindi essere trasportata sui
sistemi di test e produzione.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

17/26

Data

06/10/15

Effettuando le opportune operazioni di customizing, ed andando ad eseguire nuovamente


la transazione di modifica della anagrafica cliente, si ottiene quanto segue:

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

18/26

Data

06/10/15

2.2. Campi append nelle tabelle standard.


E' possibile arricchire le tabelle standard SAP con l'inserimento di nuovi campi.
Questa procedura preservata in fase di upgrade.

2.2.1.Esempio - inserimento campo KATR1 in VBAK.


Il primo passo entrare in visualizzazione della tabella standard SAP, e selezionare il
pulsante strutture append.

Avendo accettato il nome proposto ZAVBAK, si perviene ad una videata simile a quella
della creazione di una tabella, dove potremo introdurre una descrizione per la tabella
append, ed i campi da aggiungere nella tabella di partenza, nel nostro caso la classe di
fatturato KATR1. A questo punto non rester che attivare.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

19/26

Data

06/10/15

Tornando indietro alla visualizzazione della tabella VBAK possibile apprezzare come
questa abbia ora un campo in pi, il campo VBAK-KATR1.

Questo nuovo campo potr essere valorizzato, durante l'elaborazione dell'ordine di


vendita, mediante le user exit che saranno descritte nel seguito.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

20/26

Data

06/10/15

2.3. Field EXIT.


Le field exit sono delle uscite che consentono di associare a qualunque data element
presente in un qualunque module pool una routine con la propria logica di elaborazione:
possibile associare ad uno stesso data element pi field exit, ed attivarne diverse in
diversi module pool.
Nella routine presente solamente il valore del campo al quale agganciata la exit: non
sono disponibili i valori degli altri campi presenti nel dynpro: questo tipo di exit viene quindi
utilizzato per agganciare controlli aggiuntivi ai valori da inserire nei campi dei dynpro
standard (ad esempio per logiche di autorizzazione).
Fino alla release 4,0 questa funzionalit era agganciata nei menu standard, alla
transazione CMOD.
Dalla release 4,5 non pi disponibile come voce di menu, ma ancora possibile
accedere a questa funzionalit eseguendo il programma RSMODPRF, via transazione
SE38.
Questo probabilmente significa che nelle prossime release questo strumento sar
abbandonato e non pi manutenuto.
Nota sistemistica.
Per poter attivare la gestione delle Field Exit, nella configurazione del sistema,
necessario preventivamente impostare il parametro abap/fieldexit = YES nel profilo del
sistema, e riavviare SAP per rendere operativa questa modifica.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

21/26

Data

06/10/15

2.3.1. Esempio: Controllo Ordini editabili su Utente Logon.


2.3.1.1.

Presupposti.

Ciascun addetto all'order entry deve poter accedere solamente alla editazione dei propri
ordini.
Esistono sulla anagrafica del cliente i campi:
Ufficio Vendite (KNVV-VKBUR)
Gruppo addetto vendite (KNVV-VKGRP)
Si conviene di utilizzare questi due campi per realizzare la associazione dellordine
cliente all'utente di logon.
La associazione sar realizzata a livello di anagrafica utente, e sar quindi proposta
automaticamente nella fase di introduzione dellordine cliente.
E' possibile rendere obbligatori questi due campi sullordine cliente, inserendoli nel log di
incompletezza dellordine cliente, in modo che se su un ordine questi dati siano assenti,
non sia possibile procedere alla spedizione dellordine stesso.
Loggetto di autorizzazione relativo V_VBKA_VKO.

2.3.1.2.

Legami di customizing.

I legami da implementare sono i seguenti:


(Nota bene: in rosso sono evidenziate le attivit di tipo sistemistico, in nero quelle di
customizing)
1. Creare nel customizing di SD i valori di Ufficio Vendite (Capo Area) e Gruppo addetti
vendite indicati nella appendice, ed implementare i legami di dipendenza gerarchica.
2. Manutenere sulla Anagrafica dellutente di tipo Capo Area o di tipo Agente
linformazione relativa ai parameter ID associati a Ufficio Vendite e Gruppo Addetti
Vendite (Transazione aggiornamento utente, scheda Parametro fisso, parametri VKB e
VKG).
Questo consente di avere in fase di creazione dellordine di Vendita automaticamente
proposti nei campi suddetti i valori corretti, relativi allutente di logon che st creando
lordine.
3. Transazione SU03 - Oggetti SD: Creare per loggetto di autorizzazione V_VBKA_VKO,
n nuove autorizzazioni, una per ciascun utente di tipo capo area, o agente, in modo da
associarvi i valori corretti di VKBUR e VKGRP in accordo con la tabella presentata in
appendice.
Transazione SU02 - Per ciascuna di queste autorizzazioni sar creato un profilo di
autorizzazione che le contenga (in rapporto di uno ad uno); il profilo sar a sua volta

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

22/26

Data

06/10/15

associato allutente corrisopndente.


Esempio.
Lutente UTENTE20, dovr avere una autorizzazione del tipo Z100, che effettui un
controllo in fase di consultazione dellordine cliente nella tabella di testata dellordine
sul campo VKGRP = 90 e VKBUR = 90.
Sar quindi creato un profilo di autorizzazione Z100, che sar poi associato allutente
UTENTE20.
4. Associare loggetto di autorizzazione suddetto (V_VBKA_VKO) alle transazioni VA02,
VA03 (mediante la transazione SU24).

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

2.3.1.3.

288868615.doc

Page

23/26

Data

06/10/15

Implementazione Field Exit.

Siccome il controllo su questo oggetto di autorizzazione non standard, bisogna


implementare la corrispondente logica di controllo.
Il primo step quello della creazione della field exit relativamente al data element VKBUR:

Nota bene: stiamo creando come prima field exit la numero 'blank'.
Il sistema propone automaticamente la creazione del corrispondente function module:

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

24/26

Data

06/10/15

E' necessario compilare i campi di testata del function module, dopodich si accede alla
editazione del contenuto del function module stesso:

Salvare senza attivare.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

25/26

Data

06/10/15

A questo punto eseguendo nuovamente RSMODPRF senza valori, si ottiene la lista delle
field exit implementate:

Ed possibile quindi associare la seconda alla transazione VA01, programma


SAPMV45A, dypro 0101, data element VKBUR (informazioni rilevate con il percorso
sistema\stato sulla transazione VA01).

Nota bene: la attribuzione avviene per la uscita campo numero 'blank'.

Copyright 2001, SAP Italia Consulting S.r.l.

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

Arguments: User Exit in SD

Author:

288868615.doc

Release 1,1

SD Competence Centre

Page

26/26

Data

06/10/15

A questo punto non resta che attivare (sar attivato corrispondentemente anche il function
module FIELD_EXIT_VKBUR).
Il risultato sar che quando l'utente DOCENTE proceder alla creazione di un ordine
cliente (ZOV-Z001-Z1-Z1), il campo VKBUR sar automaticamente valorizzato con 'Z100' Campania.

2.3.2. Appendice.
E' possibile, nel function module relativo alla field exit, accedere anche a valori diversi dal
valore dell'input.
Utilizzando il function module DYNP_VALUES_READ
Creando due (o pi) function exit appartenenti allo stesso gruppo funzioni, su dynpro
diversi: dichiarando una variabile globale nella top include del gruppo funzioni
possibile alimentarla dalla prima function exit, e leggerla, ed utilizzarla nella seconda.

Copyright 2001, SAP Italia Consulting S.r.l.