Sei sulla pagina 1di 35

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

288870825.doc

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

Page

1/35

Data

06/10/15

sd10 - User Exit in SD - 02

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

2/35

Data

06/10/15

INDICE
3.

USER EXIT / FUNCTION EXIT.................................................................................................................. 3


3.1. USER EXIT........................................................................................................................................... 3
3.1.1.
Ordine di Vendita........................................................................................................................ 4
3.1.1.1.
3.1.1.2.
3.1.1.3.

3.1.2.
3.1.2.1.
3.1.2.2.

3.1.3.
3.1.3.1.
3.1.3.2.

3.1.4.
3.1.4.1.
3.1.4.2.
3.1.4.3.

Includes di riferimento........................................................................................................................... 4
Esempio: Assegnazione range di numerazione al documento commerciale........................................5
Esempio: Valorizzazione di campi aggiuntivi nelle tabelle standard dell'ordine di vendita...................6

Consegna................................................................................................................................... 7
Includes di riferimento........................................................................................................................... 7
Esempio - Fatturazione immediata e differita.......................................................................................7

Fattura........................................................................................................................................ 9
Includes di riferimento........................................................................................................................... 9
Esempio - Determinazione number Range...........................................................................................9

Trasmissione in contabilit........................................................................................................ 10
Includes di riferimento......................................................................................................................... 10
Esempio - Determinazione tipo documento FI....................................................................................11
Esempio: Valorizzazione da programma del campo attribuzione nel documento contabile...............12

3.2. FUNCTION EXIT.................................................................................................................................. 17


3.2.1.
Creating and managing an add-on project................................................................................17
3.2.2.
Esempio: creazione di un progetto di ampliamento, ed attribuzione di un ampliamento per
controlli nella anagrafica cliente.............................................................................................................. 19
3.2.3.
Esempio: Sostituzione centri di profitto (SD-CO)......................................................................22
3.2.4.
Esempio: Controlli sulla Anagrafica Cliente e Fornitori.............................................................27
3.2.5.
Esempio: Creazione massiva fatture (transazione VF04).........................................................28
4.

SCREEN EXIT......................................................................................................................................... 30
4.1. ORDINE DI VENDITA............................................................................................................................ 30
4.1.1.
Requisiti.................................................................................................................................... 30
4.1.2.
Esempio: Gestione del campo supplementare VBAK-KATR1...................................................31

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

3/35

Data

06/10/15

3. USER EXIT / FUNCTION EXIT.


Le EXIT sono routine che non contengono alcuna funzionalit, ma che agiscono come
uncini: possibile "appendere" le propria logiche di elaborazione a questi uncini.
Andando ad inserire la propria logica di elaborazione all'interno di queste routine
possibile integrare o anche in parte modificare le logiche di elaborazione standard.
Questo strumento non rappresenta una modifica allo standard, e le modifiche
apportate sono supportate nel corso degli upgrade.
Le User Exit sono routine in senso stretto (FORM), spesso non hanno parametri di
scambio con il programma principale, il che vuol dire che in esse generalmente
possibile avere accesso, e modificare i valori contenuti in tutte le Working Area e
Tabelle Interne disponibili nel programma chiamante.
Le Function Exit (vedi anche il seguito di questo documento), sono invece dei Function
Module: hanno quindi un preciso numero di parametri di scambio con il programma
principale. Sono incluse in oggetti di ampliamento, e per poter essere disponibili nel
flusso logico di SAP devono essere prima inserite in un progetto di ampliamento, e poi
attivate.

3.1. User Exit.


Un elenco abbastanza completo delle User Exit presenti nell'ambito del modulo SD si
trova ad esempio seguendo il percorso di customizing mostrato in figura:

E' possibile con un doppio click sulla descrizione accedere alla documentazione relativa.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

4/35

Data

06/10/15

3.1.1.Ordine di Vendita.
3.1.1.1.

Includes di riferimento.

Il programma per la creazione dell'ordine di vendita il SAPMV45A.


L'include di riferimento contenente le User Exit maggiormente utilizzate la MV45AFZZ.

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

3.1.1.2.

288870825.doc

Page

5/35

Data

06/10/15

Esempio: Assegnazione range di numerazione al documento commerciale.

Lo scopo di questo esempio quello di assegnare mediante user exit il range di


numerazione al documento di vendita in funzione della organizzazione commerciale.
La logica di assegnazione del range alla organizzazione commerciale realizzata
mediante la tabella ZRANGE01.
La user exit di riferimento si trova nel programma SAPMV45A, include MV45AFZZ, form
USEREXIT_NUMBER_RANGE.

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

3.1.1.3.

288870825.doc

Page

6/35

Data

06/10/15

Esempio: Valorizzazione di campi aggiuntivi nelle tabelle standard


dell'ordine di vendita.

Lo scopo di questo esempio quello di valorizzare mediante user exit il campo aggiuntivo
KATR1 della tabella VBAK.
La user exit di riferimento si trova nel programma SAPMV45A, include MV45AFZZ, form
USEREXIT_MOVE_FIELD_TO_VBAK.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

7/35

Data

06/10/15

3.1.2.Consegna.
3.1.2.1.

Includes di riferimento.

Il programma per la creazione dell'ordine di vendita il SAPMV45A.


Le include di riferimento contenenti le User Exit sono le MV50AFZ*.
Le User Exit sono quelle mostrate in figura:

3.1.2.2.

Esempio - Fatturazione immediata e differita.

Supponiamo di avere il seguente scenario di business: una azienda spedisce a clienti con
esigenze diverse, alcuni ricevono la fattura accompagnatoria, altri (probabilmente con una
notevola forza commerciale) richiedono la fatturazione differita (semplice o mensile).
Un cliente pu cambiare nel tempo tipo di fatturazione.
Nella anagrafica del cliente vengono definiti i diversi calendari di fabbrica: quello con
fatturazione mensile ha come unico giorno lavorativo nel mese l'ultimo giorno del mese.
Nel customizin viene definito il solo ordine OS, e per questo i controlli copia da OS in
consegna con fatturazione immediata (LF) e con fatturazione differita (ZLF1).
Il tipo di consegna standard in customizing per il tipo ordine OS (transazione VOV8) viene
posto uguale a LF.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

8/35

Data

06/10/15

Per il cliente con fatturazione immediata deve essere stampata la sola fattura
accompagnatoria (tipo messaggio in fattura RD00), per il cliente con fatturazione differita
la sola bolla di accompagnamento (tipo messaggio in consegna LD00).
Nella anagrafica dei messaggi (VV21) si crea il record condizione per il tipo messaggio
LD00 per la sola consegna ZLF1, in modo che quando viene generata una consegna LF
(fatturazione immediata, quindi fattura accompagnatoria) non viene stampato alcun
messaggio dalla consegna, mentre venga stampato il messaggio dalla ZLF1.
Di segito un esempio del codice che si pu implementare per risolvere questo problema.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

9/35

Data

06/10/15

3.1.3.Fattura.
3.1.3.1.

Includes di riferimento.

Il programma per la creazione dell'ordine di vendita il SAPLV60A (Gruppo funzioni


V60A).
Le User Exit sono quelle mostrate in figura:

3.1.3.2.

Esempio - Determinazione number Range.

Nell'ambito di un gruppo industriale possibile gestire un unico documento di fatturazione,


ma distinguerne il protocollo sulla base ad esempio della organizzazione commerciale,
implementando una logica assolutamente identica a quella implementata per la
numerazione degli ordini, nella USEREXIT_NUMBER_RANGE.
Anche in questo caso sarebbe possibile sfruttare la stessa tabella ZRANGE01,
aggiungendo ad essa il campo documento commerciale, e manutenendolo correttamente
per gli ordini e le fatture.
Nota bene: se viene usata la transazione VFP1 per la determinazione della data fattura, la
use rexit da alimentare per la determinazione del number range la
USEREXIT_NUMBER_RANGE_INV_DATE, altrimenti la USEREXIT_NUMBER_RANGE.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

10/35

Data

06/10/15

3.1.4.Trasmissione in contabilit.
3.1.4.1.

Includes di riferimento.

Le Include di riferimento sono le seguenti:

Analizziamo le form incluse nella include di riferimento RV60BFZA.

In particolare le user exit suddette vanno editate in generale in accordo o su suggerimento


del consulente FI, e nel dettaglio servono per inserire nel documento contabile
infornmazioni relative a:
USEREXIT_FILL_XKOMK1 - Testata
USEREXIT_FILL_XKOMK2 - Riga contabile cliente
USEREXIT_FILL_XKOMK3 - Riga contabile di contropartita cliente (Prezzo e sconti)
USEREXIT_FILL_XKOMK4 - IVA

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

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

288870825.doc

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

3.1.4.2.

Page

11/35

Data

06/10/15

Esempio - Determinazione tipo documento FI.

Un esempio tipico di applicazione di queste user exit quello della determinazione del tipo
di documento contabile a partire dal tipo documento SD:
Trattandosi di una informazione di testata va inserito sicuramente nella USEREXIT_FILL_
XKOMK1
Quello che segue un esempio del codice che si pu implementare, non uno standard
da replicare identicamente.
tables: zdocsd_fi.

"Tabella custom con le corrispondenze fra tipo documento SD ed FI

data: cee like zdocsd_fi.


* --> Logica di controllo sulla nazione di destinazione
select single xegld from t005 into t005-xegld where land1 = vbrk-land1.
if t005-xegld = 'X'.
*

"Appartiene alla comunit europea

Devo ora decidere se una fattura nazionale o CEE


if vbrk-landtx = vbrk-land1 . " se paese di partenza e di destinazione coincidono
cee = 'NAT'.

" una fattura nazionale

else.

" altrimenti
cee = 'CEE'.

" una fattura CEE

endif.
else.

" se il Flag non era X una fattura Extracee


cee = 'XCEE'.

endif.

" --> Logica di controllo sulla nazione di destinazione

select single * from zdocsd_fi

where bukrs eq vbrk-bukrs


and

fkart eq vbrk-fkart

and

cee eq cee.

* Imponi data documento FI uguale alla data documento SD


*

tipo documento FI come databella zdocsd_fi

xkomk1-bldat = vbrk-fkdat.
xkomk1-blart = zzrn-blart.

Si vuole notare esplicitamente come la corrispondenza fra protocollo SD e protocollo FI si


ottiene semplicemente imponendo esterno il range di numerazione delle fatture FI.

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

3.1.4.3.

288870825.doc

Page

12/35

Data

06/10/15

Esempio: Valorizzazione da programma del campo attribuzione nel


documento contabile.

Il campo attribuzione (ZUONR) viene automaticamente valorizzato al momento della


trasmissione in contabilit da FI in base al campo chiave di classificazione che si trova
sulla anagrafica cliente nella videata societ - gestione conto:

E' possibile, mediante funzioni di customizing di FI, creare nuove chiavi di classificazione
in base alla informazione che si vuole trasmettere nel campo Attribuzione (ZUONR).
Non detto che si riesca mediante customizing a trasmettere qualunque tipo di
informazione si desideri, perch esiste un elenco di valori possibili da associare alla chiave
di classificazione.
Se ad esempio si volesse trasmettere in questo campo il valore della commessa presente
sulla riga della fattura (campo VBRP-PS_PSP_PNR), si pu procedere come 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:

288870825.doc

Release 1,1

SD Competence Centre

Page

13/35

Data

06/10/15

Trasmissione del campo attribuzione sulla riga cliente.


La form di riferimento, come gi affermato, la USEREXIT_FILL_XKOMK2.

Definisco il progetto SD11 (transazione CJ20N), costituito da due milestones di secondo


livello:

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

14/35

Data

06/10/15

Creo l'ordine cliente e sulla riga associo la milestone SD11.1. Consegno, fatturo e rilascio
in contabilit.

Al momento del rilascio in contabilit il documento contabile ottenuto dal flusso suddetto si
presenter come segue:

Con il valore della definizione progetto sul campo attribuzione nella riga contabile del
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:

Release 1,1

SD Competence Centre

3.1.4.4.

288870825.doc

Page

15/35

Data

06/10/15

Esempio: Determinazione custom data scadenza partite.

Problematica.
La data base per le partite aperte viene definita a partire dalla data fattura e calcolata sulla
base delle regole definite nelle condizioni di pagamento.
Si vuole avere la possibilit di definire delle eccezioni a questa regola generale.
In particolare deve essere possibile definire per alcuni clienti un intervallo date in cui non
si vuole avere scadenza delle partite, e la data corrispondentein cui deve scadere una
partita che la regola di calcolo avrebbe condotto nell'intervallo indesiderato.
Soluzione proposta.
Si definisce la tabella custom ZDATARIBA per la definizione di questi accordi:

KUNNR il cliente (esecutore pagamento) titolare dell'accordo


DATA_INIZIO e DATA_FINE definiscono estremo inferiore e superiore dell'intervallo di
esclusione
ZFBDT la nuova data di scadenza da imporre

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

16/35

Data

06/10/15

Le regole definite in questa tabella vengono definite al momento del rilascio in contabilit
della fattura nella customer exit definita dall'ampliamento SDVFX002, function module
EXIT_SAPLV60B_002.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

17/35

Data

06/10/15

3.2. Function Exit.


3.2.1.Creating and managing an add-on project.
To take advantage of the exits available in standard R/3 applications, you need to create
an add-on project. This project lets you organize the enhancement packages and exits you
want to use. The add-on project also allows you to hang add-on functionality onto the exit
hooks contained with SAP enhancements.
An add-on project contains a series of exits, as well as the add-ons that you develop to
attach to these exits (like menu entries or function modules). To create an add-on project
from within the ABAP Workbench menu, choose \Utilities\Enhancements\Project
management.
Before you begin defining a project, you need to decide which application, application
component, or specific standard transaction you would like to add your own functionality
to. Give your project a name that indicates the type of functions it contains and that shows
which transactions are affected. It may be useful to agree upon a company-wide naming
convention for enhancement projects.
There are two factors you need to keep in mind when you create an add-on project. First,
you can include an SAP enhancement package and the customer exits it contains in one
project only. The same SAP enhancement may not appear in two separate customer
projects.
Second, in order to make your add-ons, such as menu items or screen fields, appear in
standard R/3 applications, you must activate your add-on project. When you activate a
project, all of the add-ons created within this project are activated as well. For this reason,
you should ensure that the exits you include in your project contain functions that can be
activated simultaneously. It is not possible to activate exits individually.
After you have specified the name of your new project, proceed as follows
1. Choose Create.
2. Describe the nature of the project by providing a short descriptive text
3. Choose Save.
The system then prompts you to assign a change request. This assignment allows you
to transport the project and its components into a productive system once you have
completed it.
4. Specify which SAP enhancement packages you want to include in your project by
choosing SAP enhancements.
5. Enter the names of these SAP enhancements in the spaces provided.
You should choose enhancement packages that logically belong together. For
example, if you are planning to use several enhancements that deal with Materials
Management modules, you can include all of these enhancements in the same project.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

18/35

Data

06/10/15

If you are working on enhancements that deal with different applications, or if the
enhancements are not logically related, you should include these enhancements in
separate projects.
Once you have identified the SAP enhancements you want to include in your project, you
can begin adding your own functions to the exits offered in the enhancements. To display
the individual components of the SAP enhancements, return to the main screen of the
Project Management transaction and choose Enhancement components The system
displays all of the exits included in the enhancements assigned to your project.
A differenza delle user-exit le function-exit sono presenti nel cdice sorgente in forma
mascherata (istruzione call customer-function (nome) ).
La variabile (nome) assume un valore solamente al momento della attivazione del progetto
contenentel'opportuno ampliamento.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

19/35

Data

06/10/15

3.2.2.Esempio: creazione di un progetto di ampliamento, ed attribuzione


di un ampliamento per controlli nella anagrafica cliente.
1. Ricerca ampliamenti in menu standard - transazione SMOD.
Eseguire la transazione SMOD, ed aprire il matchcode di ricerca, con chiave di ricerca
classe di sviluppo VA.

2. Creazione del progetto di ampliamento ZSD11_01 - transazione CMOD.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

20/35

Data

06/10/15

3.Attribuzione degli ampliamenti.


Clickando su attribuzione ampliamento possibile aggiungere ad esempio l'ampliamento
V45A0002.

Selezionando l'icona componenti possibile visualizzare l'elenco dei componenti


dell'ampliamento in oggetto:

4. Editazione della logica di controllo.


Con un doppio click sul function module EXIT_SAPMV45A_002 si giunge alla videata del
Function Builder.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

21/35

Data

06/10/15

Questa function exit si presenta come un function module vuoto, con i parametri di
input/output gi definiti.
Qui non consentito effettuare modifiche al codice sorgente, o variare i parametri di
scambio.
La logica tale per cui le modifiche vanno implementate nella include ZXVVAU04, che al
momento non esiste.
Con un doppio click sulla include suddetta, procedo alla sua creazione, ed all'inserimento
di una logica di elaborazione:

Questa logica estremamente banale, utilizzata come esempio, realizza quanto segue:
In fase di creazione di un ordine di vendita, con valore dell'ufficio vendita pari a 90, viene
determinato in automatico il cliente 0010000008.
Per rendere operative queste modifiche non resta che attivare il progetto di ampliamento
ZSD11_01.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

22/35

Data

06/10/15

3.2.3.Esempio: Sostituzione centri di profitto (SD-CO).


Supponiamo di voler definire una logica di elaborazione per cui il centro di profitto venga
rilevato sull'ordine cliente non in base a quanto definito sulla anagrafica materiale, ma in
base ad una tabella custom con in chiave i tre livelli della gerarchia prodotto, ed il motivo
dell'ordine.
1. Definizione tabella ZPRODH.

La tabella stata popolata con i seguenti valori:


La logica di controllo da implementare dovr fare in modo che qualora il materiale abbia il
valore di PRODH1 = '00001', sull'ordine sar rilevato il profit center PCDUMMY.
Altrimenti sar correttamente rilevato sull'ordine il profit center presente sulla angrafica del
materiale stesso.

Definizione logica di controllo.


Le user exit relative alla sostituzione dei centri di profitto nellordine di vendita, si trovano
nel programma ABAP ZGGBS100.
E necessario modificare il programma e inserire la FORM U111

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

23/35

Data

06/10/15

Nella prima parte dichiarare come exits-param una variabile che aggiorni il valore del
centro di profitto.

Nella seconda parte necessario inserire il codice ABAP della FORM:

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

24/35

Data

06/10/15

Step di customizing
Come ultimo passo necessario creare la regola di sostituzione ed associare la user exit
appena creata.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

25/35

Data

06/10/15

1. Definire regole di sostituzione


Si procede creando una nuova sostituzione, salvando ed assegnando una fase: il sistema
ci fornir l'elenco dei campi sostituibili:

Il sistema ci chieder come deve essere sostituito il campo, noi selezioneremo il valore
"EXIT",
Selezionare Prerequisiti: Ciccare due volte sul technical name Structure PCASUB e
selezionare il campo PCASUB-AUGRU. E necessario sempre specificare un prerequisito
per la sostituzione.
Impostare la condizione: Order reason <> ''
Poi selezionare Substitution: inserire in corrispondenza del campo Exit, il codice U111.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

26/35

Data

06/10/15

Alla fine si avr questa sostituzione:

Salvare e creare la richiesta di trasporto tramite men:


Sostituzione -> Trasporto.
A questo punto andando a creare un ordine cliente per un materiale avente un determinato
valore del profit center, definendo un opportuno valore del motivo dell'ordine, si verifica
come in ordine viene sostituito il profit center della anagrafica, con il profit center della
ZPRODH.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

27/35

Data

06/10/15

3.2.4.Esempio: Controlli sulla Anagrafica Cliente e Fornitori.


Nell'accelerated accounting sono state definiti, fra l'altro, una serie di controlli in fase di
creazione della anagrafica del cliente o del fornitore.
Gli ampliamenti relativi si possono trovare facendo una ricerca per definizione = * dati
anagrafici*, e sono SAPMFD02, e SAPMFK02.
L'ampliamento SAPMXD02 ha assegnati i seguenti componenti:

Il codice relativo effettua una serie di controlli sulla definizione dei codici IVA 1 e 2, e sulla
loro unicit.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

28/35

Data

06/10/15

3.2.5.Esempio: Creazione massiva fatture (transazione VF04).


Programma: SDBILLDL (classe di sviluppo VF)
Ampliamento: V60P0001
Function Module: EXIT_SAPLV60P_008
Problematica.
Pu accadere (per errore utente) che esistano alcuni documenti (ordini o consegne) visibili
nella transazione VF04, ma che non debbano, o non possano essere fatturati (ad esempio
perch bloccati per fatturazione).
Pu essere utile avere a disposizione uno strumento per eliminare questi documenti dalla
visualizzazione della transazione VF04.
Soluzione proposta.
Si implementa la tabella ZZVF04, aggiornabile mediante la transazione SE16, per
raccogliere i documenti da non visualizzare nella VF04.

La chiave primaria VKORG in linea di principio non sarebbe stata necessaria, ma in una
ottica di gruppo utile per avere immediata evidenza della societ responabile
dell'inserimento nella tabella.
E' possibile (non obbligatorio!!!) inserire una descrizione breve (50 caratteri) per indicare i
motivi della eliminazione.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

29/35

Data

06/10/15

LA transazione VF04 esegue il report SDBILLDL: disponibile in questo programma la


customer function EXIT_SAPLV60P_008 per gestire una logica di controllo utente.
Per attivare questo si crea il progetto di ampliamento V60P0001, contenente
l'ampliamento standard V60P0001, per gestire il function module di cui al capoverso
precedente.
La logica di controllo da implementare in questo deve prevedere che se un documento
presente nella tabella ZZVF04, deve essere cancellato dalla tabella interna VKDFIF che
contiene gli item di fatturazione da mostrare a schermo.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

30/35

Data

06/10/15

4. SCREEN EXIT.
4.1. Ordine di Vendita.
4.1.1.Requisiti.
Esistono nella gestione dell'ordine di vendita standard una videata a livello di testata ed
una a livello di posizione che sembrerebbero essere vuote.
In realt queste videate non sono altro che subscreen vuoti dove possibile aggiungere
nuovi campi per la gestione dell'ordine di vendita, e nuove logiche di elaborazione per
essi.

I due dynpro in oggetto sono nel programma SAPMV45A, 8309 per la testata e 8459 per
le posizioni.
Include di riferimento:
MV45AOZZ - moduli PBO
MV45AIZZ - moduli PAI
MV45ATZZ - definizione dati

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

31/35

Data

06/10/15

4.1.2.Esempio: Gestione del campo supplementare VBAK-KATR1.


Mediante la USEREXIT_MOVE_FIELD_TO_VBAK abbiamo ricopiato nell'ordine il campo
KNA1-KATR1 definito sulla anagrafica del materiale.
Proviamo adesso a visualizzare questo campo durante la creazione dell'ordine di vendita,
e a fornire la pssibilit di modificarlo in ordine.
E' necessario andare mediante la transazione SE80 in modifica del Dynpro 8309 (Testata
userexit).
Mediante lo screen painter possibile inserire i campi nel dypro suddetto.

Sono stati inseriti in questo esempio un campo testo, con la descrizione "Classe di
fatturato", ed un campo a valore, definito come il campo del data dictionary KNA1-KATR1.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

32/35

Data

06/10/15

Include MV45ATZZ - Definizione della tabella *KNA1.


E' necessario definire la tabella *KNA1 perch altrimenti SAP non riuscirebbe a
riconoscere il campo *KNA1-KATR1.
Non si pu peraltro definire questa come KNA1, perch gi definita nel programma
SAPMV45A, e SAP non consente di definire pi volte la stessa tabella.
Consente per di definirla due volte, con lo stratagemma dell'asterisco.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

33/35

Data

06/10/15

Implementazione della logica di controllo.

Include MV45OZZ

Include MV45IZZ

1. Include MV45AOZZ - Elaborazione prima dell'output.


Prima che il dynpro 8309 venga mostrato a schermo necessario implementare una
logica per cui il contenuto del campo VBAK-KATR1 valorizzato nella user exit
MOVE_FIELD_TO_VBAK, venga trasmesso al campo video *KNA1-KATR1.

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:

288870825.doc

Release 1,1

SD Competence Centre

Page

34/35

Data

06/10/15

2. Include MV45AIZZ - Elaborazione dopo l'inserimento dei valori.


Dopo che il dynpro 8309 stato mostrato a video, ed eventualmente sono stati modificati i
valori mostrati precedentemente a schermo necessario implementare una logica per cui
il contenuto del campo dynpro *KNA1-KATR1, venga correttamente riportato in VBAKKATR1.

Risultato.
Il risultato delle operazioni svolte pu essere visualizzato nella figura di seguito.

Dove si pu apprezzare come nella videata dei dati supplementari B, il campo KNA1KATR1 sia ripreso dalla angrafica cliente, sia modificabile, e vi sia agganciato il matchcode
a valori.
Andando a modificare il valore da 01 in 02, e salvando l'ordine in oggetto, nella
transazione SE16 si pu anche riconoscere come sia stato memorizzato nella tabella
VBAK il valore desiderato.

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:

288870825.doc

Release 1,1

SD Competence Centre

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

Page

35/35

Data

06/10/15