Quelquepart

Blog d'un développeur ABAP

Vous êtes ici : Accueil

Fonction RV_CALL_DISPLAY_TRANSACTION

Rédigé par Sébastien Hermann dans Fonction - 1 commentaire

Petit focus sur une fonction "magique" de SAP.

RV_CALL_DISPLAY_TRANSACTION permet d'ouvrir en mode transactionnel tout type (ou presque) de documents SD/MM dans SAP.

function rv_call_display_transaction.
*"----------------------------------------------------------------------
*"*"Globale Schnittstelle:
*"       IMPORTING
*"             VALUE(BUKRS) DEFAULT '    '
*"             VALUE(FCODE) DEFAULT '    '
*"             VALUE(GJAHR) DEFAULT '0000'
*"             VALUE(LGNUM) LIKE  VBFA-LGNUM DEFAULT '   '
*"             VALUE(POSNR) LIKE  VBAP-POSNR DEFAULT '000000'
*"             VALUE(VBELN) LIKE  VBUK-VBELN
*"             VALUE(AUFNR) LIKE  VBAK-AUFNR OPTIONAL
*"             VALUE(VBTYP) LIKE  VBUK-VBTYP DEFAULT ' '
*"             VALUE(FI_APPLI) LIKE  VBFAL-APPLI DEFAULT '  '
*"----------------------------------------------------------------------

Il suffit de renseigner le numéro de document (VBELN) pour ouvrir commande, contrat, livraison sortante ou facture. Mieux, ajouter le numéro de poste (POSNR) et le document ouvert arrive directement sur ce poste.

Mais ce n'est pas tout. Si vous spécifiez le type de document (VBTYP), vous pouvez ouvrir une multitude d'autres documents. Voici un petit tableau des transactions gérées par cette fonction :

VBTYPTransactionDocumentChamps pris en compte
1VC03, VC02ContactVBELN
3 ou 4VF23, VF22Liste de facturesVBELN
5, 6, M, N, O, P, S, UVF03, VF02FactureVBELN POSNR
7VL33N, VL32NLivraison entranteVBELN
8VT03N, VT02NTransportVBELN
AVA13, VA12Demande d'offreVBELN POSNR
BVA23, VA22OffreVBELN POSNR
C, H, I, K, LVA03, VA02CommandeVBELN POSNR
DVA53, VA52PropositionVBELN POSNR
E, FVA33, VA32Programme de livraisonVBELN POSNR
F, G, 0VA43, VA42ContratVBELN POSNR
QLT21Ordre de transfertVBELN LGNUM
R, h, iMB03, MB02Doc articleVBELN
J, TVL03N, VL02NLivraison sortanteVBELN POSNR
VME23N, ME33, ME43, ME53N, ML81N, ME22, ME32K, ME32L, ME42, ME52Document achat (demande, commande, VBELN
vME53NDemande d'achatVBELN
WMD83, MD82Plan de besoinVBELN POSNR
Xfct HU_DISPLAY (?)Unité de manutentionVBELN
&LX44Document magasinVBELN LGNUM
aVI03Frais de transportVBELN
YVB03Liste d'exclusionVBELN
.IW33OrdreAUFNR
:IQS3AvisAUFNR
1 et FI_APPLI=MMMB03Doc articleVBELN (comme doc article)+GJAHR+BUKRS
2, 3 et FI_APPLI=MMFB03Piece comptableVBELN (comme doc article)+GJAHR+BUKRS
A et FI_APPLI=MMMIR4Doc de facturationVBELN (comme doc article)+GJAHR
vide et BUKRS renseignéFB02Piece comptableVBELN (comme doc article)+GJAHR+BUKRS

Légende : Document accessible sans indiquer de VBTYP
Uniquement pour la fonction DISPLAY
Uniquement pour la fonction CHANGE

Vous pouvez utiliser RV_CALL_CHANGE_TRANSACTION pour ouvrir en modification les mêmes documents.
Ces fonctions sont très utilisées par le standard pour afficher des documents.
A noter, les USEREXIT de LV06AFZZ sont utilisés.

ZSPRO : La boite à outils

Rédigé par Sébastien Hermann dans Application - 5 commentaires

Lors de l'implémentation d'une solution SAP, il n'est pas rare de devoir écrire des programmes spécifiques. Les bonnes pratiques recommandant de ne jamais écrire de code "en dur", il est fréquent de créer des tables Z... pour piloter ces programmes.

Au fil du temps, il y a de plus en plus de programmes spécifiques, et de plus en plus de tables pour les piloter. Lors du projet d'implémentation en lui même, cela pose rarement de problèmes, l'équipe ayant bien en tête l'ensemble des développements (enfin, sauf dans le cas d'un très gros projet ou d'un offshore).

Mais après le passage en maintenance, ou après avoir subit du turnover sur le projet, il devient difficile d'appréhender l'ensemble de ces spécifiques et il n'est pas rare de perdre des jours à rechercher comment modifier tel spécifique (voir d'en créer un nouveau !) alors que celui livré initialement pouvait gérer l'évolution grâce a sa table de pilotage...

Voila pourquoi il est intéressant d'avoir une transaction ZSPRO. Cette dernière permet de centraliser l'ensemble des tables spécifiques du système. La documentation de chacune apparait clairement, permettant au consultant fonctionnel d'avoir un aperçu de toutes les possibilités offertes par les spécifiques en place.

L'organisation des dossiers et des tables est réalisée directement au sein de la transaction ZSPRO (en mode édition). Un outil de recherche est disponible, ainsi qu'un outil d'import de tables en masse.

Techniquement, cette transaction utilise plusieurs objets SAP standards (container, spliter, tree, html view)

ZSPRO a un peu évolué depuis sa version initiale. Il gère désormais les programmes, les modules fonctions, les urls et les activités IMG en plus des tables et peut donc servir de boite à outils IT (arborescence de programmes techniques / utilitaires)

Télécharger ZSPRO - compatible 4.6c (n'est plus à jour, installation manuelle)

A noter : n’oubliez pas que vous aurez besoin de SAPLINK et son extension de gestion de table pour installer le programme.

Mots clés : aucun

Reprise de données SAP Standard

Rédigé par Sébastien Hermann dans Liste mémo - aucun commentaire

Voici une petite liste de programmes standards de reprise de données.

Solution Business Object Prog/Transaction Code
Financial Acounting Accounting Documents RFBIBL00
Financial Acounting Assets RAALTD01 (Batch Input)
Financial Acounting RAALTD11 (Direct Input)
Financial Acounting G/L Account Master RFBISA00
Financial Acounting Customer Master RFBIDE00
Financial Acounting Vendor Master RFBIKR00
FI-Bank Data Transfer of Bank Data
FI-Bank Data (Austria) RFBVAT_0
FI-Bank Data (German) RFBVD__2
FI-Bank Data (Great Britain) RFBVGB_0
FI-Bank Data (Italian) RFBVIT_0
FI-Bank Data (Spanish) RFBVES_0
FI-Bank Data (Swiss) RFBVCH_0
Human Resources Master Data (Org. Units) RPUSTD00
Human Resources Payroll Account RPULKT00
Human Resources Personal Planning Data RHALTD00
Materials Management Create Characteristics RCCTBI01
Materials Management Create Classes RCCLBI01
Materials Management Create Classification RCCLBI02
Materials Management Change Classification RCCLRI03
Materials Management Material Master RMDATIND
Materials Management Purchase Info. Records RM06IBI0
Materials Management Purchase Requisitions RM06BBI0
Materials Management Reservations RM07RRES
Materials Management Stocks (Inventory Mgmt) RM07MMBL
Materials Management Vendor Master RFBIKR00
MM (Physical Inventory Doc) Create PID For Cycle Counting RM07ICN1
MM (Physical Inventory Doc) Create PID For Sales Order RM07IE31
MM (Physical Inventory Doc) Create PID For Standard Stock RM07II31
MM (Physical Inventory Doc) Block Material for Phys. Inv. RM07II32
MM (Physical Inventory Doc) Block Material for Phys. Inv. RM07II37
MM (Physical Inventory Doc) Create PID vendor consignmnt RM07IK31
MM (Physical Inventory Doc) Cre. PID ret. transp. packaging RM07IM31
MM (Physical Inventory Doc) Cre. PID Mat. Prov. to Vendor RM07IO31
MM (Physical Inventory Doc) Create PID for project RM07IQ31
MM (Physical Inventory Doc) Cre. PID ret. packaging at cust RM07IV31
MM (Physical Inventory Doc) Cre. PID consignment at cust. RM07IW31
MM (Physical Inventory Doc) Inventory Sampling RM07SVOR
Materials Management (EH & S) Phrases CG31
Materials Management (EH & S) Sources CG32
Materials Management (EH & S) Substances CG33
Plant Maintenance Measuring Point RIIBIP00/IBIP
Plant Maintenance Measurement Document RIIBIP00/IBIP
Plant Maintenance Notifications-General RIIBIP00/IBIP
Plant Maintenance Functional Location RIIBIP00/IBIP
Plant Maintenance Object Link RIIBIP00/IBIP
Plant Maintenance Equipment RIIBIP00/IBIP
Plant Maintenance Maintenance Plan RIIBIP00/IBIP
Plant Maintenance Scheduling Maintenance Plan RIIBIP00/IBIP
Plant Maintenance Order Confirmation RIIBIP00/IBIP
Plant Maintenance Equipment Task List RIIBIP00/IBIP
Plant Maintenance General Maintenance Task List RIIBIP00/IBIP
Plant Maintenance Functional Location Task List RIIBIP00/IBIP
Production Master Data Create BOM RCSBI010 (Batch Input)
Production Master Data Change BOM RCSBI020 (Batch Input)
Production Master Data Create Variant BOM RCSBI030 (Batch Input)
Production Master Data Create BOM With Long Text RCSBI040 (Batch Input)
Production Master Data Routing / Task Lists RCPTRA01 (Batch Input)
Production Planning Demand Management RMMM60BI (Bacth Input)
Production Planning RM60IN00 (Direct Input)
SAP-EIS Several Records for SAP-EIS RKCFILE0
Sales and Distribution Condition Records (Pricing) RV14BTC1
Sales and Distribution Customer Master RFBIDE00
Sales and Distribution Open Sales Orders RVINVB00
Sales and Distribution Invoice External Transactions RVAFSS00
Warehouse Management Storage Bins RLPLAT00
Warehouse Management Stocks on Storage Bins RLBEST00

Conserver ses programmes ABAP

Rédigé par Sébastien Hermann dans Général - aucun commentaire

Etant prestataire de service, je suis amené régulièrement à changer de client. Cela présente certains avantages mais aussi des inconvénients. Et parmi eux celui de "perdre" toutes ses réalisations.

Afin de capitaliser mon temps passé à rechercher des fonctions standards cachées, à réaliser des algorithmes tordus hyper optimisés ou à réinventer la roue, j'essaie de conserver mes codes sources.

Au fil des ans et des versions de SAP, j'ai utilisé différents programmes pour le faire car chacun devenait incompatible avec la version de SAP suivante (4.5/4.6, 4.7, ECCx...)

Récemment j'ai découvert SAPLink, un programme ABAP "open source" pour essayer de standardiser cette opération. Ce programme est très bien fait, est ouvert aux "plugins" pour en étendre les fonctionnalités, et possède l'énorme avantage de permettre d'uniformiser les échanges de programmes entre développeurs via un format de fichier commun.

L'installation se fait en 2 temps. Il y a un programme temporaire (zsaplink_installer) dont le seul usage est de charger le .nugg (format de fichier utilisé par saplink) afin d'installer complètement Saplink.

Sur leur site ils se définissent comme : "an open source project that aims to make it easier to share ABAP developments between programmers. It provides the ability to easily distribute and package custom objects."

J'ai décidé de l'utiliser et de proposer ici mes réalisations sous ce format, que je pense pérenne.
Malheureusement, SAPLink ne fonctionne qu'a partir de SAP 4.7
Aussi pour les codes compatibles 4.6, j'utiliserai le programme ZAPC0007. Bien que moins abouti, il permettra néanmoins de passer l'essentiel des éléments d'un programme. Seul le ddic restera à recréer manuellement.

SAPLINK évolue avec le temps et perd malheureusement sa compatibilité avec les vieilles versions de SAP. Les déménagements successifs du projet ont rendu compliqué l'accès aux différentes versions aussi je vais proposer sur mon site le téléchargement des principales versions exploitées.

Si la dernière version stable proposée ne fonctionne pas, voici de plus anciennes versions :

Sans oublier l'extension de gestion de tables indispensable pour certains de mes applications.

Ouverture du blog

Rédigé par Sébastien Hermann dans Général - aucun commentaire

Et bien voila, j'ouvre un blog !

J'aurai jamais cru faire ca un jour, étant plutôt fervent défenseur du "vrai" site fait main avec notepad et de l'huile de coude...

Mais bon, les temps changent, il faut savoir s'adapter. Aussi... nous y voila.

8 ans de boulot à consigner ici, voila une bien grande tache. J'essaierai de rendre le tout aussi agréable et utile que possible :-)

Mots clés : aucun