Sei sulla pagina 1di 22

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

288870894.doc

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

Page

1/22

Data

06/10/15

sd10 - User Exit in SD - 03

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

2/22

Data

06/10/15

INDICE
5.

GESTIONE DELLE ROUTINE (TRANSAZIONE VOFM)..........................................................................3


5.1. CONTROLLO COPIA............................................................................................................................... 3
5.1.1.
Esempio: rilevamento pricing procedure per note credito e note debito.....................................3
5.1.1.1.
5.1.1.2.

Presupposto.......................................................................................................................................... 3
Soluzione proposta............................................................................................................................... 5

5.2. RILEVAMENTO DATI............................................................................................................................... 7


5.2.1.
Esempio: Criteri di splitting nella creazione consegne................................................................7
5.2.1.1.
5.2.1.2.

Problematica......................................................................................................................................... 7
Soluzione proposta............................................................................................................................... 7

5.3. FORMULE DI CALCOLO.......................................................................................................................... 9


5.3.1.
Esempio: Il caso Franco Tosi Meccanica....................................................................................9
5.3.1.1.
5.3.1.2.
5.3.1.3.
5.3.1.4.
5.3.1.5.
5.3.1.6.

Procedura di preventivazione...............................................................................................................9
Definizione condizioni di maggiorazione.............................................................................................10
Schema di calcolo del prezzo.............................................................................................................12
Condizioni di preventivazione.............................................................................................................13
Prezzo di vendita................................................................................................................................ 14
Esempio.............................................................................................................................................. 15

5.4. PRESUPPOSTI.................................................................................................................................... 16
5.4.1.
Esempio: determinazione output............................................................................................... 16
5.4.2.
Esempio: condizione di sconto................................................................................................. 16
5.4.3.
Esempio: campo scontabile su anagrafica materiale................................................................16
6.

FLUSSI PARTICOLARI........................................................................................................................... 17
6.1. SEGNALAZIONE SU ERRORI NEL TRASPORTO........................................................................................17
6.1.1.
Traporto descrizione elementi dati............................................................................................ 17
6.1.2.
Trasporto Routines.................................................................................................................... 18
6.2. INTERCOMPANY ITALIA - ESTERO: IL RAPPRESENTANTE FISCALE............................................................20
6.2.1.
Scenario di business................................................................................................................. 20

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

3/22

Data

06/10/15

5. GESTIONE DELLE ROUTINE (TRANSAZIONE VOFM).


5.1. Controllo copia.
5.1.1. Esempio: rilevamento pricing procedure per note credito e note
debito.
5.1.1.1.

Presupposto.

Quando viene creata la richiesta nota credito/debito, oppure un reso, viene


automaticamente agganciata la Pricing Procedure del documento di riferimento, invece di
quella impostata in customizing.
In customizing sono associati i seguenti schemi di determinazione del prezzo:

Andando a creare ad esempio una nota di addebito senza riferimento, viene correttamente
agganciata la procedura ZAADIT:

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

4/22

Data

06/10/15

Se invece la stessa nota di addebito viene creata con riferimento ad una fattura cliente
(90000046):

Il sistema rileva "poco correttamente" lo stesso schema prezzo della fattura ZDEMIT.

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

5.1.1.2.

288870894.doc

Page

5/22

Data

06/10/15

Soluzione proposta.

Viene creata una nuova routine di Data transfer (transazione VOFM, ci si posiziona
sulla routine 052, si sovrascrive 952 ad esempio si registra il nuovo oggetto con la
OSS, e si salva).
La routine 952 viene modificata, semplicemente togliendo lasterisco dalla riga
*

VBAK, KALSM,

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

6/22

Data

06/10/15

Si aggancia mediante la transazione VTAF la routine 952 al posto della 052 nei flussi
desiderati (ad esempio da fattura ZFOV a nota debito ZL2)

Riprovando ora a creare la ZL2 in copia dalla ZFOV 90000046 si ottiene lo schema prezzo
giusto:

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

7/22

Data

06/10/15

5.2. Rilevamento dati.


5.2.1.Esempio: Criteri di splitting nella creazione consegne.
5.2.1.1.

Problematica.

Il sistema nella creazione di una consegna da un ordine con posizioni riferite a divisioni
diverse non realizza lo splitting su consegne differenti.

5.2.1.2.

Soluzione proposta.

Si forza lo splitting attraverso la creazione di un nuovo criterio di splitting nel controllo


copia, e si associa la nuova routine nei controlli copia da ordine a consegna.

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

8/22

Data

06/10/15

Resta poi da assegnare la nuova routine a tutti i flussi interessati di controllo copia (da OS
a LF ZLF1, etc.):

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

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

288870894.doc

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

Page

9/22

Data

06/10/15

5.3. Formule di calcolo.


5.3.1. Esempio: Il caso Franco Tosi Meccanica.
Viene descritto nel seguito un esempio di applicazione delle formule di calcolo alla
costruzione di uno strumento di preventivazione, ad esempio associabile ad uno schema
di calcolo sul documento di offerta.
5.3.1.1.

Procedura di preventivazione.

Nella figura seguente viene riportato un esempio di come funzioni una procedura di
preventivazione di esempio.
Descrizione

SUBTOTALE

Formula

Preventivo Costo

Imballo e trasporto

P*%

Imprevisti tecnici

Costi Gestionali

Valore

Valore cumulato

300,00

300,00

12,00

312,00

P*%

3,00

315,00

(P + A) * %

6,24

321,24

Prezzi Fissi

(P+A+B+C) * %

9,63

330,88

TOTALE PARZIALE

Moltiplicatore per calcolo


prezzo

330,88
X=E+F+G+H+I+L

23

1,30

Z = 1 + [X/(100-X)]

Royalties

(Y - A) * % * Z

8,28

339,16

Costi bancari e provvigioni

Y*%*Z

12,89

352,05

Oneri finanziari

Y*%*Z

4,30

356,35

Fondi e penali

Y*%*Z

17,19

373,54

Struttura societaria

Y*%*Z

21,48

395,02

Margine

Y*%*Z

34,38

429,40

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

5.3.1.2.

288870894.doc

Page

10/22

Data

06/10/15

Definizione condizioni di maggiorazione.

Vengono definite le seguenti condizioni di maggiorazione:


Condizioni semplici.
ZM01 - Imballo e trasporto
ZM02 - Imprevisti tecnici
ZM03 - Costi gestionali
ZM04 - Prezzi fissi
Condizioni soggette al moltiplicatore.
ZM10 - Royalties
ZM11 - Costi bancari e provvigioni
ZM12 - Oneri finanziari
ZM13 - Fondi e Penali
ZM14 - Struttura societaria
ZM15 - Margine
Moltiplicatore.
ZM09 - Moltiplicatore ( necessario inserire manualmente la somma delle condizioni
soggette al moltiplicatore in questa condizione)

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:

288870894.doc

Release 1,1

SD Competence Centre

Le condizioni di maggiorazione vengono definite in customizing come segue:

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

Page

11/22

Data

06/10/15

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

5.3.1.3.

288870894.doc

Page

12/22

Data

06/10/15

Schema di calcolo del prezzo.

Lo schema riprodotto in basso viene associato al tipo documento offerta, in quanto


logicamente si tratta di uno strumento per la preventivazione.

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

5.3.1.4.

288870894.doc

Page

13/22

Data

06/10/15

Condizioni di preventivazione.

Tutte le condizioni di preventivazione hanno valore statistico: non concorrono quindi alla
composizione del valore netto della posizione.
Le formule di calcolo 910, 911, 912 servono per effettuare i calcoli come indicati sullo
schema di esempio.
Note tecniche di implementazione.
XKWERT il valore della condizione nello schema di determinazione del prezzo. E' un
campo packed, quindi sebbene internamente visualizzato da SAP (p.e. durante il
debugging) con due cifre dopo la virgola, assume il valore totale (es. valore visualizzato
800.00, valore reale 80000).
XKOMV-KBETR il valore base della condizione. E' anche esso un campo packed. Nel
caso di valori percentuali viene anche moltiplicato per 100 (es. valore imputato 10%,
valore visualizzato internamente 100.00, valore reale 10000)
KOMP-KZWI3 il subtotale 3 (vedi figura pagina precedente)
KOMP-KZWI4 il subtotale 4 (vedi figura pagina precedente)
XWORKF il subtotale F (vedi figura pagina precedente)
Routine di calcolo 910.
form frm_kondi_wert_910.
xkwert = 100 + 100 * xkomv-kbetr / ( 100000 - xkomv-kbetr ).
endform.

Routine di calcolo 911.


form frm_kondi_wert_911.
xkwert = xworkf * xkomv-kbetr * ( komp-kzwi3 - komp-kzwi4 ) / 10000000.
endform

Routine di calcolo 912.


form frm_kondi_wert_912.
xkwert = xworkf * xkomv-kbetr * komp-kzwi3 / 10000000.
endform.

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

5.3.1.5.

288870894.doc

Page

14/22

Data

06/10/15

Prezzo di vendita.

Terminata la fase di preventivazione possibile rilevare il valore finale del preventivo nel
prezzo lordo PR00.
E' poi ancora possibile aggiungere ulteriori sconti e/o maggiorazioni a valore o percentuali,
in posizione, o validi per tutto il documento.
Mediante la routine di calcolo 900, il valore finale del preventivo viene rilevato in valore
base e valore totale (= valore base * quantit) nella condizione di prezzo.
Note tecniche di implementazione.
KOMP-WAVWR il subtotale B
Routine di calcolo 900.
form frm_kondi_wert_900.
if xkomv-kwert = 0.
xkwert = komp-wavwr.
xkomv-kbetr = 1000 * xkwert / komp-mglme.
endif.
endform.

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

5.3.1.6.

288870894.doc

Page

15/22

Data

06/10/15

Esempio.

Dopo aver effettuato i necessari agganci di customizing dello schema prezzo


implementato al tipo documento offerta, il risultato assolutamente identico a quello
proposto nello schema prezzo disegnato all'inizio di questo paragrafo.

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

16/22

Data

06/10/15

5.4. Presupposti.
Le routine di presupposto sono utilizzate per definire se una determinata condizione deve
avere luogo.
Possono essere applicate nello schema di determinazione del prezzo, ma in generale
ovunque vi sia ovunque vi sia uno schema di accesso.

5.4.1.Esempio: determinazione output.


Inserire nella anagrafica di un cliente due tipi di messaggi per la stampa dell'ordine di
vendita, e riportare entrambi questi tipi di messaggio nello schema di accesso per la
detrminazione dell'ouput dell'ordine di vendita.
Definire nello schema di accesso due presupposti in modo che il primo tipo output venga
determinato per i clienti Italia, il secondo per tutti gli altri.

5.4.2.Esempio: condizione di sconto.


Nella anagrafica dei prezzi definito il codice di esclusione KONP-KZNEP.
E' possibile definire una routine di presupposto che legga il valore assegnato a questo
campo in anagrafica, e definisca se questa condizione debba essere applicata o meno.

5.4.3.Esempio: campo scontabile su anagrafica materiale.


Nella anagrafica del materiale definito il campo Materiale scontabile MVKE-SKTOF.
E' possibile definire una routine di presupposto che verifichi la presenza di tale flag, ed in
sua assenza tolga gli sconti.

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

17/22

Data

06/10/15

6. FLUSSI PARTICOLARI.
6.1. Segnalazione su errori nel trasporto.
6.1.1.Traporto descrizione elementi dati.
Se il trasporto delle modifiche effettuate agli elementi dati con CMOD fallisce (esempio
release 4,0b progetto Bechelli!!!), creare manualmente richiesta di trasporto 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:

288870894.doc

Release 1,1

SD Competence Centre

Page

18/22

Data

06/10/15

6.1.2.Trasporto Routines.
Se quando si crea una nuova routine, dopo averla trasportata manca il link nel programma
principale, e si ha un dump (esempio release 4,0B Bechelli) trasportare manualmente il
link, oltre la include contenente la routine:

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

19/22

Data

06/10/15

SAP crea automaticamente il link aggiornando la include seguente:

Nella release citata questa include non veniva inserita in alcuna correzione in modo
automatico, sebbene venisse automaticamente agiornata sul sistema di sviluppo.
Nota bene.
Come alternativa al procedimento suddetto, esiste una nota OSS di SAP che consiglia di
eseguire il programma RV80HGEN nei casi in cui a fronte di un trasporto di routine non
venga ricreato il link suddetto: questo report dovrebbe ricreare correttamente i link
suddetti.

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

Object:

Society / Project

SD Module - Process description

SAP Italia Consulting S.r.l.


Document

288870894.doc

Arguments: User Exit in SD

Author:

Release 1,1

SD Competence Centre

Page

20/22

Data

06/10/15

6.2. Intercompany Italia - Estero: Il rappresentante fiscale.


6.2.1.Scenario di business.
In un gruppo italo francese, la capogruppo Francese vende i materiali alla propria filiale
italiana (Rappresentante Fiscale), mentre questa tiene i rapporti di commerciali con i clienti
finali.
Nel caso in cui la capogruppo francese vendesse direttamente al cliente finale, questi si
vedrebbe recapitare una fattura intracee, e sarebbe costretto a compilare una
dichiarazione intrastat con cadenza mensile.
Con il modello indicato, invece, l'onere della dichiarazione intrastat di import/export ricade
sulla capogruppo francese (export) e sul proprio rappresentanta fiscale italiano (import),
mentre per il cliente finale l'operazione sarebbe completamente trasparente.

Spedizione a cliente
dal Plant della
societ francese

Ordine di Vendita a
cliente finale

Fattura
Attiva Cliente

CICLO ATTIVO SOCIETA' ITALIANA - Z001

Fattura
Intercompany
CICLO ATTIVO SOCIETA' FRANCESE - Z002

Registrazione
Fattura Passiva
CICLO PASSIVO SOCIETA' ITALIANA - Z001

In questo flusso vi sono due ordini di problemi nuovi:


Nei documenti di vendita dalla societ italiana al cliente finale deve essere applicata
l'IVA italiana sebbene la spedizione avvenga dal Plant francese (per il cliente questa
operazione deve essere trasparente: l'Iva sar assolta dalla societ italiana mediante
dichiarazione intrastat)
Nel documento di fatturazione intercompany deve essere applicata l'esenzione IVA per
vendita intracomunitaria.

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

21/22

Data

06/10/15

Applicazione IVA Italiana su documenti vendita Z001.


Lo step 1 pu ad esempio essere realizzato mediante le seguenti istruzioni nelle user exit
dell'ordine (programma SAPMV45A).
====================================================================
FORM USEREXIT_MOVE_FIELD_TO_VBAK.
*{ INSERT
if vbak-vkorg = <Organizzazione commerciale intercompany>
vbak-landtx = 'IT'.
endif.
*} INSERT
ENDFORM.

====================================================================
FORM USEREXIT_MOVE_FIELD_TO_VBAP.
*{ INSERT
IF vbak-vkorg = <Organizzazione commerciale intercompany>
tables: mlan.
select single * from mlan where matnr = vbap-matnr
and aland = 'IT'.
vbap-taxm1 = mlan-taxm1.
vbap-taxm2 = mlan-taxm2.
ENDIF.
*} INSERT
ENDFORM.

====================================================================
In questo modo viene assegnato come paese di valutazione per le tasse l'Italia, e non il
paese associato alla divisione di consegna (FR).
Applicazione esclusione IVA vendite CEE su documenti vendita intercompany Z002.
Lo step 2 pu ad esempio essere implementato modificando la routine di controllo copia
005 per la fattura intercompany, in 905:
====================================================================
FORM DATEN_KOPIEREN_905.
CLEAR: VBRK-VSBED.
VBRK-INCO1 = KUAGV-INCO1.
VBRK-INCO2 = KUAGV-INCO2.
*{ INSERT
tables: mlan.
select single * from mlan where matnr = vbrp-matnr

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:

288870894.doc

Release 1,1

SD Competence Centre

Page

22/22

Data

06/10/15

and aland = vbrp-aland.


vbrp-taxm1 = mlan-taxm1.
vbrp-taxm2 = mlan-taxm2.
*} INSERT
ENDFORM.

====================================================================
In questo modo per la fatturazione intercompany vengono lette le classificazione fiscali del
materiale presenti sulla vista della sales area francese, invece di quelli presenti sull'ordine
(italiano) cui la fattura intercompany fa riferimento.

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