Sd10 - User Exit in Sd - 01

33
Object: SD Module - Process description Society / Project SAP Italia Consulting S.r.l. Arguments: User Exit in SD Document document.doc Page 1/33 Author: SD Competence Centre Release 1,1 Data 10/06/22 sd10 - User Exit in SD - 01 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 - 01

Page 1: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

1/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 2: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

2/26

Author: SD Competence Centre Release 1,1

Data18/04/23

INDICE

1. INTRODUZIONE..................................................................................................................................... 33

1.1. CONCETTO DI AMPLIAMENTO IN SAP...................................................................................................3 3 1.1.1. Esempio.................................................................................................................................... 44

1.2. EXIT IN SAP R/3................................................................................................................................ 5 5 1.2.1. Come localizzare gli ampliamenti in SAP..................................................................................551.2.2. Riferimenti................................................................................................................................. 77

1.3. CENNI DI DEVELOPMENT WORKBENCH................................................................................................8 8 1.3.1. Creazione Tabella custom ZRANGE01.....................................................................................881.3.2. Creazione report ZCLIENTE.................................................................................................1111

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

2.1. DATA ELEMENT DOCUMENTATION....................................................................................................14 14 2.1.1. Esempio: Modifica descrizione campo supplementare Anagrafica Clienti.............................1515

2.2. CAMPI APPEND NELLE TABELLE STANDARD.......................................................................................18 18 2.2.1. Esempio - inserimento campo KATR1 in VBAK....................................................................1818

2.3. FIELD EXIT.................................................................................................................................... 20 20 2.3.1. Esempio: Controllo Ordini editabili su Utente Logon.............................................................2121

2.3.1.1. Presupposti.....................................................................................................................................21212.3.1.2. Legami di customizing....................................................................................................................21212.3.1.3. Implementazione Field Exit.............................................................................................................2323

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

Page 3: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

3/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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 SAP’s 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 SAP’s 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 SAP’s standard software package.

They do not affect software updates

When you add new functionality to your R/3 System using SAP’s 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.

Page 4: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

4/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 5: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

5/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 6: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

6/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 7: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

7/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 8: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

8/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 9: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

9/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 10: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

10/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 11: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

11/26

Author: SD Competence Centre Release 1,1

Data18/04/23

1.3.2.Creazione report ZCLIENTE.

Transazione SE38 - Programma ZCLIENTE.

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

Page 12: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

12/26

Author: SD Competence Centre Release 1,1

Data18/04/23

Il codice implementato prevede:

Una fase di selezione in cui vengano imputati i clienti ed il valore del campo KNA1-KATR1 (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.

Page 13: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

13/26

Author: SD Competence Centre Release 1,1

Data18/04/23

Il risultato è proposto nelle figure seguenti:

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

Page 14: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

14/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 15: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

15/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 16: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

16/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 17: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

17/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 18: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

18/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 19: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

19/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 20: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

20/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 21: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

21/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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 dell’ordine cliente all'utente di logon.

La associazione sarà realizzata a livello di anagrafica utente, e sarà quindi proposta automaticamente nella fase di introduzione dell’ordine cliente.

E' possibile rendere obbligatori questi due campi sull’ordine cliente, inserendoli nel log di incompletezza dell’ordine cliente, in modo che se su un ordine questi dati siano assenti, non sia possibile procedere alla spedizione dell’ordine stesso.

L’oggetto 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 dell’utente di tipo Capo Area o di tipo Agente l’informazione 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 dell’ordine di Vendita automaticamente proposti nei campi suddetti i valori corretti, relativi all’utente di logon che stà creando l’ordine.

3. Transazione SU03 - Oggetti SD: Creare per l’oggetto 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.

Page 22: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

22/26

Author: SD Competence Centre Release 1,1

Data18/04/23

associato all’utente corrisopndente.

Esempio.

L’utente UTENTE20, dovrà avere una autorizzazione del tipo Z100, che effettui un controllo in fase di consultazione dell’ordine cliente nella tabella di testata dell’ordine sul campo VKGRP = 90 e VKBUR = 90.

Sarà quindi creato un profilo di autorizzazione Z100, che sarà poi associato all’utente UTENTE20.

4. Associare l’oggetto di autorizzazione suddetto (V_VBKA_VKO) alle transazioni VA02, VA03 (mediante la transazione SU24).

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

Page 23: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

23/26

Author: SD Competence Centre Release 1,1

Data18/04/23

2.3.1.3. 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.

Page 24: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

24/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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.

Page 25: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

25/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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).

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

Page 26: Sd10 - User Exit in Sd - 01

Object:SD Module - Process description

Society / ProjectSAP Italia Consulting S.r.l.

Arguments: User Exit in SD

Document

document.doc

Page

26/26

Author: SD Competence Centre Release 1,1

Data18/04/23

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

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.