Sd10 - User Exit in Sd - 03

27
Object: SD Module - Process description Society / Project SAP Italia Consulting S.r.l. Arguments: User Exit in SD Document document.doc Page 1/27 Author: SD Competence Centre Release 1,1 Data 30/03/22 sd10 - User Exit in SD - 03 Autore iniziale documento Ruolo Data Copyright 2001, SAP Italia Consulting S.r.l.

description

How to develop USer Exit in SD

Transcript of Sd10 - User Exit in Sd - 03

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

1/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

2/22

Author: SD Competence Centre Release 1,1

Data18/04/23

INDICE

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

5.1. CONTROLLO COPIA............................................................................................................................... 35.1.1. Esempio: rilevamento pricing procedure per note credito e note debito......................................3

5.1.1.1. Presupposto..........................................................................................................................................35.1.1.2. Soluzione proposta...............................................................................................................................5

5.2. RILEVAMENTO DATI............................................................................................................................... 75.2.1. Esempio: Criteri di splitting nella creazione consegne................................................................7

5.2.1.1. Problematica.........................................................................................................................................75.2.1.2. Soluzione proposta...............................................................................................................................7

5.3. FORMULE DI CALCOLO.......................................................................................................................... 95.3.1. Esempio: Il caso Franco Tosi Meccanica....................................................................................9

5.3.1.1. Procedura di preventivazione...............................................................................................................95.3.1.2. Definizione condizioni di maggiorazione.............................................................................................105.3.1.3. Schema di calcolo del prezzo.............................................................................................................125.3.1.4. Condizioni di preventivazione.............................................................................................................135.3.1.5. Prezzo di vendita................................................................................................................................145.3.1.6. Esempio..............................................................................................................................................15

5.4. PRESUPPOSTI.................................................................................................................................... 165.4.1. Esempio: determinazione output...............................................................................................165.4.2. Esempio: condizione di sconto..................................................................................................165.4.3. Esempio: campo scontabile su anagrafica materiale................................................................16

6. FLUSSI PARTICOLARI.......................................................................................................................... 17

6.1. SEGNALAZIONE SU ERRORI NEL TRASPORTO........................................................................................176.1.1. Traporto descrizione elementi dati............................................................................................176.1.2. Trasporto Routines.................................................................................................................... 18

6.2. INTERCOMPANY ITALIA - ESTERO: IL RAPPRESENTANTE FISCALE...........................................................206.2.1. Scenario di business.................................................................................................................20

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

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

3/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

4/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

5/22

Author: SD Competence Centre Release 1,1

Data18/04/23

5.1.1.2. 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 l’asterisco dalla riga

* VBAK, KALSM,

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

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

6/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

7/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

8/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

9/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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 % Valore Valore cumulato

Preventivo Costo P 300,00 300,00

Imballo e trasporto A P * % 4 12,00 312,00

Imprevisti tecnici B P * % 1 3,00 315,00

Costi Gestionali C (P + A) * % 2 6,24 321,24

Prezzi Fissi D (P+A+B+C) * % 3 9,63 330,88

TOTALE PARZIALE Y 330,88

Moltiplicatore per calcolo prezzo

X=E+F+G+H+I+L

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

23 1,30

Royalties E (Y - A) * % * Z 2 8,28 339,16

Costi bancari e provvigioni F Y * % * Z 3 12,89 352,05

Oneri finanziari G Y * % * Z 1 4,30 356,35

Fondi e penali H Y * % * Z 4 17,19 373,54

Struttura societaria I Y * % * Z 5 21,48 395,02

Margine L Y * % * Z 8 34,38 429,40

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

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

10/22

Author: SD Competence Centre Release 1,1

Data18/04/23

5.3.1.2. 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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

11/22

Author: SD Competence Centre Release 1,1

Data18/04/23

Le condizioni di maggiorazione vengono definite in customizing come segue:

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

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

12/22

Author: SD Competence Centre Release 1,1

Data18/04/23

5.3.1.3. 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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

13/22

Author: SD Competence Centre Release 1,1

Data18/04/23

5.3.1.4. 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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

14/22

Author: SD Competence Centre Release 1,1

Data18/04/23

5.3.1.5. 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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

15/22

Author: SD Competence Centre Release 1,1

Data18/04/23

5.3.1.6. 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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

16/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

17/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

18/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

19/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

20/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

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.

CICLO ATTIVO SOCIETA' ITALIANA - Z001

CICLO ATTIVO SOCIETA' FRANCESE - Z002

Fattura Attiva Cliente

Fattura Intercompany

Ordine di Vendita a cliente finale

CICLO PASSIVO SOCIETA' ITALIANA - Z001

Registrazione Fattura Passiva

Spedizione a cliente dal Plant della

società francese

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

21/22

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

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

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

22/22

Author: SD Competence Centre Release 1,1

Data18/04/23

select single * from mlan where matnr = vbrp-matnr

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.